DeepSeek Harness:一切皆插件的开源 agent 运行时
内容提要
DeepSeek Harness(dsh)是DeepSeek AI开源的插件化agent运行时,基于Cordis框架,将模型适配器、工具注册表、会话日志和agent循环全部作为插件,支持从配置替换任意层。它通过profile和bundle组合插件树,会话日志作为唯一事实源,确保模型可见状态可重建。工具管线支持作用域注册和守卫式执行,能力接缝实现一次替换搬动整片能力。虽认知门槛高且会破坏兼容,但提供无核心、可快速演化的灵活性。
延伸解读
插件化架构的代价:认知门槛与调试难度
dsh 将一切皆插件的理念推向极致,但这也意味着没有特权内核,所有行为都来自组合出的插件树。要理解系统行为,不能只追踪调用栈,而需审视整棵插件树。--dump-config 命令的存在正说明默认配置难以直观把握。此外,贡献者需先掌握 Cordis 的上下文、服务、inject、事件派发等概念,学习曲线陡峭。这种设计虽灵活,但对小改动而言可能显得笨重,且调试和排查问题的难度增加。
会话日志作为唯一事实源:可重建性与纪律
dsh 强制要求模型可见状态必须能从会话日志重建,这带来可重放、可审计等好处,但也增加了扩展成本。每新增一种模型可见输入,就必须定义新的会话事件并实现从日志渲染的逻辑,不能绕过日志直接注入内容。这种纪律保证了 fork、resume 等操作的确定性,但也要求开发者严格遵守,否则可能破坏系统的一致性。
能力接缝:一次替换搬动整片能力
能力接缝由服务定义、提供方、消费方三角色组成,使得替换一个 provider 就能带动相关能力整体迁移。例如,将文件系统和子进程的提供方指向远程沙箱,Bash、PTY、LSP 等都会随之切换,无需修改各 provider。这种设计适合需要快速演化和灵活定制的场景,但要求新增能力时同时设计三个角色,对小改动而言可能显得繁琐。
Q&A
DeepSeek Harness 是什么?
DeepSeek Harness(命令行叫 dsh)是 DeepSeek AI 开源的 agent harness,基于 Cordis 框架,采用 MIT 许可证,目前处于 developer preview 阶段。它将模型适配器、工具注册表、会话日志和 agent loop 等全部作为插件,支持从配置替换任意层。
DeepSeek Harness 的插件化架构是如何实现的?
DeepSeek Harness 基于 Cordis 框架,将模型适配器、工具注册表、会话日志和 agent loop 等全部作为插件。通过 profile 和 bundle 组合插件树,启动时按固定顺序叠加,并支持 patch 覆盖。核心 service 都是可替换的插件,没有特权内核。
DeepSeek Harness 中会话日志的作用是什么?
会话日志是唯一的事实源,存储追加式的 SessionEvent 日志。模型可见状态都从日志重建,确保可重放、可审计。任何模型可见输入都必须记录在日志中,不能绕过日志。
DeepSeek Harness 中 turn 和 step 有什么区别?
step 是一次模型请求及其触发的工具调用;turn 是零或多个 step,从认领输入开始,到无所亏欠时结束。一个 turn 可能包含多个 step,直到没有欠请求或新输入。
DeepSeek Harness 的工具管线是如何设计的?
工具管线支持作用域注册和守卫式执行。工具可以全局或按 agent 作用域注册,同名时作用域内替换全局。执行时经过 pre-execute 瀑布、守卫、execute 包装器、post-execute 等阶段,守卫只能收紧权限,不能放宽。
DeepSeek Harness 的能力接缝是什么?
能力接缝是可替换的能力,由服务定义、服务提供方和消费方三个角色组成。通过接缝,可以一次替换搬动整片能力,例如将文件系统和子进程指向远程沙箱,Bash、PTY、LSP 等会一起搬过去。
DeepSeek Harness 的 Code Mode 是什么?
Code Mode 是代码执行接缝,允许模型写程序而不是单个工具调用。程序体是 async 函数,宿主注入异步绑定。在 code 模式下,只有带父 token 的调用才能执行原生工具名,模型直接调用会被拒绝。
DeepSeek Harness 的进程沙箱支持哪些后端?
进程沙箱支持 Linux 的 bwrap/Landlock、macOS 的 Seatbelt、Windows 的 ACL 受限令牌三套后端。它只管理文件效果,并报告执法完整度(full 或 partial)。
DeepSeek Harness 的收益和代价是什么?
收益包括:没有需要 fork 的核心、一次替换搬动整片能力、日志提供重放和审计、按 agent 定制不必分进程、可逆 effect 干净拆卸。代价包括:破坏性变更、认知门槛高、间接性导致难以追踪、模型可见即已记录的纪律、接缝最小成本是三个角色。