楼主: CDA网校
920 7

DeepSeek Harness 架构详解 [推广有奖]

管理员

已卖:189份资源

泰斗

12%

还不是VIP/贵宾

-

威望
3 级
论坛币
155168 个
通用积分
18822.2686
学术水平
308 点
热心指数
320 点
信用等级
283 点
经验
243407 点
帖子
7861
精华
19
在线时间
4562 小时
注册时间
2019-9-13
最后登录
2026-9-24

初级热心勋章

楼主
CDA网校 学生认证  发表于 2026-8-26 10:35:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

DeepSeek Harness 把工具、提示词、Provider、权限、交互和界面贡献都放进同一套插件运行图。模型可以在运行期间定义插件、挂载工具、观察结果,再停止或切换版本。这套设计回答了一个关键问题:Agent 的能力变更怎样进入运行时,同时保留所有权、清理和诊断信息。

五个概念组成运行图

Cordis 是底层插件组合与生命周期框架。Plugin 定义行为;每次挂载创建独立 Fiber;Context 是该实例访问 Service、事件和 registry 的能力视图;Inject 声明运行前需要哪些 Service;Effect 把一次注册和清理动作归到当前 Fiber。

以工具插件为例,源码只是 Plugin。它被 profile 挂载后产生 Fiber,ctx.tools.register() 把工具注册进 registry,并返回 disposer。Fiber 卸载时工具随之消失。文件写入、网络调用等外部操作不会自动回滚,插件必须自己设计补偿动作。

依赖也不会按 YAML 书写顺序硬跑。缺少必需 Service 的 Fiber 可以停在 PENDING;Provider 出现后,Cordis 根据新的依赖版本判断它能否进入 ACTIVE。PENDING 是合法等待,FAILED 才表示装载出错。

冷启动与即时生效

dsh --profile ... 先组合 bundle、profile、home 和 patch 层,再创建根 Context。Loader 为配置项生成稳定 Entry ID,通过 ctx.plugin() 创建 Fiber,最终得到一棵包含 ACTIVE、PENDING 和 FAILED 状态的运行图。

假设模型创建 repo_stats 插件统计 Typesc ript 文件数。Fiber 的 apply() 注册工具后,新工具已经存在于当前 Agent scope 的 registry。下一次 preStep 重组提示词和 tool schema,模型就能看到它。已经发给 LLM 的请求保持冻结,更新从下一次请求开始可见。停止 Fiber 后,disposer 注销工具,后续请求也不再看到它。

Agent Loop 没有识别动态插件的特殊分支。它每次从当前运行图读取能力,因此组合线可以变化,执行主循环仍保持稳定。

AGENTS.md 如何进入上下文

AGENTS 指令由 packages/context/agent-instructions 插件提供。首次 agent/pre-step 会读取 $DSH_HOME/AGENTS.md,再沿项目根目录到当前工作目录收集候选文件。插件构造带来源字段的 UserMessage;Agent Loop 将它记录成普通 user/message,随后投影到模型请求。

增量刷新没有依赖全局 watcher。成功且未取消的 read、write、edit 调用会从执行参数取得 file_path。路径先暂存,step/end 后再排队刷新。下一次 agent/pre-step 等待读取完成,只有嵌套 AGENTS 内容确实变化时才生成新消息。

错误、取消、空路径、内容无变化或读取失败都会继续使用现有上下文。这个约束保证模型可见指令能从 Session 事件重建,失败的工具结果不会伪造上下文更新。

模型如何写插件并挂载

自修改能力由普通 preset 组合出来。cordis preset 挂载 tool-cordis 后,模型才可能获得 inspect、define、run、stop 和 undefine 等七个 cordis_* 工具。

cordis_define 校验元数据、预编译 Host/Client 函数体,并生成稳定 Plugin ID 与不可变 Package ID。这个阶段保存候选版本,不创建 Fiber。cordis_run 在 Host 侧用 node:vm 求值函数体,确认返回值是 Plugin,再挂到 dynamic group。Inject 满足后,apply() 才注册工具或 Service。

这使一次演进留下明确记录:哪段源码定义 P1、哪个 Fiber 正在运行、注册了什么、为何失败、何时停止。动态 Package 把候选版本与运行实例拆开,我认为这是 DSH 最有价值的设计点。

工具调用的真实管线

一个 turn 可以包含多个 step。turn/start 先写入 Session,preStep 组装上下文;只有 preStep 接受后,系统才记录 step/start 和本 step 的 user/message。模型返回 tool call 时,scheduler 先写 tool/call,再交给 Tool Runtime。

Tool Runtime 冻结参数快照和执行上下文,依次经过 tools/pre-execute、ask 类 approval、guard 与 tools/execute 包装。真正分派时,defineTool() wrapper 执行 JSON Schema 校验并调用 Provider body。完成后进入 tools/post-execute,统一物化 ToolResult、附件和 UI 渲染意图。

