<!-- title: 别把Roo Code当聊天框：八道暗门 -->
<!-- domain: tips-tricks -->

# 别把Roo Code当聊天框：八道暗门

如果你装了 Roo Code，却只是开着默认的 Code 模式，让它一句一句帮你改代码——那你大概只用了它 10% 的功力。Roo Code 是开源 AI 编码智能体 Cline 的主流分支（前身叫 Roo Cline），它真正的杀手锏不是"对话"，而是一整套**模式（Mode）、规则（Rules）、斜杠命令（Slash Command）**的可编排系统。这套东西官方文档写得明明白白，但 90% 的中文用户压根没碰过。本文把这周从官方文档里挖出的八道"暗门"全给你拆开，每一道都能直接复制配置、立刻生效。

## 先搞清一件事：Roo Code 本身是免费的

很多人被"Claude Code 要订阅、Cursor 要 $20/月"吓退。Roo Code 的定位完全不同——它是 **VS Code 扩展、开源、BYOK（Bring Your Own Key）**。你填自己的 API Key（OpenAI、Anthropic、GLM、DeepSeek、本地 Ollama 都行），工具本身不收一分钱。所以下面所有"省钱"的暗门，省的是你的 **token 账单**，不是订阅费。这本身就是一道很多人不知道的价格差。

---

## 暗门一：自定义模式 + fileRegex 文件锁

这是 Roo Code 最被低估的功能。你可以创建一个"模式"，并规定它**只能读写哪类文件**，甚至只能读、不能写。

应用场景：你想让 AI 改文档，但怕它手滑去动你的核心代码。建一个 `docs-writer` 模式，锁死只能碰 `.md` 文件。配置长这样（官方首选 YAML 格式，写在 `.roomodes` 文件里）：

```yaml
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 审代码但物理上无法改动。把不可逆操作交给一个受锁的模式，比反复在聊天里喊"别动生产代码"靠谱得多。

---

## 暗门二：Sticky Models——每个模式独立挂一个模型

同一个项目里，你其实想要**不同的活儿用不同的脑子**：规划架构时用推理模型（贵但想得深），写代码时用快速模型（便宜、吞吐高）。Roo Code 的 **Sticky Models** 就是干这个的——它会记住"某个模式上次用的是哪个模型"，切到该模式自动切模型，无需手动选。

实战配法：

- **🏗️ Architect 模式**（规划）→ 挂 GLM-4.6 / Claude Opus / o 系列推理模型，开高 Max Thinking；
- **💻 Code 模式**（执行）→ 挂 DeepSeek-V3 / GLM-Air / Haiku 这类便宜快速的模型，把思考额度压低。

效果：规划质量拉满，但执行阶段的大头 token 走便宜模型。一次中等项目的账单能砍掉一大截。注意这是免费的——Sticky Models 是模式自带的属性，连自定义模式都支持。

---

## 暗门三：Orchestrator + new_task，上下文隔离术

Roo Code 内置了一个 🪃 **Orchestrator（编排者）模式**。它不亲自干活，而是把任务拆给子模式，每个子任务**开在自己独立的上下文窗口里**。

官方 Tips 里有一条被很多人忽略的黄金操作：调试时不要让 AI 在主任务里乱翻，而是让它——

> 在 Debug 模式下"开一个新任务，带上排查 X 所需的全部上下文"

为什么重要？**主对话的上下文是稀缺资源**。让 AI 在主线程里反复读日志、读堆栈，很快就把 context 塞爆，触发"input length exceed context limit"的 dreaded 错误。把脏活丢进子任务的独立上下文，主线保持干净，子任务干完只把结论带回来。配合 `whenToUse` 字段（写在模式的 YAML 里），Orchestrator 还能自动判断该把活派给哪个子模式。

下面这张图说清了"一次复杂任务"在这套机制下怎么流转：

```mermaid
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
```

---

## 暗门四：.roo/rules-{slug}/ 多文件规则目录

`customInstructions` 写在 YAML 里一旦变长就难维护。Roo Code 的进阶玩法是把规则**拆成多个文件**放进目录：

```
.roo/
└── rules-docs-writer/        # 对应 slug 为 docs-writer 的模式
    ├── 01-style-guide.md
    └── 02-formatting.txt
