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

相关推荐
YOLO数据集集合6 分钟前
无人机高分辨率多树种单木分割数据集 | 单木分割 无人机林业 树种识别 实例分割 点云 遥感数据集 深度学习 精准林业9047期
人工智能·深度学习·数据集·无人机·遥感数据集·点云数据集·树木分割
科技看点8 分钟前
小机身里的Windows+AI,Windows原生OpenClaw离线AI盒子实测
人工智能
GEO实战经验分享9 分钟前
跨平台GEO度量框架:从多源数据整合到效果评估的系统化指南
人工智能
2601_9668631916 分钟前
扩音器哪个牌子性价比高?哪个牌子适合教师?开学季扩音器推荐
人工智能
Capricorn198836 分钟前
日志级幻觉排障:GPT-6 Astra 迈入 AGI 时代,知芽 Notebook Skill 如何以引用校验与零命中诚实弃权解决长文失忆
论文阅读·人工智能·笔记·gpt·agi
xierui12312341 分钟前
给内容 Agent 接平台账号前,先设计四层权限:读、写、预填、提交
人工智能·网络安全·aigc·软件工程
夏文强1 小时前
DeepSeek Harness 权限与审批:给 Agent 上一把 human-in-the-loop 的安全阀
人工智能·开源·大模型·agent·deepseek
陕西企来客1 小时前
2026年9月西安 AI 搜索优化是什么?功能与价值解读
人工智能·西安 ai 搜索优化是什么
Allen_LVyingbo1 小时前
医疗AI基础2026-构建可靠智能体的编程路径(上)
大数据·数据库·人工智能·python·自动化
MetaLite1 小时前
AI编程与工程底座-让AI遵守SpringBoot边界
人工智能·spring boot·ai编程