codex-collab: Treating Codex CLI as a Vendor for Task Assignment and Local Acceptance

前言

在 DeepSeek Harness(DSH)里接 OpenAI Codex CLI 时,常见做法是一次次 codex exec:模型往往先给大段解释,改 bug 要反复重讲背景,写完也不自测。DSH 社区把工作流类插件放在独立目录站点(与 DeepSeek / 幻方无官方从属关系),0xyxy/codex-collab 就是其中一套:用 PowerShell 脚本把「派活 → 写代码与测试 → 本地跑测 → 失败原样回传」固定成流程,并配合 DSH skill 包(cordis.patch.yml)供 agent 加载。

下面介绍它是什么、能做什么,以及如何按 README 用起来。

这是什么

  • 名称:codex-collab(npm 包名 codex-collab,版本 0.1.0)
  • 维护者:0xyxy
  • 分类:工作流(DSH 插件 / skill pack)
  • 许可证:MIT
  • 定位:把 OpenAI Codex CLI 当成供应商而不是顾问——要产物、要可验收结果,而不是长篇解释。
  • 依赖环境:PowerShell 7+;Python 可选(仅 Windows 桌面端会话挂载 _mount.py 需要);Node >=18(包元数据);peer @deepseek-ai/cordis ^4.0.1。

它解决什么问题

直接调 codex exec 时,README 归纳的典型问题包括:只要代码却收到解释、写完不测、单 bug 多轮重复交代、多任务排队慢、同类坑反复踩。本插件用脚本统一处理:派活强制附带验收标准 + 自测脚本,本地执行测试,失败把报错原文丢回同一会话续修。

核心流程:

你提需求
  ↓
派活(文件名 + 验收标准 + 自测要求)
  ↓
Codex 写代码 + 写测试
  ↓
本地跑测试 ── 绿 ──→ 补对抗性测试 ──→ 交付
  ↓ 红
报错原文整段回传(续接同一会话)

README 强调两点:Codex 自写测试只能覆盖它「想到的对」;失败时不要自己转述,应原样回传测试输出。

核心功能(已核实)

脚本一览

脚本 用途
codex-build.ps1 派活 + 强制自测 + 自动验收
codex-fanout.ps1 多任务派活(见下文并行说明)
codex-talk.ps1 真单会话多轮(codex exec resume)
codex-delegate.ps1 同步调用,快速取结果
codex-watch.ps1 看门狗:超时杀进程 + 重试
codex-review.ps1 代码审查,结果落盘 md
codex-context.ps1 共享上下文:约定 + 自动时间线
codex-post.ps1 / codex-send.ps1 Windows 桌面端投递 / UI 自动化
codex-on.ps1 / codex-off.ps1 代理开关 + 重启桌面端

沙箱默认值

选错脚本会导致静默不落盘:

脚本 默认 Sandbox 能否改文件
codex-build workspace-write 能
codex-delegate workspace-write 能
codex-talk / codex-fanout / codex-watch read-only 不能(除非 -AllowWrite 等)

要改文件:用 codex-build,或显式 -Sandbox workspace-write / -AllowWrite。

共享上下文

每个工作目录一份 .dsh/codex-context/<项目名>-<hash>.md:手写约定 + 自动时间线(最近 10 条注入)。codex-talk / codex-build / codex-delegate 调用前注入、调用后记账;-NoContext / -NoRecord 可关。与进库的 AGENTS.md 分工:后者是项目规范,前者是私有工作笔记。

并行与多轮

  • 多轮:codex-talk.ps1 使用 codex exec resume,历史在服务端,不必每轮重发背景。
  • fanout:README 说明早期隐藏窗口并行在本机不可用(子进程内 codex 易卡死);现为进程内顺序执行,-MaxParallel 仅为兼容保留。

成本与默认参数

  • 共用参数:-Model 默认 gpt-6.1-sol,-Sandbox,-WorkDir,-Proxy。
  • 单次调用固定开销约 13–14K tokens(README 实测与缓存比例见仓库「成本参考」)。
  • 默认精简模式限制正文长度;-Full 关闭。

安装与启用

先做 Codex CLI 安装与登录(见 openai/codex)。README 给出的部署方式如下(占位符 <you> 需换成实际 fork 或上游仓库地址;上游为 0xyxy/codex-collab):

# 1. 装 Codex CLI 并登录
#    https://github.com/openai/codex

# 2. 把本仓库放到技能目录(可选,用于 DSH/agent 自动加载)
git clone https://github.com/<you>/codex-collab.git "$HOME/.dsh/skills/codex-collab"

# 或者直接用,不放到技能目录也行
git clone https://github.com/<you>/codex-collab.git
cd codex-collab/scripts

package.json 表明这是 DSH skill pack,通过 dsh.bundle.patch 指向 ./cordis.patch.yml。社区目录页:skillhub.cn/plugins/0xyxy/codex-collab。安装前请自行阅读仓库源码与 MIT 许可证;插件脚本会以当前 DSH 进程权限调用 Codex 与本地测试。

典型用法

派活 + 自测(最常用)

在 scripts 目录执行:

./codex-build.ps1 `
  -Task "写一个日志分析脚本,统计访问最多的路径和状态码分布" `
  -Files "Log-Analyzer.ps1" `
  -TestScript "Test-Log-Analyzer.ps1" `
  -Acceptance "参数 -Path/-Top;退出码 0成功 1文件不存在 2无有效数据;输出JSON"

脚本会组装派活单、调用 Codex 落盘、运行 Test-Log-Analyzer.ps1 并报告通过与否;失败按提示把报错丢回去。

多任务

./codex-fanout.ps1 -Tasks @(
  "解释 PowerShell 里 $_ 和 $PSItem 的区别",
  "Get-ChildItem -Force 会不会列隐藏文件",
  "-ErrorAction Stop 和 try/catch 什么关系"
)

各任务独立超时,答案从 -o 文件读取。

多轮讨论

./codex-talk.ps1 -Message "我的判断是 X,你觉得呢"
./codex-talk.ps1 -Message "你说 Y,但我认为 Z"
./codex-talk.ps1 -NewSession -Message "换个话题"

修 bug(续接会话)

./codex-build.ps1 `
  -Task "测试报错:FAILED: 状态码分布不符,期望 404:1 实际 404:0" `
  -Files "Log-Analyzer.ps1" -TestScript "Test-Log-Analyzer.ps1" `
  -KeepContext

维护共享上下文

./codex-context.ps1
./codex-context.ps1 -Action add -Text "本项目用 pnpm"
./codex-context.ps1 -Action clear

适用场景与注意

适合:已在用 Codex CLI、希望 agent 或自己用固定模板派活、本地 PowerShell 跑验收、需要 resume 少重复背景的团队或个人。

务必注意:

  • README「已知坑」:codex exec resume 不传 sandbox 会回到 read-only;长任务流式可能卡死,可用 codex-watch.ps1 或拆任务;默认模型下线需 -Model 覆盖;部分网络需 -Proxy。
  • 不要在 read-only 脚本上期待改文件。
  • 使用前核对 GitHub 最新 README 与 SKILL.md。

结尾

codex-collab 把 Codex 从「顾问式对话」收成「带验收标准的供应商协作」:派活单、本地测试、失败原文回传、可选上下文与时间线,并打包为 DSH skill。详情与脚本参数以仓库为准。

  • 目录页:https://www.skillhub.cn/plugins/0xyxy/codex-collab
  • GitHub:https://github.com/0xyxy/codex-collab
羽毛球分组比赛记分
小程序二维码

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

Xiaoye