Skip to content

Agent Teams 与 Channels

Agent Teams 和 Channels 都是“让 Claude Code 不只等你输入”的能力,但它们解决的问题不同:

能力核心作用适合
Agent Teams多个 Claude Code session 组成团队,互相发消息、认领任务复杂 review、并行假设、跨模块研究
ChannelsMCP server 把外部事件推入正在运行的 sessionCI 结果、监控告警、聊天消息、webhook
Permission relayChannels 把工具审批发到远端,再把批准或拒绝传回本地手机上批准命令、远程处理 ask

这些能力会增加并行 token、权限面和事件来源复杂度。接 Gushen888 时,还要确认网关是否完整转发 MCP、工具、缓存和 channel 相关字段。

Agent Teams 什么时候用

Agent Teams 适合需要多个独立 Claude instance 互相协调的工作。它不是 subagent 的简单别名。

官方当前把 Agent Teams 作为实验能力,默认关闭。启用方式:

~/.claude/settings.json

{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  }
}

如果要让 teammate 用分屏显示,可以设置 teammateMode,或单次启动时传 claude --teammate-mode auto。分屏模式依赖 tmux 或 iTerm2 的 it2 CLI。只做普通协作时,默认 in-process 模式更稳。

对比项SubagentAgent Teams
上下文独立上下文,结果回主会话每个 teammate 独立上下文,互相通信
协调主 agent 分配和汇总共享任务列表,teammate 可认领任务
沟通只回报给调用方teammates 可直接互发消息
成本相对低,结果摘要回主上下文更高,每个 teammate 都是完整 Claude Code session
适合单点调研、单文件 review、隔离上下文大型审查、并行方案、长期协作

典型用法:

Spawn 3 teammates: one for security review, one for performance review, and one for test coverage. Have them report separately, then cross-check each other's findings.

Team lead、teammate 和 mailbox

官方把 Agent Teams 拆成几个角色:

组件作用
Team lead当前主会话,负责启动 teammates 和协调方向
Teammates独立 Claude Code 实例,各自处理任务
Task list共享任务列表,teammate 可 claim 和 complete
Mailboxagent 之间发消息、提问、同步结论

使用时要给每个 teammate 明确角色、输入材料和验证口径。不要只说“帮我 review”,应该说明严重性标准、要跑的测试、哪些文件不可改。

权限和质量门

Agent Teams 的风险来自“多个 agent 同时有工具权限”。建议:

  • 默认先让 teammate 做 research 和 review,不要一开始就允许所有人编辑。
  • 写操作走 ask 或限定目录。
  • 大任务用 worktree 隔离,避免多个 teammate 改同一文件。
  • 用 Hooks 做质量门,例如测试失败不能完成任务。
  • 让 team lead 等 teammate 完成后再汇总,不要提前结束。

Channels 是什么

Channels 让 MCP server 主动向 Claude Code session 推送事件。普通 MCP 是 Claude 需要时去调用工具,Channels 是外部系统有事时把消息送进会话。

事件来源可以推什么
CI/CDjob 失败、测试日志、部署状态
ChatOpsSlack/Discord/Teams 消息
监控系统告警、恢复、指标异常
Webhookissue、PR、ticket、incident 变化

Claude 会把事件作为 <channel> 内容读到上下文中,然后按 instructions 判断要不要回复、要不要调用工具、要不要等待人工批准。

官方 channel 入口

Channel前置条件适合
FakechatClaude Code 已登录、Bun 可用本地快速验证 channel 和 reply tool
Telegram创建 bot、安装官方插件、pair sender手机远程发送任务和接收回复
Discord创建 bot、启用 Message Content Intent、邀请到 server团队聊天桥接
iMessagemacOS、Full Disk Access、Messages/AppleScript 权限Apple 设备间自用远程控制
自定义 webhookMCP SDK、stdio server、本地 HTTP listenerCI、监控、部署、工单事件推入本地 session

官方预置 channel 通常通过插件安装,再用 --channels 启动:

