暂无菜单项

DeepSeek Harness开源:把Agent Loop、工具与工作流全部变成插件

发布于 更新于
187
DeepSeek Harness官方README与开发者预览提示
DeepSeek Harness官方README与开发者预览提示

DeepSeek这次开源的不是一个新模型,也不只是又一层API封装,而是一套可以真正承载编码Agent的应用框架:DeepSeek Harness。它把模型连接、文件系统、Shell、LSP、子智能体、工作流、界面、权限和Agent Loop都拆成插件,再通过Cordis微内核组合起来。

更新说明:本文新增“插件”概念拆解、Pi Coding Agent对比、Cordis服务树、seam接口以及Step/Turn事件流。项目入口请使用 DeepSeek Harness站内导航

项目目前仍是开发者预览版,官方明确提醒后续会出现破坏兼容性的改动。想先了解DeepSeek模型与入口,可以查看https://www.zuoshipin.com/link/873.html;准备接入生产流程前,则应锁定版本并在隔离环境测试。
DeepSeek Harness开源消息与开发者讨论
DeepSeek Harness开源消息与开发者讨论
DeepSeek Harness项目标识
DeepSeek Harness项目标识

一、先看实测:它已经能连续完成复杂生成任务

在文章记录的一次测试里,DeepSeek Harness连接DeepSeek-V4-Flash后,用三十多分钟完成了一个第一人称僵尸射击游戏。测试过程中没有人工接管,Agent自行创建项目、编写代码、调用工具并持续修正结果。

使用DeepSeek Harness生成第一人称僵尸射击游戏的实测画面
使用DeepSeek Harness生成第一人称僵尸射击游戏的实测画面

随后又用“一句话生成华强买瓜3D动画”的方式做了对比。Harness能够给出完整场景、人物、镜头和对白节奏,并继续迭代可运行结果。文章同时展示了其他Agent在相同题材上的输出,用来观察执行链路与成片差异。

DeepSeek Harness生成的华强买瓜三维动画画面
DeepSeek Harness生成的华强买瓜三维动画画面
同一任务下另一款Agent生成的华强买瓜动画画面
同一任务下另一款Agent生成的华强买瓜动画画面
DeepSeek Harness生成动画的另一处镜头
DeepSeek Harness生成动画的另一处镜头
这些结果属于单次体验记录,并非统一硬件、统一模型、统一预算下的控制变量基准。尤其与Codex等产品比较时,更值得关注的是工具编排、失败恢复和过程可追溯性,而不是只看一张最终截图。相关产品介绍可查看https://www.zuoshipin.com/link/1474.html

二、Harness到底是什么:SDK、运行时和应用框架的组合

Harness可以连接DeepSeek及其他模型,让模型读取和修改文件、运行命令、调用开发工具,并通过任务、子智能体和工作流完成长链路执行。它同时提供Web UI、终端TUI、Headless模式以及自动化协议,因此同一套核心能力可以进入本地开发、CI任务或外部系统。

DeepSeek Harness仓库目录与模块布局
DeepSeek Harness仓库目录与模块布局

仓库并不是一个小型演示项目。代码分布在packages、apps、examples、python、native、vendor和website等目录中,核心能力与界面实现被拆成大量独立工作区。这样的组织方式说明它的目标不是做一个固定聊天窗口,而是成为可二次开发的Agent底座。

Web界面中的模型与配置选择
Web界面中的模型与配置选择
DeepSeek Harness中文项目说明
DeepSeek Harness中文项目说明

三、“一切皆插件”,甚至Agent Loop也是插件

Harness运行时本质上是一个Cordis Context。插件可以在Context中注册服务、事件和能力,其他插件再通过明确接口消费它们。核心包负责Session、System Prompt、Tools、Agent和Agent Loop;外围包再补上模型适配、Shell、文件系统、LSP、Web、Skill、Subagent和Workflow。

Harness运行时工具调用与事件记录界面
Harness运行时工具调用与事件记录界面

接口、实现、消费者分开

以Bash工具为例:上层先定义工具接口,本地进程插件负责执行,模型侧只看到整理后的工具Schema。如果团队要把本地Shell替换为容器、远程渲染节点或受控执行服务,可以保留调用接口,只替换底层实现。

用cordis.yml声明式组合

