通义灵码支持项目专属规则(Project Rules)的设定, 这些规则存储在 .lingma/rules 目录下,仅对当前工程生效。通过设定项目专属规则,可以帮助模型更精准地理解并适应您的编码偏好,例如理解项目框架和代码风格等。
规则类型
根据引入和触发方式的不同,我们将规则分为以下4个类型,以灵活适配各类业务场景。
| 类型 | 触发方式 | 适用场景 |
|---|---|---|
| 手动引入(Manual) | 在智能会话或行间会话中通过@rule手动引入后生效。 |
按需执行一次性或特定的工作流、自定义提示词等。 |
| 模型决策(Model Decision) | 在智能会话中使用智能体模式时,或在智能问答开启工具使用后,模型将根据用户定义规则的描述内容,自主决策是否应用该规则。 | 由模型自主决策,仅在特定场景下生效的规则,例如生成单测时生效,或生成注释时生效等。 |
| 始终生效(Always) | 在智能会话与行间会话中的所有请求中均会生效。 | 设定项目级的通用规范,如编码风格、偏好格式、默认的回答角色等 |
| 指定文件生效(Specific Files) | 在智能会话和行间会话中,根据用户指定的文件匹配模式(如 .js、src/**/.ts),此规则将应用于所有符合该模式的文件。 |
可以根据通配符精准匹配生效的文件范围,为特定语言或目录创建专属规则。例如,针对某类语言生效的规则,或针对某个文件夹生效的校验规则。 |
规则文件限制
- 单个规则文件最大限制为 10000 字符,超过部分将自动截断。
- 多个规则文件最大100000字符。
- 规则文件请使用自然语言描述,不支持图片或链接的解析。
使用规则
手动引入(Manual)
在对话框输入@rule(JetBrains IDEs使用 @rule,VSCode使用 #rule)唤起规则列表,选择所需规则。

模型决策(Model Decision)
在智能问答中使用 Agent 模式进行对话时,模型将根据用户定义的模型决策类规则的描述内容,自主决策是否应用该规则。如图所示,模型可在不同场景下动态调用检索规则工具。
设定规则

使用规则

始终生效(Always)
在智能会话与行间会话的所有请求中均会生效。如下图所示:

指定文件生效(Specific Files)
根据用户定义的通配符模式(例如.js、src/**/.ts),此规则将应用于与该模式匹配的所有文件。
规则生效说明:智能体模式下,在上下文手动引入匹配后缀的文件(即:@file),则请求大模型时候会生效该规则文件。规则文件生效后将影响大模型所生成的内容。
规则配置说明:
| 语法 | 含义 | 示例 |
|---|---|---|
* |
匹配单层任意字符 | *.gomain.go✅ pkg/main.go ❌ |
** |
匹配多层目录 | **/*.gomain.go ✅ pkg/main.go✅ |
? |
匹配单个字符 | file?.txtfile1.txt ✅ |
[...] |
字符类 | [0-9]5✅a❌ |
[!...] |
否定字符类 | [!0-9]a✅5 ❌ |
{a,b} |
多选一 | *.{go,js}main.go✅app.js✅ |

规则文件目录
规则文件默认存放路径在 ./lingma/rules 路径下。
支持在 ./lingma/rules 下新建子目录并存放规则文件,以便于规则文件用途区分与管理。