claude --channels plugin:fakechat@claude-plugins-official

开发自己的 channel 时,研究预览期间需要开发 flag:

claude --dangerously-load-development-channels server:webhook

.mcp.json 中存在 server 不代表它能推送 channel 事件。server 还必须在启动参数中被列为 channel,并且没有被组织 policy 阻断。

Channel MCP server 需要什么

官方 reference 里,Channel server 通过 MCP capabilities 声明自己支持 channel。

字段用途
capabilities.experimental["claude/channel"]注册通知监听能力
capabilities.experimental["claude/channel/permission"]可选,允许接收工具审批 relay
capabilities.tools双向 channel 需要 reply tool
instructions告诉 Claude event 怎么解释、何时回复、用哪个 tool 回复

通知 payload 通常包含:

字段用途
content事件正文
meta路由属性,例如 chat_idsenderseverity

meta key 只能使用标识符字符。带连字符或特殊字符的 key 可能被丢弃,所以建议统一用 snake_case

Webhook channel 架构

步骤说明
声明能力MCP server 在 capabilities.experimental["claude/channel"] 声明 channel
连接 Claude Codeserver 通过 stdio transport 被 Claude Code 子进程启动
接收事件本地 HTTP listener、chat bot 或 platform polling 收到外部事件
推送通知server 发 notifications/claude/channel,把 contentmeta 注入 session
可选回复双向 channel 暴露 reply tool,Claude 调用 tool 发回 chat 或 webhook
可选审批声明 claude/channel/permission,把工具审批 relay 到可信 sender

通知没有端到端 ack。mcp.notification() 只说明写入 transport,不代表 Claude 已经处理。如果需要确认,让 Claude 调用 reply tool 回传状态。

最小事件形态:

<channel source="webhook" severity="high" run_id="1234">
build failed on main: https://ci.example.com/run/1234
</channel>

Permission relay

Permission relay 可以把本地工具审批转发到远端 channel。你在手机或聊天工具里看到一个审批请求,回复批准或拒绝后,Claude Code 再继续。

字段说明
request_id本次审批的短 ID,必须原样带回
tool_name例如 BashWriteEdit
descriptionClaude 对工具调用的说明
input_preview工具参数预览,通常会截断

安全重点是 sender gating:只有可信发送者能触发消息或批准权限。不要让公开 webhook 直接拥有批准生产命令的能力。

企业控制

Channels 处于研究预览或快速演进阶段时,组织更应该集中控制。

设置建议
channelsEnabled明确开关,不要靠默认值猜
allowedChannelPlugins只允许经过审查的 channel plugin
Managed settings对团队统一下发,避免个人乱配
MCP allowlist限制可接入的 server 和工具
Hooks对高风险 Bash、Write、MCP 写操作做二次拦截

缓存和成本影响

动作5m / 1h 缓存解释
创建 Agent Team每个 teammate 是独立 Claude Code session,各自建缓存
teammate 互发消息消息进入对应 teammate 历史,后续可在该 session 内缓存
Channel 事件推入事件作为新消息追加,短间隔可刷新 TTL
CI 告警间隔超过 5 分钟API/provider 默认 5m TTL 可能冷启动
permission relay审批本身通常不调用模型,批准后的工具结果会进上下文

如果事件很频繁,要控制 channel 内容长度。把长日志放链接或 artifact,让 Claude 按需抓取,不要每次把完整日志推入会话。

Gushen888 边界

问题判断
Agent Team 是否走 Gushen888取决于 teammate 启动环境是否继承 ANTHROPIC_BASE_URL 和 token
Channel 消息是否进模型请求进入 session 后通常会成为后续上下文
网关是否支持需要完整转发 MCP、tool search、usage、cache 字段
云端 web session不自动继承本地 Gushen888 配置
第三方 chat/CI自己的数据保留和权限模型要单独审查

官方参考

相关页面

面向编码工具与 Agent 工作流的稳定模型网关。