插件拥有稳定ID和参数,cordis.yml负责决定加载哪些插件、传入什么配置。相同代码可以组合成TUI、Web、Headless、ACP或JSON-RPC应用。配置覆盖采用整段替换而非深度合并,凭据建议通过DEEPSEEK_API_KEY或独立凭据文件注入,不应直接写进仓库。

从工程角度看,插件化的真正价值不是“扩展数量多”,而是把模型、工具、安全边界和交互界面拆开。这样升级模型或更换执行环境时,不必重写整个Agent。

四、Agent Loop如何运转:Turn、Step与完整事件流

一次任务由Turn和Step推进。模型输出的文本片段、消息、工具调用、工具结果以及结束原因都会进入事件流。工具调用还要经过前置策略、单调安全守卫、实际执行、后处理、内容清理和通知。可并行的只读工具可以同时运行,会改变状态的调用则成为屏障,避免并发写入把项目推向不可控状态。

运行中新增的用户指令可以排队到下一轮,也可以注入当前上下文或作为Steering立即改变执行方向。回执会记录模型究竟在哪一步看到了新指令,这对排查“为什么Agent没有按最新要求执行”非常重要。

五、Session Log不是聊天记录,而是权威事件源

Harness将Session Log设计为只追加的权威记录。环境信息、模型请求、内容分片、工具调用与结果、压缩、权限、取消等都会被保存,因此系统可以重建模型当时真正看见的上下文,而不是只留下整理过的对话文本。

日志支持JSONL和SQLite后端,可用于Resume和Fork;SQLite还提供全文检索。对于长时间运行的工程任务,这意味着失败后可以从边界恢复,也能从已完成节点分叉出另一条方案,而不必把全部背景重新塞给模型。

六、子智能体与工作流:把长任务拆开,但保留边界

subagent子智能体能力族与调用方式
subagent子智能体能力族与调用方式

子智能体可以从新上下文启动,也可以从已完成边界分叉,或通过ACP连接外部进程。每个子智能体能够拥有独立的上下文、工具和系统提示词,避免所有任务共享一个不断膨胀的对话。目标、计划、Todo和后台任务也被区分处理。

多个子智能体并行执行任务的过程记录
多个子智能体并行执行任务的过程记录
workflow动态工作流能力族
workflow动态工作流能力族

Workflow用于定义更稳定的多步流程,适合把调研、编码、测试和交付串成可复用管线。子智能体擅长分工,工作流负责顺序与依赖;两者结合后,Agent不再只是边聊边写代码,而是接近可观测的任务系统。

七、四种预设与多种界面

DeepSeek Harness Web工作台界面
DeepSeek Harness Web工作台界面

Web UI默认运行在127.0.0.1:3080,并提供Standard、PTC、Minimal和Creative四类预设。Standard覆盖常用编码工具;PTC通过Code Mode SDK和TypeScript run_code编排多步工具;Minimal只保留持久Bash与编辑器;Creative允许检查Cordis运行时并动态挂载临时插件。

不同Agent预设与工具组合
不同Agent预设与工具组合
Agent配置与系统提示词编辑界面
Agent配置与系统提示词编辑界面
长任务执行、文件修改与过程记录界面
长任务执行、文件修改与过程记录界面

终端用户可以使用TUI,CI或一次性任务可用Headless;需要与编辑器、自动化平台或Python程序整合时,则可以选择ACP、JSON-RPC或Python SDK。界面不是核心能力的唯一入口,而是同一运行时上的不同消费者。

DeepSeek Harness终端TUI运行界面
DeepSeek Harness终端TUI运行界面

八、Cordis微内核:让插件在时间和空间上可组合

Cordis入门文档与微内核工作模式
Cordis入门文档与微内核工作模式

Cordis强调服务、作用域、事件和生命周期的组合。插件可以在特定上下文中出现,也可以随着任务阶段挂载或卸载。这解释了Creative模式为何能让Agent检查运行时、生成临时插件并动态加载能力。

Cordis时空可组合编程范式论文
Cordis时空可组合编程范式论文

对开发者而言,这种设计把传统“启动时固定全部依赖”的应用,变成可以随任务上下文变化的系统。代价也很明确:生命周期、插件依赖、事件顺序和兼容性更复杂,开发者预览阶段尤其需要严格锁版本与测试。

九、安全边界:能运行命令,就必须把权限当成产品能力

DeepSeek Harness工作区权限与访问范围设置
DeepSeek Harness工作区权限与访问范围设置

