SUPER DOLPHINHARNESS DRIVER DOCS

THREAD LIFECYCLE

Threads 与 Turns

从首次发送到 resume、fork、interrupt 与 recover,分清连续工作容器和单次执行。

先说结论

一次对话保存在 Thread 中,每次执行则是一个 Turn。startresumeforkstoprecover 改变的是不同状态,不能当作同一组重试按钮。操作前先在桌面工作区选择可信项目目录。

怎么理解

对象保存什么生命周期重点
Thread项目、Provider 身份、模型配置、Prompt snapshot 和历史绑定可 start、resume、fork、stop、recover
Turn一轮输入、附件、技能引用、Provider turn ID 与状态可 prepare、start、steer、interrupt、force complete
Provider session与 Codex app-server 或适配中的 Claude CLI 的在线连接可断开并按各自持久绑定恢复;能力不对等

Thread 是连续工作容器,Turn 是容器中的一次执行。空白草稿首次发送必须先 thread/start,取得 Thread ID 后再 turn/start。Prompt 的静态规则和 start-only section 只在创建 Thread 时组装一次;每个 Turn 再加入动态上下文、附件与本轮输入。

Prompt snapshot 和 runtime config snapshot 分开保存。恢复时不能从当前默认值重算历史 Prompt,否则同一个 Thread 的执行语义会漂移。

怎么使用

新建

空白草稿 -> thread/start -> 持久化 Thread 与 Prompt snapshot
         -> turn/start   -> Provider 执行并发出事件

继续

thread/resume 读取持久 Thread、Provider binding、Prompt snapshot 与运行时身份,再调用对应 Provider 的 ResumeSession。恢复成功后,新的 Turn 仍通过 turn/start 发出。

继承

thread/fork 从当前 Provider 历史分出新 Thread,继承稳定 Prompt snapshot,先以 creating 状态落盘,再恢复新 Provider session。成功后只产生一个新的 kickoff Turn;它不是总结旧对话后重新执行 thread/start

常见问题

  • Thread 已创建但 Turn 未启动:保留 Thread,重新发送前先核对活动 Turn,避免重复提交。
  • Provider binding、CWD 或身份不完整:resume/fork 直接失败,不猜默认 Provider 或路径。
  • fork kickoff 在可诊断运行阶段失败:保留 failed 状态;启动前半成品失败则清理 Thread、binding 与 snapshot。
  • active Turn 正在执行:普通发送应转为 steer 或 interrupt,不能并发启动第二个 Turn。
  • Provider 断线:recover 需要重建传输、执行 thread/resume,必要时重放 pending Turn;只重连 WebSocket 不算恢复完成。

适用范围

  • UI 的“完成”只表示 Turn 进入终态,不等于仓库门禁通过。
  • force complete 是生命周期修复入口,不是正常成功路径。
  • Thread 的 public ID 与 Provider 内部 ID 可以不同;界面只应暴露 public identity。
  • 跨 Provider 无损迁移不在当前承诺范围内;Provider 身份和能力属于 Thread 配置的一部分。
  • Codex 是完整 Driver 的默认集成路径;Claude 仍在适配且不支持子 Agent Orch,不能从共享 Thread/Turn 抽象推导出等价能力。

延伸阅读

阅读Harness Orch,理解 Codex 集成路径中的 Thread 如何成为子 Agent 协作载体。