Skip to content

规则

规则允许您提供具体说明,指导智能体处理代码时的行为方式。您可以明确定义指南,以确保一致、符合上下文的响应,而不是 AI 对您的编码标准、架构模式或特定于项目的要求做出假设。

将规则视为 AI 编码的 “护栏”,其作用包括:

  • 强制执行公司特定的编码标准和安全实践

  • 实施符合你工程文化的质量检查

  • 为开发人员铺设遵循组织最佳实践的清晰路径

通过设置规则,您可以将 AI 从通用编码代理转变为知识渊博的团队成员,了解项目的独特要求和限制。

规则的工作原理

您的智能体在 ChatPlanAgent 模式下检测规则并应用指定的规则。

规则的管理

📂 本地规则(.vjsp/rules)

.vjsp/rules 文件夹中创建文件

自动与Hub助手同步显示

可在文件系统中直接编辑

与代码一起进行版本控制

最适合项目特定规则

☁️ Hub 规则

在 Agent Hub -个人中心管理

在 Hub Agent中引用

可与团队共享

易于在多个智能体中复用

最适合组织级规则

创建和管理规则

规则用于向模型提供 ChatPlanAgent 模式请求的系统消息指令

ⓘ 规则不适用于自动补全(autocomplete)或应用(apply)功能。

进入设置页,您可以点击左侧【规则】按钮,查看当前已配置的规则: 已有规则

系统指令的生成逻辑为:将所有规则按其在工具栏中的展示顺序,以换行符拼接,其中包含基础对话系统指令。

理解 Hub 规则与本地规则的集成差异

⚠️重要提示

在不同位置创建的规则,其行为和同步方式均不相同。

VJSP 支持两种规则类型,二者行为存在差异:

📂 本地规则(Local Rules)

位置:工作区中的 .vjsp/rules 文件夹

可见性:使用 Hub 助手时会自动显示

创建方式:通过插件中的“添加规则”按钮,或手动创建文件

文件管理: 生成可直接编辑的实际 .md 文件

☁️ Hub 规则(Hub Rules)

位置:在个人中心-我的智能体页面进行管理

可见性:仅在Hub Agent配置中引用时才会显示

创建方式:直接在 Hub 上创建或者引用官方提供的

规则的生效优先级

使用插件时,规则会按以下顺序加载:

  1. Hub 助手规则(若使用基于 Hub 的助手)

  2. 引用的 Hub 规则(通过 config.yaml 中的 uses: 配置)

  3. 本地工作区规则(来自 .vjsp/rules 文件夹)

  4. 全局规则(来自 ~/.vjsp/rules 文件夹)

ⓘ 核心总结

使用 Hub 配置时,本地规则会自动显示;Hub 规则需在配置文件中完成引用后,方可自动加载。

快速入门:创建首个规则文件

以下为新建规则文件的快速实操示例:

  1. 在工作区根目录创建名为 .vjsp/rules 的文件夹

  2. 在该文件夹中添加文件 rule.md

  3. rule.md 中写入以下内容并保存

md
---
name: 语言风格规则(Pirate rule)
---

使用东北话回答问题

现在可通过在聊天中询问某个文件相关的问题,来测试你的规则是否生效。 验证规则是否生效

规则的创建方式

创建本地规则

插件中点击【设置】按钮,进入配置页面,点击【规则】,进入“Rules”页,点击【添加规则】按钮在本地添加规则。 添加规则

ⓘ 自动创建本地规则

在Agent模式下,若启用create_rule_block工具,可直接指令智能体为你生成规则。

例如,您可以说“为此创建规则”,智能体将基于当前对话内容,在.vjsp/rules目录下自动生成对应规则。

创建 Hub 规则

还可以在 Agent Hub 上创建和管理规则

  1. 浏览现有规则探索可用规则

  2. 创建新规则:在 Hub 中创建自定义规则

  3. 从本地规则迁移:将 .vjsp/rules 目录下的规则内容复制粘贴,生成 Hub 规则

云端规则与本地规则的互通方法

云端规则同步至 VS Code

如需在本地环境使用云端规则,操作步骤如下:

  1. “我的智能体”页,自定义智能体中,点击【设置】 规则

  2. 进入智能体编辑页,关联规则,选择需要的规则 规则

  3. VS Code 中点击【重新加载】,则自动更新配置文件 规则

