dsh-genie:让 DeepSeek Harness 的愿望长存

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、网络或构建授权,且授予的愿望仅是文件。

典型用法

在智能体开发流程中,可以按以下步骤操作:

  1. 智能体编写插件并通过 cordis_run 挂载测试。
  2. 验证功能正常后,下达“keep it”指令。
  3. 执行 genie_keep dyn-1 将动态包转为正式愿望,生成 dsh-wish-ship-it。
  4. 重启 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_define VM 沙箱中运行的代码(无 Node 全局对象),在永久化后将运行在普通 Node 环境中。如果代码依赖了沙箱中的 Facade,可能需要调整。
  • 加载时机:代码不会在写入会话中执行,而是仅在下次重启时加载。
  • 验证方式:生成模块在安装前仅通过 node --check 进行解析检查,不执行代码。
  • 层顺序:愿望的补丁层按追加顺序生效,位于 dsh-base 和其他已安装插件之后。
  • 命名规则:愿望名称必须是单个验证过的路径段。

信任立场

授予的愿望是拥有 Harness 完整上下文的普通代码。dsh-genie 不会在写入会话中执行代码,且利用 node --check 进行静态验证。但它不会对代码进行沙箱隔离或审查。如果智能体拥有足够的权限,其行为与直接写入文件一致。建议在重启前检查愿望源码,并确保你信任该代码。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