ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

DeepSeek Harness源码研读:一套可自由拼装的Agent运行时

DeepSeek Harness源码研读:一套可自由拼装的Agent运行时

文章目录

  • 1. 先给大家交个底
    • 1.1 别被网页版骗了
  • 2. 所谓“万物皆插件”,到底分几层
    • 2.1 第一层:启动全靠拼配置
    • 2.2 第二层:Cordis底盘,管活也管死
    • 2.3 第三层:连核心循环都是插件
  • 3. 会话日志才是真正的脊柱
    • 3.1 一个设计解决五个问题
    • 3.2 工具并行,结果不能乱
  • 4. Token省在哪儿?三板斧
    • 4.1 第一道:稳住前缀蹭缓存
    • 4.2 第二道:先削工具结果的水分
    • 4.3 第三道:快满了就压缩历史
  • 5. 扒了一圈,这几个插件真能用
    • 5.1 dsh-cc-tui:终端党狂喜
    • 5.2 dsh-web-ui-all:把毛坯房装成工作台
    • 5.3 ModLens:给文本模型装眼睛
    • 5.4 ModSearch:搜索精读一把抓
    • 5.5 dsh-agent-teams:子Agent也能组队干活
    • 5.6 dsh-automation:定时干活不用盯
  • 6. 插件越自由,安全越得上心
  • 7. 最后说句实在话


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

1. 先给大家交个底

昨天折腾完DeepSeek Harness的安装,总觉得哪儿不对——这玩意儿表面看着就是个聊天界面,背地里藏的东西可多了。

今天直接把官方仓库整个拉下来,从启动配置翻到Agent循环,连插件加载的底裤都扒了一遍。

说真的,看完我第一反应:这哪儿是个AI工具啊,这是把整个Agent系统拆成乐高零件给你递手里了。

1.1 别被网页版骗了

很多人用了下网页界面,说也就那样,没惊喜。

我只能说,你这相当于买了个乐高旗舰款,只拼了最外面那层壳。

我数了数,官方仓库里光包就有219个,工作区项目更是有238个,大家天天用的Web界面,只是最表层的一块砖。

模型、会话、沙箱、审批、技能、子Agent、工作流……全拆成了能随便拼的零件。

难怪有人说这是Agent时代的安卓,这话真没夸张。

2. 所谓“万物皆插件”,到底分几层

官方天天喊“Everything is a Plugin”,不是喊口号,是真把这句话刻进骨子里了。

整套装机体系分三层,一层比一层深。

2.1 第一层:启动全靠拼配置

别的软件启动,都是加载一份固定大配置,像预制菜,加热就能吃。

DeepSeek Harness不,它启动像叠buff:先塞基础包,再读配置文件,再加用户自定义修改,最后命令行传的参数还能再补一刀。

Profile决定你整个进程有啥能力,Preset决定单个会话能用啥工具、跑啥工作流。

说白了就是,同一个软件开着,你跟你朋友聊的天,背后运行逻辑能完全不一样。

别人给Agent加工具是加个配件,它这是直接给会话换一套操作系统。

2.2 第二层:Cordis底盘,管活也管死

这层是整个系统的底盘,叫Cordis。

你可以把它理解成个物业中心,所有插件都来这儿登记,要用啥服务从这儿领,自己有啥能力也往这儿注册。

一个能力拆成仨角色:定规矩的、真干活的、用服务的,分得明明白白。

最绝的是它的“可逆副作用”。

很多软件装插件容易卸载难,卸完残留一堆,越用越卡,像粘了口香糖的衣服。

它这儿不一样,插件注册的时候,连怎么清理自己都登记好了。

卸载或者重载的时候,注册的工具、监听的事件、挂的网页路由,全给你撤得干干净净,一点尾巴都不留。

这也是它敢把UI、循环、存储全开放给插件的底气——不怕你装,也不怕你卸。

2.3 第三层:连核心循环都是插件

别家做Agent产品,Agent循环都是核心黑盒,碰都不让你碰,顶多给你开几个工具接口。

DeepSeek Harness倒好,连Loop本身都做成插件了。

模型怎么请求、一步啥时候开始、工具怎么调度、任务啥时候停,全链条你都能改。

仓库里甚至还备了另一套模型适配器,底层用别人的多模型适配层,自己的会话、工具照样跑。

说白了就是,人家想换个模型供应商,不用重写整个系统,插个适配器就完事了。

这思路,确实是做平台的思路,不是做单个工具的思路。

3. 会话日志才是真正的脊柱

很多人没注意到,这套系统最核心的东西,其实是只追加的事件日志。

啥叫只追加?就是所有东西写进去就不能改,只能往后加新的。

模型看到的消息从这儿来,工具调用、工具结果、模型输出全写回这儿,连流式输出的碎片都给你存着。

3.1 一个设计解决五个问题

别小看这设计,一下解决了五件事:

进程崩了重启,能接着上次的任务继续干;

想从历史某个节点分叉重跑,直接分就行;

想回放当时模型看到了啥,翻日志就知道;

搜历史消息、查任务记录,顺着事件流找就行;

出了问题审计,哪个文件改的、哪步操作来的,全有迹可循。

说直白点,模型看见的每一个字,都能在日志里找到出处。

不然进程一崩,恢复完的Agent跟失忆了似的,之前干的啥全忘了,那活儿还怎么干?

3.2 工具并行,结果不能乱

模型一次可能吐出好几个工具调用,总不能一个一个排队等吧?

它这儿分两种:普通工具扔并行池里,默认最多同时跑10个;独占工具就得等前面全干完,它单独上。

有意思的是个小细节:工具实际完成顺序有快有慢,但写回给模型的结果,必须按当初调用的顺序排。