默认workspace-write只允许在工作区和批准的临时目录写入,并在敏感操作前请求确认;danger-full-access则需要明确开启。文件系统、Bash和子进程共享同一沙箱边界,如果无法确认隔离有效,系统应当失败关闭,而不是悄悄退化为无保护执行。

Creative模式和danger-full-access适合高信任实验,不适合直接放在存有客户素材、项目母版和生产凭据的主工作站。建议在项目副本、容器或独立账号中运行,启用版本控制与备份,并把删除、覆盖、发布和费用调用设为人工审批。

十、对CG与后期团队意味着什么

对于CG、视效和视频后期团队,Harness最有价值的不是代替艺术家做审美决定,而是把脚本、素材检查、日志分析和重复操作纳入可审计流程。例如Agent可以检查工程目录和命名、分析转码或渲染失败日志、修改管线脚本、生成代理文件任务、整理镜头元数据,并把每次工具调用留在Session Log中。

  • 把本地Shell插件替换为容器、渲染农场或受控任务队列,减少Agent直接触碰主工作站。
  • 用LSP与文件系统插件维护Python、TypeScript或DCC管线代码,同时保留修改和测试记录。
  • 让子智能体分别处理入库、代理文件、元数据、QC和交付检查,但把写入冲突与不可逆操作设为屏障。
  • 用Session Log复盘Agent看见了什么、执行了什么,方便团队审核自动化流程,而不是只验收最终文件。

十一、快速启动与现阶段判断

官方给出的最短启动方式是先安装Node.js,然后运行npx @deepseek-ai/dsh web。启动后默认在本机3080端口打开Web UI。若从源码运行,则需要克隆仓库、安装pnpm依赖并完成构建。

DeepSeek Harness采用MIT许可,但目前仍会快速迭代并发生不兼容改动。更适合开发者试验架构、制作插件和验证工作流,暂时不宜在没有版本锁定、隔离、监控与回滚方案的情况下承担关键生产任务。

补充理解:Harness就是让模型真正“上岗”的配套系统

可以把模型看成新员工:模型决定它有多聪明,Harness负责工位、电脑、文件、账号、权限、流程、历史记录与失败恢复。只有这套配套存在,模型才能从“会回答”变成“能读取资料、采取行动、观察结果并继续执行”的Agent。

因此,同一个模型放进不同Agent产品,体验可能完全不同。差别不只来自提示词,而是工具、上下文、会话、沙箱、审批和Agent Loop如何组合。

DeepSeek Harness万物皆插件架构主题
模型能力与Harness工作配套关系示意

传统插件是添砖加瓦,DSH把办公室本身拆成模块

Chrome扩展建立在完整浏览器之上:插件卸载后,浏览器仍然知道怎么打开网页。很多Agent工具、MCP、Skill、Hook和Subagent也符合这种模式——它们增加能力,却不改变主循环、会话存储和沙箱的底层规则。

DeepSeek Harness更激进。模型、文件系统、Shell、Session、Prompt组装、沙箱、调度、界面甚至Agent Loop都可以由插件提供。“插件”不再只是外围功能,而是构成Harness本身的模块。

传统软件插件与DeepSeek Harness插件理念对比

Pi与DSH:一个把核心做薄,一个把地基拆成砖

Pi Coding Agent默认只给模型read、write、edit和bash四个核心工具,子智能体、计划、Todo、MCP、权限闸门、SSH与沙箱交给TypeScript扩展。它用极小核心换取可理解性和扩展自由。

但Pi的会话树和主循环仍由核心决定。DSH进一步把Session Log、Agent Loop、提示词组装和执行世界本身也变成插件。Pi更克制、更容易稳定;DSH自由度更高,同时更容易遇到版本错配、依赖冲突和调试复杂度。

Pi Coding Agent极小核心与四个默认工具
Pi扩展系统与DeepSeek Harness插件层级对比

Cordis如何实现可插拔:共享ctx、依赖注入与自动回收

一个运行中的DSH,本质上是启动时组合出来的Cordis服务树。插件把能力挂到共享上下文ctx,并通过inject声明依赖。只有依赖满足时插件才激活;卸载时,它注册的工具、事件监听、Prompt片段和服务实现会被一并回收。

这种“注册可撤销”非常重要。插件不只是把代码塞进全局状态,而是拥有明确生命周期,使运行时可以按作用域加载、替换和销毁能力。

