DeepSeek Harness (DSH) 提供了一套自引用工具集(如 cordis_run),允许智能体编写并热加载插件,但动态包仅存在于进程内存中,重启即消失。dsh-genie 是这个常规开发工作流的压缩版本,它将智能体在运行时验证的代码转化为永久安装的插件。
核心功能¶
dsh-genie 提供了一组工具来管理这些“愿望”:
genie_keep:将智能体刚刚验证过的动态包设为永久。genie_wish:将智能体直接编写的代码设为永久(无需原型步骤)。genie_list:列出机器上的所有愿望及其运行状态。genie_revoke:取消愿望列表并解绑,除非另有要求,否则保留源码。/wish:人类视图,展示已授予的愿望、活跃状态及代码位置。Mounts @deepseek-ai/dsh-tool-cordis:挂载 DeepSeek Harness 的自修改工具集。
安装与启用¶
使用以下命令安装插件:
dsh plugin --profile web add github:swaylq/dsh-genie
安装后重启 dsh。该插件本身不依赖 pnpm、网络或构建授权,且授予的愿望仅是文件。
典型用法¶
在智能体开发流程中,可以按以下步骤操作:
- 智能体编写插件并通过
cordis_run挂载测试。 - 验证功能正常后,下达“keep it”指令。
- 执行
genie_keep dyn-1将动态包转为正式愿望,生成dsh-wish-ship-it。 - 重启
dsh后,该插件将在每次启动时加载。
配置冲突处理¶
如果个人配置中已挂载 @deepseek-ai/dsh-tool-cordis,安装 dsh-genie 会因为工具名冲突导致加载失败。需要在配置文件中禁用 dsh-genie 自带的行:
- id: genie-tool-cordis
disabled: true
配置选项¶
在 cordis.patch.yml 中对 genie 行进行配置:
allowUpdate(默认true):控制是否允许mode: "update"覆盖已存在的愿望。
工作原理与注意事项¶
- 愿望即文件:每个愿望是一个包含
package.json、cordis.patch.yml和index.js的目录。授予后,代码不会再次被修改,可以像普通代码一样读取、编辑或发布。 - 运行时域:被保留的动态包会改变其运行领域。原本在
cordis_defineVM 沙箱中运行的代码(无 Node 全局对象),在永久化后将运行在普通 Node 环境中。如果代码依赖了沙箱中的 Facade,可能需要调整。 - 加载时机:代码不会在写入会话中执行,而是仅在下次重启时加载。
- 验证方式:生成模块在安装前仅通过
node --check进行解析检查,不执行代码。 - 层顺序:愿望的补丁层按追加顺序生效,位于
dsh-base和其他已安装插件之后。 - 命名规则:愿望名称必须是单个验证过的路径段。
信任立场¶
授予的愿望是拥有 Harness 完整上下文的普通代码。dsh-genie 不会在写入会话中执行代码,且利用 node --check 进行静态验证。但它不会对代码进行沙箱隔离或审查。如果智能体拥有足够的权限,其行为与直接写入文件一致。建议在重启前检查愿望源码,并确保你信任该代码。