DeepSeek Harness 源码教程
DEEPSEEK HARNESS · OFFLINE TUTORIAL

05 · Prompt 与 LLM

Prompt 组合与模型 Adapter

1. System Prompt 不是一个巨大字符串

plugin A ─┐
plugin B ─┼─ prompt sections
tool schemas ─┤
runtime vars ──┘
          │
          ▼
SystemPrompt assembly
          │
          ▼
LLM request

Prompt 也是 composition 的结果,因此具有明确的 ownership、scope 和 lifecycle。

2. LLM Seam

DSH canonical request
        │
        ▼
provider adapter
        │
        ▼
provider HTTP / SSE
        │
        ▼
provider stream
        │
        ▼
normalized RawChunk
        │
        ▼
BlockAssembler
        │
        ▼
AssistantMessage

Agent Loop 不应该知道具体厂商 API。Adapter 负责 request/stream/error 的双向翻译。

3. 为什么 chunk 与 message 都要存在

Chunk 是 execution trace 与 UI replay 的材料;完成后的 Message 是更稳定的语义历史。

block-start
text-delta
text-delta
tool-call-delta
...
block-end
usage
finish
      │
      ▼
BlockAssembler
      │
      ▼
AssistantMessage

4. 一次 Step 的输入

History
+
Current input/context
+
System Prompt
+
Tool schemas
+
Model selection
────────────────
        │
        ▼
       LLM
        │
        ▼
AssistantMessage + ToolCalls