Skip to main content
多个 terminal 出现在同一屏幕上,并不意味着它们已经成为一个团队。Dure 提供不依赖特定 provider 的协调层,让代理能够互相交接工作、报告结果、上报 阻塞,并在需要时等待人工决策。

运行命令前的要求

  • 安装 dure CLI,并在准备使用的 app channel 中至少启动一次 Dure。这会创建 CLI 所读取的 registry。完成后,task-create 不要求应用保持运行。
  • task-create 只记录任务。--title 为必填项,但不要求 provider、运行中的 agent、project、worktree 或 managed session。--spec--deps 可选。
  • 目前没有单独的 --requirements 字段。请把范围、验收条件、验证方式和预期 结果格式写进自由格式的 --spec。Dure 会持久化并传递它,但不会判断这份 契约是否完整。
  • 在 Dure 内打开的 terminal 会自动继承正确的 app channel。安装版默认使用 stable;从外部 shell 控制隔离的开发构建时,必须把 DURE_APP_CHANNEL 设置为该构建的 channel。
  • dispatch --inject 的要求更严格:目标必须注册在同一个 channel 中,而且其 session 必须能够接收输入。远程 mailbox 尚未桥接,因此完整的结果回传循环 目前还要求目标是本地代理。不加 --inject 时,dispatch 只会持久化任务分配 与消息。

协调层提供什么

带类型的消息

区分 note、status、dispatch、完成报告、escalation、decision gate 与 heartbeat。

Provider 中立的接收者

可以发送给一个代理、代表所有人的 @all,或 @claude@codex 等 provider 分组。

有结果回传的任务

记录任务并分配给代理,再接收结构化的 worker_done 结果,无需从 terminal 输出中猜测进度。

把人工判断放进流程

在跨越需要批准的边界前,代理可以提出阻塞式问题或创建 decision gate。
消息与任务状态会持久化在当前 Dure app channel 中。在托管 agent session 里,Dure 会自动识别发送者,因此通常无需额外传入 --from identity。

一个小型协调循环

向当前团队发送公告:
创建任务并分派给指定代理:
--inject 会把任务说明与报告约定放入目标代理的 terminal。Dispatch 本身也会 保存为带类型的消息,因此它不只是一次原始按键输入。 等待结果、阻塞上报或需要人工处理的决策:

协调模式

并行分解独立工作

为调研、实现与审查分别创建任务,再分派给不同代理或 provider。Worktree 隔离文件修改,orchestration channel 则传递共同目标与结果。

用提问代替无声阻塞

需要 coordinator 回答的代理可以等待 reply:

区分耗时工作与代理卡死

执行长任务的 worker 可以发送 heartbeat。无法继续的任务可以发送 escalation,因此无需盯着每个 terminal,也能看出两者的区别。

与 terminal 注入的区别

向另一个 terminal 输入 text 适合唤醒代理或传递 prompt,但它没有 task identity、message type 或持久的结果约定。Dure orchestration 会先记录通信。 Injection 只是传递已分配任务的可选方式,并不是 source of truth。
目前,编排只在一个 Dure app channel 内本地运行。远程 SSH 代理不会直接 加入本地 mailbox,@all 也尚未为每个接收者分别记录送达确认。必须执行的 操作请明确指定接收者。
请在当前限制中查看准确的 alpha 边界,或通过 provider 支持级别为任务选择 worker。