Claude Code

Agent Teams 与 Channels

Claude Code Agent Teams、Channels、channel reference、权限 relay、团队协作和事件推送的使用边界、缓存成本与 Passion8 注意事项。

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

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

这些能力会增加并行 token、权限面和事件来源复杂度。接 Passion8 时,还要确认网关是否完整转发 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 同时有工具权限”。建议:

  1. 默认先让 teammate 做 research 和 review,不要一开始就允许所有人编辑。
  2. 写操作走 ask 或限定目录。
  3. 大任务用 worktree 隔离,避免多个 teammate 改同一文件。
  4. 用 Hooks 做质量门,例如测试失败不能完成任务。
  5. 让 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 按需抓取,不要每次把完整日志推入会话。

#Passion8 边界

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

#官方参考

#相关页面

Support / 支持

Need help? / 需要帮助?

接入、计费与模型异常可邮件联系;服务可用性以状态页为准。For setup, billing, or model issues, email us. Check the status page for uptime.

也可使用右下角微信 / QQ 客服 · WeChat / QQ support is available at the bottom right