DeepSeek Harness
DeepSeek Harness Agent Loop:Step、Turn 与 Event
跟踪一次任务经过 Agent Loop 的路径,并选择正确的 Session、Agent 或 Capability 扩展点。

你将学会
- A step is one model request plus tools; a turn can contain multiple steps.
- The session log reconstructs model-visible history.
- Event domains separate durable facts from live interception points.
开始前需要
- Basic HTTP and API knowledge
Leave with a concrete implementation checklist and a testable starting point.
先看结论
- Step 是模型请求加工具,Turn 可以包含多个 Step。
- Session Log 重建模型可见历史。
- 事件域区分持久事实和实时拦截。
Step 与 Turn
架构文档把 Step 定义为一次模型请求及其工具调用;Turn 可以包含多个 Step,从领取输入开始,到没有待处理工作时结束。
这个词汇能避免把工具调用和下一次模型请求误认为两个用户 Turn;它们属于同一个持久化生命周期。
执行路径
Turn 会领取输入、组装提示词和工具 schema、进入 Step、从 Session Log 派生历史、流式读取模型响应、执行工具、追加结果,并决定继续下一 Step 还是停止。
Session Event 是持久事件;agent/request、llm/stream 和 tools/execute 等 waterfall 是实时扩展点,监听器必须调用 next() 才能继续链路。
选择事件类型
需要重放的事实使用 session/event;观察或拦截实时工作使用 Agent Event;连接策略和适配器而不导入 Loop 时使用 tools/* 或 fs/*。
新增行为前先判断它是否必须跨 reload 保留、是否需要修改请求,以及哪个服务拥有契约。
如何选择
| 比较维度 | 方案 A | 方案 B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
实施步骤
- 1
从 turn/start 跟踪到 turn/end。
- 2
标记写入 Session Log 的事件。
- 3
定位需要 next() 的 waterfall。
- 4
按重放和拦截需求选择事件。
可复制示例
turn/start -> step/start -> agent/request -> llm/stream
-> tools/execute -> tool/result -> step/end -> turn/end常见问题
为什么 Session Event 要持久化?
它们写入 Session Log,使历史、重放、转录和 UI 状态都能重建。
资料来源
- DeepSeek Harness architecture turn flow来源核查 2026-08-27
- DeepSeek Harness core subsystem来源核查 2026-08-27