通义灵码支持项目专属规则(Project Rules)的设定, 这些规则存储在 .lingma/rules 目录下,仅对当前工程生效。通过设定项目专属规则,可以帮助模型更精准地理解并适应您的编码偏好,例如理解项目框架和代码风格等。

规则类型

根据引入和触发方式的不同,我们将规则分为以下4个类型,以灵活适配各类业务场景。

类型 触发方式 适用场景
手动引入(Manual) 在智能会话或行间会话中通过@rule手动引入后生效。 按需执行一次性或特定的工作流、自定义提示词等。
模型决策(Model Decision) 在智能会话中使用智能体模式时,或在智能问答开启工具使用后,模型将根据用户定义规则的描述内容,自主决策是否应用该规则。 由模型自主决策,仅在特定场景下生效的规则,例如生成单测时生效,或生成注释时生效等。
始终生效(Always) 在智能会话与行间会话中的所有请求中均会生效。 设定项目级的通用规范,如编码风格、偏好格式、默认的回答角色等
指定文件生效(Specific Files) 在智能会话和行间会话中,根据用户指定的文件匹配模式(如 .jssrc/**/.ts),此规则将应用于所有符合该模式的文件。 可以根据通配符精准匹配生效的文件范围,为特定语言或目录创建专属规则。例如,针对某类语言生效的规则,或针对某个文件夹生效的校验规则。

规则文件限制

  • 单个规则文件最大限制为 10000 字符,超过部分将自动截断。
  • 多个规则文件最大100000字符。
  • 规则文件请使用自然语言描述,不支持图片或链接的解析。

使用规则

手动引入(Manual)

在对话框输入@rule(JetBrains IDEs使用 @rule,VSCode使用 #rule)唤起规则列表,选择所需规则。

模型决策(Model Decision)

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

设定规则

使用规则

始终生效(Always)

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

指定文件生效(Specific Files)

根据用户定义的通配符模式(例如.jssrc/**/.ts),此规则将应用于与该模式匹配的所有文件。

规则生效说明:智能体模式下,在上下文手动引入匹配后缀的文件(即:@file),则请求大模型时候会生效该规则文件。规则文件生效后将影响大模型所生成的内容。

规则配置说明:

语法 含义 示例
* 匹配单层任意字符 *.go
main.go
pkg/main.go
** 匹配多层目录 **/*.go
main.go
pkg/main.go
? 匹配单个字符 file?.txt
file1.txt
[...] 字符类 [0-9]
5
a
[!...] 否定字符类 [!0-9]
a
5
{a,b} 多选一 *.{go,js}
main.go
app.js

规则文件目录

规则文件默认存放路径在 ./lingma/rules 路径下。

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

results matching ""

    No results matching ""