很多人在讨论模型能力,但真正决定一个 Agent 能不能干活的,往往不是模型本身。
DeepSeek 把这件事说得很直接:Agent = Model + Harness。模型负责思考和生成,Harness 负责把它接到真实世界里——读文件、跑命令、调工具、管理上下文、记住做过什么。
一句话定义
Harness 直译是"挽具、马具"。在 Agent 语境下,它指的是包裹在模型外面、让模型能够使用工具并持续运行的那一层运行时。
| 组成 | 职责 | 类比 |
|---|---|---|
| Model | 理解、推理、生成 | 驾驶员 |
| Harness | 工具调用、上下文管理、会话状态、权限控制 | 车与仪表盘 |
| Agent | 两者结合后的完整可运行体 | 能上路的车 |
没有 Harness 的模型,只能做"你问一句它答一句"的对话;有了 Harness,它才能完成"改完这个文件、跑一遍测试、失败了再改"这种多步骤任务。
内核:Cordis 与「一切皆插件」
DeepSeek-Harness 的内核基于 Cordis,这是一个元框架(meta-framework),核心思想是依赖注入 + 插件化。
Cordis 的关键设计:
| 概念 | 含义 | 带来的能力 |
|---|---|---|
| 插件(Plugin) | 功能以插件为单位组合 | 功能可插拔、可复用 |
| 服务(Service) | 插件之间共享的能力 | 避免重复实现 |
| 依赖注入 | 插件声明自己需要什么 | 自动装配,无需硬编码 |
| 生命周期 | 插件加载/卸载的钩子 | 可热插拔、可编排 |
在这个架构下,Harness 自己也是由插件组成的:工具是插件、模型适配是插件、会话管理是插件、输出格式是插件。
官方形态:命令行工具 dsh
DeepSeek-Harness 官方发布的形态是 CLI 工具 `dsh`。
安装与启动的典型命令:
```
npx @deepseek-ai/dsh web
```
前置条件:
| 项目 | 要求 |
|---|---|
| 运行时 | Node.js ≥ 18 |
| 安装方式 | `npx`(无需全局安装) |
| 形态 | 命令行启动,浏览器/Web 界面交互 |
| 协议 | MIT 开源 |
| 阶段 | 官方明确为开发者预览阶段 |
四种运行模式
Harness 提供了不同复杂度的模式,适配不同场景:
| 模式 | 特点 | 适合 |
|---|---|---|
| Standard | 标准全能模式,工具齐全 | 日常开发任务 |
| Code | 聚焦代码读写与执行 | 纯编码任务 |
| Minimal | 最小工具集 | 轻量任务、降低干扰 |
| Creator | 开放创作/扩展能力 | 需要自定义扩展的场景 |
模式的意义在于约束上下文:工具越少,模型的选择越聚焦,出错概率越低。这是一个工程经验,不是营销分类。
与常见 Agent 框架的区别
| 维度 | DeepSeek-Harness | LangChain 类框架 | Dify 类平台 |
|---|---|---|---|
| 形态 | 运行时 + CLI | 开发库 | 可视化平台 |
| 目标用户 | harness 开发者 | 应用开发者 | 业务/运营人员 |
| 插件机制 | Cordis 依赖注入 | 链式组合 | 工作流节点 |
| 代码控制 | 完全控制 | 完全控制 | 平台约束 |
| 上手门槛 | 需 Node.js 与命令行 | 需编程 | 低 |
开发者预览阶段意味着什么
官方明确 dsh 处于开发者预览阶段。对使用者来说,这意味着三件事:
- 接口可能变化:版本升级时插件 API 可能有破坏性变更,生产环境需锁定版本。
- 文档不完整:部分能力需要读源码确认。
- 生态在早期:插件数量与成熟度还在积累。
这不构成"不能用"的理由,但构成"要有心理准备"的理由。
初元AI 基于它做了什么
初元AI 基于 DeepSeek-Harness 深度开发,把它的能力封装成了面向非技术用户的产品形态:
| 官方 dsh | 初元AI |
|---|---|
| 命令行启动 | 桌面程序,双击安装 |
| 需自备 Node.js ≥ 18 | 环境已打包,无需配置 |
| 需记忆命令与参数 | 向导式流程,选择题式交互 |
| 面向 harness 开发者 | 面向企业主与业务人员 |
| 通用 Agent 能力 | 内置建站/做软件的四阶段流程与门禁 |
需要如实说明:初元AI 不是官方产品,是基于开源协议的二次开发产物。DeepSeek-Harness 本身以 MIT 协议开源,这为商业二次开发提供了法律基础。