⚠️ 注意:该操作不会生成本地文件,规则仍仅存储于云端

本地规则迁移至云端

如需将本地规则迁移至云端,操作步骤如下:

  1. 复制.vjsp/rules/rule-name.md文件中的规则内容

  2. 进入平台规则创建页面

  3. 粘贴内容并完成规则参数配置

  4. 可选操作:删除本地规则文件,并在智能体中引用该规则

⚠️ 当前限制:暂不支持本地规则到云端的自动同步,需手动复制规则内容完成迁移。

如何配置规则属性与语法

ⓘ 规则最初采用 YAML 格式定义(示例如下),后续为提升编辑便捷性,新增了 Markdown 格式支持。两种格式目前均兼容可用,推荐优先使用 Markdown 格式

规则可采用纯文本、YAML 配置文件或 Markdown(.md)文件编写,支持配置以下属性:

  • name(YAML 格式必填):规则的显示名称 / 标题

  • globs(可选):当作为上下文提供的文件匹配此通配符模式时,规则会被启用。可填写单个模式(如 "**/*.{ts,tsx}")或模式数组(如 ["src/**/*.ts", "tests/**/*.ts"])。

  • regex(可选):当作为上下文提供的文件内容匹配此正则表达式模式时,规则会被启用。可填写单个模式(如 "^import .* from '.*';$")或模式数组(如 ["^import .* from '.*';$", "^export .* from '.*';$"])。

  • description(可选):规则描述。当 alwaysApply 设为 false 时,代理会参考此描述判断是否将规则纳入上下文。

  • alwaysApply:决定规则是否始终启用,行为说明如下:

    • true:无论文件上下文如何,始终启用

    • false:仅在满足以下条件时启用:存在 globs 且匹配文件上下文,或代理根据描述判断需将规则纳入上下文

    • undefined(默认行为):无globs配置时直接生效;有globs配置时,匹配成功则生效

📝 Markdown 格式

md
---
name: 文档编写规范
globs: docs/**/*.{md,mdx}
alwaysApply: false
description: VJSP 文档的编写与维护标准
---

# VJSP 文档规范

- 遵循 Mintlify 文档编写标准
- 文档需包含 YAML 前置元数据,填写标题、描述及关键词
- 采用统一的标题层级,从二级标题(##)开始
- 合理使用提示、警告、说明类的提示组件(Admonition)
- 为图片配置具备描述性的替代文本(alt text)
- 增加相关文档的交叉引用
- 使用相对路径引用其他文档
- 保持段落简洁,便于快速阅读
- 代码块需添加对应的语言标签

⚙️ YAML 格式

yaml
name: 文档编写规范
version: 1.0.0
schema: v1

rules:
  - name: 文档编写规范
    globs: docs/**/*.{md,mdx}
alwaysApply: false
    rule: 
      - 遵循 Mintlify 文档编写标准
      - 文档需包含 YAML 前置元数据,填写标题、描述及关键词
      - 采用统一的标题层级,从二级标题(##)开始
      - 合理使用提示、警告、说明类的提示组件(Admonition)
      - 为图片配置具备描述性的替代文本(alt text)
      - 增加相关文档的交叉引用
      - 使用相对路径引用其他文档
      - 保持段落简洁,便于快速阅读
      - 代码块需添加对应的语言标签

如何设置项目专属规则

在项目根目录下创建 .vjsp/rules 文件夹,并添加新的规则文件,即可创建项目专属规则。

规则文件会按字典顺序加载,因此可在文件名前添加数字前缀,控制规则的应用顺序。例如:01-通用规则.md02-前端规则.md03-后端规则.md

示例:如何创建 TypeScript 专属规则

文件路径:.vjsp/rules/typescript.md

md
---
name: TypeScript 最佳实践
globs: ["**/*.ts", "**/*.tsx"]
---

# TypeScript 编码规则

- 统一使用 TypeScript 接口(interface)定义对象结构
- 谨慎使用类型别名(type),优先选择接口
- 公共 API 需添加规范的 JSDoc 注释
- 启用严格空值检查(strict null checks)
- 尽可能使用只读数组和只读属性
- 将组件拆分为更小的可复用模块