通义灵码支持项目专属规则(Project Rules)的设定, 这些规则存储在 .lingma/rules
目录下,仅对当前工程生效。通过设定项目专属规则,可以帮助模型更精准地理解并适应您的编码偏好,例如理解项目框架和代码风格等。
点击查看灵码规则库,获取系统提示词的最佳实践。
前提条件
如需使用该功能 ,需要开发者将通义灵码更新至以下版本,或者下载 Lingma IDE ,如需更新请前往下载和安装:
JetBrains 插件:更新至 v2.1.5 及以上。
VS Code 插件:更新至 v2.5.16 及以上。
Visual Studio 插件:更新至 v0.4.4 及以上。
Lingma IDE:已下载并安装。
规则限制
单个规则文件最大限制为 10000 字符,超过部分将自动截断。
规则文件请使用自然语言描述,不支持图片或链接的解析。
规则同步
规则文件存储在项目目录中,可以随项目代码一同通过Git等版本控制工具进行团队间的共享和同步。
如果希望规则仅对个人本地环境生效,可以将.lingma/rules目录添加到项目的.gitignore文件中。
规则类型
根据引入和触发方式的不同,我们将规则分为以下4个类型,以灵活适配各类业务场景。
类型 | 触发方式 | 适用场景 |
手动引入(Manual) | 在智能会话或行间会话中通过 | 按需执行一次性或特定的工作流、自定义提示词等。 |
模型决策(Model Decision) | 在智能会话中使用智能体模式时,或在智能问答开启工具使用后,模型将根据用户定义规则的描述内容,自主决策是否应用该规则。 | 由模型自主决策,仅在特定场景下生效的规则,例如生成单测时生效,或生成注释时生效等。 |
始终生效(Always) | 在智能会话与行间会话中的所有请求中均会生效。 | 设定项目级的通用规范,如编码风格、偏好格式、默认的回答角色等 |
指定文件生效(Specific Files) | 在智能会话和行间会话中,根据用户指定的文件匹配模式(如 | 可以根据通配符精准匹配生效的文件范围,为特定语言或目录创建专属规则。例如,针对某类语言生效的规则,或针对某个文件夹生效的校验规则。 |
规则设置和使用
在不同的IDE中,其配置界面的入口和操作方式略有差异。下面为您分别介绍如何在VS Code、JetBrains、Visual Studio和Lingma IDE中设置和使用项目专属规则。
当规则和记忆存在冲突时,将优先遵循规则执行。
设置规则
Lingma IDE
在 Lingma IDE 的右上角,单击用户图标
或使用键盘快捷键(
⌘
⇧
,
(macOS)或Ctrl
shift
,
(Windows)),然后选择个人设置。在左侧导航栏中,单击规则。
单击“添加”。
在顶部的搜索栏中,输入唯一的规则名称,然后按Enter。
选择规则类型:
手动引入:仅通过@rule手动引入才生效。
模型决策:输入期望规则生效的场景描述。
指定文件生效:提供以逗号分隔的文件路径通配符。例如
*.md
、src/*.java
。始终生效:在智能会话与行间会话的所有请求中均生效。
关闭窗口以保存更改。
VS Code
VS Code中通过#rule
唤起规则列表。
单击IDE侧边栏的图标
进入智能会话。
在智能会话页面,单击右上角用户头像,并在下拉菜单中单击个人设置。
在个人设置页面,单击规则下的条形框进入规则页面。
在规则页面,您可添加、编辑、删除规则。
添加规则:单击右上角
+
添加规则,然后在弹窗中填写规则信息,完成后单击立即添加创建该规则。规则名称:输入规则名称,规则名称将作为唯一标识符和规则文件名。
规则类型:选择您需要配置的规则类型,支持以下四种:
手动引入(Manual):仅在智能会话或行间会话中通过
#rule
手动引入才生效。模型决策(Model Decision):选择后需输入规则描述,您可输入期望该规则生效的场景,例如在生成单元测试时生效或生成注释时生效。模型将根据描述自主决策是否使用该规则。
指定文件生效(Specific Files):选择后需输入文件路径通配符,多个通配符之间用英文逗号隔开。示例:
*.md
,src/*.java
。始终生效(Always):在智能会话与行间会话的所有请求中均会生效。
编辑、删除规则:
JetBrains IDE插件
JetBrains IDE中使用@rule
唤起规则列表。
如下图以 IntelliJ IDEA 为例打开环境设置,然后在设置窗口单击通义灵码,然后找到项目规则即可编辑规则文件。
使用效果
使用规则
手动引入(Manual)
在对话框输入
#rule
唤起规则列表,选择所需规则。模型决策(Model Decision)
在智能问答中使用 Agent 模式进行对话时,模型将根据用户定义的模型决策类规则的描述内容,自主决策是否应用该规则。如图所示,模型可在不同场景下动态调用检索规则工具。
设定规则
使用规则
始终生效(Always)
在智能会话与行间会话的所有请求中均会生效。如下图所示:
指定文件生效(Specific Files)
根据用户定义的通配符模式(例如
.js
、src/**/.ts
),此规则将应用于与该模式匹配的所有文件。
最佳实践
为了帮助通义灵码有效地遵守您的规则,规则文件编写请遵循以下做法:
保持简洁明确:保持规则简洁、明确、具体。过长或含糊不清的规则可能会让通义灵码感到困惑。
结构化表达:使用项目符号、编号列表和 Markdown 格式来格式化您的规则。与长段落相比,这些格式更易于通义灵码理解。
提供示例:在规则中提供“好的代码示例”(Do),这能极大地帮助模型理解您的意图。
迭代优化:创建规则后,通过实际的代码生成和问答来测试其效果,并根据模型的反馈不断迭代和优化您的规则描述。
点击查看灵码规则库,获取系统提示词的最佳实践。