DeepSeek Harness介绍和简单使用
请关注公众号: 朋蛋、码上小明
DeepSeek Harness项目确实很牛,开源3天时间,Github达到了100多k的star,这增速很少见。
1 介绍
1.1 项目简述
智能体发展速度很快具有代表性的智能体发展路径:Manus->OpenClaw->Hermes Agent->DeepSeek Harness。
- 从"能说"到"会做":Manus和OpenClaw代表了这种跃迁,AI不再只是给出建议,而是能直接操作电脑完成任务。
- 从"工具"到"伙伴":Hermes Agent则更进一步,它通过记忆和学习,让AI能持续成长,变得越来越懂你、越来越高效。
- 从"应用"到"生态":DeepSeek Harness的出现,意味着行业开始为智能体构建通用的"底层操作系统",通过开源插件体系,让所有人都能参与到Agent能力的构建中来。
1.2 项目地址
OpenClaw
# 官网
https://openclaw.ai/
# 开发文档
https://docs.openclaw.ai/
# Github地址
https://github.com/openclaw/openclaw
Hermes Agent
# 开发文档
https://hermes-agent.nousresearch.com/docs/
# Github地址
https://github.com/NousResearch/hermes-agent
DeepSeek Harness
# DeepSeek Harness官网
https://www.deepseek.com/harness/
# Github地址
https://github.com/deepseek-ai/deepseek-harness
1.3 对比分析
| 智能体 | 核心定位 | 关键特点 | 主要成就/局限 |
|---|---|---|---|
| Manus | 通用型AI助手:能独立完成从规划到执行复杂任务,如撰写报告、分析股票、筛选简历等。 | 多智能体架构:运行在独立虚拟机中,能直接"动手干活",而不只是提供建议。 | 证明自主多步执行 Agent 可以落地 |
| OpenClaw | 自主的"数字员工":一款能操控电脑完成任务的"赛博龙虾"。 | 持久化、高自主性:开源自托管;Skill 技能系统;多 IM 网关(Telegram/Discord 等);多模型热切换;社区爆发 “全民养虾”。 | 缺少原生长期记忆,技能靠人工编写;容易串台越权;安全风险 |
| Hermes Agent | "自进化"的学习型伙伴:解决AI"失忆症",能力会随使用时间增强。 | 闭环学习回路:任务结束后,能自主总结成功经验,生成可复用的"技能文档",持续优化对用户的理解。 | 弥补了其"用完即忘"的缺陷。Genetic-Pareto Prompt Evolution(遗传-帕累托提示进化)自我改进闭环:执行轨迹自动提炼 Skill;原生持久跨会话记忆;模型无关;多平台网关;支持 RL 微调数据导出;Agent 真正做到越用越强。 |
| DeepSeek Harness | 开源的Agent"操作系统":一个为Agent提供运行环境的灵活框架,是模型的"马鞍"。 | “一切皆插件”:模型、工具、记忆、策略都可像积木一样自由组合和替换,为开发者提供极高自由度。 | 把 “缰绳工程” 抽离成一套通用内核:模型、沙箱、工具、记忆、调度、日志全部插件化。不再是某一个 Agent,而是用来组装任意 Agent 的底层平台,旨在为开发者建立一个可持续的生态。 |
1.4 DeepSeek Harness
DeepSeek Harness 基于Cordis插件系统构建。模型、工具、技能、会话、沙箱、存储、循环、调度、UI 等所有 Agent 能力均由插件提供,并通过 Cordis 服务与事件彼此协作。开发者无需改动 DeepSeek Harness 源码,即可在配置层选择、替换或扩展任一能力。
核心点
一切皆插件,运行有迹可循。可以简单理解为只需要开发插件,其他(例如:记忆管理、容错重试、多步规划)由系统统一解决。
Cordis 内核
Cordis 内核只负责插件的加载、卸载和依赖关系,不承载 Agent 的具体能力。
插件提供能力
模型、工具、技能、会话、沙箱、存储、循环、调度、UI 等所有 Agent 能力均由插件提供,并通过 Cordis 服务与事件彼此协作。
配置层自由组合
开发者无需改动源码,即可在配置层选择、替换或扩展任一能力。
2 安装使用
2.1 使用命令安装
前提是必须先安装nodejs和相关的依赖。注意:使用npx安装时,执行某个 npm 包的命令,默认不安装(临时下载执行,用完即删)。
如果只是测试玩一下看效果,请使用npx。如果,想深入连接,建议从源码安装。
npx @deepseek-ai/dsh web
安装步骤
源码安装
先安装pnam。
npm install -g pnpm
说明npm、pnpm、npx的作用
| 特性 | npm | pnpm | npx |
|---|---|---|---|
| 核心职责 | 管理项目的依赖包 | 管理项目的依赖包(更高效) | 执行某个 npm 包的命令 |
| 是否安装包 | 是(安装到 node_modules) |
是(安装到全局存储和项目链接) | 默认不安装(临时下载执行,用完即删) |
再从GitHub上下载deepseek-harness仓库,我把仓库下载到了E盘,然后执行下面的命令。
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

访问地址

配置API key,可根据情况稍后配置

进入页面,点击输入框,然后选择工作区。

设置配置信息,页面左小角设置,可以看到配置信息。可以看到插件列表信息。

配置完成即可使用
⚠️使用过程中一定要注意token。

轨迹

2.2 构建插件
按照官网文档,自定义一个爬虫插件。
2.2.1 创建项目
先将Github上的deepseek-harness仓库下载下来。我的仓库目录在E:\deepseek-harness,因为是命令行,所以在Windows下需要使用PowerShell。或者直接在根目录下手动创建目录。
在仓库根目录创建本教程使用的临时项目:
mkdir -p scratch-plugin/src
2.2.2 自定义插件
在 Harness 中,插件是一个导出 apply 函数的 TypeScript 模块。框架在加载时调用 apply,传入一个 ctx(上下文对象),你通过 ctx 注册能力,完整配置模板:
import type { Context } from '@deepseek-ai/cordis'
export const name = 'my-plugin'
export function apply(ctx: Context) {
// Register capabilities here.
}
自定义插件
创建scratch-plugin/src/my-plugin.ts插件
import type { Context } from '@deepseek-ai/cordis'
export const name = 'hello-plugin'
export function apply(ctx: Context) {
// Required dependencies are ready before apply runs.
console.log('[hello-plugin] plugin loaded!')
}
注册到 cordis.yml
创建scratch-plugin/cordis.yml文件,注意:E:/deepseek-harness是我的根目录,插件路径必须是绝对路径。
- insert:
- id: hello
name: 'file:///E:/deepseek-harness/scratch-plugin/src/my-plugin.ts'
⚠️注意:在windows下name不能直接使用E:/deepseek-harness/scratch-plugin/src/my-plugin.ts,前面必须添加file://。(在Linux下不会出现此问题)。
Error: dsh: plugin tree failed to load: failed to apply loader entry include (cordis:include): failed to import loader entry hello (E://deepseek-harness//scratch-plugin//src//my-plugin.ts): Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'e:'
Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'e:'
出错原因如下:
DeepSeek Harness 采用了 ESM-only 架构(全面使用 import 而非 require())。在 ESM 规范中,加载本地文件必须使用标准的 file:// URL 协议(例如 file:///E:/deepseekharness/...)
2.2.3 启动服务
使用该覆盖层启动 Web UI:
pnpm dsh web --patch ./scratch-plugin/cordis.yml

在设置中可以看到插件

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)