如果你装了 Roo Code,却只是开着默认的 Code 模式,让它一句一句帮你改代码——那你大概只用了它 10% 的功力。Roo Code 是开源 AI 编码智能体 Cline 的主流分支(前身叫 Roo Cline),它真正的杀手锏不是"对话",而是一整套模式(Mode)、规则(Rules)、斜杠命令(Slash Command)的可编排系统。这套东西官方文档写得明明白白,但 90% 的中文用户压根没碰过。本文把这周从官方文档里挖出的八道"暗门"全给你拆开,每一道都能直接复制配置、立刻生效。
很多人被"Claude Code 要订阅、Cursor 要 $20/月"吓退。Roo Code 的定位完全不同——它是 VS Code 扩展、开源、BYOK(Bring Your Own Key)。你填自己的 API Key(OpenAI、Anthropic、GLM、DeepSeek、本地 Ollama 都行),工具本身不收一分钱。所以下面所有"省钱"的暗门,省的是你的 token 账单,不是订阅费。这本身就是一道很多人不知道的价格差。
这是 Roo Code 最被低估的功能。你可以创建一个"模式",并规定它只能读写哪类文件,甚至只能读、不能写。
应用场景:你想让 AI 改文档,但怕它手滑去动你的核心代码。建一个 docs-writer 模式,锁死只能碰 .md 文件。配置长这样(官方首选 YAML 格式,写在 .roomodes 文件里):
customModes:
- slug: docs-writer
name: 📝 文档写手
description: 只能编辑 Markdown 文档
roleDefinition: 你是一名技术文档写手,专注清晰表达。
whenToUse: 用于编写和编辑文档。
customInstructions: 保持文档简洁、完整。
groups:
- read
- - edit # 这是个"元组",第一个元素是 edit
- fileRegex: \.(md|mdx)$ # 第二个元素是限制对象:只允许 .md/.mdx
description: 仅限 Markdown 文件
关键点在 groups 里 edit 后面那个 fileRegex 正则。你可以写得很狠,比如只让它动 src/ 下的 JS/TS、并排除测试文件:^(?!.*(test|spec))\.(js|ts)$。当 AI 试图越权编辑一个不匹配的文件,Roo Code 会直接抛出 FileRestrictionError,把它拦下来——这就是给 AI 套上护栏,而不是靠它"自觉"。
更进一步:建一个 只读的 Security Review 模式(groups: [read]),让 AI 审代码但物理上无法改动。把不可逆操作交给一个受锁的模式,比反复在聊天里喊"别动生产代码"靠谱得多。
同一个项目里,你其实想要不同的活儿用不同的脑子:规划架构时用推理模型(贵但想得深),写代码时用快速模型(便宜、吞吐高)。Roo Code 的 Sticky Models 就是干这个的——它会记住"某个模式上次用的是哪个模型",切到该模式自动切模型,无需手动选。
实战配法:
效果:规划质量拉满,但执行阶段的大头 token 走便宜模型。一次中等项目的账单能砍掉一大截。注意这是免费的——Sticky Models 是模式自带的属性,连自定义模式都支持。
Roo Code 内置了一个 🪃 Orchestrator(编排者)模式。它不亲自干活,而是把任务拆给子模式,每个子任务开在自己独立的上下文窗口里。
官方 Tips 里有一条被很多人忽略的黄金操作:调试时不要让 AI 在主任务里乱翻,而是让它——
在 Debug 模式下"开一个新任务,带上排查 X 所需的全部上下文"
为什么重要?主对话的上下文是稀缺资源。让 AI 在主线程里反复读日志、读堆栈,很快就把 context 塞爆,触发"input length exceed context limit"的 dreaded 错误。把脏活丢进子任务的独立上下文,主线保持干净,子任务干完只把结论带回来。配合 whenToUse 字段(写在模式的 YAML 里),Orchestrator 还能自动判断该把活派给哪个子模式。
下面这张图说清了"一次复杂任务"在这套机制下怎么流转:
flowchart TD
A[用户提需求] --> B{🪃 Orchestrator 编排}
B -->|规划| C[🏗️ Architect 模式<br/>挂推理模型]
B -->|执行| D[💻 Code 模式<br/>挂便宜快模型<br/>fileRegex 锁 src]
B -->|排查| E[🪲 Debug 子任务<br/>独立上下文窗口]
B -->|审阅| F[🔒 Review 模式<br/>只读 groups: read]
C --> G{主线汇总结论}
D --> G
E -->|仅回传结论| G
F --> G
G --> H[主线上下文保持干净]
style H fill:#d4edda,stroke:#28a745
style E fill:#fff3cd,stroke:#ffc107
customInstructions 写在 YAML 里一旦变长就难维护。Roo Code 的进阶玩法是把规则拆成多个文件放进目录:
.roo/
└── rules-docs-writer/ # 对应 slug 为 docs-writer 的模式
├── 01-style-guide.md
└── 02-formatting.txt
几个关键机制:
.roo/rules-docs-writer/ 存在且非空,根目录的 .roorules-docs-writer 单文件会被忽略;01-、02- 前缀控制加载顺序;还有个全局版本:.roo/rules/(不带 slug)是所有模式共享的通用规则。优先级链是:项目 .roomodes > 全局 custom_modes.yaml > 默认模式,且同名 slug 项目级完全覆盖全局级(不是合并,是覆盖,这点要当心)。
顺带一提,Cline 用户也吃这套——.clinerules-{slug} 是它的旧版兼容路径,Roo Code 仍会作为 fallback 检查。所以你在 Cline 里攒的规则,迁过来基本能直接用。
.md在聊天框输入 / 会弹出命令菜单。神奇的是:任何一个 .md 文件丢进 .roo/commands/,文件名就成了命令名。review.md → /review,deploy-check.md → /deploy-check。
更狠的是 frontmatter,能给命令加元数据:
---
description: 生成一个符合最佳实践的 REST API 端点
argument-hint: <endpoint-name> <http-method>
mode: architect
---
为以下规格创建 REST API 端点:
- 规范的错误处理
- 输入校验、鉴权中间件
- OpenAPI 文档 + 单测 + 集成测试
遵循本项目的 API 约定。
这里的 mode: architect 意味着——执行命令前 Roo Code 会先切到 Architect 模式,用它的角色定义和工具限制来跑这段提示词。argument-hint 则在命令菜单里给出一行灰色提示,告诉你该传什么参数。
还有个内置大杀器 /init:它会扫描整个代码库(多阶段分析:发现→识别项目类型→架构映射→构建/测试检测→代码风格提取),然后自动在 .roo/rules-* 目录里生成模式专属的 AGENTS.md 规则文件,遵循"只写非显而易见信息"的原则,还能同时输出 Claude / Cursor / Copilot 多种格式。新项目接手第一件事,跑一遍 /init,省你几小时。
项目级命令(.roo/commands/)会覆盖同名全局命令(~/.roo/commands/),把团队的标准化流程锁进仓库即可。
这是三合一的省 token / 护 context组合拳,官方 Tips 原话拆给你看:
这三招叠起来,长会话既不容易爆 context,账单也更可控。
Roo Code 的 Modes 视图里有导入/导出按钮。点导出,它会把一个模式连同 .roo/rules-{slug}/ 下的所有规则文件打包成一个可移植的 YAML 文件;导入时一键还原,改个 slug 还能自动更新规则文件路径。这意味着:你打磨好的一套"安全审阅模式",可以丢给全团队、甚至做成项目模板。
不想自己写?打开 Roo Code Marketplace(扩展顶部菜单的市场图标),一键安装别人做好的 MCP 和 Mode(React 组件模式、文档写手模式、测试模式等),可选项目级(写入 .roomodes / .roo/mcp.json)或全局级(写入 custom_modes.yaml)。
最后一个隐藏骚操作——官方原话:"如果你看到一份真实的招聘 JD 描述了某个你想要的活儿,试试让 Code 模式:基于这份招聘帖创建一个自定义模式 @[url]"。把招聘 JD 当 prompt 喂进去,Roo Code 会按 JD 的职责描述生成一个对应角色的模式。懒得写 roleDefinition?抄一份 JD 就行。
收尾三招工程效率:
roo.acceptInput 快捷键:在 VS Code 快捷键设置里绑定这个命令,键盘流提交输入,告别鼠标。外加一个进阶项:File read auto-truncate threshold(高级设置里)控制一次批量读文件的行数,调低可改善超大文件的读取性能(代价是多读几次)——处理巨型日志或数据集时很顶用。
| 维度 | 你以为的 Roo Code | 别人正在用的 Roo Code |
|---|---|---|
| 模式 | 只是 Code/Ask 切换 | 自定义模式 + fileRegex 文件锁,给 AI 套护栏 |
| 模型 | 全程一个模型 | Sticky Models,规划挂推理、执行挂便宜模型 |
| 调试 | 主线程里乱翻日志 | Orchestrator 派子任务,独立上下文不污染主线 |
| 规则 | 写在 customInstructions 里挤一团 | .roo/rules-{slug}/ 多文件、进 Git、团队共享 |
| 流程 | 每次手打长提示词 | .roo/commands/*.md 斜杠命令 + frontmatter 自动切模式 |
| 成本 | 每次都交全额 token | 关无用 MCP + Code 模式限 16k + 改压缩提示词 |
| 上手 | 从零写 roleDefinition | Marketplace 一键装 / /init 自动生成 / JD 秒变模式 |
| 价格 | 以为要订阅 | 工具免费开源、BYOK,省的是自己的 API 账单 |
/init:让它在你的项目里自动生成 .roo/rules-* 规则文件。groups: [read]),一个带 fileRegex 锁的"文档写手"(只许碰 .md)。.roo/commands/xxx.md,加 mode: frontmatter。做完这七步,你的 Roo Code 就从"聊天框"升级成了"可编排的智能体工作台"。
本文由「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 等场景全覆盖。
