国内用Windsurf的人不少,但绝大多数人只把它当“带AI的VS Code”用:Tab补全、偶尔问两句Cascade,完事。我这两天把Windsurf官方文档(docs.windsurf.com)翻了一遍,发现它其实内置了4套独立的自定义系统——Rules、Workflows、Skills、Memories——每一套都有独立的存储位置、独立的触发机制、独立的作用域。这套体系的精细程度,说实话超过Cursor和Claude Code。更关键的是:这4套系统的玩法在英文社区已经讨论了半年,国内却几乎没人系统讲过。这篇文章带你把Windsurf从“补全工具”升级成“可编程的开发代理”。以下所有细节均来自官方文档实抓,文末附链接。
Windsurf的Cascade(它的Agent)可以被4种机制定制,官方文档给了一张决策表,我翻译整理如下:
| 机制 | 干什么用 | 怎么触发 | 典型场景 |
|---|---|---|---|
| Rules | 告诉Cascade"该怎么做事"(比如“用bun别用npm") | always_on / glob / model_decision / manual 四种模式 | 编码规范、风格约束、项目限制 |
| AGENTS.md | 零配置的目录级规则 | 自动——根目录=always on,子目录=自动glob | 按目录生效的约定 |
| Workflows | 可重复多步任务的提示词模板 | 只能手动,用 /workflow名 触发 |
部署、PR审查、发版清单 |
| Skills | 多步骤流程+配套文件(脚本、模板) | 模型自主决定调用,或 @提及 |
需要参考文件的复杂任务 |
| Memories | Cascade对话中自动生成的上下文 | 相关时自动检索 | 一次性事实,让Agent自己记 |
看不懂没关系,下面一个一个拆。
这是我认为Windsurf最被低估的功能。多数人在 .windsurf/rules/ 里写个规则文件就完事了,默认它永远注入上下文——烧context还烧钱。实际上每个规则文件可以在frontmatter里声明 trigger 字段,控制它何时进入模型视野:
---
trigger: glob
globs: **/*.test.ts
---
所有测试文件必须用 describe/it 结构,外部API调用必须mock。
四种模式的代价差异巨大:
always_on:完整内容每条消息都注入system prompt。成本最高。model_decision:system prompt里只放 description 一句话,Cascade判断相关时才去读全文。description永远在,正文按需加载。glob:只有Cascade碰到匹配 globs 模式的文件(如 src/**/*.ts)时才生效。测试规范、lint约束放这里,零浪费。manual:完全不进system prompt,你在输入框打 @规则名 才激活。一个实战建议:把全局编码规范设为 always_on(全局规则文件限6000字符),把前端/后端/测试各自的细分规范拆成多个 glob 规则。有人项目规则写了上万字全部always on,每轮对话白白吃掉大量token——拆成glob后只有碰到对应文件才加载。工作区规则单文件上限12000字符,这个数字官方文档写得很明确。
还有个隐藏细节:规则发现机制会向上追溯到git根目录。也就是说monorepo里你可以在子目录放 .windsurf/rules/,进入子目录工作时自动生效,不用复制粘贴到每个子项目。
Workflows的思路很简单但 execution 很妙:一个markdown文件,定义一系列步骤,保存到 .windsurf/workflows/ 目录,然后任何对话里输入 /workflow名 就按顺序执行。
存储位置有两个作用域:
.windsurf/workflows/*.md,随仓库提交,全团队共享~/.codeium/windsurf/global_workflows/*.md,你机器上所有项目可用最实用的一个隐藏玩法,官方文档明说了:你可以直接让Cascade帮你生成Workflow。对着一套CLI工具的操作流程说“把这个过程做成workflow”,它就写好markdown存进目录。特别适合那种“每次发版要敲8条命令、顺序还不能错”的场景。
优先级规则也值得知道:同名workflow,系统级(企业IT部署)> 工作区 > 全局 > 内置。内置的 /plan 就是官方预置的workflow模板——如果你还没用过 /plan,这是最容易上手的一个。
Skills是这套体系里最新的概念,而且Windsurf的文档明确建议“invest here"(值得投入)。它和Workflows的本质区别是:Skill是一个文件夹,里面除了 SKILL.md 主文件,还可以塞脚本、模板、清单等任意支持文件:
.windsurf/skills/deploy-to-production/
├── SKILL.md
├── deployment-checklist.md
├── rollback-procedure.md
└── config-template.yaml
关键机制叫 progressive disclosure(渐进披露):默认情况下模型只能看到skill的 name 和 description 两行字。只有当Cascade判断当前任务匹配这个skill、或者你手动 @skill-name 提及时,完整的SKILL.md和支持文件才会被加载。这意味着你可以往项目里塞几十个skill而不撑爆上下文——这个设计比“把所有规范一次性塞进system prompt”聪明得多。
另一个值得注意的点:Skills规范托管在 agentskills.io,是一个开放规范。这意味着你写的skill理论上可以被其他遵循该规范的Agent工具复用,不锁死在Windsurf里。
全局skill放 ~/.codeium/windsurf/skills/,所有项目共享;企业版甚至支持 /etc/windsurf/skills/ 系统级部署(Linux),IT统一下发、终端用户只读。
Memories是唯一一套“自动”机制。对话中Cascade遇到它认为值得记住的上下文,会自动生成memory存到本地 ~/.codeium/windsurf/memories/,下次相关时自动检索。你也可以主动说"create a memory of…"强制它记。
两个官方明确的限制要注意:
所以官方的最佳实践建议很直白:一次性的事实让Memories自动记,长期有价值的知识(规范、约束)写成Rules或AGENTS.md,随仓库走、全团队共享。
四个系统选哪个,一张图讲清楚:
flowchart TD
A[想让Cascade记住/遵守某件事] --> B{是什么类型的内容?}
B -->|行为约束 如代码风格| C{需要一直生效吗?}
C -->|是| D[Rules: always_on]
C -->|只在特定文件类型生效| E[Rules: glob 触发]
C -->|很少用 手动控制| F[Rules: manual 用@规则名唤起]
B -->|目录相关的约定| G[AGENTS.md 零配置]
B -->|固定多步流程 如发版| H{需要附带脚本/模板文件吗?}
H -->|不需要| I[Workflow: /斜杠命令手动触发]
H -->|需要| J[Skill: 文件夹 + SKILL.md]
B -->|一次性事实| K[Memories: 自动生成自动检索]
D & E & F --> L[写入 .windsurf/rules/]
G --> M[放到对应目录的 AGENTS.md]
I --> N[写入 .windsurf/workflows/]
J --> O[创建 .windsurf/skills/目录]
K --> P[无需配置 存于本地 ~/.codeium]
对比国内常用方案:Trae、通义灵码、CodeBuddy等目前大多只有“项目规则”一个层级,所有约束一股脑进上下文。Windsurf这套四层体系+按需加载的架构,本质上是在解决Agent工程里最贵的资源——上下文窗口的分配问题。
即使你不用Windsurf,这套思路也直接可抄:
model_decision 的思路用CLAUDE.md拆分模拟——主文件只放索引和description,详细规范拆成子文件让Claude按需Read另外顺带一个本周消息:Windsurf官方博客5月12日宣布Claude Opus 4.7 fast mode已上线Windsurf,输出速度约2.5倍——订阅用户在模型选择里直接切换即可。顺便说一句背景:Windsurf现在是Cognition AI(就是做Devin那家)旗下的产品,官网页脚版权信息已更新为Cognition AI, Inc.,所以它的迭代速度近期明显加快,这套Skills/Workflows体系就是被收购后快速补齐的。
| 你以为的 | 实际上 |
|---|---|
| Windsurf就是个Tab补全工具 | 它有4套独立自定义系统,精细度超过多数同类 |
| 规则只能一直生效 | 4种trigger模式,glob/manual可为每种文件类型零成本定制 |
| 部署流程要手敲命令 | 写个Workflow,/一条命令 全自动跑 |
| 复杂任务只能靠长提示词 | Skill文件夹+渐进披露,塞几十个skill不撑爆上下文 |
| Agent记不住事是模型问题 | Memories自动记忆,但长期知识应该进Rules随git走 |
.windsurf/rules/ 目录,把你现在每次都要重复告诉AI的约束写成glob规则/一条命令 搞定docs.windsurf.com/llms.txt——这是官方给AI看的功能索引,一条链接看完它全部能力清单本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护。 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
