dsh-codex-advisor:在 DSH 会话中挂载持久化 Codex 顾问线程

前言

在 DeepSeek Harness(DSH)里做长任务时,主会话往往要换模型、换视角,或单独走一条「只给建议、少动仓库」的链路。若每次手工开终端、登录 Codex、再复制上下文,线程状态和问答历史也很难留在同一工作区里复用。

dsh-codex-advisor 由社区维护者 Awenforever 发布,归类为工作流插件。它通过官方 codex app-server 协议,在 DSH 内维持多条带标签的 Codex 顾问线程,并暴露原生工具与可视化界面;调用消耗的是你已在 ChatGPT/Codex 侧的配额,而不是另配 API Key。插件目录见 SkillHub 条目,源码与说明在 GitHub 仓库。

定位与依赖

当前发行版为 0.7.5(MIT 许可证)。README 记载已在 Windows 11 上配合 DSH Desktop 0.2.1-rc.5、Codex CLI 0.166.0-alpha.5.1 做验证;package.json 要求 Node.js >=22,且 DSH 版本为 >=0.2.1-rc.5 <0.3.0。

使用前需具备:

  • DSH Desktop 0.2.1-rc.5 或同 0.2.x 线更高版本(插件当前主要在 Windows 11 上开发与测试)。
  • 支持 app-server --stdio 的 Codex CLI,且账号已登录;CLI 不随插件捆绑。
  • 可用的 Codex 配额;配额不足时工具会返回错误,并在服务端提供信息时附带重置时间。

插件与 OpenAI、DeepSeek 无隶属关系;凭证留在 Codex 配置目录,插件不读取或复制 auth.json。

核心能力

工具面

DSH 智能体可调用的六个原生工具如下:

工具 用途
codex_ask 向当前、指定标签或新线程发送请求(支持 thread、thread_id、new_thread、label、model、effort、purpose 等参数)。
codex_poll 拉取进行中或已结束的一轮结果。
codex_cancel 中断当前轮次。
codex_status 查看 app-server 连接、线程列表、活动线程、配额与最近错误。
codex_history 读取某线程的轮次、回答、命令、文件与来源信息。
codex_reset 在不删除旧线程的前提下开启新的带标签线程。

智能体按任务难度、模糊性与风险选择 model/effort,而非单纯按消息长度。线程创建时 model 固定;effort 可按轮次调整。每条工具结果会标明 source/model/effort。

界面与状态

  • Codex trail 标签页:线程轨、Markdown 形式的 Ask/Answer、活动记录,以及每轮 model · effort 脚注。
  • 侧栏 Codex advisor 卡片:活动线程、最近问答、状态灯、model/effort。
  • 支持分屏:侧栏卡片随聚焦窗格变化;各窗格维护各自的 sessionId;切换焦点只读快照,不会自动调用 codex_ask 或写入状态。与最新 dsh-multiview(README 记为 0.1.20)做过联调;更旧的分屏版本不受支持。
  • UI 跟随 DSH 明暗主题语义 token,无独立主题开关。
  • 线程绑定与状态在 DSH 重启后仍可恢复。

Codex 以 stdio 子进程运行,插件不监听端口;默认沙箱为 workspace-write,顾问可改动会话工作目录。

安装与启用

插件在 DSH 社区目录中归类为工作流;安装方式以 README 给出的发行包地址为准,不要凭仓库名自行拼接 dsh plugin add github:owner/repo。

DSH Desktop

在 DSH 插件管理器中安装下列 release 压缩包:

https://github.com/Awenforever/dsh-codex-advisor/archive/refs/tags/v0.7.5.tar.gz

安装后保留 codex-advisor bundle,若 Host 要求则重启 DSH。客户端 bundle 变更可能需要完全退出重开 DSH 或重载页面,Codex 标签页与侧栏卡片在客户端 bundle 重载后出现。

Web / CLI profile

在对应 profile 下执行(示例为 PowerShell):

