Coordinator 编排模式、三种 Agent 执行模型、基于文件的 Mailbox 通信系统,以及 MCP 工具的动态集成机制。
AgentTool() 在后台派生a-{16HEX}<task-notification> XML 回传SendMessageTool 继续对话isolation: 'worktree' 沙箱执行TEAM_SWARMS 特性)agentName@teamNamer-{16HEX}isolation: 'remote' 参数触发CLAUDE_CODE_COORDINATOR_MODE=1 激活。Coordinator 接管系统提示词,转变为多 Worker 编排者身份。当 Coordinator 模式激活时,系统提示词替换为:
agentToolUtils.ts 中的过滤逻辑:
Worker 完成后,结果以 <task-notification> XML 格式注入到 Coordinator 的下一轮用户消息中。Coordinator 解析 task-id 识别来源,可决定继续还是综合。
基于文件系统的消息队列,位于 ~/.claude/teams/{teamName}/inboxes/{agentName}.json。使用 proper-lockfile 实现文件锁,保证并发安全。Teammate 在每轮边界轮询收件箱。
通过 SendMessageTool({to: "a-xxx", message: "..."}) 向运行中的异步 Agent 发送消息。消息被入列到 LocalAgentTask 的 pendingMessages 队列,在 Agent 完成当前轮次后被消费为下一轮输入。
my-tool → mcp__server-name__my_toollocal:当前目录 .claude/mcp.jsonuser:~/.claude/mcp.json(用户全局)project:项目根目录配置managed/enterprise:企业管理员推送通过 Agent 定义文件(YAML frontmatter)中的 mcpServers: ["server-name"] 字段,为特定子 Agent 挂载专属 MCP 服务器,在 initializeAgentMcpServers() 中初始化,Agent 退出时自动清理。
已连接的 MCP 服务器可提供 instructions 字段,被注入到系统提示词的 "# MCP Server Instructions" 段。该段被标记为 DANGEROUS_uncached,因为服务器连接状态可能随时变化(避免缓存过期)。
| 特性 | Fork | 普通 Worker |
|---|---|---|
| 上下文 | 继承父 Agent 完整对话 | 全新空白上下文 |
| 系统提示词 | 与父 Agent 完全相同 | 可独立配置 |
| Prompt Cache | 字节完全一致(命中率高) | 独立 cache key |
| 递归限制 | boilerplate tag 防止再次 fork | AgentTool 默认不可再派生 |