← 返回专题 B01 机制演示库 view_15 框架深度 · 25C

DeepSeek Harness:无特权内核

Model + Harness = Agent——一切皆插件、事件即事实源、可回放可分支可审计

场景 —
① 核心公式:Model + Harness = Agent
模型只会「想」,Harness 负责「做」——会话、主循环、工具、系统提示、事件日志。裸模型调一次只返回 token,套上 Harness 才能改文件、跑测试、自己修 bug。
Model(会想) + Harness(会做) = Agent(能干活)

Model = 会思考的模型

  • DeepSeek / Claude / GPT / ... 约 40 家可路由(随版本变化)
  • 只输出 token,不记住对话
  • 不自动调工具、不崩溃恢复

Harness = 会执行的身体

  • 会话 · 主循环 · 工具 · 系统提示 · 事件日志
  • 把「模型之外的能力」补齐
  • Claude Code 是 Anthropic 的封闭 Harness;dsh 把它开源
立场:智能的上限由模型决定,但这个上限能兑现多少,完全由 Harness 决定。Agent 能力 = 模型智能 × Harness 兑现率——后者才是工程上能竞争的地方。
② 传统特权内核的三个致命问题
主流 Agent 框架(LangChain / AutoGen)把主循环、编排、上下文管理写死在框架里——插件只能在预设 Hook 点插入。
  • 问题 1:扩展被「钩子位」限死——你想改的往往是框架没画的位置(比如主循环怎么决定下一步)。
  • 问题 2:内核行为不可观测、不可撤销——内核执行工具调用是隐式的,出了错找不到账本、无法回滚。
  • 问题 3:内核与插件存在隐性信任特权——内核信任自己、怀疑插件,深度定制要 fork。
┌──────────────────────────────┐
│ 特权内核(写死在框架里) │ ← 主循环、编排、上下文管理
│ - 能访问一切 - 行为不可记录 │
│ - 插件只能调它暴露的接口 │
├──────────────────────────────┤
│ Hook 点 A │ Hook 点 B │ Hook 点 C │ ← 扩展只能在这几个固定位置插
└──────────────────────────────┘
③ Harness 的反叛:没有内核,只有插件
构建在 Cordis v4 元框架上——Cordis 自身不提供任何业务功能,只给四样东西:依赖注入、生命周期、事件总线、服务注册。
Cordis 事件总线
一切通信都走事件
会话插件 主循环插件 工具插件 系统提示插件 模型路由插件
三层收益:① 扩展从「挂钩子」升级为「换器官」——想改主循环?卸掉 agent-loop 插件换自己的;② 没有业务组件高于其他插件——取消「业务内核-插件」信任分界线,但 DI/生命周期/事件总线仍是内核;③ 框架内状态可撤销——事件总线+日志支持回滚;已发出的外部动作(转账、发信)不可撤销,必须幂等或补偿。
④ append-only SessionEvent:Agent 会话的事实源
会话 = 一串只追加、不覆盖、不删除的事件。事件四要素:类型 + 时间戳 + 序号 + 载荷。执行结构:turn = 0+ step,step = 1 次 LLM 请求 + 工具调用。
[00:00.000] session/ 用户输入:"分析 payment-service 的 Pod 状态" [00:00.120] agent/ think: 需要查 Pod 状态 → 调用 kubectl_get_pods [00:00.300] tools/ kubectl_get_pods → {"ready":0,"total":3} [00:00.520] agent/ think: Pod 未就绪 → 查日志定位原因 [00:00.700] tools/ kubectl_logs → "OOMKilled at 2026-09-04" [00:00.900] agent/ message: 检测到 OOMKilled,建议增加内存限制

四层能力

  • 可回放:调试从靠猜变重放
  • 可分支:不可变历史让分叉像 git 免费
  • 可审计:append-only 无法篡改
  • 可检索:事件带类型+时间戳可查询

事件即扩展点

  • 审计插件 → 订阅 fs/*
  • 护栏插件 → 订阅 tools/*
  • 可视化插件 → 订阅 agent/*
⑤ 四种运行模式:同一套插件的四种装配
同一个 Harness,切换插件组合就表现出四种「性格」。
模式决策开销成本典型场景
标准每 step 全量 LLM 决策高复杂规划、多工具编排、需要推理
PTC(程序化调用)仅关键决策点问模型中数据流水线、已知序列、省 Token 刚需
极简零决策(单请求)最低批量、高并发、原型
创造含自省/自改开销最高自进化研究、自我调试
选型规则:顺序可预判 → PTC;顺序要探索 → 标准。四种模式不是四个产品,是同一套插件组合的四种装配。PTC 用「序列程序化」换 token 成本,牺牲探索灵活性。
⑥ 进阶三件套 + 竞品坐标

进阶机制

  • 能力缝:Definition 定义契约 / Provider 可互换实现 / Consumer 读能力事实自适应——换沙箱只改 Provider 一行
  • 运行时断言:model-visible ⟺ logged——「模型看到的=日志记的」成为强制不变量
  • 自修改运行时:cordis_inspect/mount/unmount——Agent 装卸自己的插件,opt-in + vm 隔离 + 撤销链

竞品坐标

  • Claude Code:最好的产品(封闭 Harness)
  • LangChain:最大的生态(组件/LCEL)
  • AgentScope:多语言,2.0 以 Harness + middleware 为核心
  • DeepSeek Harness:事实源与插件模型做得最彻底的开源运行时
一句话总结:dsh = 用「一切皆插件 + 事件即事实源」把 Agent 运行时做到可替换、可回放、可审计,再用 Model-agnostic 路由(约 40 家,随版本变化)消解锁定恐惧——公式一句话传得快,架构真的能打所以留得住。
AI 工程小册 · view_15 框架深度 / 演示 25C DeepSeek Harness 无特权内核
← 返回专题 B01 · 动画作战地图