为什么需要
出海做 AI 产品的开发者经常遇到 Agent 框架绑死特定架构——LangChain 的 chain、AutoGPT 的循环、BabyAGI 的 task list,改一处要动整个核心。DeepSeek Harness 是 DeepSeek AI 官方开源的 Agent 运行时,核心设计是「Everything is a Plugin」:基于 Cordis 框架,把模型适配器、工具注册、会话日志、Agent 循环本身都做成插件,配置层叠加,零特权核心。
这意味着什么?你想换 LLM provider、加新工具、改 Agent 循环策略、甚至替换整个 UI 层,全是挂插件+patch 配置的事,不用 fork 改核心代码。Web UI / Headless 双 profile 模板,社区已有 dsh-plugin 主题下大量贡献。
怎么用
从 npm 启动 Web UI:
npx @deepseek-ai/dsh web
默认在 http://127.0.0.1:3080 启动 Web 界面。
或从源码构建:
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web
插件通过 dsh.bundle 字段挂载,可以用 dsh --profile web --dump-config 看到当前启动的插件树。
核心特性
- Cordis 插件架构 — 模型适配器、工具、会话日志、Agent 循环全是插件,零特权核心
- Profile + Bundle —
web/headless内置 profile,配置层叠加支持 patch 覆盖 - 会话事件日志 —
SessionEvent追加式日志,跨重启可恢复 - Agent 事件系统 —
agent/*事件携带 live Agent,可观察可拦截 - 能力扩展点 —
fs/*、tools/*、telemetry/*等 capability seam - Web UI + Headless — 浏览器界面和一键执行两种运行模式
- 官方维护 — DeepSeek AI 出品,Discord 社区活跃,长期演进
使用案例
独立开发者做 AI 产品,需要在不同 LLM provider 间切换——用 DeepSeek-Harness 写一次插件树,配三个 model adapter(DeepSeek / OpenAI / Claude),按用户场景切换 Agent 循环策略(聊天/任务/RAG),不用碰框架代码。
另一个场景:海外 SaaS 集成 Agent 能力。需要给客户可定制的 Agent 行为——让客户加自己的工具插件、合规规则、UI 主题,DSH 的 plugin 模型天然支持多租户扩展。
注意事项
- MIT 协议,可商用
- 当前是 developer preview,会有兼容性问题,breaking change 频繁
- 需要 Node.js + pnpm(Node 18+ 推荐)
- 与 LangChain 对比:LangChain 偏 Python 链式调用,DSH 偏 TypeScript 插件架构
- 与 OpenHands 对比:OpenHands 偏现成解决方案,DSH 偏开发者扩展框架