Session 日志仍由 Agent Loop 负责:调用前记录 tool/call,结果确定后记录 tool/result。可并发工具的 body 可以重叠,但结果按模型顺序提交;exclusive 工具形成调度屏障。模型消息、回放、遥测和界面投影都从这条 append-only 事实流派生。

可回滚的边界

Fiber 卸载会撤回归属于它的注册项,动态 Package 也保留不可变版本,允许显式运行旧 Package。这不等于所有更新路径都有事务级回滚。

带 Client 的更新会先创建审批请求,此时旧 run 继续服务。批准后 Host 才撤回旧 Fiber 并启动候选。若 Client 在撤旧后晚失败,系统通常保留旧 currentPackageId 指针,却不会自动重挂旧实例;恢复运行需要显式执行旧 Package。

Node HMR、Browser HMR、Loader Entry 和 Dynamic Package 的提交点不同。判断能否自动恢复,要看失败发生在旧 Fiber teardown 前还是后,还要区分版本指针和实际运行实例。宣传“可回滚”时不能省略这段失败时序。

用它搭 AutoHarness

DSH 已提供动态 Package、作用域 registry、Fiber 清理、approval、sandbox、permission、Session trace 和旧版本显式运行。仓库里还没有独立 evaluator、隐藏任务集、release controller、长期收益统计和自动晋级策略。

稳妥的控制面应把候选 Agent 放在可变区域,把 Production Harness、隐藏测试、Evaluator、不可变 registry 和 Release Controller 放在外面。候选在隔离 profile 执行任务;Evaluator 只读取产物、Session trace、资源消耗和安全事件;Release Controller 根据预先冻结的规则决定晋级、观察或回滚。

repo_stats 可以验证闭环:基线任务统计 Typesc ript 文件;候选提供聚合工具;隐藏任务换目录、加入符号链接和权限错误;评估器检查正确率、token、延迟、越权和残留 Fiber。候选在未参与生成的任务上持续优于基线,才能证明能力改进。模型写出一个能跑的工具只证明发生了自修改,离 RSI 还差独立验证、跨任务泛化、资源约束和可恢复发布。

社区插件怎样审计

社区已经出现多 Agent Bundle、会话恢复和 memory/evolution overlay。Topic、README 或演示视频只能作为发现线索。我更建议固定 commit 后审计 manifest、入口、Inject、权限、外部进程和清理路径,再放进隔离 profile 跑真实 transc ript。

可靠的组合通常具备这些特征:Bundle 小,组合身份稳定;Host 与 Client 职责分开;tool、listener、timer、process、socket 和 UI 贡献项都能追溯到 Fiber;权限按最小集合申请;验收结果来自可复现的组装级运行。

总结

DeepSeek Harness 用统一语义组织 Agent 运行时:Plugin 定义行为,Fiber 承担实例,Context 与 Scope 路由能力,Effect 撤回贡献,Session 记录模型可见事实。动态 Package 为模型提供可观察的改造入口,Agent Loop 可以继续保持稳定。

它还没有自动解决外部副作用补偿、所有 HMR 路径的事务性、动态 ja vasc ript 强隔离和候选质量证明。补上独立评估与发布控制面后,Agent 自修改才可能从一次演示走向长期、可审计的能力演进。


原文作者: Vibe编码
原文链接: https://mp.weixin.qq.com/s/ccqvrHFo6oNUSwzXXYamcw
来源: 微信公众号

”

推荐学习书籍 《CDA一级教材》适合CDA一级考生备考,也适合业务及数据分析岗位的从业者提升自我。完整电子版已上线CDA网校,累计已有10万+在读~ !

免费加入阅读:https://edu.cda.cn/goods/show/3151?targetId=5147&preview=0

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Harness deep seek Dee EPS

沙发
CDA网校 学生认证  发表于 2026-8-26 10:35:54
DeepSeek Harness 把工具、提示词、Provider、权限、交互和界面贡献都放进同一套插件运行图。

藤椅
CDA网校 学生认证  发表于 2026-8-26 10:36:01
模型可以在运行期间定义插件、挂载工具、观察结果,再停止或切换版本。

板凳
CDA网校 学生认证  发表于 2026-8-26 10:36:03
这套设计回答了一个关键问题:Agent 的能力变更怎样进入运行时,同时保留所有权、清理和诊断信息。

报纸
yiyijiayuan 在职认证  发表于 2026-8-26 14:27:36
友情回复。

地板
512661101 发表于 2026-8-26 18:40:46
谢谢分享!

7楼
redflame 发表于 2026-8-27 13:40:20
支持支持

8楼
babylaugh 发表于 2026-8-29 11:16:49
点赞分享

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-9-28 04:56