DeepSeek Harness 开发者预览
DeepSeek 发布了一个用于编码代理的开源“harness”,它采用以插件为中心的架构(Cordis),让系统的每一部分都能热重载、可回滚,同时将所有提示词、工具调用和推理步骤记录在只追加的事件流中。评论者将其与 Claude Code、Pi、Cline 以及其他 agent 框架相比较,讨论 DeepSeek 与自家低成本模型的紧密集成以及完整可追踪性,是否真的比现有的第一方和第三方方案更有优势。大量争论也集中在 TypeScript/Node.js 的选择、插件生态、性能与臃肿问题,以及 agent harness 设计究竟有多少真正创新,还是只是用新流行语重述熟悉模式。
DeepSeek Harness 是什么
- 被视为一种新的编码/agent harness,与 Claude Code、Pi、Codex、Zed 集成等同一类工具。
- 主要用途:编排基于 LLM 的编码和工具调用,既可以有 TUI 也可以有 GUI。
- 支持多个提供方,包括本地模型(例如 llama.cpp 配置),一些早期用户报告称它与用于小型项目的本地 9B 模型配合良好。
- 早期“开发者预览”,目前采用 MIT 许可证,并提示仍有粗糙之处和破坏性变更。
Cordis 插件架构
- 核心理念是:“一切都是插件”,构建在 Cordis 之上;Cordis 是一个支持热加载/卸载和“可回滚副作用”的插件系统。
- 插件必须定义初始化和清理(类似 RAII/Drop),让运行时在卸载时回滚副作用,并沿依赖关系传播停用。
- 常被拿来与 OSGi、Eclipse、依赖注入容器、React 的
useEffect,以及像 Pi 这样的早期 agent harness 相比较。 - 有人认为其底层代数和 DI 系统很复杂,但可能过于复杂,尤其因为很多插件彼此并不依赖。
可追踪性与事件源日志
- 备受赞誉的主要特性:每次运行都能通过只追加的事件日志完全追踪(提示词、推理、工具调用、子代理、上下文注入)。
- 支持恢复、分叉、搜索、回放,以及稳定的消息历史;常被比作事件溯源架构。
- 这被视为与美国模型代理形成对比:后者的推理轨迹是隐藏/加密的;有人认为这种可见性对于改进 harness 和工具至关重要。
- 也有人将其淡化为“只是日志”,但支持者强调其完整性和可用性。
语言、运行时与臃肿之争
- Node.js/TypeScript 的选择引发激烈争论:
- 优点:适合异步、跨平台、迭代快、npm 可作为分发渠道、UI 生态丰富(React/Electron/Tauri)、对 LLM 支持良好。
- 缺点:运行时沉重、依赖树庞大(有报告称安装后约 1.5 GB)、CLI 比 Go/Python/Rust 更慢,以及供应链/安全方面的担忧。
- 讨论的替代技术栈包括:Python(脚本容易,分发困难)、JVM/C#、Rust、Go;对“正确”选择并无共识。
插件生态与疲劳感
- 一些人喜欢以插件为中心的设计,因为它便于扩展和 AI 编写自定义插件,尤其当核心只提供最少工具时。
- 另一些人则表示出现了“插件疲劳”:长期破坏、UX 不一致、依赖社区维护者,以及缺少开箱即用的默认能力。
- 人们担心如果一切都是插件,而核心功能又不打包提供,用户就会面临配置开销和不稳定性。
Harness 质量、对比与理念
- 用户希望对 harness(以及 harness+模型组合)做系统性基准测试,但许多人怀疑在配置差异存在时,这类比较是否有意义。
- 对于第一方 harness(来自模型厂商)是否真的优于第三方 harness,意见分歧;有人说体验差不多。
- 更广泛的批评是,很多 harness 只是用提示词重新发明了已解决的问题(例如用“skills”来做 pre-commit 检查,而不是使用 git hooks),这可能会浪费 token 并降低确定性。
- 也有人认为,将确定性工具与 LLM 驱动的编排结合,正是 harness 的核心价值,而实验阶段本来就早期且天然“粗糙”。