前言¶
在 DeepSeek Harness(DSH)里跑长回合智能体时,常见情况是模型连续发出工具调用却几乎没有文字说明,界面上像「静默工具循环」,难以判断当前在做什么。仅靠系统提示词要求模型「每步先说明」并不稳定:模型有时只输出 reasoning 和 tool-call,没有可提交的 assistant 文本块。
dsh-codex-mode(维护者 airainal,GitHub airainal/dsh-codex-mode)是 DSH 社区目录中的客户端类插件 bundle。它在权限菜单顶部增加 Codex Mode 开关,在 Host 侧作为 Codex 式 step driver:在工具批次执行前写入可持久化的进度说明、在计划未完成时尝试续回合,并把模式状态记在用户 profile 里。DSH 仍负责回合构造、工具派发、审批与事件日志;本插件不另起一套工具运行时。
这是什么¶
一句话:面向 DSH 0.2.1-rc.x 的 Codex 风格执行模式——持久计划、工具运行前的可见进度、以及权限菜单顶部的全局开关。
与「只改 prompt」的区别(README 原文要点):若模型发出的 assistant 消息只有工具调用、没有文本,Host driver 会在工具运行之前向可持久化的 assistant 消息里提交一段短进度说明,长回合不会变成无声的工具循环。
核心功能¶
以下能力均来自仓库 README,安装前请以 GitHub README 为准。
权限菜单上的 Codex 开关¶
- 开关位于权限菜单最上方、分隔线之上;不改变沙箱或审批级别。
- 最后一次开关状态保存在 profile 的
codex_mode存储域;对所有 live root 会话生效,新建或恢复的会话会自动继承。
工具批次前的可见进度¶
- 保留模型自己的说明;若缺失,driver 会按用户语言插入进度文本。
- 进度不是 UI 角标,而是写入 assistant 消息与 stream 的 text-chunks,与 reasoning、tool-call 索引对齐。
回合续写(turn continuation)¶
- 当 todo 仍有未完成项且助手不是在向用户提问时,
agent/turn-stopping会提供一次 continuation steer。
会话身份与权限¶
- 模式开启时,会话身份对应
codex-read-only、codex-workspace-write或codex-danger-full-access之一,写入会话日志并在 resume 后保留。 - Full access 与 Auto review 的安全门与内置权限控制一致;Codex 开启时 Auto review 不可用(无
codex-auto身份),需先关闭 Codex 再开 Auto review。
架构要点(便于排查)¶
- Bundle 含 Host 与 Web client:
cordis.patch.yml挂载三套codex-*权限预设与 Host 插件;client 替换当前会话的权限控件并增加 Codex 行。 - 这是 step driver,不是完整 Codex 引擎:README 明确未实现自由
apply_patch、Codex 式单工具调度、shell 输出上限与 Codex compaction 阈值等。
环境与要求¶
- DSH Desktop 或 Web,且具备 Plugin Manager。
package.json声明engines.dsh: ^0.2.1-rc.1;README 写明在 DSH0.2.1-rc.3上测试。- 首次从 GitHub 安装需要 Git 与网络访问。
插件以当前 DSH 进程权限运行;安装前应阅读源码与 MIT 许可证。若 profile 中有自定义 permission 预设,README 提醒安装前需合并进 bundle 的 cordis.patch.yml。
安装与启用¶
方式一:给 DSH 提供 GitHub 链接¶
在新会话中发送(README「中文快速安装」与 Install 节一致):
安装这个 DSH 插件 bundle:https://github.com/airainal/dsh-codex-mode
智能体可通过 plugin_manager 安装;也可在 Plugins → Install bundle 粘贴:
https://github.com/airainal/dsh-codex-mode
若运行时要求显式 git spec,可使用:
github:airainal/dsh-codex-mode
方式二:Release 压缩包¶
在 Plugins → Install bundle 粘贴 release 资源 URL 或本地 .tgz 路径,例如 README 给出的 v1.1.0 资源:
https://github.com/airainal/dsh-codex-mode/releases/download/v1.1.0/dsh-codex-mode-1.1.0.tgz
安装后启用¶
- 打开任意会话。
- 点击输入框(composer)下方的权限控件。
- 在菜单顶部打开 Codex Mode。
- 仍按需选择
Read Only、Workspace Write或Full access;模式与权限级别相互独立。
Desktop 上若启用 HMR,变更会立即生效;若 profile 关闭 HMR,安装后需重启 DSH。卸载:Plugins → Codex Mode → Remove,或让智能体移除 bundle。
典型用法¶
菜单有两个维度:Codex 开关控制执行协议;权限项控制沙箱与审批策略。例如在 Workspace Write 下打开 Codex,所有 live root 会话会切换到匹配的 codex-workspace-write 身份,但各会话沙箱仍为 workspace-write。
Host 命令(全局开关,会先写 codex_mode 再应用到 live root 会话):
/codex-mode on
/codex-mode off
Codex 开启时,触发器右侧会显示 Codex 标记(240 ms 宽度过渡)。内置 /permission 也会列出 codex-* 身份;README 建议用 composer 菜单或 /codex-mode 做全局开关,直接 /permission 仅为单会话覆盖。Settings 里默认权限下拉也会出现 codex-* 预设,运行中切换仍以 composer 菜单为准。
适用场景与限制¶
适合:希望在 DSH 里获得更接近 Codex 的「每步有说明、长任务可续写」体验,又不愿 fork 整套 DSH 运行时的人。
需注意:
- 目标运行时 DSH
0.2.1-rc.x;依赖 live agent 的step与会话 append 边界,未来 DSH 版本可能变动。 - 非完整 Codex 引擎,能力边界见 README「Scope and limitations」。
- Bundle 会覆盖 permission 行以注入
codex-*预设;自定义预设需自行合并 patch。
社区插件目录 skillhub.cn 上的 dsh-codex-mode 页 与 GitHub 仓库相互独立引用,并非 DeepSeek / 幻方官方应用商店;DSH 生态强调「一切皆插件」,安装来源以你信任的仓库与 release 为准。
结尾¶
dsh-codex-mode 在 DSH 现有基础设施上改的是用户可见部分:持久进度说明与未完成计划时的续回合,外加 profile 级记住的 Codex 开关。当前 release 版本为 1.1.0(见 package.json)。
- 目录页:https://www.skillhub.cn/plugins/airainal/dsh-codex-mode
- 源码与文档:https://github.com/airainal/dsh-codex-mode