TRAE 绿皮书
官方功能教程 / 使用技巧|让 AI 功能更好用

技巧|Rules(规则) 使用指南,让 AI 更听话

本文作者:简瑞

TRAE 技术专家

概述

在 AI Coding 场景中,Rule 的价值很直白:让模型遵循开发者意愿。你希望它输出什么风格、遵守哪些工程约束、在什么场景下做什么事——Rule 就是把这些“隐性习惯”变成“可显式执行”的表达。

在 TRAE 过去的版本里,我们支持配置 Project RuleUser Rule。但随着项目复杂度提升、任务难度增加,大家很快会遇到一个现实问题:

提示

单条 Rule 根本不够用!

规则写短了不够用;

写长了又变成一团乱麻;

更麻烦的是——你很难控制它在“什么时候该生效、什么时候不该生效”。

这个问题落到一个更本质的层面:我们需要的不再是一条“写得很全的规则”,而是一套可维护、可复用、可控生效的规则体系。

TRAE 的 Rules 能力升级后引入了多规则管理(便于拆分与维护)精细化生效(便于控制使用范围与时机) ,同时支持导入 AGENTS.md / CLAUDE.md(降低迁移成本)

本文会从最佳实践出发,系统讲清楚:

01 单条 Rule 的三大问题:规模、冲突、时机

很多人第一次写 Rule 都会经历同一条路:“我要把经验都写进去,越全越好。”

但当 Rule 变得越来越长,问题会越来越明显,通常集中在三个方面:

  1. 规模问题:越写越长,维护成本指数级上升

一条 Rule 里揉进代码风格、目录约定、框架规范、业务流程、排查 SOP ... 你会很快发现:

  1. 冲突问题:不同场景的规则揉在一起,AI 很容易“抓错重点”

比如你把“React 组件规范”和“Git Commit Message 模板”写在同一条 Rule 里。当你只是在问一个 UI 问题时,模型可能突然开始输出 commit message 结构;当你要写提交信息时,模型又开始强调 hooks 的最佳实践。

不是模型不聪明,而是你给它的规则没有边界。

  1. 时机问题:你很难决定“这段规则么时候该生效”

一些规则应该始终生效(比如输出语言、格式约定);另一些只在特定文件或特定任务里才有意义(SQL 迁移、日志排查)。如果你没法控制规则生效时机,就会发生:

02 如何解决“规模化后的可控性”

为了解决上面的问题,TRAE 针对Rules 能力进行了升级,把“规则”从一段长文本,升级成一套可拆分、可管理、可控生效的体系。你会看到两条主线能力:

  1. 多规则管理:允许配置多条 Project Rule 文件,把不同主题/职责拆到不同文件里
图片展示了项目规则界面,呈现了三条Project Rule文件,分别为api.md、base.md、fe.md,分别位于.trae/rules/api.md、.trae/rules/base.md、.trae/rules/fe.md。每条文件右侧有“指定文件生效”或“始终生效”的生效方式标识,以及齿轮状设置图标。该图片与上文“多规则管理”内容相关,直观呈现了允许配置多条Project Rule文件,把不同主题/职责拆到不同文件里这一功能。
img-228 · 图片展示了项目规则界面,呈现了三条Project Rule文件,分别为api.md、base.md、fe.md,分别位于
  1. 精细化生效:针对每条规则提供更细粒度的生效方式,用来控制适用范围与时机
图片展示了TRAE规则配置界面中生效方式的下拉菜单。菜单中有“始终生效”“指定文件生效”“匹配指定模式的文件时生效”“智能生效”“手动触发生效”“被#提及时生效”等选项,其中“始终生效”被选中并带有绿色勾选标志。该图片与文档中“精细化生效”部分内容相关,直观呈现了TRAE规则配置中生效方式的多种选择,帮助用户了解如何针对每条规则提供更细粒度的生效方式,以控制适用范围与时机。
img-229 · 图片展示了TRAE规则配置界面中生效方式的下拉菜单。菜单中有“始终生效”“指定文件生效”“匹配指定模式的文件时生效”“智

多规则管理:把规则拆成模块,而不是把一条规则写成百科全书

当规则开始规模化,核心矛盾不是“写不下”,而是“管不住”。多规则的价值体现在三个方面:

实践上,我们建议把规则文件当作“模块”来设计:一条规则只解决一个主题/职责,并尽量保持短、具体、可执行。

精细化生效:规则不只是“写了就带上”,关键是“该出现时出现”

多规则解决了维护性问题,但要解决“冲突”和“噪音”,还需要控制规则在什么范围/什么时候生效

为此,Rules 2.0 为 Project Rule 提供 4 种生效方式:

你可以把它们理解成不同的“控制粒度”:

4 种生效方式怎么选:一张表快速决策

生效方式

适合放什么规则

典型例子

始终生效

低冲突、强一致、任何任务都不应违背的规则

输出语言/格式要求、通用代码风格、通用命名习惯、团队协作约定

指定文件生效

边界清晰、与文件类型/目录强相关的规则

