DeepSeek Harness:把Agent核心循环做成插件,重新定义Agent架构

文章目录

  • [1. 做Agent的经典死局,十团队九个踩](#1. 做Agent的经典死局,十团队九个踩)
    • [1.1 一个核心,两个产品,最后必分叉](#1.1 一个核心,两个产品,最后必分叉)
    • [1.2 以前的插件系统,都在边缘挠痒痒](#1.2 以前的插件系统,都在边缘挠痒痒)
  • [2. 真正的狠活:连核心循环都是可插拔零件](#2. 真正的狠活:连核心循环都是可插拔零件)
    • [2.1 "万物皆插件",真不是营销话术](#2.1 “万物皆插件”,真不是营销话术)
    • [2.2 五大核心能力,全是平等的插件](#2.2 五大核心能力,全是平等的插件)
  • [3. 靠什么撑住?Cordis管的不止是注册](#3. 靠什么撑住?Cordis管的不止是注册)
    • [3.1 不是简单的容器,是管全生命周期的](#3.1 不是简单的容器,是管全生命周期的)
    • [3.2 理念很先进,但边界要认清](#3.2 理念很先进,但边界要认清)
  • [4. 五个构件,拼出一个完整的可运行产品](#4. 五个构件,拼出一个完整的可运行产品)
    • [4.1 Profile:先选好你的产品套餐](#4.1 Profile:先选好你的产品套餐)
    • [4.2 Bundle:打包好的可复用能力集合](#4.2 Bundle:打包好的可复用能力集合)
    • [4.3 Patch:精准替换,不是瞎合并](#4.3 Patch:精准替换,不是瞎合并)
    • [4.4 Capability Seam:把接口和实现彻底拆开](#4.4 Capability Seam:把接口和实现彻底拆开)
    • [4.5 Event Log:大家共用同一本账本](#4.5 Event Log:大家共用同一本账本)
  • [5. 灵活不是免费的,复杂度只是换了地方](#5. 灵活不是免费的,复杂度只是换了地方)
    • [5.1 好处确实香,边界切得很细](#5.1 好处确实香,边界切得很细)
    • [5.2 代价也很实在,坑都在看不见的地方](#5.2 代价也很实在,坑都在看不见的地方)
  • [6. 现在要不要上车?对号入座就行](#6. 现在要不要上车?对号入座就行)
    • [6.1 这几类情况,可以大胆试试](#6.1 这几类情况,可以大胆试试)
    • [6.2 这些场景,别瞎凑热闹](#6.2 这些场景,别瞎凑热闹)
    • [6.3 关键生产环境?先等等](#6.3 关键生产环境?先等等)


P.S. 无意间发现了一个巨牛的人工智能教程,非常通俗易懂,对AI感兴趣的朋友强烈推荐去看看, 传送门https://blog.csdn.net/HHX_01

做过Agent产品的程序员,大概率都懂那种越做越心累的感觉。一开始就一个核心类,啥功能都往里塞,写的时候行云流水,等要做第二个产品线,当场就卡壳。

1. 做Agent的经典死局,十团队九个踩

1.1 一个核心,两个产品,最后必分叉

举个最常见的场景:同一个团队,要做两款Agent产品。

一款走Web界面,会话存在SQLite里,允许跑命令行、操作文件;另一款只跑一次性任务,数据写进JSONL,严禁碰本地Shell,纯靠Python SDK调用。

要是模型、循环、工具、存储、界面全揉在一个Agent类里,最后基本只有两个下场。

要么就是代码里堆满天眼if else,跟千层饼似的,加个小功能要翻三层判断,改个bug手心冒汗,生怕把另一条线搞崩。

要么就是直接fork一份代码,各玩各的。改着改着就发现,本来是孪生兄弟,半年之后见面都得递名片------你这bug我上周刚修过?哦不对,我这边逻辑改了,不算同一个问题。

说白了,就是核心焊死了,想做差异化,要么往里面塞垃圾,要么直接分家。

1.2 以前的插件系统,都在边缘挠痒痒

也不是没人想解决这个问题,市面上的插件框架一抓一大把。

但大多都有个默认规矩:核心循环不能动,你只能在周边加工具、加搜索、加第三方集成。就像给房子换家具贴壁纸,承重墙你半毛钱不敢碰。

直到DeepSeek把Harness放出来,直接掀了桌子:别搞什么核心不可动摇了,连Agent Core本身,我都给你做成插件。

2. 真正的狠活:连核心循环都是可插拔零件

2.1 "万物皆插件",真不是营销话术

很多人一听插件化,第一反应就是"哦,又能多装几个工具了"。格局小了。

DeepSeek说的Everything is a Plugin,是真的把底都掀开给你看了:模型适配器、Agent主循环、会话日志、工具注册表、甚至产品入口界面,全都是插件,全能通过配置替换。

以前的插件系统是智能手机装APP,系统本身你改不了;这波直接把手机系统、主板、基带都做成可插拔模块了,你看哪个部件不顺眼,直接拔下来换个新的。

2.2 五大核心能力,全是平等的插件

具体到核心部件,一共五个,全在同一套插件语义里,没有谁高人一等。

第一个是LLM适配器,统一管消息格式、流式输出和模型协议,换模型后端不用动半行循环代码。

第二个是Agent Loop,就是收输入、调模型、跑工具、判断停不停的主逻辑。以前这是Agent的心脏,碰都碰不得,现在就是个普通插件。

第三个是Session Log,存每一轮的消息、步骤和工具事件,存储后端可以单独演化,不用跟循环绑死。

第四个是工具注册表,管工具的Schema汇总和执行流水线,工具、执行方式、调用策略不用全塞在一个类里。

第五个是入口层,Web、无头模式、SDK都能用同一套底层,不用各自复制一份核心代码。

最离谱的就是Agent Loop都能换。正常插件系统哪有动主循环的?相当于你玩卡牌游戏,不仅能换卡牌,连回合制规则都能直接改成即时制。

当然了,能插不代表随便插个东西都能跑。错误处理、流式事件、安全策略、状态格式,这些都得按契约来,不然插上去直接冒烟。拆成模块是架构本事,能稳定组合才是工程实力。

3. 靠什么撑住?Cordis管的不止是注册

3.1 不是简单的容器,是管全生命周期的

能把核心部件都拆成插件还不乱,靠的是Cordis这套底层机制。

普通的依赖注入容器,就像小区物业登记,你住进来登个记,搬走了销个号,中间你干啥基本不管。但Agent运行时哪有这么静态?

工作区加载又卸载、某个服务临时上线又下线、配置热更新、局部能力只在某个Agent生命周期里生效,动态场景多了去了。

Cordis主打一个"时空可组合",说人话就是两件事:一是插件产生的所有副作用,卸载的时候都能追踪回收,别留垃圾;二是依赖的服务来了自动连上,走了自动调整,不用手动拉线。

3.2 理念很先进,但边界要认清

听起来很美好对吧?但有一说一,这东西现在API还没稳定。

可逆生命周期能解决很多耦合问题,但不是万能的。复杂插件图里的竞态问题、瞬时依赖缺失、版本兼容坑,该有还是会有。

就像酒店保洁号称走的时候全屋打扫干净,你真去翻床底,说不定还能发现上个客人留的半袋零食。

4. 五个构件,拼出一个完整的可运行产品

4.1 Profile:先选好你的产品套餐

光有一堆零散插件没用,怎么拼成能用的产品?第一个构件叫Profile。

说白了就是命名好的产品套餐。你要做Web端产品,就选对应的Profile,挑好要用的能力包,存上自己的配置;你要做无头模式跑批量任务,就选另一个套餐。

基础能力大家共享,差异部分各自配置,不用每次从零搭积木。

4.2 Bundle:打包好的可复用能力集合

Bundle就是把一组相关的插件、配置打成一个包,方便分发复用。

比如基础Bundle自带模型、工具、沙箱、权限、遥测这些通用能力,不同的入口再往上加自己的增量,不用一个个插件去装去配。

就像外卖全家桶,主食小吃饮料都给你配好了,你要加鸡翅加汉堡单独说,不用自己一个个点菜。

4.3 Patch:精准替换,不是瞎合并

然后是Patch机制,这个设计很有意思。

它不是那种常见的YAML深度合并,层层覆盖到最后,你都不知道最终值是哪来的。它是按行ID定位,直接整段替换配置。

好处是结果可预测,改了就是改了;坏处是你得精准知道自己改的是什么,替换错了行,直接启动失败。就像外科手术,精准切除是厉害,但你得下对刀。

4.4 Capability Seam:把接口和实现彻底拆开

要做到可替换,就得有标准的接缝。官方把一个完整的可替换能力拆成三个角色:接口定义、服务实现、调用方。

调用方只面向稳定接口,实现方你爱用本地实现、远端服务还是第三方协议,随便你。说白了就是插座标准统一,你插公牛还是插小米,只要插头对就能用。

但光有插座标准不够,电压、功率、安全规范这些,都得配套跟上,不然插上去容易烧设备。

4.5 Event Log:大家共用同一本账本

最后是事件日志,所有会话状态都以追加事件的方式存下来。

模型历史、UI展示、会话回放、断点续跑、分支派生,全都从这同一个日志流里来。不同入口不用各自维护一份状态,不会出现Web端显示一个样,SDK返回另一个样的离谱情况。

但也别神话它,有日志不等于跨机器恢复、副作用幂等、长任务可靠性就自动成立了,这些都得靠实打实的工程验证。

5. 灵活不是免费的,复杂度只是换了地方

5.1 好处确实香,边界切得很细

这套架构最直接的收益,就是把变化限制在了更小的边界里。

换会话存储后端,不用顺手重写Agent循环;想给受限产品禁掉Shell,直接从组合里撤掉相关插件就行,不用给代码加判断分支;Web端和SDK端共用同一套运行语义,不会越开发越分叉。

甚至单个工作区、单个Agent,都能拥有自己的局部能力和独立生命周期。对于要做多款Agent产品的团队,这吸引力确实不小。

5.2 代价也很实在,坑都在看不见的地方

但天下没有免费的午餐。你获得了多少灵活性,就得承担多少复杂度。

首先,你光看入口代码,根本不知道实际跑了哪些插件,最终行为得看最终生成的插件树,排查问题先得理半天组合关系。

其次,服务契约可不是定义个类型就完事了,错误怎么抛、流式事件怎么传、安全怎么控、版本怎么迁,全得考虑到,漏一个都是大坑。

还有生命周期的坑,搞不好就重复注册、事件悬挂、依赖突然消失,debug起来头都大。再加上多层Bundle和Patch,配置漂移、升级兼容全是麻烦事。

说白了,以前是一个大泥球,现在是一堆精密乐高。拼好了很精致,拼错了散一地,找零件找半天。

6. 现在要不要上车?对号入座就行

6.1 这几类情况,可以大胆试试

如果你是做Agent Runtime技术研究,要折腾不同的循环逻辑、状态存储、服务实现,那这东西很适合做隔离PoC。记得锁死Commit和包版本,导出最终插件树,别到时候跑不起来找不到原因。

如果你团队要基于同一个底盘,派生Web、Headless、SDK好几个产品入口,那值得验证一下组合收益,重点测测状态、权限和错误语义是不是一致。

如果你需要按工作区甚至按Agent动态装卸能力,那Cordis这套生命周期机制,刚好对口。

6.2 这些场景,别瞎凑热闹

要是你就一个固定场景,一套循环、一个后端、没几个工具,那真没必要凑这个热闹。

普通的显式工作流加依赖注入,足够用了,还简单好维护。别为了"架构先进"就上复杂方案,就像你每天就买个菜,开个货车去纯属油钱都赚不回来。

6.3 关键生产环境?先等等

至于想直接上核心生产业务的,我劝你先忍忍。

现在还是开发者预览版,官方自己都明说会有破坏性变更。真实模型端到端稳定性、故障恢复能力、安全审计、完整的迁移方案,这些都还没经过充分验证。

真想用,先在非核心场景踩坑踩够了再说。

总的来说,DeepSeek Harness最值得关注的地方,从来不是又多了多少插件。

而是它把Agent的核心从不可撼动的中心,降成了插件图里的普通参与者。产品不再围绕一个必须fork的核心类生长,而是靠Profile、Bundle、Patch、Seam、Event Log这一套构件组合出来。

它押注的是可组合的运行时能力,赢了就能大幅降低多Agent产品的开发成本,输了就是复杂度爆炸没人用。

至于现阶段,把它当成一个很有想法的架构提案就好,值得研究,别急着all in。

P.S. 无意间发现了一个巨牛的人工智能教程,非常通俗易懂,对AI感兴趣的朋友强烈推荐去看看,传送门https://blog.csdn.net/HHX_01

相关推荐
代码方舟4 分钟前
PHP数据工程:利用天远学历信息高级版优化专家资源池合规体验
人工智能
飞哥数智坊6 分钟前
ZCode 可以自己看微信小程序了
人工智能·ai编程
江润舟8 分钟前
万物|炼器 从零手搓工业级旋转目标检测网络 · 卷3 —— 核心算子锻造(三)
人工智能·深度学习
桃西西呀9 分钟前
你的 Agent 每判一次都要为大模型吐的字买单?-Laya模型帮你做判断
人工智能·llm·ai编程
品牌常新18 分钟前
安防巡检机器人推荐:园区仓储楼宇怎么选
人工智能
释厄62336 分钟前
多黑洞具现论·物理/生物/金融三域显化·虚拟宇宙黑洞·奇点=0 圆圈
开发语言·数据结构·人工智能·程序人生·安全威胁分析
具身AGI38 分钟前
大脑之外还要一套脊髓,物理AI 交互具身 的下一关
人工智能
haliu43 分钟前
【FHE】(十二):为什么我们把 OpenMP 换成了自研线程池
人工智能·嵌入式·c·fhe·推理引擎·c11·边缘推理·同态加密推理
瞬维AI1 小时前
RPA与AI智能体的跨平台自动化执行架构:从任务编排到异常处理
人工智能·自动化·rpa
呆呆槑_Xiong1 小时前
2026年AI网文写作指南:灵蟹创作与主流AI工具全解析
人工智能