扒了一下 DeepSeek Harness 用的 Cordis 的源代码和论文,一些很有意思的 keypoint:
(如有理解错误请指正讨论)
1. DeepSeek 的 Harness = LLM 基础交互层 + Cordis
2. LLM 的基础交互层负责 Agent 循环、基础工具、WebUI ,以及跟 Cordis 交互,读取它提供的各种插件
3. 可以把 Cordis 简单理解为一套实时活跃、读取指定文件代码、把加载的结果实时塞进 LLM 的基础交互层
4. LLM 基础交互层是通过 TypeScript 实现的,包括前端渲染在内的所有逻辑,都可以被 Cordis“拦截、强插”改变
5. 这就意味着,你可以让 Agent 在当前轮次在指定路径下写一个代码,下一轮 Cordis 读取后就直接强插到 Agent 里,界面、工具甚至运行逻辑就变成全新的样子了。
6. Cordis 的插件之于MCP 的工具:前者是公司内部雇一个员工干活,后者是找一个外包。
7. Cordis “招聘”的员工也不算是正式员工,它会在一个隔离工位干活,需要公司的什么资源(文档、工具、其他员工的能力)得“声明”,HR(Cordis)会帮它拿。
8. 这个员工,可以随时被开除…开除的时候它的工位大概率会被清空,只有少量对整体工作有贡献的产出会被留下。
9.用 HR 来比喻 Cordis 不太准确,插件不一定是 HR 从人才市场招的,可以是你在开会的时候突然觉得需要某一个员工于是现场捏了一个,他立刻就进入会议室开会、干活了,干完活提离职…
10. 浅技术向:Cordis 的插件,跟谷歌浏览器的插件几乎一样,声明需要主 Agent的那些能力、自己需要哪些权限,工具类插件要写调用自己的 schema 是啥,UI 类插件要有自己的前端代码、注入位置、交互逻辑、回传什么数据到上下文。
欢迎纠偏&补充。