**/*.sql 迁移规范、apps/web/** 前端规范、apps/api/** 后端规范

智能生效

偶尔使用但重要,希望“相关时自动出现”的规则

问题排查 checklist、性能优化流程、特定领域的注意事项

手动触发

高风险/高成本/误触发会严重干扰的规则

发布/回滚 SOP、敏感操作流程

提示

决策原则:

越“通用且低冲突”,越偏向始终生效;

越“边界清晰”,越偏向指定文件生效;

越“偶发但关键”,越偏向智能生效;

越“高风险高干扰”,越应该手动触发。

小技巧:在输入框中新增 #Rule 能力,任何 Rule 文件都可以手动 mention,以确保本次会话模型一定参考该规范。

图片展示了CodeRush AI编辑器中“输入搜索...”输入框上方的下拉菜单。菜单中依次列出File、Folder、Doc、Code、Rule、Workspace、Problems、Web等选项,其中Rule选项被高亮显示。该图片与文档中“如何解决‘规模化后的可控性’”部分内容相关,用于说明在CodeRush AI编辑器中,可通过在输入框中新增#Rule能力,手动mention任何Rule文件,以确保本次会话模型一定参考该规范,辅助解决规模化后的可控性问题。
img-230 · 图片展示了CodeRush AI编辑器中“输入搜索...”输入框上方的下拉菜单。菜单中依次列出File、Folder、D

03 规则拆分方法论

下面是一套 Rule 拆分方法论,让每条 Rule 都短、准、可维护先分层,再单一职责,最后注意要长期维护治理。

先按“职责分层”拆:从稳定到变化,从通用到业务

建议把 Project Rules 拆成 4 层:越稳定越通用的规则越靠前,越易变越业务的规则越靠后。

再做“单一职责”拆分:一条 Rule 只管一件事

这条 Rule 能不能用一句话说清楚它在约束什么行为?不能,就继续拆。

你会发现很多“过长 Rule”的根源不是内容多,而是它同时在管三类东西:

把它们揉在一起,AI 很容易抓错重点。拆开之后,不仅更短,也更稳定。

3 个常用拆分维度:职责 / 范围 / 风险

实际落地时,除了分层,可以用三个维度快速决定“要不要拆成单独一条 rule”。

例如把“React 组件规范”和“状态管理规范”分开;把“错误处理规范”和“日志规范”分开。

只要你能清晰写出“这条规则属于哪个目录/哪些文件类型”,就值得拆出来配成指定文件生效。

本条在 monorepo 的场景下收益尤其大。

凡是“误触发代价很大”的内容,都建议拆出来做成手动触发:发布/回滚、敏感操作等。

规则资产治理:让多 Rules 长期不劣化

写好的 Rule 如果不注意维护治理,可能在后期迭代时越用越乱:不断往里加内容,但没人删;最后 Rule 越来越臃肿,影响整个团队的任务执行效果。

为了避免建设好的 Rule 体系劣化:

  1. 什么时候加?
  1. 什么时候删?

当你发现某条 Rule 持续把任务带偏(比如只是问 UI 问题却经常被引导去输出一整套文档结构、或者频繁强调不相关的流程),就要优先怀疑这条规则已经变成“噪音源”。

  1. 什么时候改?
提示

一个实用技巧如果你在加规则时担心——“为了不被这条规则打扰,有些任务我都不敢用”——那它不应该放在 Always 里。把它降级到智能生效或手动触发,让它“该出现时出现”,才不会反噬整体体验。

04 多 Rules 实践:从0到1快速上手

前面我们介绍了 Rule 配置的方法论,这一节我们结合具体示例讲讲如何落地。

快速启动

如果你的项目中还没有配置任何 Rule,推荐先配置 3 条最小版本的可用规则,覆盖常见诉求

  1. 项目介绍与协作约定(始终生效)

这条规则只负责提供“项目级上下文信息”:项目做什么、关键目录在哪里、怎么本地运行、改动后的基本验证方式。它的目标是让模型不需要每次都重新问一遍项目背景,并且减少“改错地方/跑不起来/漏验证”的概率。

YAML
---
alwaysApply: true
---

项目概览

项目做什么

- {{一句话描述:产品/服务的核心功能}}

技术栈与关键约定

- 前端:{{React/Vue/Next.js...}};后端:{{Go/Node/...}};包管理:{{pnpm/yarn/...}} - 代码规范/工具:{{eslint/prettier/gofmt/...}}

目录速览

- apps/web/**:{{前端应用入口}} - apps/api/**:{{后端服务入口}} - packages/**:{{共享库/组件库}} - docs/**:{{文档/规范}}

本地开发与调试

- 安装:{{pnpm i / go mod tidy ...}} - 启动:{{pnpm dev / make dev / docker compose up ...}} - 常用脚本:{{lint/test/build}}

改动要求

- 修改前:确认影响范围(涉及哪些模块/接口/页面) - 修改后:至少完成 {{基本验证项:lint/test/关键页面回归/接口联调}} 中的 {{N}} 项 - 输出代码时:优先给出“最小 diff + 验证步骤”,避免大段背景说明
  1. 技术栈隔离(指定文件生效)

给前端项目指定开发约束,确保前端任务符合统一规范。

YAML
---
alwaysApply: false
globs: apps/web/**,**/*.tsx
---