```

几个关键机制：

1. **目录优先于单文件**：若 `.roo/rules-docs-writer/` 存在且非空，根目录的 `.roorules-docs-writer` 单文件会被忽略；
2. **按文件名字母序递归合并**，所以用 `01-`、`02-` 前缀控制加载顺序；
3. **可纳入 Git 版本控制**，团队共享、code review 规则变更；
4. **非技术成员也能改规则**——PM 改个 Markdown 文件就行，不用动 YAML。

还有个全局版本：`.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，能给命令加元数据：

```markdown
---
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/`），把团队的标准化流程锁进仓库即可。

---

## 暗门六：关 MCP + 调 Max Tokens + 改压缩提示词

这是三合一的**省 token / 护 context**组合拳，官方 Tips 原话拆给你看：

1. **不用 MCP 就关掉它**。每个启用的 MCP server 都会往系统提示词里塞工具定义。在 MCP Servers 标签里把不用的关掉，"能显著减小系统提示词体积"——系统提示词是每次请求都重发的，省下来的是真金白银。
2. **给思考模型控 Max Tokens**。推理模型你给的思考额度越高，留给对话历史的窗口就越小。官方建议：只在 Architect / Debug 模式开高 Max Thinking；**Code 模式保持在 16k max tokens 或更低**。
3. **自定义上下文压缩提示词（context reduction prompt）**。当对话超长触发自动压缩，默认提示词可能把对你领域关键的细节一起压没了。你可以改这段提示词，明确指示它**保留某类关键信息**（比如保留所有 API 契约、保留错误堆栈）。

这三招叠起来，长会话既不容易爆 context，账单也更可控。

---

## 暗门七：一键导入导出 + Marketplace + 招聘 JD 秒变模式

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 就行。

---

## 暗门八：Checkpoints 回滚 + Shift 拖文件 + 快捷键

收尾三招工程效率：

- **Checkpoints 回滚**：当你撞上"context 超限"错误，别慌——可以删除一条消息、**回滚到上一个 checkpoint**，或临时切到一个长上下文模型（如 Gemini）发一条消息来恢复。
- **Shift + 拖拽多文件**：把 Roo Code 面板拖到 VS Code 的副侧栏（和文件资源管理器分开），然后**按住 Shift**，就能从资源管理器一次拖多个文件进聊天框。
- **`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 账单 |

## 行动指南（今晚就能做）

1. **装扩展**：VS Code 扩展搜 "Roo Code" 安装，填你自己的 API Key（GLM / DeepSeek / OpenAI 任选）。
2. **跑 `/init`**：让它在你的项目里自动生成 `.roo/rules-*` 规则文件。
3. **建两个自定义模式**：一个只读的"安全审阅"（`groups: [read]`），一个带 fileRegex 锁的"文档写手"（只许碰 `.md`）。
4. **配 Sticky Models**：Architect 挂推理模型、Code 挂便宜快模型。
5. **关掉不用的 MCP**，把 Code 模式的 Max Tokens 压到 16k 以下。
6. **把一条你重复用的提示词**封成 `.roo/commands/xxx.md`，加 `mode:` frontmatter。
7. **逛一眼 Marketplace**，挑一个别人做好的 Mode 装上体验。

做完这七步，你的 Roo Code 就从"聊天框"升级成了"可编排的智能体工作台"。

## 参考来源

- [Roo Code 官方文档 · Customizing Modes（自定义模式 + fileRegex）](https://roocodeinc.github.io/Roo-Code/features/custom-modes/)
- [Roo Code 官方文档 · Tips & Tricks（关 MCP、Max Tokens、压缩提示词、Shift 拖文件等）](https://roocodeinc.github.io/Roo-Code/tips-and-tricks/)
- [Roo Code 官方文档 · Slash Commands（斜杠命令 + /init）](https://roocodeinc.github.io/Roo-Code/features/slash-commands/)
- [Roo Code 官方文档 · Marketplace（一键安装 MCP 与 Mode）](https://roocodeinc.github.io/Roo-Code/features/marketplace/)
- [GitHub · Cline-Prompts-Tips-and-Tricks（Cline/Roo 通用提示词与 Memory Bank）](https://github.com/jlfguthrie/Cline-Prompts-Tips-and-Tricks)
- [Cline 官网（Roo Code 的上游开源项目）](https://cline.bot/)

---
> 本文由「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 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
