内容提要
DeepSeek开源了开发者预览版Agent驾驭框架Harness(dsh),采用MIT协议,核心设计为“一切皆插件”,由Cordis元框架驱动。模型、工具、循环等均可插拔,通过profile和bundle灵活组装。会话日志作为唯一真相源,支持分叉、回放。压缩与记忆功能仍处预览阶段,提供四种运行模式,旨在构建可扩展的Agent地基。
延伸解读
架构哲学:无特权内核的插件化设计
DeepSeek Harness 的核心设计是“一切皆插件”,由 Cordis 元框架驱动,模型、工具、循环等均为平等插件,没有特权内核。这种设计让扩展能力无需修改源码,只需挂载插件,卸载时自动撤销。相比传统封闭式框架,它更强调架构可扩展性,为开发者提供了高度可控的地基,但也意味着功能成熟度需依赖生态发展。
会话日志作为唯一真相源的意义
dsh 将会话日志设为唯一真相源,模型看到的一切必须能从日志还原。这天然支持分叉、恢复、回放和遥测,无需额外维护状态快照。对调试长任务和复盘 Agent 决策路径非常实用,但也要求日志记录完整且准确,否则可能影响可追溯性。
压缩与记忆:接口先行,生态待卷
官方在 v0.1 中仅提供基础的压缩接口和朴素实现,记忆功能也处于预览阶段。但开源当天已有第三方插件探索自适应压缩、跨会话记忆等方向。这体现了“先立骨架、再长功能”的策略,将前沿难题留给社区,但用户需注意这些能力尚不成熟,可能需自行集成和测试。
Capability Seam:一次替换,处处生效
dsh 通过 seam 抽象(Service Definition、Provider、Consumer)实现能力可替换性。例如,将文件系统和子进程 provider 指向远程沙箱,Bash、PTY 等能力会同步迁移,无需为每个工具单独适配。这种设计简化了环境切换和工具扩展,但要求开发者理解接口定义,并确保 provider 兼容性。
Q&A
DeepSeek Harness是什么?它的开源协议是什么?
DeepSeek Harness(简称dsh)是DeepSeek开源的开发者预览版Agent驾驭框架,采用MIT协议开源。它的核心设计理念是“一切皆插件”,旨在构建一个可扩展的Agent地基。
DeepSeek Harness的“一切皆插件”设计理念具体指什么?
“一切皆插件”意味着模型适配器、工具、Agent循环本身等都是插件,没有特权内核。所有能力都通过插件挂载到共享上下文中,插件可以自由替换和卸载,且卸载时其注册的效应会撤销。
DeepSeek Harness中的profile和bundle分别是什么?它们如何工作?
Bundle是一种分发格式,打包了一组Cordis配置行和要挂载的代码;Profile是存放在Harness主目录下的命名组合清单,列出叠加的bundle,并可安装树外插件和保存补丁。启动时按顺序叠加bundle,再应用各级补丁,实现能力的自由组合与替换。
DeepSeek Harness的Agent循环中,turn和step是如何定义的?
一个step是一次模型请求加上它调用的工具;一个turn由零到多个step组成,从认领输入开始,到没有欠账时结束。循环中的关键节点都有对应事件,可被插件监听或拦截。
DeepSeek Harness如何实现会话的分叉、回放和恢复?
会话日志是唯一真相源,模型看到的一切都必须能从日志中还原。日志是仅追加的SessionEvent流,通过deriveMessages()投射历史,原始流式事件保留完整保真度。分叉、恢复、回放等操作都基于同一事件流,无需额外状态快照。
DeepSeek Harness在压缩与记忆方面提供了什么?
目前压缩与记忆是预览级能力,官方提供了compaction包,包含可替换的压缩接口和基础provider。生态中已有第三方插件在探索自适应上下文压缩、长期记忆等方向。
DeepSeek Harness提供了哪四种运行模式?分别适用于什么场景?
四种模式:标准模式(完整工具组合)、PTC模式(程序化工具调用)、极简模式(仅shell和文件编辑工具,用于基准测试)、创造模式(检查运行时、试验插件)。
如何快速启动DeepSeek Harness的Web UI?
在已安装Node.js的机器上,运行命令 `npx @deepseek-ai/dsh web` 即可拉起Web UI,默认监听 http://127.0.0.1:3080。