仓库 →

子代理

当一个任务能被干净地切分——可并行的编辑、机械重复的改动、或只读的调查——主代理可以通过 task 工具把子任务交给短生命周期的子代理。每个子代理在自己独立的上下文里运行;跨文件的推理和最终结果仍由主代理掌控。task 工具默认开启。

两种子代理

类型能做什么
explore 探索只读调查——读取、搜索代码库来回答「在哪 / 怎么做」,返回结论。不能改文件。
worker 执行执行一个被精确指定的改动。可自由读取,但写入被限制在声明的 scope 范围内。

它们如何运行

Worker 范围与安全

worker 子任务必须声明一个 scope:一组相对工作目录、允许写入的 glob,例如 ["src/auth/**", "Cargo.toml"]。这是强制的,不是建议:

配置

在 ~/.atomcode/config.toml 中调整子代理池:

[subagent]
max_concurrent = 3     # 同时并行的子代理数(最小 1)
max_rounds     = 0     # 每个子任务的模型轮次上限(0 = 不限)

默认不限制子任务轮数;已有配置中的正数预算会保留。要取消旧的 200 轮限制,请设置 [subagent] max_rounds = 0,或使用环境变量 ATOMCODE_SUBAGENT_MAX_ROUNDS=0。正数预算耗尽时最多增加一次纯文本收尾;并发数、取消和重复调用保护独立生效。外部 Codex/Claude 子代理使用各自的运行策略。

键默认含义
max_concurrent3并行运行的子代理数
max_rounds0每个子任务的模型轮次上限;0 = 不限

环境变量覆盖:ATOMCODE_SUBAGENT_MAX_ROUNDS 优先于配置值。

自定义团队角色

团队(team)派活时按角色挑成员。除了内置角色,你可以用 Markdown 文件自己定义,放在下面两个目录之一:

文件名(不含 .md)就是角色名。和内置角色同名的文件会替换它;两个目录有同名文件时,用户目录的生效。

文件由 --- 包住的头部字段和后面的角色说明(人设)组成:

---
permission: explore      # 必填:explore(只看、不改任何东西)| worker(可以改文件、跑命令)
difficulty: hard         # 必填:simple(用快模型)| hard(用强模型)
effort: high             # 可选:思考强度,low | medium | high | xhigh | max
model: glm-4.6           # 可选:指定模型(选择 id),优先于 difficulty
when: 需要做架构设计时     # 可选:一句话说明什么时候派给它
tools: read_file, grep   # 可选:限定可用工具,只能从 permission 允许的工具里选
---
你负责架构设计。先读现有代码,再给出方案,列出取舍。
字段是否必填取值
permission必填explore(只读调查)或 worker(受范围限制的写入执行)
difficulty必填simple(快模型)或 hard(强模型)
effort可选low / medium / high / xhigh / max
model可选模型选择 id;不写则按 difficulty 选
when可选一句话:什么时候该派给这个角色
tools可选逗号分隔的工具名,只能是 permission 默认工具的子集

注意两点:

格式不对的角色文件会被跳过,不影响会话启动。会话里会提示一次哪个文件被跳过、缺了或写错了哪些字段(一次列全),同一个会话里不会重复提示;和内置角色同名的文件被跳过时,继续使用内置角色。

关闭该功能

task 工具默认开启。若要彻底移除它,设置:

ATOMCODE_SUBAGENT=0 atomcode

0、false、off 任一都会关闭;不设置(或其它值)则保持开启。

相关