DeepSeek Harness 目标 Goal:持久化与自动续行
2026-08-16 14:37:29阅读 2
普通对话是"你问一句,agent 动一下"。但有些任务需要 agent 自己盯着目标、跨多轮自动推进——"把这个重构干完为止"、"持续跟踪这个 bug 直到修复"。这就是 DSH 的目标(Goal)机制:一个挂在会话上的持久化目标,配自动续行。
三层结构:会话 → 轮次 → 步骤
Goal 是什么
会话级的一个持久化目标——存在会话里,不因轮次结束而消失。它有七个生命周期动词:
| 动词 | 含义 |
|---|---|
| create | 创建目标 |
| edit | 修改目标 |
| pause | 暂停(保留状态) |
| resume | 恢复推进 |
| complete | 标记完成 |
| block | 标记阻塞(附原因) |
| clear | 清除 |
每个目标有 id + revision(修订号):每次变更 revision +1,防止"拿着旧版本瞎改"。
自动续行:目标怎么"自己跑"
创建目标后,系统可以自动开启新一轮继续推进——这就是"续行"。关键机制:
- 每次成功推进计一个 Round(目标轮次),有上限(默认
defaultMaxGoalRounds: 256) - 普通的人类消息不增加 Round 数——只有目标驱动的工作轮次才计数
- 暂停/完成/阻塞/清除都会停用续行;
resume在还有剩余轮次时重新激活
一句话:Goal 是"目标 + 冲劲"的组合——目标本身是数据,续行是让它自动往前冲的引擎。
五个核心服务:Agent 的"五脏六腑"
什么场景该用 Goal
| 场景 | 用不用 Goal |
|---|---|
| 一次性问题("这段代码什么意思") | 不用,普通对话 |
| 多步骤但一次性完成("改完这 5 个文件") | 不用,普通对话 +工作流 或子代理 |
| 长线任务,可能跨天、跨会话("持续优化这个服务的性能直到达标") | 用 Goal |
| 需要"盯到完成为止"的持久目标 | 用 Goal |
判断标准:任务是否需要"跨越多个会话、自动持续推动"。是,就用 Goal。
并行工具调用:一次能同时干几件事
观察一次真实循环:从你的视角拆解
目标在会话里的可见性
- 目标是会话的一部分,随会话持久化(机制见 会话与记忆)
- 每次目标变更都会记录到会话日志(事件溯源,可回放)
- 恢复会话后,目标还在,但续行不会自动重启——需要显式
resume(这是刻意设计:避免恢复老会话时它突然自己干起来)
常见疑问
| 问题 | 解答 |
|---|---|
| 目标推进到一半停了? | 看是否触发阻塞(block)或轮次上限用完 |
| 恢复会话后目标会自己跑吗? | 不会。恢复保留目标状态,续行需显式 resume |
| Round 上限怎么理解? | 是目标驱动轮次的计数上限,防失控;默认 256,可在配置调整 |
| 阻塞和暂停的区别? | 暂停是主动停(想恢复随时 resume);阻塞是遇到墙(带原因,resume 会清掉原因) |
接下来读什么
- 目标驱动的批量执行 → 工作流 Workflow:脚本编排与扇出
- 目标状态如何持久化 → 会话与记忆:持久化与会话恢复
← 上一篇:4.2 工作流 Workflow:脚本编排与扇出 | 下一篇:4.4 MCP 集成:stdio 与 HTTP 配置 →
↑ 返回 教程总目录