不然搜索跑得快先回来了,文件改得慢后到,同一轮上下文每次顺序都不一样,模型不得乱套?

就像你点了好几份外卖,不管哪个骑手先到,上桌都得按你下单的顺序摆,吃着才对味。

任务取消了也不糊弄,已经启动的尽量收尾,没启动的也记一笔,日志里不会凭空少半截流程。

4. Token省在哪儿?三板斧

昨天跑了一轮测试,14步下来缓存命中率93%,很多人好奇这Token是怎么省的。

其实源码里明明白白写着三道控制线,一层一层给你抠。

4.1 第一道:稳住前缀蹭缓存

系统提示词、工具目录、已有的历史,尽量保持不动,新内容全往尾巴上加。

别小看这点,供应商的KV缓存就吃这一套。

前缀越稳定,缓存命中概率越高,省的Token就越多。

相当于你每次去奶茶店都点同样的基底,店员直接给你加配料就行,不用从头做。

4.2 第二道:先削工具结果的水分

工具返回的结果经常又臭又长,全塞上下文里纯纯浪费Token。

默认设置里,工具结果超过8192字符就自动裁剪,留头留尾,中间给个说明。

再大的内容直接存磁盘,对话里只留个路径和摘要。

说白了就是,干货留着,废话先砍一遍,别啥都往上下文里塞。

4.3 第三道:快满了就压缩历史

上下文用到窗口80%的时候,系统会自动压缩旧历史。

最近16%的内容原封不动留着,前面的旧内容压缩成摘要,最多8192Token。

有意思的是,生成摘要的时候还带着会话前缀,看似多传了一遍,实则能继续复用缓存,算下来反而更省。

真要是直接报溢出了,还有兜底:再压一遍,总能塞进去。

总结下来就是:先稳缓存,再砍噪音,实在不行压缩历史,层层往下抠。

5. 扒了一圈,这几个插件真能用

现在社区插件已经冒出来一大堆,鱼龙混杂,有皮肤、有小游戏、有蹭标签的。

跟逛菜市场似的,看着热闹,真能下锅的没几样。我筛了一圈,挑几个真有用的给大家说说。

5.1 dsh-cc-tui:终端党狂喜

官方现在主要做Web和无界面版,天天泡终端的人总觉得别扭。

这个插件直接给你补一套完整的终端界面,模型切换、会话管理、技能调用、状态查看,全能在终端里搞定。

安装也不影响原来的Web配置,想切回去随时切。

适合键盘敲得飞起、觉得点鼠标费劲的人。

5.2 dsh-web-ui-all:把毛坯房装成工作台

官方原生的Web界面,说好听点叫简洁,说难听点就是毛坯房。

这是个插件合集,任务看板、Git图谱、文件面板、实时Token统计、远程访问、换皮肤,全给你补上。

建议按需装,不用一下装全家桶,要啥功能装啥就行。

适合打算把这玩意儿当日常主力工具用的人。

5.3 ModLens:给文本模型装眼睛

纯文本模型碰到截图、图表、界面报错,直接抓瞎,跟闭眼摸象似的。

这个插件给加上了读图能力,装完模型列表里会多出带视觉标记的选项,直接粘图片或者给路径就行。

背后可以接Gemini或者OpenAI兼容服务,前端调试、看图表、查截图报错都能用。

5.4 ModSearch:搜索精读一把抓

自带的搜索够用,但总觉得差点意思。

这个接管搜索接口,还加了单页精读功能,查新闻、读网页、做竞品调研都顺手。

支持好几个搜索引擎,想搜啥直接说,模型自己会选是搜还是读页面。

5.5 dsh-agent-teams:子Agent也能组队干活

原生就能生成子Agent,但都是单打独斗。

这个插件直接给你整成团队模式,有队长有成员,能拆任务、看依赖、查进度。

比如代码审查,让几个子Agent分别查性能、安全、功能,最后汇总,效率高多了。

适合大任务,小任务就别开了,光协调成本都够你喝一壶。

5.6 dsh-automation:定时干活不用盯

想让它定时跑测试、整理周报、扫依赖,总不能一直守着吧?

这个插件支持单次、定时、每日每周任务,每次执行都开全新的会话,记录单独存。

注意它得跟着主进程跑,你把软件关了它也停了,不会自己在后台偷偷跑。

权限也有限制,最高只到工作区可写,不会给你全开,相对稳妥。

6. 插件越自由,安全越得上心

东西越开放,安全坑就越多,这点必须拎清楚。

默认有三种权限:只读、工作区可写、完全访问,日常用工作区可写加逐次询问,基本就够了。

这里得区分开两层:

模型调用Shell和文件工具,会过沙箱和审批,这层是有把关的。

但你装进系统的第三方插件,属于宿主代码,权限跟主进程差不多,相当于你直接装了个软件在电脑上。

所以安装插件前,别啥来路不明的都往里塞,脚本、依赖都得留个心眼。

官方默认没开放任意MCP服务也是这个原因,MCP进程跑在沙箱外面,不能觉得工具有审批就万事大吉。

还有两个默认关闭的功能,web_fetch和创造模式,权限都很高,不是真需要就别乱开。

说实在的,现在AI圈野蛮生长,装插件跟装手机APP似的,来路不明的别乱点,安全第一。

7. 最后说句实在话

现阶段这东西,说是预览版真没谦虚。

当学习资料看,绝对是顶级的,整套Agent运行时的设计思路,扒一遍能涨不少见识。

但普通用户想拿来当日常工具用,我劝你别瞎折腾。

市面上开箱即用的产品多了去了,没必要跟个半成品死磕。

真喜欢折腾、想做二次开发的,那这玩意儿绝对是宝藏,挖去吧。

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

返回列表