Cordis共享上下文ctx与插件依赖树

真正承担替换的seam:接口、提供方与消费者

DSH把可替换连接称为seam,由Service Definition、Service Provider和Consumer三类角色组成。Definition声明稳定接口,Provider给出具体实现,Consumer通常表现为模型可见的工具。

例如文件系统和子进程如果共享同一个执行世界,把Provider从本地环境换成远程沙箱后,Bash、PTY和LSP可以一起迁移,不必为每个工具分别复制一套代码。被插件化的不是电脑或沙箱本体,而是Harness与它们连接的方式。

DeepSeek Harness seam接口提供方消费者结构
更换执行环境后Bash PTY和LSP协同迁移

Step与Turn:插件可以介入Agent决策链的内部

Step是一轮模型请求加上由它触发的工具调用;Turn从领取输入开始,到不再欠任何后续工作为止,可能包含多个Step。执行事件会经过pre-step、request、LLM流式输出、工具调用、执行前、执行与执行后等阶段。

部分事件采用瀑布式传递,监听者需要显式调用next()才能继续。这使审批、上下文注入、工具改写甚至拒绝输入都可以作为插件实现,而不是修改产品核心代码。

DeepSeek Harness Step与Turn事件流

Session Log为何必须是仅追加的权威事件源

DSH强调“model-visible means logged”:任何模型可见内容都必须能从Session Log重建。会话不是整理后的聊天记录,而是仅追加事件流;恢复、分叉、回放、遥测和持久化都消费同一份事实。

这种约束减少了“运行时偷偷往Prompt塞内容、事后却无法解释”的问题。代价是新增模型可见输入时,必须扩展正式事件类型和投影逻辑,开发门槛更高。

DeepSeek Harness Session Log与deriveMessages投影

配置层组合:bundle、profile与可见的最终服务树

Bundle是一批Cordis配置与代码,Profile按顺序叠加Bundle,再接用户的cordis.patch.yml。后加载层可以按ID覆盖前面的配置。开发者可以用下面的命令查看机器最终启动的组合:

dsh --profile web --dump-config

当最终服务树可以被打印和审计,“可组合”才不只是宣传。团队也更容易确认当前模型、沙箱、权限、工具与界面究竟来自哪些插件。

DeepSeek Harness bundle profile与配置覆盖顺序

自由度的代价:版本、权限和调试复杂度都会上升

彻底可替换不自动等于更好用。开发者预览阶段可能出现破坏兼容性改动;接口拆得越细,越容易遇到插件版本错配、生命周期顺序、依赖冲突和难定位故障。

建议锁定版本、从最小Profile开始、记录最终配置树、为高风险工具保留人工审批,并把第三方插件放进隔离工作区测试。想查看成熟插件案例,可进入DeepSeek Harness插件生态整理

DeepSeek Harness插件生态与工程使用边界

结语

DeepSeek Harness最值得关注的地方,不是它又做了一个“像Codex的界面”,而是把模型、工具、Agent Loop、会话日志、子智能体、安全策略和交互入口都变成可替换部件。对于希望把AI真正接进工程系统的团队,这种可组合、可审计的底层能力,往往比一次漂亮Demo更重要。

常见问题(FAQ)

DeepSeek Harness是什么?
它是DeepSeek开源的Agent Harness与应用框架,可连接模型、文件系统、Shell、LSP、子智能体和工作流,并提供Web、TUI及自动化接口。
DeepSeek Harness只能使用DeepSeek模型吗?
不是。模型适配也是插件,框架可以接入DeepSeek及其他模型,具体可用能力取决于所安装的适配插件和配置。
“一切皆插件”具体是什么意思?
模型、工具、文件系统、Shell、界面、子智能体、工作流乃至Agent Loop都通过插件提供,可在统一Cordis Context中声明式组合或替换。
Web、TUI和Headless模式有什么区别?
Web适合浏览器交互,TUI适合终端工作,Headless适合CI和一次性自动化;它们共享同一套核心运行时能力。
DeepSeek Harness适合直接用于生产项目吗?
当前仍是开发者预览版并可能出现不兼容改动。生产使用前应锁定版本,在隔离环境测试,采用最小权限、人工审批、日志审计和可回滚方案。
0 点赞
0 收藏
分享
0 讨论
反馈
热门资讯
相关素材