DeepSeek Harness 源码深潜(下):模型适配、多Agent协作与Python实战
在上一篇文章中,我们深入探讨了 DeepSeek Harness(以下简称 DSH)的核心运行机制——事件溯源、状态机与工具调度。本文作为源码深潜系列的下篇,将聚焦三个关键问题:DSH 如何实现模型无关性?多 Agent 之间如何协作与隔离上下文?以及这些机制能否用 Python 浓缩成一个可运行的迷你运行时?
容错设计与错误恢复
DSH 的模型无关性并非简单的「支持多种模型」,而是通过统一的适配器协议实现。任何 LLM 提供商只需实现标准接口,就能无缝接入 DSH 生态。这一设计的核心在于标准化的 StreamChunk 词汇表——定义了六种标准化的流式 chunk 类型:block-start、text-delta、reasoning-delta、tool-call-delta、block-end 以及 usage/finish 状态。每个适配器的职责,就是将自家 API 的流式输出「翻译」成这套统一词汇表。
多 Agent 的上下文治理
在实际运行中,网络波动、限流等临时性故障在所难免。DSH 的重试策略采用了「错误码分类」的工业级设计:LlmError 携带标准化错误码(RATE_LIMIT、SERVER、TIMEOUT 等),每个 Provider 注册自己的重试策略,引擎则根据错误码决定是否重试以及如何退避。指数退避配合 ±10% 的随机抖动,能有效防止「重试风暴」——当大量并发请求同时失败时,抖动让重试时间自然分散,避免对已过载的服务造成二次冲击。
dsh 真正教你的,不是一套 API 调用方式,而是一套关于「如何让 AI 可控、可审计、可扩展地运转」的工程思想。
“编辑推荐”积墨 AI 智能体开发平台
快速搭建具备商业价值的 AI 智能体,支持复杂工作流编排、50+ 主流模型接入与私有化部署。
会话分叉与深度预算
单 Agent 面临的根本矛盾是:上下文窗口有限,但任务复杂度可以无限。当主 Agent 需要探索整个代码库时,如果将所有文件都读入上下文,不仅窗口会爆,噪音更会污染决策质量。DSH 的解法是「委派」——让子 Agent 拥有独立的上下文,执行完任务后只返回摘要。这种设计的精髓在于:不是将子 Agent 的历史记录倒灌回主 Agent,而是提炼出关键结论,确保主线上下文的纯净。
Python 迷你 Agent 实战
子 Agent 的会话通过「分叉」机制创建:继承父会话的前 N 条事件作为前导,同时拥有自己的独立事件流。SessionHeader 中记录了 parentSession、seedLength、delegationDepth 等元数据。值得注意的是,delegationDepth(委派深度)需要持久化——如果只在内存中计数,进程重启后子 Agent 会「忘记」自己处于第几层,递归预算控制就会失效。此外,DSH 的 subagent 本身也是一个 seam,支持多种 Provider:从同进程的 agent,到外部的 OpenAI Codex、Claude Code,甚至可以通过 ACP 协议连接远程代理。
如有侵权,请联系删除。
