
欢迎来到我的小铺,今天聊聊我使用Deepseek Harness的一些联想。
起因是这样的。Deepseek Harness,简称DSH,打出的口号是“一切皆插件”。在这之前,我日常用的Agent框架是Pi,一个走极简路线的轻量框架。两套东西摆在一起看,差异很有意思,但更有意思的是——它们表面上是两种不同的设计,骨子里却是同一种信仰。
要讲清楚这件事,得先退一步,看看更大的分界线。
Agent框架今年冒出了一大片。翻一圈下来,大致分两拨人。一拨把所有东西打包好给你——WorkBuddy、Kimi Works这类产品,钥匙一拧就能开,上手即用。但引擎盖焊死了,里面装了什么、怎么调度的,都不透明,也没法改。不确定性被封装得很干净,代价是主观能动性也被封装了。 想加点自己的东西?处处碰壁。想换个调度逻辑?对不起,写死了。
另一拨人走完全不同的路——Agent应该是可以被用户自己改造的。Pi和DSH走的就是这条路。这条分界线,比Pi和DSH之间的差异重要得多。
一、Pi:造好底盘,让你改装
先说Pi。
Pi的设计哲学,一句话概括:核心保持极简,能力通过扩展插入。 Pi背后的Earendil Inc.创始人也是Flask的作者——Python社区里以轻量著称的Web框架,核心代码极其精简,支撑起整个生态。到了Agent领域,思路一脉相承。
Pi的设计可以粗略地看成一个固定的核心加一层开放的接缝。核心部分:Agent Loop、上下文管理、模型对话,这些核心流程写死了,碰不了。接缝部分:开放了大约三十个扩展事件,挂在Agent运行的各个节点上——输入前、输出后、工具调用前、工具返回后,每个关键节点都留了钩子。
用盖房子打比方:合金结构搭好了,主梁楼层定了,但墙上预留了大量插座和管线。你能接灯、接空调、接音响,但承重墙不能动。
这个设计的好处很明确。边界清晰,排查容易。 出了问题,哪些是扩展干的,哪些是骨架干的,分得清楚。三十个扩展事件就是三十个明确的入口,每个入口做什么、能做什么、不能做什么,文档写得明明白白。
但代价也摆在那儿。深层结构改不动。 Agent Loop是Pi的核心循环——它决定了Agent怎么思考、怎么调度工具、怎么处理上下文。这部分是锁死的。能给自己加工具,能改输入输出,但改不了Agent思考的方式。
换句话说,Pi让用户改装车的外壳和配件,但发动机和底盘是原厂的。
二、DSH:连底盘都是零件
再说DSH。
DSH的口号是“一切皆插件”。这不是修辞——模型适配器是插件,工具注册表是插件,会话日志是插件,沙箱是插件,连Agent Loop本身都是插件。 没有特权核心,没有不能替换的组件。扩展DSH的方式不是给骨架打补丁,而是把插件挂到其他插件旁边。
还是盖房子的比方,但这次不是装修,是模块化建筑——没有固定结构,只有公共约定。你想把客厅改成卧室?可以。想把整栋楼拆了重搭?也可以。
这里有个关键问题:如果什么都能换,系统怎么不崩?
答案是Cordis。Cordis是DSH底层的插件引擎,由一个聊天机器人框架的作者开发,经过大量社区插件的长期验证。它的核心机制叫“时空可组合性”——听起来很学术,说白了就两件事:
时间上,可逆。 每个插件注册的副作用——监听器、工具、进程句柄——都绑定了反向操作。插件卸载时,运行时自动回滚,不留垃圾。装了能卸,卸了干净。
空间上,可组合。 插件之间声明依赖关系,运行时自动追踪谁能用谁。同一个服务在不同会话里可以解析到不同实现,互不干扰。
这套机制给“一切皆可变”兜了底。你敢让用户连骨架都换,就得保证换了能装回去、拆了不塌。
DSH的好处是极致灵活。想换Agent Loop?可以——等于换掉了Agent的思考引擎。想换会话存储?可以。想把整个WebUI推倒重来?也可以。但代价同样明确:理解成本陡增。 当一切都是插件,需要理解的就不是一个骨架加三十个接口,而是一整棵插件依赖树——谁依赖谁、谁影响谁、换掉这个会不会牵连那个。
Pi是改装车,DSH是给你一堆零件和一本约定手册,车自己搭。
三、同路不同距
到这里看起来一保守一激进,走了两条路。但仔细想,骨子里是同一件事。
Pi和DSH都信奉一个前提:用户应该是建造者,不是消费者。 Pi让用户在骨架接缝里加东西,DSH让用户连骨架都能换——程度不同,方向一致。真正的分界线不在Pi和DSH之间,而在它们和WorkBuddy、Kimi Works那些黑箱产品之间。
但差异确实存在,而且不是程度差异,是性质差异。
Pi让用户加工具,但不改思维方式。Agent Loop锁死了,Agent怎么思考、怎么调度、怎么处理上下文,框架替用户定了。能改的是Agent做什么,不能改的是Agent怎么想。
DSH连Agent Loop都能拔下来换。Agent Loop决定的是Agent的思考方式——先想再动手,还是边做边想;一次调一个工具,还是并行调度多个。连这个都换了,等于在改写Agent思考的方式本身。
有个细节值得一提。Pi团队在DSH发布后,公开表达了对这个项目的关注和赞赏,大意是说DSH让人有动力重新审视自身的设计。一个框架的团队公开承认另一个框架让自己重新审视设计,这在技术圈不算常见。
四、自由的另一面
但“一切皆可替换”这件事,再往深处想一步,就没那么轻松了。
Pi和DSH都假设了一个前提:用户知道自己要改什么。 Pi的三十个扩展事件,DSH的一切皆插件,都建立在这个前提上。对自己的Agent有足够深的理解,才知道往哪改、改什么、改了之后会影响什么。
这跟WorkBuddy、Kimi Works的假设完全不同——后者假设用户不需要理解,都给弄好了。
自由是自由了,但自由的另一面是负担。拆得越多,需要承担的理解成本就越大。 当一切都是插件,就必须不断判断:哪些该换,哪些不该换,换了之后会不会牵连别的东西。Pi至少给一个确定的骨架做锚点——出了问题,先查扩展,再查骨架,边界是清楚的。DSH把锚点也变成了插件,连“哪里是基准”都需要自己定义。
获得了改写一切的权利,同时也接过了判断一切对错的责任。
五、不急着下结论
说了这么多,并不想给一个谁好谁坏的判断。
这就好像同样是车,也分豪车和代步车,分SUV和小轿车,维度不一样,角度不一样,面向的人群也不一样。有人需要一辆拧钥匙就能开的车,有人需要一辆能自己改装的车,还有人需要一堆零件自己搭。不能说谁比谁好,归根到底,取决于适合哪种类型。
DSH目前还在开发者预览阶段,官方自己也说了,未来会出现兼容性破坏的变更。它才刚出发,“一切皆可替换”到底会走向真正的自进化,还是更深的混乱,现在还在观察期。
不急着下结论。