ARTICLE · 1043271
DeepSeek Harness 源码拆解
DeepSeek Harness 源码拆解
最近系统梳理了一遍 DeepSeek-Harness 的源码,并把一次请求从进入系统到返回答案的全过程,画成了这张运行流程图。
这次主要追踪了:
🔹 用户请求如何从 CLI 进入 Harness
🔹 Cordis 如何装配 Agent、Session、LLM 和 Tool
🔹 Prompt、工作区指令与 Skill 如何进入模型上下文
🔹 DeepSeek API 如何流式返回推理、文本和 Tool Call
🔹 Tool 如何经过审批、策略检查、Sandbox 和执行器
🔹 Tool Result 如何写回 Session,并触发下一轮模型推理
🔹 MCP 在完整调用链中处于什么位置
🔹 LLM 重试、上下文溢出和执行异常如何处理
读完源码后,我觉得这个项目最值得关注的,并不是某个“神奇的 Agent 类”,而是它构建了一套清晰的运行闭环:
Session History → LLM → Tool Call → Tool Runtime → Tool Result → Session History
其中几个设计让我印象很深:
1️⃣ 模型可见的信息基本都可以从 Session 事件日志中重建。
2️⃣ Prompt 中暴露的 Tool,与运行时真正可执行的 Tool 使用同一套 Agent Scope。
3️⃣ Tool 可以并行执行,但结果仍然按照模型调用顺序写回。
4️⃣ MCP Tool 并不是一条特殊通道,接入后依然经过统一的 Tool Runtime。
5️⃣ Sandbox 不可用时会失败关闭,不会悄悄降级为无隔离执行。
6️⃣ 核心 Agent Loop 没有 maxSteps,持续的工具调用需要通过外层超时、预算或策略限制。
完整分析还覆盖了 Agent Loop、Context、Prompt、Skill、MCP、Hook、Sandbox、Streaming 和错误处理。
图比较长,建议点开原图查看 🔍整理了一份Agent资料放在知识库啦
#agent #AI#智能体 #AI产品经理 #大模型 #AIAgent #职场 #干货分享 #LLM #人工智能