deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
liangdabiao/dsh-plugin-developer-skill
dsh-plugin-developer — DeepSeek Harness 插件开发 Skill > 指导 AI Agent 从 0 到 1 开发、构建、安装、测试 DeepSeek Harness(dsh)插件。基于 **dsh 0.1.1-rc.2** 与 dsh-openmaic 项目的完整实战经验,并内置一个**已通过 web 界面实测**的天气插件作为整包参考案例。 ## 这是什么 dsh 采用"无特权内核、万物皆插件"的设计:模型适配器、工具注册表、Agent 循环、网页界面都是插件
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:liangdabiao/dsh-plugin-developer-skill
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
指导 AI Agent 从 0 到 1 开发、构建、安装、测试 DeepSeek Harness(dsh)插件。基于 dsh 0.1.1-rc.2 与 dsh-openmaic 项目的完整实战经验,并内置两个已通过 web 界面实测的整包参考案例:天气插件(查天气 + 动效卡片)、电商出图插件(Claude Skill 改造成 dsh 插件 + 代理异步出图 + 画廊卡片)。
dsh 采用"无特权内核、万物皆插件"的设计:模型适配器、工具注册表、Agent 循环、网页界面都是插件。给 dsh 增加新能力 = 写一个插件包挂到 Cordis 容器上,不需要 fork 源码。
这个 Skill 把"写一个 dsh 插件"这件事做成一套可复用的工作流:
诊断需求/选型 → 环境准备(Node22) → 生成骨架 → 实现(工具/技能/系统提示/浏览器端)
→ 双端构建(junction+tsdown) → 安装进profile → 测试(headless/web界面验收) → 交付
dsh-plugin-developer/
├── SKILL.md # 主工作流(Agent 先读这个)
├── README.md # 本文件:人读的说明
├── scripts/
│ └── scaffold_plugin.py # 一键生成插件项目骨架(自动替换包名等占位符)
├── assets/
│ ├── plugin-skeleton/ # 可复制的插件骨架模板(真实 API)
│ └── examples/
│ ├── weather-plugin/ # 案例①:查天气 + 动效卡片(已实测)
│ └── ecom-details-image-plugin/ # 案例②:Claude Skill→dsh 插件,代理异步出图 + 画廊卡片(已实测)
└── references/ # 按需加载的深度文档(共 9 篇)
├── architecture.md # dsh/Cordis 架构、生命周期、双端、meta、骨架清单
├── plugin-types.md # 四种插件类型与选型(Provider/Interceptor/Tool/AgentLoop)
├── tool-plugin.md # defineTool 完整指南 + presentationMeta
├── skill-plugin.md # SkillProvider {list,get} 开发指南
├── system-prompt.md # ctx.systemPrompt.section 注入
├── http-client.md # 调外部 API:异步作业 + 轮询 + 可注入 fetch
├── browser-side.md # 浏览器端 slots Toolview、沙箱与 CSP
├── build-test.md # 双端打包、ModuleLoader、测试金字塔
└── troubleshooting.md # 常见坑与排错(真实踩坑记录)
SKILL.md:它定义了完整工作流(第 0~6 步),Agent 按其执行。tool-plugin.md,写技能读 skill-plugin.md,写浏览器端读 browser-side.md……(渐进式加载,别一次全读)。python scripts/scaffold_plugin.py <目录> --name @scope/name,然后填充逻辑。assets/examples/ 对应文件怎么写。查天气类看 weather-plugin/;把别的 AI 产品的 Skill/脚本改造成 dsh 插件、或调外部生成 API(图片/视频/长任务、要代理出网) 看 ecom-details-image-plugin/。defineTool + ctx.tools.register,把结构化数据经 presentationMeta 投影给浏览器渲染。SkillProvider { name, list(), get() },正文按需加载。ctx.systemPrompt.section({ name, order, text })。ctx.slots.inject('tool.call.toolview', ...) + keyed React 组件。| 项 | 要求 |
|---|---|
| Node 版本 | 必须 22+(dsh 0.1.x 与 tsdown 0.22 都依赖 Promise.withResolvers 等新 API) |
| 宿主依赖 | 用 junction 链 dsh 发布包里的 @deepseek-ai/*,不要手动 npm 装一份(版本会不一致) |
| npm install 顺序 | 会清掉 junction → link_deps.py 必须在 npm install 之后跑 |
| 浏览器产物 | 单文件、无动态 import、无多 chunk;必须带 __ModuleLoader__ banner/footer |
| 安装 | dsh plugin --profile <名> add file:<绝对路径>;file: 是复制,改代码后要 sync_profile.py |
| 验收 | 命令行跑通不算完,最终要在 web 界面(http://127.0.0.1:3080)看到工具调用 + 渲染效果 |
MIT
特别致谢: https://linux.do 社区支持
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: skill、skills。