DeepSeek Harness 震撼发布!一切皆插件的 AI Agent 框架,附 10 分钟上手 Demo
导读2026 年 8 月 13 日DeepSeek 正式开源 DeepSeek Harness v0.1主打一切皆插件架构MIT 协议完全开源。本文带你 10 分钟上手手写第一个 AI Agent 插件为什么 DeepSeek Harness 值得关注在 AI Agent 框架百花齐放的 2026 年DeepSeek Harness 凭什么出圈特性DeepSeek HarnessLangGraphCrewAI架构模式插件化图工作流角色协作热插拔✅ 支持❌ 不支持❌ 不支持开源协议MITMITMIT多模型✅ 原生支持✅✅国产化✅❌❌学习成本中高低核心优势一切皆插件——模型、工具、技能、UI、沙箱全部插件化自由组合、替换、扩展 快速开始10 分钟上手 Demo环境准备# Node.js 版本要求 18.0node-v# 建议 v20# 克隆仓库gitclone https://github.com/deepseek-ai/deepseek-harness.gitcddeepseek-harness# 安装依赖npminstall# 构建核心npmrun build项目结构速览deepseek-harness/ ├── packages/ │ ├── core/ # 核心框架Cordis 元框架 │ ├── plugins/ # 官方插件 │ │ ├── model/ # 模型插件 │ │ ├── tool/ # 工具插件 │ │ └── ui/ # UI 插件 │ └── examples/ # 示例代码 ├── docs/ # 文档 └── package.json 实战手写第一个插件场景开发一个「天气查询」工具插件我们要创建一个简单的 AI Agent 插件让 AI 能够查询天气信息。Step 1创建插件项目# 创建插件目录mkdirweather-plugincdweather-plugin# 初始化 npm 项目npminit-y# 安装 Harness 核心依赖npminstalldeepseek-harness/coreStep 2编写插件代码创建src/weather-plugin.ts// src/weather-plugin.tsimport{Plugin,definePlugin}fromdeepseek-harness/core;// 定义插件配置接口interfaceWeatherPluginConfig{apiKey:string;defaultCity:string;}// 定义插件exportconstweatherPlugindefinePluginWeatherPluginConfig({name:weather-query,version:1.0.0,description:天气查询工具插件,// 插件激活时的初始化asyncsetup(config){console.log([Weather] 插件已激活默认城市${config.defaultCity});return{currentCity:config.defaultCity,apiKey:config.apiKey,};},// 插件提供的工具函数tools:{// 查询天气asyncgetWeather(ctx,city?:string){conststatectx.getPluginStateReturnTypetypeofthis.setup();consttargetCitycity||state.currentCity;// 模拟天气数据实际使用需调用 APIconstweatherData{city:targetCity,temperature:Math.floor(Math.random()*35)°C,condition:[晴,多云,小雨,阴天][Math.floor(Math.random()*4)],humidity:Math.floor(Math.random()*100)%,};return{success:true,data:weatherData,};},// 设置默认城市asyncsetDefaultCity(ctx,city:string){conststatectx.getPluginStateReturnTypetypeofthis.setup();state.currentCitycity;return{success:true,message:默认城市已设置为${city},};},},// 插件销毁时的清理asyncteardown(){console.log([Weather] 插件已卸载);},});exportdefaultweatherPlugin;Step 3创建插件入口创建src/index.ts// src/index.tsexport{weatherPlugin}from./weather-plugin;exporttype{WeatherPluginConfig}from./weather-plugin;Step 4编译插件创建tsconfig.json{compilerOptions:{target:ES2020,module:commonjs,lib:[ES2020],declaration:true,outDir:./dist,rootDir:./src,strict:true,esModuleInterop:true,skipLibCheck:true},include:[src/**/*],exclude:[node_modules,dist]}编译npx tscStep 5在 Harness 中注册插件创建src/app.ts主程序// src/app.tsimport{Harness}fromdeepseek-harness/core;import{weatherPlugin}from./weather-plugin;asyncfunctionmain(){// 创建 Harness 实例constharnessnewHarness({name:my-first-agent,version:1.0.0,});// 注册天气插件awaitharness.registerPlugin(weatherPlugin,{apiKey:your-api-key-here,// 实际使用需申请天气 APIdefaultCity:北京,});console.log(✅ Harness 启动成功);// 获取插件实例constweatherharness.getPlugin(weather-query);// 调用插件工具constresultawaitweather.tools.getWeather(null,上海);console.log(️ 天气查询结果:,result);// 设置默认城市awaitweather.tools.setDefaultCity(null,广州);// 再次查询使用默认城市constresult2awaitweather.tools.getWeather(null);console.log(️ 默认城市天气:,result2);}main().catch(console.error);Step 6运行 Demo# 编译主程序npx tsc src/app.ts--outDirdist# 运行nodedist/app.js预期输出[Weather] 插件已激活默认城市北京 ✅ Harness 启动成功 ️ 天气查询结果{ success: true, data: { city: 上海, temperature: 28°C, condition: 多云, humidity: 65% } } ️ 默认城市天气{ success: true, data: { city: 广州, temperature: 32°C, condition: 晴, humidity: 80% } } [Weather] 插件已卸载进阶多插件协作示例Harness 的强大之处在于插件自由组合。下面演示模型插件 工具插件的协作。完整示例AI 天气助手// src/ai-weather-agent.tsimport{Harness}fromdeepseek-harness/core;import{deepSeekModelPlugin}fromdeepseek-harness/model-deepseek;import{weatherPlugin}from./weather-plugin;asyncfunctionmain(){constharnessnewHarness({name:ai-weather-agent,version:1.0.0,});// 注册模型插件awaitharness.registerPlugin(deepSeekModelPlugin,{apiKey:process.env.DEEPSEEK_API_KEY,model:deepseek-chat,});// 注册天气插件awaitharness.registerPlugin(weatherPlugin,{apiKey:your-weather-api-key,defaultCity:北京,});// 获取插件constmodelharness.getPlugin(deepseek-model);constweatherharness.getPlugin(weather-query);// 用户输入constuserInput帮我查一下上海的天气然后用一句话总结;// 第一步让 AI 理解意图constintentawaitmodel.tools.chat({messages:[{role:user,content:userInput}],tools:[weather-query.getWeather],// 告知可用工具});// 第二步调用天气插件if(intent.toolCalls?.[0]?.namegetWeather){constweatherResultawaitweather.tools.getWeather(null,intent.toolCalls[0].args.city||上海);// 第三步让 AI 总结constsummaryawaitmodel.tools.chat({messages:[{role:user,content:userInput},{role:assistant,toolCalls:intent.toolCalls},{role:tool,content:JSON.stringify(weatherResult.data)},],});console.log( AI 总结:,summary.content);}}main().catch(console.error);运行效果 AI 总结上海今天多云气温 28°C湿度 65%适合外出活动。 插件类型大全DeepSeek Harness 支持多种插件类型下面是常见插件的开发模板1. 模型插件exportconstmyModelPlugindefinePlugin({name:my-model,tools:{asyncchat(ctx,messages:Message[]){// 调用 LLM APIreturnawaitcallLLM(messages);},},});2. 工具插件exportconstfilePlugindefinePlugin({name:file-operations,tools:{asyncreadFile(ctx,path:string){returnawaitfs.promises.readFile(path,utf-8);},asyncwriteFile(ctx,path:string,content:string){awaitfs.promises.writeFile(path,content);return{success:true};},},});3. UI 插件exportconstcliUiPlugindefinePlugin({name:cli-ui,hooks:{onOutput(output){console.log( 输出:,output);},},});4. 沙箱插件exportconstdockerSandboxPlugindefinePlugin({name:docker-sandbox,tools:{asyncexecute(ctx,code:string,language:string){// 在 Docker 容器中执行代码returnawaitdocker.run(code,language);},},}); 发布你的插件到 NPM# 完善 package.jsonnpmpkgsetkeywordsdeepseek-harness,plugin,ai-agentnpmpkgsetrepository.githubyour-username/your-plugin# 测试npmpack# 发布npmpublish--accesspublic发布后其他人可以npminstallyour-weather-plugin然后在 Harness 中使用import{weatherPlugin}fromyour-weather-plugin;awaitharness.registerPlugin(weatherPlugin,config); 实际应用场景场景 1AI 代码助手// 组合模型 文件 沙箱 代码审查插件harness.registerPlugin(deepSeekModelPlugin);harness.registerPlugin(filePlugin);harness.registerPlugin(dockerSandboxPlugin);harness.registerPlugin(codeReviewPlugin);// AI 可以读写文件 → 生成代码 → 沙箱运行 → 自动审查场景 2自动化测试 Agent// 组合模型 浏览器 测试 报告插件harness.registerPlugin(deepSeekModelPlugin);harness.registerPlugin(playwrightPlugin);harness.registerPlugin(testGeneratorPlugin);harness.registerPlugin(reportPlugin);// AI 可以分析需求 → 生成测试 → 执行 → 输出报告场景 3数据分析助手// 组合模型 SQL 可视化 报告插件harness.registerPlugin(deepSeekModelPlugin);harness.registerPlugin(sqlPlugin);harness.registerPlugin(chartPlugin);harness.registerPlugin(reportPlugin);// AI 可以理解问题 → 查询数据 → 生成图表 → 输出分析⚠️ 注意事项事项说明版本兼容性v0.1 预览版API 可能变动生产环境暂不建议用于生产等待 v1.0文档完善度部分文档仍在补充中社区支持新框架遇到问题需自行探索资源链接资源链接GitHub 仓库https://github.com/deepseek-ai/deepseek-harness官方文档https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/development.zh.mdAwesome 资源https://github.com/0xsline/awesome-deepseek-harness本文 Demo 代码可关注公众号回复harness获取写在最后deepseek Harness本质上主要是适用于前端 JS/TS的AI开发框架方便统一管理插件并不能直接应用于 Java/Python/Golang 乃至于客户端app的Android, IOS 鸿蒙开发等

