Skip to main content
trellis channel 是 Trellis 的本地多 Agent 协作运行时。主 Agent 可以启动 Claude 或 Codex worker,给每个 worker 注入明确的上下文,通过持久事件日志交换消息,并在运行过程中查看进度或改变方向。 当工作需要多轮对话或审计记录,而不是一次孤立的 sub-agent 调用时,使用 Channel。
Channel 状态保存在 ~/.trellis/channels/。默认 scope 是当前项目;使用 --scope global 可以创建跨项目 channel。

什么时候使用 Channel

不要把 Channel 当作长期对话记忆。历史检索使用 trellis mem。如果只需要一次静态结果,不需要持久消息、进度检查或中途改向,平台原生的普通 sub-agent 调用通常更简单。

让 AI 操作 Channel

trellis inittrellis update 会在支持的平台安装内置 trellis-channel skill。你可以直接描述协作目标,不必自己拼出每条命令:
Skill 会选择匹配的 Channel 工作流和 CLI 命令。需要脚本化、检查事件或排查 worker 时,再直接使用 CLI。

One-shot 问题

channel run 会创建 ephemeral channel,启动一个 worker,发送 prompt,打印最终答案,并在成功后删除 channel:
如果运行失败或超时,Trellis 会保留 channel,便于检查事件和 worker log。

多轮审查

Channel 最有价值的用法是迭代审查:只给 worker 必要文件,等待 Trellis 自动发出的事件,然后继续挑战第一轮答案,而不是直接把它当作最终结论。
然后继续发送聚焦的第二轮问题:
有效的审查通常要覆盖方向选择、MVP 边界、数据 contract、CLI 或 UX contract、失败处理和反对意见轮。一个答案加一次确认属于 review,不属于 brainstorm。

上下文和路由

Worker 不会自动收到项目里的所有文件。
  • 少量明确文件使用可重复的 spawn --file <path>
  • Trellis 上下文 manifest 使用可重复的 spawn --jsonl <path>
  • 使用 --as <name> 给每个 worker 一个稳定地址。
  • 使用 send --to <name> 唤醒 worker。Spawn 出来的 worker 默认只接收显式定向消息。
  • 如果向已停止 worker 静默追加消息属于错误,使用 --delivery-mode requireRunningWorker
  • 长 prompt 使用 --stdin--text-file,避免 shell 重新解释标点。
send 固定写入 message 事件,不支持自定义 --tag--kind。等待 turn_finisheddoneerrorkilled 等系统事件,不要要求模型输出某个魔法字符串作为完成信号。

并行 Reviewer

给 worker 使用不同名字,分别发送目标明确的 brief,再用 wait --all
--all 要求 --from 中列出的每个 worker 都产生匹配事件。超时退出码是 124,并会报告仍未完成的 worker。

改变 Worker 方向

如果 worker 应该放弃当前 turn、改用新的指令,同时保留 provider session,使用 soft interrupt:
只有 worker 必须立即停止或不响应 interrupt 时,才使用 channel kill <channel> --as <worker>。Session identifier 和日志会保留,便于诊断以及通过 spawn --resume 恢复。

Forum Channel

Forum channel 是由独立 thread 组成的持久看板,不是扁平聊天时间线:
需要在每次读取 channel 或 thread 时都带上的背景,使用 channel context add。解决结果使用 post ... statuspost ... summary 记录。Forum 历史是 event-sourced 的,应通过 forumthreadmessages --thread 检查,不要直接解析 events.jsonl

检查和清理

Pretty message 输出是 operator view,可能缩短 progress payload。审计 streamed output 或排查卡住的工具调用时,使用 --raw Spawned worker 的默认 idle cleanup TTL 是 5m,默认 live-worker budget 是 6。可以在 spawn 时用 --idle-timeout--max-live-workers 覆盖,也可以在 .trellis/config.yaml 中配置 channel.worker_guard

命令速查

运行 trellis channel <command> --help,查看当前已安装 CLI 版本支持的完整参数。