我这个写页面的,被 DeepSeek Harness 的 Everything is a Plugin 戳了一下

0 阅读3分钟

上周刷 GitHub 热榜,一眼扫到 deepseek-ai 刚开的坑 DeepSeek Harness,slogan 就一句 Everything is a Plugin。我这种天天被 Vite 插件、ESLint 插件包围的前端,看到 plugin 俩字本能就亲切,还以为是老熟人那套玩法。结果 clone 下来翻了翻架构文档,才发现我想简单了,顺手还被上了一课。

在前端眼里插件是糖,在 dsh 里插件是骨架

写前端这些年,插件基本是锦上添花。想提速挂个 vite 插件,想规范代码叠条 eslint 规则,核心跑不起来了也没事,拔了照常转。所以我一开始默认 dsh 也是这思路,装几个能力进来,不装拉倒。

翻完架构文档才觉得自己天真。dsh 底层用的是 Cordis,一个插件框架。它那套说法是,模型适配器、工具注册表、会话日志,连 agent 主循环本身,全都是插件。没有所谓特权核心让你去 patch,想改行为,就在别的插件旁边再挂一个,注册上去,插件卸载时它挂的东西也跟着撤销。

这跟前端插件差太远了。我们那边插件是可选项,这边插件就是系统本身。这个弯我一开始真没转过来。

一行命令能看清自己机器到底跑了啥

dsh 起起来很省事,文档给的就是下面这行

npx @deepseek-ai/dsh web

默认开在 http://127.0.0.1:3080 的 Web UI。我本地试了下,确实一把就起来。它现在还是 developer preview,官方明说会有破坏性变更,所以别指望接口稳。

最对我胃口的是它给的这条

dsh --profile web --dump-config

把你这台机器实际启动的那棵插件树整个打出来,每个节点都能用你自己的 patch 换掉。这种把底牌摊开给你看的做法,对一个怕黑盒的前端来说挺踏实。

真让我后背发凉的是它的诚实

dsh-base 这一层里直接带了 sandbox 和 approval policy。架构文档写得直白,沙箱不是隔离,让 agent 碰你真实环境时,信任边界靠的是审批闸门和用户自己把关,不是靠某个技术盒子兜底。

我本职就是会把 CI 交给 coding agent 跑的人。以前潜意识里觉得 AI 装了插件、起了沙箱,应该就安全了。dsh 这句话把我这点侥幸直接戳破。沙箱只是个名字,要命的是那道审批关有没有人盯着。

记几条给自己

别把 AI 加了插件当成更安全。插件等于能力,能力越大口子越大,得自己想清楚给它开多大。

看 agent 类工具,先翻它怎么管审批和权限,比看它吹多少功能实在。

还有,developer preview 阶段的东西当玩具玩可以,真要接生产,先想好退路。

写这些不是劝你别碰 agent harness。恰恰相反,dsh 把界限讲清楚的姿态,比一堆「安全无忧」的营销话术值钱。工具只会越来越多,可「我到底把什么交出去了」这件事,得自己心里有数。

参考:DeepSeek Harness README 与 Architecture 文档(deepseek-ai/deepseek-harness,developer preview)