文档
推荐给好友,福利领不停!好友同步开通最高 1000 万词元额度 · 后续消费分佣最高 30%。
+50万 Token生成链接

Agents(子智能体)

CrabCode 在跑复杂任务时会自动派子智能体并行调研。/agents 管子智能体配置、/tasks 看后台任务、CRABCODE_MAX_CONCURRENT_AGENTS 调并发上限。

是什么

CrabCode 主循环跑你给的任务时,遇到"需要先把整片代码摸一遍才能动手"这种活,会**派一个子智能体(subagent)**出去并行调研——它有自己的上下文、自己的工具,干完事回报一份简报给主循环。复杂任务可能同时派好几个,分别去搜代码、跑测试、查文档。

子智能体是 CrabCode 处理大型任务的核心机制。你不需要手动开它——主模型判断该派就派。但有几个开关你能调:选用哪种子智能体(专精类型)、写自己的子智能体(项目级 / 用户级)、限制最大并发。

何时会看到子智能体

  • 主循环在对话里输出 "Spawning subagent: …" 之类提示
  • 同时弹出多个 Agent 工具调用块
  • /agents 命令列出可用类型
  • /tasks 命令列出正在跑的后台任务

内置子智能体类型

CrabCode 自带 6 个内置类型(src/tools/AgentTool/built-in/):

subagent_type适合
general-purpose通用调研:开放式搜代码、多步任务、不确定要找啥时的兜底
Explore大范围摸底——读取大批文件后把要点回报给主循环
Plan只读规划——禁止改文件,专门设计实施方案
verification任务收尾时跑验证(测试真的过了吗、变更真的合预期吗)
statusline-setup引导用户配 statusline
crabcode-guideCrabCode 使用指南助手

主模型会按 whenToUse 描述自动选;不指定 subagent_type 就走 general-purpose

自定义子智能体

你能写自己的子智能体类型。文件放在两个位置:

位置作用域
~/.crabcode/agents/<name>.md用户级(所有项目可见)
<repo>/.crabcode/agents/<name>.md项目级(可提交 git)

文件格式(markdown 加 frontmatter):

markdown
---
name: db-migration-reviewer
description: 审查数据库迁移脚本是否安全
tools: [Read, Grep, Bash]
model: deepseek-v4-flash
---

You are a database migration safety reviewer.

When invoked, read the migration files passed in, check for:
- Missing rollback statements
- Locking risks on large tables
- Foreign-key constraint violations

Report findings concisely.
---
name: db-migration-reviewer
description: 审查数据库迁移脚本是否安全
tools: [Read, Grep, Bash]
model: deepseek-v4-flash
---

You are a database migration safety reviewer.

When invoked, read the migration files passed in, check for:
- Missing rollback statements
- Locking risks on large tables
- Foreign-key constraint violations

Report findings concisely.

字段说明:

  • name — 子智能体类型名(必填)
  • description — 何时该派这个子智能体(必填,给主模型当选择依据)
  • tools — 子智能体能用的工具列表,省略或 ["*"] = 全开
  • model — 单独指定模型,省略 = 跟主循环走默认子智能体模型
  • color — 在 TUI 里的颜色标识
  • 正文是子智能体的 system prompt

写完保存,下次启动 CrabCode 就生效。/agents 命令也能看到。

/agents 命令

/agents 打开子智能体管理菜单:

  • 看全部可用子智能体(内置 + 用户级 + 项目级)
  • 看每个子智能体的描述、工具集、所在文件
  • 跳到编辑

直接派子智能体——派由主模型自动做。这个命令只是配置面板。

/tasks 命令

/tasks(别名 /bashes)打开后台任务对话框。"后台任务"指你用 Bash 工具开的常驻进程(run_in_background: true),比如本地服务器、tail -f 之类——它们继续在跑,输出会缓存。

界面里可以:

  • 看每个后台任务的最新输出
  • kill 掉某个不再需要的
  • 把任务输出注回到对话里继续问

注意 /tasks 看的是 Bash 后台任务,不是子智能体。子智能体没有独立列表 UI——它们的状态在对话流里以工具调用块的形式呈现。

并发上限

为避免一次派几十个子智能体把网关打挂,CrabCode 给子智能体派发设了客户端并发预算(src/services/tools/StreamingToolExecutor.ts:24-34):

  • 默认上限:3 个同时在跑
  • 超出的会排队,不会失败
  • 环境变量覆盖CRABCODE_MAX_CONCURRENT_AGENTS=5 把上限提到 5

这个上限只管 Agent 工具,不限制 Read / Bash / Grep 等其他工具的并发。改大可能加快复杂任务,但容易撞网关限流;改小让任务更线性、错误更可读。

hook 钩子

子智能体的生命周期有 4 个 hook 事件(详见 hooks):

事件何时触发
SubagentStart子智能体被派出去前一刻
SubagentStop子智能体回报结束
TaskCreated多智能体协作场景下新任务被建
TaskCompleted任务完成

可以挂日志、审计、或者在子智能体启动前注入额外上下文。

排错

现象检查
自定义子智能体不出现name / description 是否齐 + 文件后缀 .md + 路径在 .crabcode/agents/
子智能体卡住/tasks 看后台任务、用 Esc 中断主循环
子智能体反复撞 429调低 CRABCODE_MAX_CONCURRENT_AGENTS 或拆任务
子智能体没工具frontmatter tools 列表写漏了;用 ["*"] 放开

相关