ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DeepSeek Harness 是什么:一切皆插件的 Agent 底座

DeepSeek Harness 是什么:一切皆插件的 Agent 底座 一句话Model Harness AgentDeepSeek 在 2026 年 8 月 13 日开源了 DeepSeek Harness命令行dshnpm 包deepseek-ai/dshMIT 协议目前是开发者预览版。官方给的公式很短Model Harness Agent。模型是大脑负责推理与决策Harness 是环绕在模型外面的那层控制与编排系统——工具怎么调、任务状态怎么存、循环怎么跑到结束、界面怎么呈现。它和 Claude Code、Codex 的根本区别不在功能清单而在于这一层是不是产品本身。Claude Code 和 Codex 的 harness 是闭源的你只能通过 MCP、扩展 API 去接入核心看不见也改不了。Harness 反过来把 harness 本身开源并且宣称“Everything is a plugin”——模型适配器、工具注册表、技能、会话日志、沙箱、存储、调度、UI乃至 Agent 循环本身全部是插件。你不需要动框架源码就能以配置的方式替换任意一层。内核Cordis 的时间可组合性这层的能力来自 Cordis——一个通用 TypeScript 插件元框架作者是 Koishi跨平台聊天机器人框架社区插件超过 4000 个的作者 ShigmaYifan Shi。DeepSeek 把 Cordis 源码 vendor 进自己仓库改 scope 为deepseek-ai/cordis并让几乎所有自家包都对它设成 peerDependency。设计思想有正式的论文支撑《A Programming Paradigm for Spatiotemporal Composability》arXiv:2608.25512北京大学与 DeepSeek-AI 联合署名2026 年 8 月预印本。论文把动态组合拆成两个正交维度时间可组合性temporal composability组件被移除时它对共享环境做的副作用必须被完整逆转。Cordis 的做法是可逆 effect每一次上下文变换注册服务、挂监听器、占用资源都在运行时登记一个逆操作卸载时按注册的逆序LIFO回滚。空间可组合性spatial composability组件声明依赖依赖的出现 / 消失 / 替换会自动驱动该组件激活或停用。这被称为响应式 coeffect——上下文每次变化都拿组件的依赖规格去比对判定为激活、停用或中性。作者把这两者统一成单一Context类型所有对外的交互都经由它中介论文称之为 “context paradigm”。一个关键洞察是进程重启和容器编排其实是粗粒度的可组合性——OS 能按进程回收资源K8s 能按服务调整依赖拓扑但为删掉一个组件而重启整个进程会丢掉缓存、连接、中间计算。Cordis 想把这个保证下推到进程内组件级别。这解释了 DSH 里几个乍看奇怪的设计每个 Agent 能力都挂在ctx.key服务上。搜索结果显示常见槽位包括ctx.llm模型适配器、ctx.tools工具注册表、ctx.shell、ctx.sessions、ctx.agentLoop、ctx.subagents等各自的提供方都可以被替换。配置即插件树。cordis.yml里一行就是一个插件实例deepseek-ai/dsh-base这类组合包本质是把几十个插件一次性 insert 进空根部署方在自己的 patch 层按 id 覆盖一行即可无需改源码。前端 UI 也是插件。dsh-client-ui-*系列有几十个包浏览器里跑着一个独立的 Cordis 客户端运行时双半插件把宿主半服务端逻辑和浏览器半UI用 RPC 串起来。写一个插件长什么样Cordis 里插件就是一个函数签名通常是(ctx, config)可选声明inject依赖。注册本身就是 effectimporttype{Context}fromdeepseek-ai/cordisexportconstnamegreeter// 声明依赖只有 llm 服务就绪时本插件才激活空间可组合性exportconstinject[llm]exportfunctionapply(ctx:Context,config:{greeting:string}){// 注册服务卸载时自动从服务表撤回ctx.provide(greeter,{greet:(who:string)${config.greeting},${who}!,})// 注册监听器同样是 effect随插件卸载一并移除ctx.on(greet,(who:string)console.log(hello,who))}注册一个模型可调用的工具走的也是同一套机制exportfunctionapply(ctx:Context){ctx.inject([tools],(ctx){ctx.effect(()ctx.tools.register({name:hello,description:greet someone,parameters:{name:{type:string}},asyncexecute(args){returnHello,${args.name}!},}))})}register()返回 disposer插件卸载时工具自动注销tools/result事件让任何插件都能观察每次工具调用而不必认识执行者。事件有四种派发模式emit/parallel/bail/waterfallwaterfall 监听器必须调用next()才继续否则短路。Harness 里最自指的包是deepseek-ai/dsh-tool-cordis它给 Agent 五个工具cordis_inspect只读巡检当前进程哪些服务在跑、各 fiber 状态、注册了哪些工具、cordis_define现场定义一个小插件、cordis_run把宿主半放入node:vm沙箱执行、cordis_stop/cordis_undefine。也就是说Agent 可以在运行中检查自己所在的框架、现场写一个插件、用完卸载全程不改cordis.yml、不装 npm 包、不重启进程。官方文档对信任边界说得很直白动态包与 bash 同权沙箱隔离全局但不构成安全边界。四种模式与真实数据开箱即用的四套预设模式保留的能力适用场景标准模式完整 coding agent文件编辑、shell、搜索、Skills、计划、目标、子 Agent20 工具日常写代码PTC / Code 模式标准能力 通过 Code Mode SDK 让模型生成 TypeScript 编排多次工具调用多步骤、长程任务极简模式只有持久 shell str_replace_editor基准测试、研究模型原生能力创造模式完整能力 运行时巡检、插件实验、Preset 创建开发 Harness / 插件PTC 模式的动机是降低往返次数传统是 LLM→Tool→LLM→Tool 串行中间结果全塞回上下文PTC 让模型先写一段程序把搜索→过滤→读取→修改一次跑完中间结果留在代码环境里只把最终结果返回天然支持Promise.all并行。会话可观测性是另一条主线只追加append-only的会话日志规则是模型看到的一定被记录——系统提示词、思维链、工具调用与结果、子 Agent 调度、每一次上下文注入都在里面可在 Trajectory 视图按来源追溯并支持恢复、分叉、检索、回放。社区整理的官方 leaderboard 给了一组横向数据同一 DeepSeek V4.1 Flash 模型DeepSWE v1.1 resolved / Terminal-Bench 2.1 pass1mini-SWE 74.2/90.3DSH 极简 72.6/90.6DSH 标准 70.5/85.8Claude Code 69.8/88.0DSH PTC 67.6/85.8OpenCode 65.5/85.0。两个可读信号极简模式反而略高于标准模式72.6 vs 70.5且榜首是根本不是给人用的基准专用 harness。这组数字只能当参考——同一模型换 harness 分数区间能拉开十几个点说明模型行不行很大程度上是你拿什么工具跑它。取舍它适合谁优势MIT 协议可 fork 后闭源嵌入企业产品模型无关约 40 家 provider子 Agent 甚至能委派给竞品 agent自托管、可自审计沙箱是真实 OS 级隔离Linux 上用 bwrap LandlockmacOS 上用 SeatbeltWindows 上用受限 ACL token默认 fail-closed能力的可替换性把换模型 / 换沙箱 / 换循环从改装变成配置。代价则集中在三点稳定性。官方明确写了会有破坏性变更。v0.2.1-alpha.1 单次发布就移除了运行时 invariant 插件并重命名了 composer 统计项两者对插件作者都是破坏性的。想稳定就得npx deepseek-ai/dshversion钉版本。安全。OX Security 报告了 CVE-2026-82533CVSS 9.4沙箱内的 shell 能通过 loopback 访问 Harness 未认证的本地控制 API而该 API 把请求里调用方自己提供的Host头当作信任凭据于是一条被诱导的 shell 命令就能把会话设成danger-full-access并关掉审批提示。影响 0.1.1-rc.2 及更早版本官方称在 0.1.2-alpha.1 修复。更普遍的教训是控制平面绝不能落在被约束进程够得着的范围内“能改写自己规则的沙箱是权限 UI不是安全边界”。成熟度。issue tracker 一度关闭星数增长12 小时约 5 万、28 小时约 9.2 万、10 天超 18.6 万、9 月底约 24.2 万衡量的是关注度而非部署量社区也在质疑发布是否存在营销推动。适合谁想自托管、不想被托管端点锁住、需要在自家产品里嵌入 Agent 运行时的团队做 Agent 基础设施或插件生态的开发者以及要研究模型原生能力 vs 脚手架影响的评测方极简模式正为此而生。不太适合只想找一个开箱即用 coding agent 的个人用户——那样 Claude Code / Codex 的完成度更省心。上生产的建议是先在容器或 VM 里验证插件权限模型与第三方插件来源可信度生产凭证不要靠近。安装与上手# 直接跑需要 Nodenpx deepseek-ai/dsh web# 起本地 Web UI默认 http://127.0.0.1:3080# 或从源码构建插件gitclone https://github.com/deepseek-ai/deepseek-harness.gitcddeepseek-harnesspnpminstallpnpmrun buildpnpmdsh web2026 年 9 月 29 日发布的 v0.2 预览还带来了 macOS / Windows 桌面端、无需 Node/pnpm 的应用内插件管理、计划任务以及实验性的异步问答模式等待超时后 Agent 继续干活之后再和用户的回答对账。桌面版在 Hacker News 上拿到 378 分、204 条评论——讨论里认同可观测性与插件模型的人不少但同样多的人在问它真的比别的 harness 更好用吗该不该信任一个权限很宽、还会自我更新的二进制参考链接Shi, Zhang, Cui,A Programming Paradigm for Spatiotemporal Composability, arXiv:2608.25512 — https://arxiv.org/abs/2608.25512deepseek-ai/deepseek-harnessGitHub 仓库— https://github.com/deepseek-ai/deepseek-harnessDeepSeek Harness 官方文档Cordis tutorial — https://github.com/deepseek-ai/deepseek-harness/blob/7a71ab9a92cbb36f5e5e08fe6629ee245b84ac45/docs/cordis-tutorial/index.mdDeepSeek Harness 官方产品页 — https://www.deepseek.com/harness/en/KDnuggets,What I’ve Learned About DeepSeek Harness实测与沙箱细节— https://www.kdnuggets.com/what-ive-learned-about-deepseek-harnesseesel,DeepSeek Harness (dsh) explained: how it works and what it costs定价与开发者反馈— https://www.eesel.ai/blog/deepseek-harnessOX Security 关于 CVE-2026-82533 的分析沙箱控制平面越权— https://www.hotmolts.com/post/-permission-checks-belong-outside-the-model-b2682b7b-bbe9-4aa7-b732-487c3701f34c
返回列表