用途:帮助为 DeepSeek Harness(dsh)这一基于 Cordis 的智能体框架开发插件,适用于创建、修改、调试或打包 dsh 插件的场景。
主要能力:插件为 TypeScript 模块,导出 apply(ctx: Context),通过 cordis.yml 组合。支持三种形式:函数(默认)、对象({ name, inject, apply })、类(继承 Service,仅在向其他插件提供服务时使用)。依赖通过 export const inject = ['tools','llm'] 声明,框架会保持插件 PENDING 直到注入的服务就绪。通过 ctx 注册的一切都是 effect,卸载时自动清理;自定义资源用 ctx.effect(() => { ... return () => cleanup }) 包裹。子插件用 ctx.plugin(childPlugin) 创建,await fiber.dispose() 递归卸载。Fiber 状态:PENDING → LOADING → ACTIVE → UNLOADING → DISPOSED,异常分支为 FAILED;服务在运行时消失会自动销毁依赖方。工具使用 defineTool 定义并 ctx.tools.register 注册,其会把参数转为 JSON Schema、校验参数并在卸载时自动注销。配置必须同时导出 interface Config 和 const Config: Schema<Config>,无效配置会进入 FAILED;YAML 中可用 !!js 写动态值。服务可提供(extends Service)与消费(inject),也可用 ctx.get('name') 可选获取,支持 group 与 isolate 隔离。事件支持 emit、parallel、serial、bail、waterfall 等模式;关键事件包括 agent/step、tools/result、session/event。LLM 适配器继承 LlmAdapter,实现 async *stream 并 ctx.llm.registerAdapter 注册,StreamChunk 顺序为 block-start → text-delta/tool-call-delta → block-end → usage → finish。
使用方式:本地开发用 --patch ./cordis.patch.yml 插入插件;分发包为带 dsh.bundle 清单与 cordis.patch.yml 的 npm 包,安装命令为 dsh plugin --profile demo add ./hello-plugin。层顺序为 profile bundles → profile patch → home patch → --patch 叠加,后者按行覆盖(非深合并)。HMR 需加载 @deepseek-ai/cordis-plugin-hmr、@deepseek-ai/cordis-plugin-logger-console 与 @deepseek-ai/cordis-plugin-timer。诊断 PENDING 可遍历 ctx.registry 检查 fiber.state。参考文档位于 references/ 目录,分 basic、framework、practice、cordis-tutorial 四部分。
限制:现有资料未提供具体收费、价格、平台支持范围及效果说明。