一切皆插件: DeepSeek Harness 如何重塑 Agent 运行时架构,一篇看懂 DeepSeek 开源的 Agent 运行基础设施DEEPSEEK HARNESS 深度技术解读一切皆插件:DeepSeek Harness 如何重塑Agent 运行时架构从 Cordis 元框架到插件生态,一篇看懂 DeepSeek 开源的 Agent 运行基础设施2026 年 8 月 13 日,在DeepSeek 在发布 V4-Pro 正式版数小时后,以 MIT 协议将 DeepSeek Harness(dsh)开源至 GitHub。这不是又一款聊天外壳,而是一套完整的 Agent 运行时基础设施——基于 Cordis 插件系统构建,秉持"一切皆插件"的设计哲学,首日即斩获数万 Star。本文将从背景、市场、技术、部署、应用、插件生态与战略方向七个维度,进行深度技术解读。01背景:Agent = Model + Harness大模型本身只负责生成下一步内容。一个能读写文件、运行命令、调用外部服务、派出子 Agent 并根据执行结果继续工作的智能体,还需要一套持续运转的控制系统——这就是 Harness。DeepSeek 用一个公式概括了这一分层:Agent = Model + Harness模型是灵魂,Harness 是让灵魂能在真实环境中动手的身体这个定位并非凭空而来。Anthropic 在 2026 年 4 月讨论托管 Agent 时曾指出,Harness 包含了开发者对"模型自身做不到什么"的判断——上下文管理、权限控制、状态保存、错误恢复和循环停止条件。而这些判断会随着模型能力提升而过时。这就点出了 Harness 设计的一个长期矛盾:框架需要提供足够多的控制,同时不能用过度固定的流程限制模型。同一个模型放进不同 Harness,最终表现可能出现明显差异:系统提示词如何组织、工具定义是否清晰、上下文何时压缩、失败后能否重试,都会影响任务成功率、Token 消耗和运行时间。DeepSeek 的 V4 系列模型已经是开源权重、MIT 协议、价格远低于前沿闭源模型,但此前的短板在于 Agent 可靠性——这本质上是一个 Harness 问题。DeepSeek Harness 正是补齐这一缺口的产品,其 GitHub 仓库地址为 deepseek-ai/deepseek-harness,命令行工具名为 dsh。关键时间线• 8 月 13 日白天:DeepSeek 公布 API 调价方案(8 月 17 日起实行峰谷定价)• 8 月 13 日晚:V4-Pro 正式版(DeepSeek-V4-Pro-0813)上线• 8 月 13 日深夜:Harness v0.1 开发者预览版 MIT 协议开源• 一晚三件事叠加,开源首日 GitHub Star 破万02市场情况:开源 Agent 框架竞争格局Agent 运行时层已经聚集了多条技术路线,每条路线背后的商业逻辑截然不同。理解 DeepSeek Harness 的市场定位,需要先看清这张竞争全景图。框架开发者开源协议模型绑定核心特点DeepSeek HarnessDeepSeekMIT模型中立一切皆插件,Cordis 架构Claude CodeAnthropic闭源Claude 系列深度调优的模型+外壳协同Codex / Agents SDKOpenAIApache 2.0GPT 系列Agent 交接、护栏、追踪这张表背后是两种截然不同的商业逻辑。Anthropic 需要 Harness 这层值钱,因为它卖的是模型加外壳的整体方案;DeepSeek 需要 Harness 不值钱,因为这层一旦被拉平为公共品,竞争就被压回模型本身的能力和价格上——而那已经是 DeepSeek 的主场。MIT 协议的选择同样具有战略意义。它是业界最宽松的开源协议之一,允许任何人使用、修改和构建商业产品——与 React、Node.js 等基础工具同源。在 OpenAI 逐渐远离开源、Anthropic 从未拥抱开源、Meta 的 Llama 使用受限自定义协议的背景下,MIT 协议的 Harness 加上 MIT 协议的开放权重,意味着一个团队理论上可以端到端运行一套完整的 Agent 栈,而不依赖任何专有供应商。深层逻辑:DeepSeek 选择在 API 调价的同一个晚上开源 Harness,并非巧合。R1 当年把闭源模型的溢价打下来,这一次 DSH 想把闭源外壳的溢价也打下来。开放权重解决了"谁能运行模型"的问题,开放 Harness 进一步触及"谁能决定模型如何工作"。03技术特点:Cordis 架构深度解析3.1 Cordis 元框架:插件系统的数学根基DeepSeek Harness 建立在名为 Cordis 的插件系统之上。Cordis 来源于拉丁语"心"(heart),其设计理念由 DeepSeek 与北京大学合作的论文 《A Programming Paradigm for Spatiotemporal Composability》(一套处理时空可组合性的编程范式)详细阐述。Cordis 仅负责三件事:加载插件、卸载插件、管理插件之间的依赖。它本身不提供任何 Agent 能力。打个比方,Cordis 是主板插槽,具体能力全靠插上去的插件卡。论文的核心贡献是将类型论中两个经典概念——效应(Effects)和余效应(Coeffects)——适配为 Agent 运行时所需的"可逆效应"和"反应式余效应",分别解决时间与空间两个维度的可组合性问题:时间可组合性Temporal Composability基于可逆效应:每个对上下文的修改都必须配一个显式的逆函数。加载插件时,副作用按顺序叠加成"撤销链";卸载时反向执行,系统状态精确恢复到加载前。空间可组合性Spatial Composability基于反应式余效应:插件声明所需依赖,依赖满足时自动激活,缺失时保持休眠。提供者撤走,依赖者先停下再卸载,拓扑编排全自动推导。这套设计并非实验室玩具。Cordis 的前身已在 Koishi(一个跨平台聊天机器人框架)上运行了四年,积累了超过 4000 个社区插件的生产环境验证。论文作者团队包括北大博士生 Yifan Shi(Koishi 和 Cordis 的创建者)、北大计算机学院副教授张伟,以及 DeepSeek Harness 团队负责人崔添翼(浙大毕业,6 次 ACM 亚洲区域赛金牌,前 Jane Street 量化工程师)。3.2 "一切皆插件":没有什么是焊死的官方文档把这一点列得很直白:从模型到工具、从会话存储到沙箱策略、从调度循环到 Web 界面,每一样都是可插拔的插件,没有谁是焊死在框架里的。可作为插件替换的 Agent 能力清单• Models — 模型后端• Tools — 文件编辑、Shell、搜索• Skills — 可复用能力包• Sessions — 会话与运行状态• Sandboxes — 隔离执行环境• Storage — 文件系统与存储• Loops — Agent 控制流• Scheduling — 子 Agent 调度• UI — 用户界面• Workflows — 工作流编排这句话听着像口号,但它有一个很硬的技术底座叫"可逆副作用":每个插件注册时产生的所有副作用都会被追踪,卸载时自动回收,不留垃圾、不漏内存。翻译成使用体验就是热插拔——装插件、卸插件、换整套 UI,都不用重启。更值得注意的是:连 DeepSeek 自己的模型都没有特殊地位,它也只是又一个插件而已。你想换成 Kimi、GLM 或任何 OpenAI 兼容端点的模型,跟换个主题皮肤是同一个操作。在 Claude Code 里,用哪个模型、有什么能力,全是 Anthropic 定的,用户碰都碰不到;在 DSH 里,这两件事和换桌宠是同一个层级的事。3.3 每次运行可追溯:仅追加的会话日志第二个设计原则是可观测性。模型看到的一切都被记录在一份仅追加(append-only)的会话日志中:系统提示词、推理过程、工具调用及其结果、子 Agent 调度、每一次上下文注入。模型消息历史不是单独存的,而是用 deriveMessages() 从事件日志投影出来。恢复和回放也从同一组事件重新构建。在 Trajectory(轨迹)视图中,开发者可以按来源检查这些记录,并支持 恢复(Resume)、分叉(Fork)、搜索(Search)和重放(Replay)。为什么这很重要:当 Agent 在第几十步做错决定时,开发者可以回到当时模型真正看到的上下文,确认问题来自模型判断、工具返回、提示词变化还是错误的上下文注入。这比那种全程黑盒、最后只甩给你一个结果的工具让人踏实得多。3.4 四种运行模式:四种 Agent 实验方法Harness 内置四种预设模式,本质是四份不同的插件配置清单。官方模式和社区做的整合包在地位上没有任何差别,都是插件组合。模式用途开箱工具标准模式日常 Agent 任务文件编辑、Shell、搜索、技能、规划、子 Agent、工作流Code 模式 (PTC)程序化工具调用Code Mode SDK,模型生成 TS 脚本编排多步操作极简模式基准测试仅一个持久 Bash + 一个 str_replace_editor创造模式构建自定义模式运行时检查、内存内插件试验、预设组装其中 PTC(Programmatic Tool Calling,程序化工具调用) 值得特别关注。普通模式下模型每调一次工具就得跟客户端来回一次,十次工具十轮往返;PTC 换了个思路,让模型直接产出一段 TypeScript 脚本,把这些操作串起来一次跑完。相当于模型从"逐条下指令的实习生"变成"自己写脚本批量跑的工程师"。好处是快、省 Token,坏处是这段代码跑起来需要配套好沙箱和权限策略。极简模式同样值得标记。DeepSeek 官方的 Code Agent 基准测试就是在"Harness 极简模式"下运行的——这也是为什么你的生产环境数据很大程度上取决于你实际使用的 Harness 和脚手架,而不能简单等同于官方基准分数。3.5 与 MCP 的关系:不同层级的互补"一切皆插件"很容易让人联想到 MCP(Model Context Protocol),但两者解决的问题并不相同。MCP 是连接 AI 应用与外部数据、工具和工作流的开放标准,重点是统一连接方式。Harness 负责更上层的运行逻辑:什么时候把工具交给模型、调用前是否需要审批、结果如何写入会话、失败后是否重试、Agent 何时派出子任务、在什么条件下停止。层级关系:MCP 服务器可以作为 Harness 中的工具来源,Skills 可以作为能力包,Cordis 插件负责把模型、工具、状态、循环、界面和政策组合成一个可运行的 Agent。换言之,MCP 解决"如何连接",Harness 解决"如何运行"。04部署和使用方法4.1 四种安装方式DSH 的安装门槛在主流 Agent 框架里算低的。前置条件:Node.js v22.19 以上或 v24 以上版本(用 node --version 确认)。以下四种方式按需选择:方式命令适合场景npx 一键启动npx @deepseek-ai/dsh web快速体验全局安装npm i -g @deepseek-ai/dsh && dsh web日常使用、固定版本源码构建git clone + pnpm build读源码、追最新提交Python SDKpip install deepseek-harness-sdk嵌入 CI/CD 或脚本# 从源码构建git clone https://github.com/deepseek-ai/deepseek-harness.gitcd deepseek-harnesspnpm installpnpm run buildpnpm dsh web启动后浏览器打开 http://127.0.0.1:3080 即可访问 Web UI。默认地址为本地回环,不对外暴露。Windows 用户优先使用 Web UI 方式,Python SDK 在 Windows 原生环境下的兼容性尚未全面验证。4.2 三步开聊:配置到运行第一步:配 API Key。 进入 Settings → Models,找到 DeepSeek 卡片,填入 sk-... 并保存。Key 存在本地配置目录,界面只显示脱敏后的描述符。也可以接入其他 OpenAI 兼容模型。第二步:选工作区。 点击"选择工作区",添加想让 Agent 操作的项目目录。在哪个目录启动 dsh web,该目录即为默认工作区,但需手动点选才能解锁输入框。第三步:派活。 输入任务描述(如"总结这个仓库,告诉我主要的包结构"),Agent 开始读文件、跑命令、维护执行计划。涉及写操作时,UI 会按权限策略弹出审批,不会偷偷改文件。4.3 Python SDK:嵌入脚本与 CI/CD# Python SDK 示例from pathlib import Pathfrom deepseek_harness import DeepSeekHarnesswith DeepSeekHarness( provider="deepseek-official", model="deepseek-v4-flash", max_tokens=49_152, cwd="/path/to/workspace", session_root="/path/to/sessions", cordis="minimal.cordis.yml",) as harness: result = harness.run("Fix the failing tests.", session_id="example-001", )print(result.final_response)复用同一个 harness 与 session_id 会保留该会话的 Bash 进程(包括工作目录、已导出变量与 shell 函数)。独立任务应使用新的 session_id;只有需要延续同一段持久化对话时才复用原有 id。4.4 插件开发:从最小插件到完整生命周期在 Harness 中,插件是一个导出 apply 函数的 TypeScript 模块。框架加载时调用 apply,传入上下文对象 ctx,通过 ctx 注册能力:// 最小插件结构import type { Context } from'@deepseek-ai/cordis'export const name = 'my-plugin'export functionapply(ctx: Context) {// 在这里注册能力}通过 ctx.effect() 告诉框架如何清理资源,通过 inject 声明依赖,通过 Schema 定义配置结构。Cordis 在加载时会自动验证并填充默认值,卸载时自动执行逆函数回收资源——这就是"可逆副作用"在代码层面的体现。05应用案例分析5.1 实战数据:99% 缓存命中率的背后一位开发者在开源首夜使用 DSH 开发了一只像素鲸鱼桌宠插件,整个过程的数据被 Trajectory 状态栏完整记录。这组数据揭示了 Agent 场景下 Token 消耗的真实面貌:6轮对话115执行步骤99%缓存命中率145tok/s 输出速度15.4M输入 Token1.16M输出 TokenLLM 思考 16m20s · 工具调用 2m33s · 首 Token 平均 1.6s最扎眼的是 99% 的缓存命中率。1540 万输入 Token 里只有不到 1% 是真正新发给模型的,其余 99% 全是前缀缓存兜住的。DeepSeek 的缓存命中输入价比未命中价低一到两个数量级,这意味着实际输入成本只有全 miss 的零头。99% 这个数字不是手动调出来的,而是 DSH 的架构天然喂出来的。每一回合请求,系统提示词、工具定义、已注入的 Skill、会话历史这些内容全部排在消息序列最前面,并且只要不在中途切模型、切模式,它们字节级不变——这就是前缀缓存最理想的命中对象。DSH 的 Trajectory 机制把模型看到的一切按顺序写进仅追加的事件日志,前缀天然不会乱序。5.2 基准测试场景:极简模式的评测价值极简模式的设计初衷是为模型基准测试提供一个干净的环境。它只保留一个持久 Bash 和一个文件编辑器(str_replace_editor),尽量减少外围工具差异,使评测更接近对模型自主规划、代码修改和终端操作能力的直接观察。评测启示:DeepSeek 官方公布的 Code Agent 基准分数就是在 Harness 极简模式下运行的。这意味着当你看到模型评测数据时,需要意识到其中多少来自模型本身、多少来自 Harness 脚手架。DSH 的可替换架构恰好让这种分离成为可能——固定模型换 Harness,或固定 Harness 换模型,都能得到清晰对比。5.3 自进化演示:创造模式的实验性创造模式是四种模式中最具实验性的。Agent 可以检查当前运行时状态,在内存中试验 Cordis 插件,再组合出新的运行模式。官方开发文档已经提供一个"自指式" Cordis 演示,允许 Agent 检查和修改正在运行的插件环境。这为 Harness 的自我调整留下了接口。论文指出,未来的 Agent 可能会根据任务自己生成一个工具、自己把工具装进运行时、发现有问题后再自己把它替换掉。如果每次改一行代码都要重启整个进程,之前积累的上下文和缓存全部可能崩掉——而 Cordis 的可逆效应正是为解决这一问题而设计的。06插件市场:蓬勃发展的生态社区反应速度惊人。36 氪 8 月 13 日当晚实测时,一个目录已收录 288 个插件仓库;到次日,GitHub 上打 dsh-plugin 标签的仓库已超过 1000 个,且仍在快速增长。官方建议插件仓库添加该标签以提升可检索性,同时提供 Discord 社区和 GitHub Discussions 作为交流渠道。6.1 社区插件分类概览视觉与多模态dsh-vision-toolkit — 给纯文本模型加一双眼睛,支持带意图的图片问答、长截图 OCR、UI 还原、像素对比界面增强dsh-TUI — Claude Code 风格全屏终端,流式思考展开、双击 Esc 回退、TPS 表dsh-web-ui — 任务看板、Git 图谱、手机端远程界面、实时 Token 统计、皮肤中心DSH-better-sidebar — 侧边栏改造为完整工作台,内置文件编辑器、终端、Git 面板趣味与桌宠dsh-ui-whale — 会话标题栏养一只手绘像素鲸鱼,思考时动,回合结束喷水whale-girl — QQ 宠物形态的鲸鱼娘桌宠,能拖拽、投喂、互动dsh-ads — 给界面加 2005 年中文网站风格广告,纯粹抽象艺术(甚至有人做了去广告插件)远程渠道与机器人qqbot / dsh-weixin-bot / dsh-feishu-bot / dsh-wecom-bot / telegram — 装上后 DSH 变成可在 QQ 群、飞书、企业微信、Telegram 中被 @ 的机器人沙箱与安全多种社区隔离方案,从轻量容器到内核级强制访问控制;已有第三方团队发布 13 个可复现的攻击链 demo 和实时验证产物6.2 插件安装:自然语言驱动装插件这件事本身也很 DSH——不用自己翻文档拼命令,把仓库地址丢给对话框里的 Agent,用大白话说"帮我装这个",它自己读完 README 就把活干了。遇到要改配置或重启时会停下来等你批权限。不想要了也是一句话卸载。安全提示:插件能碰你的 Shell 和文件系统,第三方插件装之前请看一眼源码。一个工具插件可以接触文件和外部服务,一个存储插件掌握完整会话,一个循环插件可能改变 Agent 的决策路径。插件来源验证、权限边界、依赖冲突、版本兼容和供应链安全,都会成为生态能否进入生产环境的前提。开放程度越高,治理成本也越高。07战略方向:开源竞争的下半场7.1 独立品牌:黑色鲸鱼的信号DeepSeek 为 Harness 单独开设了微信公众号"DeepSeek Harness 团队",使用黑色鲸鱼作为标识,与 DeepSeek 模型产品沿用的蓝色鲸鱼形成明显区隔。独立品牌区隔的背后,是 DeepSeek 希望为 Harness 建立独立的开发者沟通渠道,并围绕它持续经营生态的战略意图。7.2 生态价值:谁掌握 Harness,谁更接近任务入口当 Agent 开始执行持续数小时甚至数天的任务时,模型只是系统中的一个组件,运行层会越来越多地决定能力上限和使用边界。"一切皆插件"给了开发者更大的改造空间,但 MIT 许可证只能降低采用门槛,无法自动形成生态。开发者是否愿意持续维护插件、企业是否敢把生产权限交给第三方组件、插件能否跨版本稳定运行,才会决定这套架构能走多远。三层价值结构第一层 · 模型与运行环境分离保留同一套会话、工具和权限体系,只替换模型适配器;或固定模型,比较不同上下文管理或 Agent 循环的效果第二层 · 企业保留自己的基础设施沙箱、存储、审批、凭证和遥测都能作为插件存在,可接入内部权限系统与审计要求第三层 · Agent 能力形成独立生态开发者无需维护 Harness 的分叉版本,只需发布插件;官方通过 dsh-plugin 标签建立可检索的插件生态7.3 自进化:终极野心Cordis 论文最深层的目标是自进化。当前的创造模式已经允许 Agent 检查运行时、在内存中试验插件、组合新的运行模式——这是"自我进化"的雏形。如果 Agent 能根据任务自己生成工具、自己安装进运行时、发现问题后自己替换掉,且每次变更不需要重启整个进程(上下文和缓存得以保留),那么一个真正动态的、自迭代的 Agent 系统就有了工程基础。论文也坦承了当前的局限:目前只有 Koishi 单一生态、TypeScript 单一语言的验证数据,缺乏与替代架构的受控对比。但它指出了一条新方向——一套服务于自进化的 Agent Harness 基础设施。7.4 当前状态与风险提示官方 README 用全大写字母写了一句话:THERE WILL BE COMPATIBILITY-BREAKING CHANGES。当前版本号为 0.1.0-rc.5,GitHub Releases 页面仍为空,处在 v0.1 系列的候选和快速迭代阶段。核心插件和 API 将持续演进,不宜将其接入生产关键路径。已知风险清单1. Node 版本要求:需 v22.19 以上或 v24+,低版本会报不明错误2. Bash 空转 Bug:某些情况下 Agent 会反复执行空 Bash 命令,需手动中断3. 安全攻击面大:插件可接触 Shell 和文件系统,第三方插件需审查源码4. Windows 兼容性:Python SDK 在 Windows 原生环境下未全面验证5. 仅追加日志的数据治理:完整事件流可能包含代码、凭证线索和内部文件内容结语总结与展望DeepSeek Harness 将开源竞争推进到了模型之外。开放权重解决了"谁能运行模型"的问题,开放 Harness 进一步触及"谁能决定模型如何工作"。从 Cordis 的时空可组合性到 99% 的缓存命中率,从四种运行模式到超过千个社区插件,DSH 展示了一种不同于闭源 Agent 工具的可能性:把运行时层变成可组合的公共品,让竞争回到模型能力和价格的主场。当然,v0.1 仍是一张设计蓝图。破坏性变更将至,安全治理待完善,跨版本稳定性未经验证。但方向已经清晰:当一个 MIT 协议的 Agent 运行框架被全世界开发者共同塑造时,闭源外壳的溢价空间正在被压缩——正如 R1 曾经压缩了闭源模型的溢价一样。