dsh plugin --profile <profile> add https://github.com/Awenforever/dsh-codex-advisor/archive/refs/tags/v0.7.5.tar.gz

随后重启该 DSH profile。应用托管的 desktop profile 应使用应用内插件管理器,而非手改 profile。

更新说明

版本徽章会查询 GitHub 最新非预发布版本。DSH 0.2.1-rc.5 尚未暴露官方 pluginUpdates 服务时,需手动:点版本徽章检查 → Open release 查看说明 → 用插件管理器安装新 tarball → 退出重开或重载客户端 bundle,使 UI 与 Host 版本一致。

配置项

字段均在 codex-advisor bundle 配置中设置,均为可选。非 Windows 环境建议显式设置 codexCommand(默认可在 Windows 上自动发现 %LOCALAPPDATA%\OpenAI\Codex\bin\*\codex.exe,再试 PATH 与 @openai/codex)。

字段 默认值 说明
enabled true 总开关。
codexCommand "" Codex 可执行文件绝对路径。
codexArgv null 完整 argv 覆盖(包装或测试用)。
codexArgs [] 追加在 app-server --stdio 之后的参数。
model "" 新线程的默认模型。
reasoningEffort "" 新线程或续聊轮的默认 effort。
sandbox workspace-write 仅要建议时可设为 read-only。
approvalPolicy never 交互式审批自动拒绝。
defaultWaitSeconds / maxWaitSeconds 180 / 1800 codex_ask 等待行为。
idleRecycleMs 600000 空闲后回收 app-server;0 表示不回收。
maxThreads 100 会话内线程上限。
digestBytes 4096 恢复用摘要字节预算;0 关闭摘要。
stateDir "" 空则使用 $DSH_HOME/codex-advisor。
quotaCheckTtlMs 60000 配额查询缓存 TTL。
env {} 子进程额外环境变量。

状态写入 $DSH_HOME/codex-advisor(含 state.json、events.ndjson);卸载插件不会自动删除该目录。

典型用法思路

  1. 在 DSH 会话中让智能体调用 codex_status,确认 app-server 已连接且配额可用。
  2. 对某一目标调用 codex_ask,必要时用 label 或 new_thread 区分线程;复杂轮次用 codex_poll 等待完成,需要时用 codex_cancel 打断。
  3. 换视角或模型类时开新标签线程(codex_reset 或 new_thread),旧线程仍可通过 codex_history 查阅。
  4. 在 Codex trail 与侧栏卡片中核对每轮的 model/effort 与活动里的 files / commands;纯顾问场景将 sandbox 设为 read-only。

README 未提供独立剧本式示例命令;实际参数以工具表与智能体上下文为准。

适用场景与注意

适合:已在 DSH 0.2.x 桌面环境工作、并具备 Codex CLI 与登录配额;需要在同一 Harness 会话内并行或多标签维护 Codex 顾问线程;希望轨迹、侧栏状态与分屏焦点行为与 DSH UI 一致的场景。

注意:

  • 插件以当前 DSH 进程权限运行子进程并可能写工作区;安装前宜浏览源码与 MIT 许可证,并按团队规范评估 sandbox 与 approvalPolicy。
  • Windows 以外必须配置 codexCommand;分屏需较新的 dsh-multiview,否则焦点跟随可能不符合预期。
  • Codex app-server 为实验接口;单线程单写者,若 Codex Desktop 占用线程会报 CODEX_THREAD_BUSY。
  • 网络方面:插件会为发版检查访问 GitHub API;其余出站由 Codex CLI 自身决定;README 写明插件不发遥测。

结尾

dsh-codex-advisor 把 Codex 顾问做成 DSH 内可延续的多线程工作流:工具调用、trail 界面与重启后的状态一并考虑在内。若你要在 Harness 里固定一条「官方登录 + 配额内 Codex」的顾问链路,可从上述 tarball 安装,并在 bundle 里按环境补全 codexCommand 与安全相关选项。

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

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

小夜