React 开发约束

- 组件拆分与命名:... - hooks 约定:... - 状态/请求/错误处理:... - UI 边界处理:空态/loading/超长/错误态
  1. 高风险流程(手动生效)

给常用的工作流配置要求,默认不生效,仅可手动指定

YAML
---
alwaysApply: false
---

发布/回滚清单

发布步骤: - ... 验证清单: - ... 回滚条件与步骤: - ...

指定文件生效常用写法

指定文件生效模式是减少 Rule 冲突最直接的手段。

常用的 Globs 模式:

实际落地时,不一定要追求极致精准,可以先用目录圈住范围,再补充文件类型。如果生效范围还是太大,再考虑复杂的 Globs 匹配方式。

智能生效触发词

智能生效 Rule 的描述,建议写具体的“高信号词”,避免写大而空的“泛词”

泛词看似覆盖范围大,实际可能导致规则在大量无关对话中出现,增加噪音。

实践效果对比

假如你已经正确合理的配置了 Rule,配置前后会有哪些变化?

  1. Case 1:排查类问题——从“发散建议”到“按清单执行”

场景:页面布局错乱,按钮点不到了

没有 Rule 时

  • AI 回答发散:从 CSS 到 React 到浏览器兼容性,什么都说
  • 缺少排查顺序和信息采集
  • 你要手动追问:先做什么再做什么

配置 Rule 之后

  • AI 根据智能生效 Rule,按照排查清单执行,采集关键信息(环境、相关代码、控制台报错
  • 给出排查路径:定位范围 -> 验证假设 -> 给修复方案
  • 按照规则自行验证 + 回归
  1. Case 2:发布/回滚——从“容易漏项”变成“默认不漏的清单”

场景:准备发版,让 AI 进行步骤流程检查

没有 Rule 时

  • AI 给一套看似完整的流程,但和实际团队规范不符
  • 容易遗漏关键点,每次回答内容不稳定

配置 Rule 之后

  • 按照约定的发布流程清单,逐一检查

如果你不确定怎么开始,可以按照以下顺序:

提示

规则不是一次写完的,而是像工程配置一样,边用边迭代。

05 个人 Rules 管理

Project Rules 解决的是“团队/项目的一致性”。但每个人还有一些个人偏好:表达方式、解释粒度、默认行为习惯等,更适合放在 User Rules,避免把个人习惯塞进项目规则里造成干扰。

支持输入框编辑

过去编辑 User Rule 需要打开编辑器,更像在做工程配置;现在我们支持多条 User Rule,并在规则面板里以一条条并列输入框呈现,直接编辑、增删、调整都更顺手。

图片展示了TRAE界面中“个人规则”和“项目规则”的设置区域。上方是“个人规则”,说明创建及管理用户自定义规则,TRAE会在此过程中遵循这些规则,有“了解更多”链接,下方有“+ 创建”按钮。下方是“项目规则”,说明创建专用于此项目的规则,也有“了解更多”链接,同样下方有“+ 创建”按钮。该图片与上下文紧密相关,直观呈现了文档中介绍的TRAE规则设置功能,帮助用户了解如何在TRAE中创建个人和项目规则。
img-231 · 图片展示了TRAE界面中“个人规则”和“项目规则”的设置区域。上方是“个人规则”,说明创建及管理用户自定义规则,TRAE

User Rule 更强调“随手可改、一眼可见、好维护”。

写什么最合适

建议只放三类“个人层”的内容:

  1. 输出与沟通偏好
  1. 默认行为偏好
  1. 个人工作习惯(可选)

User Rule 尽量写个人偏好,不要覆盖团队约定。

06 擅用 AGENTS.md 与 CLAUDE.md

很多团队已经在使用社区规范 AGENTS.md;也有不少人已经在使用 CLAUDE.md核心价值很简单:

图片展示了TRAE平台中规则页面的设置界面。上方有“导入设置”标题,下方有两个开关选项,分别是“将 AGENTS.md 包含在上下文中”和“将 CLAUDE.md 包含在上下文中”,前者开关处于开启状态,后者开关处于关闭状态。下方有多个规则内容区域,部分区域被模糊处理。该图片与上下文紧密相关,上下文介绍了TRAE平台的规则管理,此图直观呈现了平台规则导入设置的具体界面及状态。
img-232 · 图片展示了TRAE平台中规则页面的设置界面。上方有“导入设置”标题,下方有两个开关选项,分别是“将 AGENTS.md

07 总结:把规则写成“能维护的资产”

提示
  • 多规则不是为了写更多,而是为了把边界写清楚。
  • 让规则该出现时出现:范围隔离冲突,时机控制噪音。
  • 把规则当成工程资产:短、准、可维护,才能长期让 AI 更听话。

提示

本文分享的多规则管理能力暂时仅在 TRAE 国际版支持,中国版敬请期待。

你还有哪些好用的 Rule 使用技巧?希望 TRAE 未来支持哪些 Rule 相关能力?欢迎在评论区留言和我们交流!