DeepSeek Harness 一轮对话怎么跑?DSH plugin 的 agent loop 与六个核心包

概念与架构发布于 2026-10-03作者: DeepSeek Plugin 插件市场
DeepSeek HarnessDSH pluginagent loop核心包运行原理
DeepSeek Harness 跑一轮对话时会依次流经 agent-loop、system-prompt、llm、tools 等核心包:先认领提示词、开轮次,再组装前缀、流式取模型输出、分派工具,最后把结果追加回会话日志。搞懂这条链路,就知道 DSH plugin 插在哪一环。

DeepSeek Harness 跑一轮对话时,会依次流经一组核心包:agent-loop 认领提示词、开轮次,system-prompt 组装前缀,llm 以 seam 形式流式取回模型输出,tools 分派调用,结果再追加回 session 日志(来源)。 这条链路是「一切皆插件」真正落地的地方:模型、工具、提示词、会话分别对应链路上的一环,插件只要能介入其中一环,就能改变整个行为。这篇讲这条链路怎么走、为什么是这个顺序、插件从哪插进来;工具本身的机制见《DeepSeek Harness 工具怎么注册》,提示词组装的细节见《DeepSeek Harness 系统提示词怎么来的》。

DeepSeek Harness 一轮对话的完整链路

一轮对话在 DeepSeek Harness 里是一条有序的流水线:认领提示词 → 组装前缀 → 调用模型 → 分派工具 → 写回会话(来源)。 先看全局,再看细节:

  1. 认领与开轮次:agent-loop 拿到本轮要处理的输入,为这一轮建立上下文与执行身份。
  2. 组装上下文前缀:system-prompt 把工具说明、系统指令与各插件片段拼成提示词前缀。
  3. 调用模型:llm 以可替换的 seam 形式把请求发给模型,并流式取回输出。
  4. 分派工具:模型若请求调用工具,由 tools 分派执行,并把结果交回链路。
  5. 写回会话:本轮输入、模型输出与工具结果都追加进 session 日志,成为下一轮的上下文。

这条链路之所以是「循环」而不是「一次性」,是因为写回会话后,模型还会基于新上下文继续,直到本轮不再需要工具调用为止。

起点:agent-loop 认领提示词、开轮次

一个轮次从 agent-loop 认领提示词、开启轮次开始——它是 DeepSeek Harness 驱动整条链路的起点(来源)。 开端这一步做三件事:

  1. 认领提示词:拿到本轮要处理的输入,确定这次要跑什么;这决定了后续几步的上下文。
  2. 开启轮次:为这一轮建立执行身份与状态,后续每一步都在这个轮次内发生,彼此可追溯。
  3. 串起后续环节:agent-loop 不亲自处理模型与工具,而是按顺序驱动下游的 system-prompt、llm、tools。

因此,一个想改变轮次行为的 DSH plugin(比如调整什么时候结束、什么时候并发),往往就是在这条驱动链路上介入。

中段:组装前缀、调用模型、分派工具

轮次开始后,system-prompt 先拼出上下文前缀,llm 以 seam 形式流式返回模型输出,tools 再按模型的请求分派工具(来源)。 三段各司其职:

  1. system-prompt 组装前缀:把工具说明、系统指令与各插件贡献的片段拼成提示词前缀,交给模型;插件往提示词里加内容就落在这里,这也是为什么装的插件越多,提示词可能越长。细节见《DeepSeek Harness 系统提示词怎么来的》。
  2. llm 流式取回输出:模型接入被做成可替换的 seam,换提供方不必改 agent loop;输出以流式方式回传,因此你会先看到内容逐段出现,而不是等待整段生成完毕。
  3. tools 分派:模型若请求调用工具,由 tools 分派执行,并把结果交回链路;这一环决定了模型「能做什么」。工具的注册与执行细节见《DeepSeek Harness 工具怎么注册》。

收尾:结果写回会话,成为下一轮输入

工具与模型的结果最终追加回 session 日志,成为会话事件的一部分(来源)。 这是闭环的关键,也是「一轮」与「下一轮」的接缝:

  1. 结果持久化:每一轮的输入、模型输出与工具结果都进入会话日志,顺序由事件序号确定。
  2. 成为下一轮输入:会话日志既是事后回看的依据,也是模型下一轮要读的上下文来源——所以「上下文」并不神秘,它就是这条日志被重新送进前缀的过程。
  3. 服务入口各管一段:ctx.sessions 管会话读写,ctx.systemPrompt 管前缀组装,ctx.tools 管工具分派,ctx.agents 管智能体;DSH plugin 通过这些入口接入链路,而不是自己去改内核。

