dsh-host-ops:把 DSH 工作区、会话与配置治理暴露给智能体

前言

在 DeepSeek Harness(DSH)里跑智能体时,工作区怎么建、会话怎么发消息与插队、配置项怎么改且不撞车——这些能力本来在桌面端或通过 DSH 内置服务完成。若希望智能体在工具链里自助完成上述操作,又不能直接改 DSH 磁盘上的文件,就需要一层「走官方服务、带预览与审批」的主机侧工具。

下面介绍的 dsh-host-ops(仓库 laughinbytes/dsh-host-ops)是 laughinbytes 维护的社区插件(非官方),分类属于 admin-security 方向:只提供工具、没有 UI,通过 DSH 的 workspaceRegistry、sessionController、configEditor、approval 等服务暴露工作区、会话与可编辑配置行,并对写操作做预览、审批、审计与回滚。

这是什么

  • 定位:Host-side operations for DSH agents — workspaces, sessions, and governed configuration changes(tools only, no UI)。
  • 维护者:laughinbytes(MIT 许可证,当前包版本 0.1.0)。
  • 入口:插件目录页 skillhub.cn;源码与说明以 GitHub README 为准。

插件不直接编辑 DSH 文件;所有调用经由 DSH 自有服务完成。

核心功能:三个工具

dsh_workspace_manage

对工作区做注册表级操作:list、get、create、rename、reorder、remove。其中 remove 仅注销工作区,文件、会话与历史仍保留。

dsh_session_manage

会话生命周期与消息投递,包括:list、get、search、read、start、send、steer、queue、wait、notify、fork、attach、rename、reorder、sort、pin、unpin、archive、unarchive、cancel、model。

投递语义(摘自 README):

  • send:下一轮送达;空闲目标立即开始,运行中目标在当前轮次结束后收到(不打断)。
  • steer:注入当前正在执行的轮次,下一步采纳;若目标空闲则退化为 queue 并说明。
  • queue:只查看或编辑待发送消息,不发送新文本。
  • send、steer、start、read、wait 返回 cursor;作为 after 传给 read/wait 可只取该点之后的变化。wait 支持 until: done | reply | step,超时时返回部分内容及 idleForMs。

dsh_config_manage

对当前 profile 中任意可编辑配置行(DSH 核心行与已安装插件行均可)执行:list、get、set、reset、revert、history。

写操作治理

对配置的写入并非裸写,而是一套约束(README 原文要点):

  1. Preview token:写操作须携带 preview 返回的 token;token 由当前状态重算,中间状态变化会导致拒绝(防 TOCTOU)。
  2. Approval:须通过 approval.request 得到 allowed-once;无审批通道则失败关闭。
  3. Audit:每次生效的写入记入内存审计(最近 100 条),含前后 override;工具结果带 receipt 与恢复步骤。
  4. Revert:按 auditId 做冲突检查后回滚;当前值不一致则拒绝并列出冲突。
  5. Masking:含 key/token/secret 等敏感字段在 preview、receipt、approval、history 中脱敏(含嵌套如 providers[].apiKey)。
  6. 对 agent-loop、webserver、connection、modules 等启动必需行,会附带警告与应急恢复说明。

安装与启用

在 Desktop profile 下从官方索引安装:

dsh plugin --profile desktop add dsh-host-ops

从 GitHub 安装:

dsh plugin --profile desktop add "github:laughinbytes/dsh-host-ops#main"

desktop 对应桌面应用 profile;Web UI 使用 web。也可在 Plugins → Add plugin 添加。无需自行声明或安装 @deepseek-ai/* 包,它们作为 peerDependencies 由 DSH 安装解析。

插件配置项

主机侧插件在 Plugins 页没有可编辑表单,仅组件开关键。下列选项写在插件行上(默认值如下),宜通过智能体调用 dsh_config_manage(含 preview/approval/audit)修改:

选项 默认值 含义
approval ask ask:每次配置写均需审批;never:配置写只读
requirePreview true 写操作需要 preview token
strictErrors false 每条降级路径均抛错(开发/测试用)

典型用法与验证

安装后,向智能体发起自然语言即可触发工具,例如 README 建议的端到端冒烟:

  • 让智能体执行「list my workspaces」;工具正常返回且无报错,即表示链路可用。

仓库内还提供本地验证脚本(开发者向):

node scripts/verify-dsh-host-ops.mjs
node scripts/verify-dsh-host-ops-schema.mjs

兼容性与限制

  • DSH:>=0.2.1-rc.2 或 >=0.2.2-rc.1(README 注明在 0.2.2-rc.1 上测试)。
  • Node:>=22.19.0。
  • 平台:macOS Desktop 已验证,其他平台未测试。
  • 审计历史仅在内存中保留最近 100 次写入。
  • 配置编辑仅覆盖已有行的顶层字段;不能安装/启用插件 bundle、不能改 agent preset、不能直接写 DSH storage 文件。

卸载与应急

在 Plugins 中禁用或移除 bundle,或执行:

dsh plugin --profile desktop remove dsh-host-ops

经工具写入的配置 override 仍留在 profile 的 patch 层,可用 dsh_config_manage 的 revert/reset 收回。若改过启动必需行导致 DSH 无法启动:退出 DSH,将 ~/.dsh/profiles/<profile>/cordis.patch.yml 重命名为 .bak-<timestamp> 后重启;原始值可在工具 receipt 中查看。

适用场景与注意

适合谁:需要在 DSH 智能体侧自动化管理工作区与会话、在审批与审计约束下改 profile 配置的开发者或运维向用户;分类 admin-security 与「治理写配置」的设计一致。

务必注意:

  • 插件以当前 DSH 进程权限运行,安装前应阅读源码与 MIT 许可证,确认是否符合你的安全策略。
  • 社区目录 skillhub.cn 为独立生态站点,与 DeepSeek / 幻方无官方从属关系;本插件为 unofficial community plugin。
  • GitHub 上星标数为 0(截至目录信息),使用前自行评估成熟度。

结尾

dsh-host-ops 把 DSH 自己的工作区、会话与配置编辑能力封装成三组工具,并通过预览、审批、审计与回滚约束写路径,适合「智能体自助运维 DSH 主机状态、但不碰磁盘配置文件」的场景。进一步了解请查看 插件目录页 与 GitHub 仓库。

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

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

小夜