codex-dsh-buddy
v0.1.0
Published
Use DeepSeek Harness from Codex — Codex decides how to compose and use it.
Maintainers
Readme
Codex DSH Buddy 为 Codex 提供按需调用 DeepSeek Harness 的执行路径。用户只需与 Codex 对话。Codex 自行判断任务是否适合 DSH,检查当前 runtime,生成精简的内部 composition manifest,解析所需能力,启动隔离的官方 headless agent,并验收结果。
直接处理:用户 → Codex → 答案
Buddy: 用户 → Codex → Manifest → Capability Resolver
↓
内置 / 安装 / 开发
↓
隔离 DSH Agent
↓
结果 → Codex核心只有一个 Codex Skill 和一个小型 MCP/CLI control plane。项目不增加 planner 模型、agent loop、插件市场或 DSH runtime。Manifest 作为可重放、可审计的内部产物保存,不增加用户操作负担。
安装
Codex DSH Buddy 需要 Codex CLI 和 Node.js 22.19+。官方 DSH headless runtime 已作为包依赖包含。
npx -y github:dangoZhang/codex-dsh-buddy#v0.1.0 install \
--source github:dangoZhang/codex-dsh-buddy#v0.1.0安装后重启 Codex。安装器会把 codex-dsh-buddy Skill 复制到 ~/.agents/skills,注册 MCP server,并为较长的 DSH 任务设置有界 MCP timeout。它不会修改 DSH profile,也不会预先批准执行;dsh_composition_run 继续使用 Codex 的正常 approval 流程。
之后正常向 Codex 提问即可。Codex 会在合适时选择 DSH,也可以显式指定:
使用 DeepSeek Harness 检查这个仓库,并报告失败的测试。Controller 工作流
所有规划和验收均由 Codex 完成:
- 检查当前官方
headlesscomposition。 - 根据任务生成内部
dsh.compose/v1alpha1manifest。 - dry-run 检查 capability、plugin、patch、冲突和安全问题。
- 优先复用 builtin 或已安装插件;随后检查社区候选;仍缺失时才开发最小本地插件。
- 再次 resolve,运行一个隔离 DSH agent,并等待完成。
- 核对 final answer、session、trace summary 和 artifacts,再向用户汇报。
MCP server 内部不调用 LLM。模型可见的完整接口只有:
dsh_composition_inspect()
dsh_composition_resolve(manifest)
dsh_composition_run(manifest, task)
dsh_composition_save(manifest, name?)同一 control plane 也可以从终端调用:
codex-dsh-buddy inspect
codex-dsh-buddy resolve examples/demo-existing-capability.yaml
codex-dsh-buddy run examples/demo-existing-capability.yaml --task "Summarize package.json"Composition Manifest
版本化 Manifest 直接映射 DSH 的 profile、patch、model、tool、sandbox 和 persistence 配置。用户无需手写。
apiVersion: dsh.compose/v1alpha1
kind: AgentComposition
metadata:
name: repo-investigator
workspace:
cwd: /absolute/path/to/repo
base:
profile: headless
capabilities:
- id: filesystem
reason: Inspect repository files
- id: code-execution
reason: Run the requested checks
agent:
persona: Investigate the task and return evidence.
sandbox:
mode: workspace-write
run:
timeoutMs: 300000选中的插件会记录精确来源、提供的 capability ID、review 决定和 provenance。GitHub 插件必须固定到 commit;本地插件以 file: snapshot 进入隔离 profile。
Capability 解析
解析顺序固定:
builtin / current runtime
→ installed plugin
→ 已检查的 community plugin
→ unresolved:返回 develop-plugin 建议和 extension seam社区发现沿用 deepseek-harness-plugin-mcp 的约定。能力仍未解析时,control plane 返回 develop-plugin 及 tool | provider | guard 等 seam 建议;Codex 或 dsh-plugin-builder 负责创建代码,将 review 后的本地路径写回 Manifest,再次 resolve。
隔离与审计
每次运行都使用全新的 DSH_HOME、官方 headless profile、生成的 --patch overlay 及独立 JSONL session root。现有 DSH 配置和 web profile 不会被复制或覆盖。
状态默认保存在 ~/.codex-dsh-buddy;可用 CODEX_DSH_BUDDY_HOME 修改位置。每次运行落盘:
runs/<run-id>/
manifest.yaml
resolved-manifest.yaml
cordis.patch.yml
resolution.json
run.json
artifacts.json
trace/
summary.json
stdout.txt
stderr.txt
sessions/.../session.jsonlCodex 只接收归一化答案和 trace summary。Raw trace 通过路径保留,供审计和重放。
安全边界
[!WARNING] Profile 隔离用于保护已有 DSH 配置,不构成操作系统级安全边界。通过 review 的 DSH 插件会在隔离 DSH 进程中执行代码,并继承该进程的权限。
社区和本地代码只有在 Manifest 记录 review 与 provenance 后才能运行;GitHub ref 必须固定到 commit。danger-full-access 还要求用户明确授权,并设置 CODEX_DSH_BUDDY_ALLOW_DANGER=1。Dynamic Cordis 按 shell access 处理,优先选择可重放、已 review 的插件。
端到端验证
仓库包含三层测试。最后一层会启动用户本机已安装的 Codex CLI,不模拟 controller。
| 层级 | 已验证路径 |
|---|---|
| Unit + fake integration | Manifest 校验、解析顺序、冲突、隔离 patch、结果归一化、fake CLI/runtime、MCP 协议和安装器配置 |
| 真实 DSH smoke | @deepseek-ai/[email protected] 通过确定性本地模型端点,完成 builtin capability 和已 review 本地插件两个 demo |
| 本机 Codex E2E | Codex CLI 0.144.1 加载已安装 Skill 与 MCP,调用 inspect → resolve → run,创建真实 DSH session,执行 buddy_greet 并验收最终结果 |
复现全部检查:
pnpm install
pnpm check
pnpm test:real
pnpm test:codex-e2etest:codex-e2e 需要本机 Codex CLI 已登录,并通过上面的安装命令完成接入。DSH 使用本地确定性模型端点,无需外部 DSH API key。由于 codex exec 无交互,测试只为该进程预先批准 dsh_composition_run,不会修改持久 approval 策略。测试会断言 MCP 调用、DSH run.json、session ID、成功的插件工具轨迹及 Codex 最终答案。
当前范围
MVP 支持 one-shot、进程级 headless composition。当前官方 headless 入口会创建 fresh Agent,且没有 per-run preset selector,因此暂不提供 agent preset。持久 follow-up、observe、cancel 和 approval session 继续交给 Agentlink;插件生成和动态插件持久化继续使用外部 extension seam。
相关项目
deepseek-harness-plugin-mcp定义社区插件搜索、检查、安装、runtime 和工具约定,resolver 直接沿用。dsh-Agentlink提供持久 Codex→DSH 委派、follow-up、observe、cancel 和 approval。dsh-plugin-builder提供 unresolved capability 的 extension seam 选择及插件构建/验证流程。dsh-dynamic-plugins-manager负责动态 Cordis 插件的保存与重新加载。- DSH 已提供
cordis_inspect、cordis_define和cordis_run;本项目通过 capability composition 使用它们,不复制实现。
Codex DSH Buddy 只补充 composition control layer。插件市场、bridge、builder、动态插件管理器、agent loop、subagent runtime 和 model provider 均由现有项目继续负责。
实现遵循当前 DSH 的架构文档、Core 子系统、Subagent 子系统和配置目录。
贡献
保持 Manifest 精简,把能力映射到 DSH public composition API,并让 Codex 保持唯一 planner。
pnpm install
pnpm check
pnpm test:real协议
MIT © Codex DSH Buddy contributors
