DeepSeek Harness 加载本地插件 菜鸟教程
上一篇 DeepSeek Harness 第一个插件 写好了 hello-plugin 的源码,接下来我们把它加载进 Web UI。
这里我们会用到两个东西:patch 覆盖层 cordis.yml 和 –patch 启动参数。
scratch-plugin 目录结构
之前我们创建了 scratch-plugin/src,现在再加一个 cordis.yml。
整个临时项目的结构如下:
<span>scratch</span><span>-</span><span>plugin</span><span>/</span><span>
</span><span>├──</span><span> src</span><span>/</span><span>
</span><span>│</span><span> </span><span>└──</span><span> </span><span>my</span><span>-</span><span>plugin</span><span>.</span><span>ts </span><span># 插件源码(上一篇写的 hello-plugin)</span><span>
</span><span>└──</span><span> cordis</span><span>.</span><span>yml </span><span># patch 覆盖层:告诉框架插入哪个插件</span>
cordis.yml 的 insert
在仓库根目录运行 pwd,拿到绝对路径。
然后创建 scratch-plugin/cordis.yml,内容如下:
实例
# 文件路径:scratch-plugin/cordis.yml
# 这是一个 Web 覆盖层(overlay),只负责插入本地插件
- insert: - id: hello
# name 是插件文件路径,必须是绝对路径! name: ‘/absolute/path/to/deepseek-harness/scratch-plugin/src/my-plugin.ts’
把 /absolute/path/to/deepseek-harness 替换成 pwd 打印的真实路径。
插件路径必须是绝对路径。
patch 文件只贡献配置,不会改变 loader 解析模块路径时使用的 profile 目录。
用 –patch 启动
用这个覆盖层启动 Web UI:
<span>pnpm dsh web </span><span>--</span><span>patch </span><span>./</span><span>scratch</span><span>-</span><span>plugin</span><span>/</span><span>cordis</span><span>.</span><span>yml</span>
启动期间,终端会打印 [hello-plugin] plugin loaded!。
打开 http://127.0.0.1:3080,在设置插件列表中搜索 hello,可以看到我们安装的插件。
工作原理
dsh 把多个配置来源按顺序叠加成一个最终配置。
--patch 传入的 cordis.yml 是一个覆盖层,在启动时叠加进 profile。
| 概念 | 是什么 | 作用 |
|---|---|---|
| profile | 一份可启动的组装配置 | 决定 Web UI 由哪些组合包组成 |
| patch 覆盖层 | 启动时额外叠加的 yml | 插入本地插件、覆盖某项配置 |
| insert | patch 里插入插件的语法 | 按 name 绝对路径加载插件 |
提示:–patch 适合本地开发调试。
要把插件交付给其他人时,用组合包(bundle)的方式,见第 21 篇。
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/gpt/post/20260818/DeepSeek-Harness-%E5%8A%A0%E8%BD%BD%E6%9C%AC%E5%9C%B0%E6%8F%92%E4%BB%B6-%E8%8F%9C%E9%B8%9F%E6%95%99%E7%A8%8B-3/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com