Windsurf Rules 规则配置教程:四种触发模式示例封面图
AI 编程约 8 分钟

Windsurf Rules 规则配置教程:四种触发模式示例

AI 指南··◉ 0 浏览

Windsurf Rules 的配置可以拆成四步:确认规则目录、在 Customizations 面板新建、用 frontmatter 选触发模式、然后验证是否生效。整套流程免费版也能用,唯一容易踩坑的是改名后规则目录变成了 .devin/rules,旧的 .windsurf/rules 只作为兼容保留。

Windsurf Rules 配置入口,Cascade 的 Customizations 面板与 Rules 列表

前置准备:规则到底存在哪个目录

官方文档(现在挂在 Devin 文档站下,Windsurf 插件仍保留入口)给出了四个作用域,先把它们分清楚,后面才不会出现「写了规则但不生效」:

  1. 全局规则在 ~/.codeium/windsurf/memories/global_rules.md,单文件、对所有工作区生效、始终打开,上限 6000 字符。
  2. 工作区规则在 .devin/rules/*.md(首选)或 .windsurf/rules/*.md(兼容),一个规则一个文件、各自带触发模式,单文件上限 12000 字符;工作区根目录的旧版单文件 .windsurfrules 仍会被读取。
  3. AGENTS.md 可以放在任意目录,由同一套规则引擎处理:根目录等于始终打开,子目录则自动按该目录做 glob。
  4. 企业系统级规则放在 OS 对应位置(例如 /etc/devin/rules/,旧路径 /etc/windsurf/rules/),由 IT 部署,终端用户只读。

规则发现逻辑也值得留意:它会在当前工作区及其子目录查找,git 仓库会一直向上找到 git 根目录;如果同一个工作区开了多个文件夹,规则会去重并按最短相对路径展示。另外,你新建的规则会保存到当前工作区的 .devin/rules,不一定是 git 根目录。

第一步:在 Customizations 面板新建规则

入口在 Cascade 右上角滑出菜单里的 Customizations 图标,也可以走右下角的 Devin Settings。

进入 Rules 面板后,顶部会看到 + Global 和 + Workspace 两个按钮:

  1. 点 + Global 新建全局规则,内容写进 global_rules.md,对你所有项目生效。
  2. 点 + Workspace 新建工作区规则,文件落在当前工作区的 .devin/rules,可以跟着仓库提交给团队。

选择原则很简单:要团队共享、需要版本追溯的,一定放工作区;只是个人习惯、不想进仓库的,才放全局。

第二步:用 trigger 选四种激活模式

每个工作区规则都在 frontmatter 里用 trigger 字段声明激活方式,它决定了规则什么时候进上下文、占多少上下文:

模式 trigger 取值 怎么送到 Cascade 上下文成本
Always On always_on 每条消息都把完整规则内容放进系统提示 每条消息都占
Model Decision model_decision 系统提示里只放 description,Cascade 判断相关时再读全文 描述常驻,正文按需
Glob glob Cascade 读写命中 globs 模式的文件时应用 只在命中文件时占
Manual manual 不进系统提示,靠你在输入框输入 @rule-name 激活 只在被 @ 时占

注意两个例外:全局规则文件和根级 AGENTS.md 不使用 frontmatter,它们天然是始终打开。

Windsurf Rules 四种触发模式的上下文成本对照图

一条工作区规则的写法示例:

---
trigger: glob
globs: **/*.test.ts
---

All test files must use `describe`/`it` blocks and mock external API calls.

第三步:写规则正文的四条硬规矩

规则能不能被稳定遵守,多半取决于正文写法:

  1. 一条规则只讲一件事,写具体约定而不是风格口号,官方建议保持简单、简短、具体。
  2. 控制长度:工作区规则单文件上限 12000 字符,全局规则文件上限 6000 字符,超了就要拆文件。
  3. 想清楚放哪一层:需要团队共享、要能版本追溯的写进仓库的 .devin/rules 并提交;只对自己有效的放全局。
  4. 别把自动记忆当规则用:Cascade 自动生成的 Memories 只存在本机、不提交、不跨工作区共享,要可靠复用就写成 Rule 或放进 AGENTS.md。

Windsurf Rules frontmatter 写法示例示意图,演示 trigger 与 globs 字段

第四步:验证规则有没有生效

官方没有提供「规则生效指示器」,所以用观察法验证更实际:先建一条 always_on 规则,正文写一条容易观察的约束(例如注释统一用中文),然后让 Cascade 改一个文件,看它是否遵守。

如果规则放在仓库目录,别忘记提交,否则同事拉下来根本看不到这条规则。

官方还提供了一个按场景分类的规则模板库,地址是 windsurf.com/editor/directory,可以直接挑现成的改。

规则不生效时怎么排查

现象 可能原因 处理
规则完全没反应 文件放错目录,或扩展名不是 .md 放到 .devin/rules 或 .windsurf/rules,扩展名用 .md
有时生效有时不生效 触发模式是 model_decision,由 Cascade 自行判断 改成 always_on 或 glob
规则像被截断 超过字符上限(工作区 12000、全局 6000) 拆成多个文件或精简正文
手动模式的规则从不自动生效 触发模式是 manual 在输入框用 @rule-name 显式激活
同事说没有这条规则 规则写在你的全局目录里 移到仓库的 .devin/rules 并提交

常见问题

Windsurf Rules 免费版能用吗?

答:能用。Rules 属于编辑器侧的上下文配置能力,不属于必须付费的模型额度,Free 计划同样可以新建全局与工作区规则。

现在该用 .devin/rules 还是 .windsurf/rules?

答:新项目用 `.devin/rules`,它是官方首选且优先级更高;`.windsurf/rules` 保留为向后兼容,老仓库可以继续用,不必急着迁移。

Rules 和 AGENTS.md 有什么区别?

答:两者由同一套规则引擎处理。AGENTS.md 免 frontmatter、根目录自动始终打开;Rules 则可以用 trigger 精细控制激活时机和上下文成本。

为什么我的 Rules 会消耗上下文?

答:取决于触发模式。`always_on` 每条消息都带完整内容,最占上下文;`glob` 只在命中文件时加载;`manual` 只有被 @ 时才加载。内容多时优先用后两种。

自动生成的 Memories 能替代 Rules 吗?

答:不适合。自动 Memories 只存在本机、不提交、不跨工作区共享,官方也建议把需要可靠复用的知识写成 Rule 或放进 AGENTS.md。

规则写多长比较合适?

答:官方建议简单、简短、具体。硬上限是工作区单文件 12000 字符、全局文件 6000 字符;接近上限时应该按主题拆成多条规则。

评论 (0)

?
0/1

还没有评论,来发第一条吧

网站上的服务均为第三方提供,
请用户注意自行甄别。

北京酷讯互动科技有限公司

备案京ICP备2024094994号-29

© 2026 AI345 · All Rights Reserved

用户服务协议·隐私政策