会话日志的数据模型见《DeepSeek Harness 会话存在哪怎么查》。

为什么链路的顺序很重要

这条链路的顺序不是实现细节,而是决定了「一个插件能在哪里改变行为」:认领在最早、写回在最后,中间三段是主要的能力位(来源)。 几个推论:

  1. 越早介入,影响越全局:在认领与开轮次阶段介入,能影响整轮的走向;越往后,影响越局部。
  2. 前缀决定了模型「看到什么」:想让模型知道新能力,得在前缀组装阶段进入,而不是在模型已调用之后。
  3. 工具是模型与外界之间的桥:模型不能直接动文件或网络,它只能请求工具,真正执行由 tools 完成。
  4. 写回是下一次的输入:理解了这一点,就能理解为什么「清空会话」「改会话记录」会直接改变下一轮的表现。

理解 agent loop 的注意事项

把 agent loop 看成一条「认领 → 组装 → 调用 → 分派 → 写回」的固定链路即可。

  1. 六包不是并列,是有序的:顺序决定了插件该在哪一环介入。
  2. 重要能力都是 seam:llm、tools 可替换,正是靠这一设计,换模型或换工具不必改主干。
  3. 前缀组装是开销来源:插件加的内容都会进前缀,装之前值得留意它加了多少。
  4. 会话日志是闭环终点也是起点:它同时服务回看与下一轮。
  5. 插件通过 ctx 接入:ctx.sessions、ctx.systemPrompt、ctx.tools、ctx.agents 是主要入口。
  6. 一轮可能包含多次工具往返:不要把「一轮」理解成「一次模型调用」。
  7. 整棵树的坐标见《DeepSeek Harness 架构是怎样的》。

来源:DeepSeek Harness 官方文档 - 核心子系统、官方文档 - 工具子系统。

常见问题

DeepSeek Harness 的 agent loop 是什么?

**DeepSeek Harness 的 agent loop 就是让一轮对话从头跑到尾的驱动循环。** 它由核心子系统里的若干包协作完成:先认领提示词、开启一个轮次,再依次经过提示词组装、模型调用与工具分派,最后把结果写回会话,构成一个 DSH plugin 可以介入的完整链路。

DeepSeek Harness 跑一轮对话会流经哪些核心包,顺序是什么?

**一轮对话在 DeepSeek Harness 里依次流经的核心包包括 agent-loop、system-prompt、llm、tools 与 session。** agent-loop 认领提示词并开轮次,system-prompt 组装前缀,llm 以 seam 形式流式取回模型输出,tools 负责分派,结果再追加回 session 日志。

DeepSeek Harness 的上下文前缀是什么时候拼的?

**DeepSeek Harness 的上下文前缀在一轮开始时由 system-prompt 包组装。** 它把工具说明、系统指令与各插件贡献的片段拼成前缀,再交给模型;因此插件往提示词里加内容,落点就在这一环,这也是提示词会随插件变长的原因。

DeepSeek Harness 里 llm seam 的 seam 到底是什么意思?

**在 DeepSeek Harness 里,seam 指可替换的能力接缝,llm seam 就是把模型接入做成可替换的一层。** 这意味着换模型提供方不必改 agent loop,只要替换这一 seam 的实现;同样,tools 等环节也以 seam 的方式对外提供能力。

工具分派和会话日志在 DeepSeek Harness 的 agent loop 里怎么衔接?

**在 DeepSeek Harness 的 agent loop 里,tools 分派完工具调用后,结果会追加回 session 日志。** 每一次工具调用与返回都成为会话事件的一部分,因此会话日志既是模型下一轮的输入,也是事后回看整条链路的依据。

相关术语

agent loop
agent loop 是 DeepSeek Harness 驱动一轮对话的循环:认领提示词、开轮次、组装前缀、调用模型、分派工具并写回会话。— DeepSeek Harness 官方文档 - 核心子系统
system-prompt
system-prompt 是 DeepSeek Harness 中负责在轮次开头组装上下文前缀的核心包,把工具说明、系统指令与插件片段拼成提示词。— DeepSeek Harness 官方文档 - 核心子系统
seam(能力接缝)
seam 是 DeepSeek Harness 中对可替换能力的称呼,llm、tools 等环节都以 seam 形式提供,便于在不改主干的前提下替换实现。— DeepSeek Harness 官方文档 - 工具子系统
ctx.sessions
ctx.sessions 是 DeepSeek Harness 暴露的会话服务入口,agent loop 通过它读取与写入会话事件,把一轮的结果落到日志中。— DeepSeek Harness 官方文档 - 核心子系统

来源