相关新闻

Peak CAN卡选型、软件使用与实战调试全指南

Peak CAN卡选型、软件使用与实战调试全指南

1. 从项目到工具:为什么需要一张专业的CAN卡?如果你正在开发汽车电子、工业控制或者机器人相关的项目,那么“CAN总线”这个词对你来说一定不陌生。它就像这些复杂系统里的“神经系统”,负责在各个控制器(ECU&#xff0…

2026/8/18 6:43:05 阅读更多 →
现在才懂啊,儿子的家呀根本就不是我的家。昨天中午呢我孙子就跑到厨房啊,扒着门框喊说,爷爷饭好了没有我饿了。我把最后一道啊排骨端出来,我说好了,快喊你爸妈出来吃饭吧。儿媳妇呢就跟着从卧室啊走出来就往桌旁

现在才懂啊,儿子的家呀根本就不是我的家。昨天中午呢我孙子就跑到厨房啊,扒着门框喊说,爷爷饭好了没有我饿了。我把最后一道啊排骨端出来,我说好了,快喊你爸妈出来吃饭吧。儿媳妇呢就跟着从卧室啊走出来就往桌旁

现在才懂啊,儿子的家呀根本就不是我的家。昨天中午呢我孙子就跑到厨房啊,扒着门框喊说,爷爷饭好了没有我饿了。我把最后一道啊排骨端出来,我说好了,快喊你爸妈出来吃饭吧。儿媳妇呢就跟着从卧室啊走出来就往桌旁一坐。…

2026/8/18 6:41:34 阅读更多 →
求职招聘大厂Java面试实录:JDK17、Redis分布式锁、Kafka投递削峰、Seata分布式事务、Spring AI+RAG智能匹配,谢飞机三轮被虐哭(附完整答案解析)

求职招聘大厂Java面试实录:JDK17、Redis分布式锁、Kafka投递削峰、Seata分布式事务、Spring AI+RAG智能匹配,谢飞机三轮被虐哭(附完整答案解析)

求职招聘大厂Java面试实录:JDK17、Redis分布式锁、Kafka投递削峰、Seata分布式事务、Spring AIRAG智能匹配,谢飞机三轮被虐哭(附完整答案解析) 面试公司背景 伯乐直聘——国内头部求职招聘平台,注册求职者2亿、企业用户…

2026/8/18 3:58:45 阅读更多 →

最新新闻

HarmonyOS 7.0 / API 26 FaceAR 预览帧节流:识别和渲染如何避免互相抢帧

HarmonyOS 7.0 / API 26 FaceAR 预览帧节流:识别和渲染如何避免互相抢帧

先看问题为什么会发生 这篇只抓一个点:FaceAR 预览帧节流。我不按概念顺序铺开,而是按项目里最容易出问题的路径来拆:先复现坏写法,再补上边界判断,最后用日志和状态验证结果。 FaceAR 页面最容易把识别、渲染和 UI 动…

2026/8/18 10:29:20 阅读更多 →
HarmonyOS 7.0 / API 26 隔空投送失败归因:发现、传输和权限三段日志怎么留

HarmonyOS 7.0 / API 26 隔空投送失败归因:发现、传输和权限三段日志怎么留

先看问题为什么会发生 这篇只抓一个点:隔空投送失败归因。我不按概念顺序铺开,而是按项目里最容易出问题的路径来拆:先复现坏写法,再补上边界判断,最后用日志和状态验证结果。 隔空投送失败时,用户只看到失…

2026/8/18 10:29:20 阅读更多 →
HarmonyOS 7.0 / API 26 碰一碰分享回执:近场触发后如何确认对方真的接收

HarmonyOS 7.0 / API 26 碰一碰分享回执:近场触发后如何确认对方真的接收

先看问题为什么会发生 这篇只抓一个点:碰一碰分享回执闭环。我不按概念顺序铺开,而是按项目里最容易出问题的路径来拆:先复现坏写法,再补上边界判断,最后用日志和状态验证结果。 近场分享看起来很短,实际上…

2026/8/18 10:29:20 阅读更多 →
开会 2 小时,他 10 分钟甩出带责任人的纪要:同事偷偷用了这 3 步

开会 2 小时,他 10 分钟甩出带责任人的纪要:同事偷偷用了这 3 步

周五下午 4 点,同事小张从一场 3 小时的复盘会出来,10 分钟后,一份带着责任人、截止日期的纪要就甩进了群里。我问他是不是偷偷请了助理,他反手甩给我一句话:“腾讯会议把录音转写免费了,剩下的,是技巧。” 今天不堆工具,只讲一件事:怎么让 AI 从"复读机"变成"会…

2026/8/18 10:29:20 阅读更多 →
如何解读汽车配置表:从名爵6看配置背后的产品策略与购车决策

如何解读汽车配置表:从名爵6看配置背后的产品策略与购车决策

1. 从一则配置信息说起:我们到底在关注什么?4月27日,2019款名爵6的配置信息公布了。这看起来只是一条普通的汽车行业资讯,但如果你像我一样,在汽车媒体和用户社区里泡了十几年,你就会发现,每一次…

2026/8/18 10:29:20 阅读更多 →
30分钟让Zotero看懂中文文献:Jasminum茉莉花插件完整上手实测

30分钟让Zotero看懂中文文献:Jasminum茉莉花插件完整上手实测

30分钟让Zotero看懂中文文献:Jasminum茉莉花插件完整上手实测 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件,用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum Jasminu…

2026/8/18 10:28:19 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →