DeepSeek Harness 插件开发手册
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,把 @user_f5732635/deepseek-harness-dev 安装到 AI 助手中。
技能介绍
插件开发为什么难
DeepSeek Harness 的 develop/ 文档覆盖 basic、Cordis 七章教程、framework、practice 四块,同一个概念可能散在多个页面里。真正动手写插件时会遇到三个具体问题:不知道当前任务该读哪份文档;凭记忆写 ctx.tools 或 ctx.llm 的方法签名;注册的副作用在卸载时清理不掉,留下裸定时器和监听器。
技能如何组织知识
- 按任务域路由:从零写插件查
plugin-basics.md,写工具查tools.md,接模型提供方查llm-adapter.md,排查插件不加载查cordis-core.md里的 fiber 状态机。 - 三条铁律:内置服务名和事件签名以仓库自动生成的 cordis-surface 区块与
@deepseek-ai/*包类型为准;通过ctx.on()、ctx.tools.register()、ctx.llm.registerAdapter()的注册都是可逆副作用,非 Cordis 管理的资源必须包进ctx.effect()并返回 disposer;正文之外的 API 一律先查类型,不凭记忆编造。 - 骨架速查:函数插件导出
apply,有依赖的服务加inject,配置用 Config 类型加同名 Schemastery schema,默认值写进 schema。 - 验证与交付:开发期用
--patchoverlay 把本地插件插进组合,改完刷新即可;需要交付时再用 profile 安装 bundle,部署前对照检查清单逐项核对。
适用边界
本技能只提供模式与规则,不替代查类型。服务名、公开方法与事件签名的权威来源始终是包内 TypeScript 类型。它也不维护静态清单——文档或仓库接口更新后,以仓库生成内容为准。使用时需要自己判断文档版本与代码是否匹配。
使用场景
- 要为 DeepSeek Harness 写第一个插件,需要理解插件形态、ctx 与注册方式时。
- 要封装 defineTool 工具,处理 execute 约定、后台任务和 UI 卡片时。
- 插件加载后不执行也不报错,需要排查 fiber 是否卡在 PENDING 时。
- 要接入新模型提供方,实现 LlmAdapter 与 StreamChunk 协议时。
适合人员
- 给 Harness 写插件的 TypeScript 工程师,需要把官方文档快速定位到可运行骨架。
- 维护 agent 能力平台的后端开发者,需要统一工具注册和副作用清理方式。
- 负责扩展 LLM 提供方的开发者,需要按 LlmAdapter 协议接入新模型。
- 调试插件加载问题的工程师,需要理解 cordis.yml、overlay 与 fiber 状态。