每次调用可指定模型与推理强度
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/9 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ckanner/dsh-subagent-codex-pro该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 23 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 12 处,展示前 12 条)
- 写入本地文件src/index.ts:357
appendFileSync(join(process.env.DSH_HOME ?? join(homedir(), '.dsh'), 'codex-pro.log'), - 读取本地文件src/index.ts:605
const stat = statSync(image.path) - 读取本地文件src/index.ts:607
payloads.push({ data: readFileSync(image.path), mediaType }) - 读取本地文件src/index.ts:681
stat = statSync(runCwd) - 读取本地文件src/index.ts:698
stat = statSync(path) - 执行外部命令来自配置/变量src/run.ts:207
const proc = spawn(spec.command, ['app-server', '--stdio'], { - 发起网络请求src/wire.ts:393
this.#transport.request('initialize', { - 发起网络请求src/wire.ts:419
await this.#guarded(this.#transport.request('thread/start', { - 发起网络请求src/wire.ts:460
this.#transport.request('thread/resume', { threadId }, { signal }), - 发起网络请求src/wire.ts:494
this.#transport.request('thread/name/set', { threadId: this.#threadId, name }, { signal }), - 发起网络请求src/wire.ts:569
await this.#guarded(this.#transport.request('turn/start', { - 发起网络请求src/wire.ts:631
this.#transport.request('turn/interrupt', { threadId: this.#threadId, turnId: this.#turnId }).catch(() => {})
扫描于 2026/10/31(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 指定调用模型
- 指定推理强度
DeepSeek Harness 插件:Codex 委派,每次调用可带模型和推理强度
README
由 DeepSeek 最新模型翻译生成dsh-subagent-codex-pro
一个 Codex 委派工具,每次调用都能带上模型和推理强度 —— 这两样东西 @deepseek-ai/dsh-subagent-codex 表达不了。
tools.subagent_codex({
description: "Probe output PROBE_OK",
prompt: "Output exactly one line of text: PROBE_OK",
model: "gpt-6-astra",
reasoning_effort: "xhigh",
})
它补上了哪个缺口
subagent_codex 的 schema 只暴露 description 和 prompt,所以调用方没法指定模型,也没法指定思考等级。
展开完整文档(README 剩余 1 节)
dsh-subagent-codex-pro
一个 Codex 委派工具,每次调用都能带上模型和推理强度 —— 这两样东西 @deepseek-ai/dsh-subagent-codex 表达不了。
tools.subagent_codex({
description: "Probe output PROBE_OK",
prompt: "Output exactly one line of text: PROBE_OK",
model: "gpt-6-astra",
reasoning_effort: "xhigh",
})
它补上了哪个缺口
subagent_codex 的 schema 只暴露 description 和 prompt,所以调用方没法指定模型,也没法指定思考等级。在一次录制的会话里,模型被要求做这件事,试了最直接的做法,结果被拒:
ToolCallError: child model selection is disabled for this tool instance
从 harness 源码看,这条链路是:
tool schema exposes model / reasoning_effort
← only when modelSelectionEnabled
modelSelectionEnabled ← modelSelectionSettings: true on the tool row
modelSelectionSettings: true ← requires a provider declaring agentOptions
@deepseek-ai/dsh-subagent-codex ← declares NO_START_CAPABILITIES (no agentOptions)
→ enabling it throws while the preset mounts
Codex 协议两个字段都支持(ThreadStartParams.reasoningEffort、TurnStartParams.effort),官方服务商却从不发送它们。已向上游反馈:<https://github.com/deepseek-ai/deepseek-harness/discussions/9115>
还有第二个独立的缺陷:在服务商为外部(codex-pro)的行上开启 modelSelectionSettings: true,会让这一行悄无声息地一个工具都不注册 —— 没有报错,没有日志,也没有 preset 失败标记。另一行控制组除了这个标志外完全相同,却能正常注册。这一点也写在那份报告里。
那它是怎么做的
两层,都在本包的控制之下。
执行:说官方服务商说的那套协议
src/wire.ts 和 src/run.ts 是官方 app-server 适配器的移植 —— initialize 握手、临时线程、thread/turn 关联(包括在 turn/start 返回之前就到达的通知)、无人值守的审批决策,以及按阶段挑选最终答案 —— 只加了两处:
// thread/start
{ cwd, ephemeral: true, ...(model ? { model } : {}), reasoningEffort, ...THREAD_PERMISSION_PARAMS[mode] }
// turn/start
{ threadId, input: [...], effort }
这两个字面量在官方适配器那 871 行里一处都没有。与源码相比有两处机械差异:JSON-RPC 传输用的是本包自己的实现(src/jsonrpc.ts),app-server 从 PATH 以 <command> app-server --stdio 启动,而不是从 @openai/codex 的 manifest 启动。src/codex-exec.ts 是更早的 codex exec 路径,保留着也有测试,但没在用。
工具注册:用插件自己的上下文
插件自己注册委派工具,在 agent/created 时注册进那个 Agent 自己的上下文 —— 也就是 dsh-plugin-lcu 给它的工具用的那条路径:
ctx.on('agent/created', ({ agent }) => { if (!presetAllows(agent)) return; serve(agent) })js
ctx.on('agent-preset/selected', (sessionId, preset) => { … })
// serve(): agent.ctx.tools.register(createCodexTool({ … }))
这样就把 harness 的 preset-row 机制完全绕开了。preset 不需要自己的 row:presets 列出的是获得该工具的已提交 Agent preset——这里是 daily 和 heavy。
由于工具名固定,官方 tool-subagent-codex row 在这些 preset 中是禁用的。两个 row 在同一个 Agent 作用域内注册相同的工具名会冲突:第二次注册抛错,其工具会静默地永不出现。
提示词里写什么,就跑什么。 model 和 reasoning_effort 在 schema 中,调用里显式指定就生效;当委派两者都不指定时,选择权留给 Codex 自己的配置(~/.codex/config.toml)——插件配置时不设默认值,这样不会有任何东西静默覆盖任一方。modelSelection: false 会完全隐藏这两个字段。
Host 的 subagent-model-selection 设置被刻意不参考。它授权的是从 DSH 目录中选出的子 LLM 路由,按 token 计费;而 Codex 委派指定的是 Codex CLI 自己订阅下的 Codex 模型 id:资源不同,命名空间不同。该设置既不能授权也不能约束这个选择,读取它只会把工具耦合到一个与它无关的设置上。
安装 sh
as a bundle in a DSH profile
dsh plugin --profile desktop add dsh-subagent-codex-pro
or from a checkout, for development
dsh plugin --profile desktop add link:/path/to/dsh-subagent-codex-pro
验证 sh
npm install
npm run typecheck
npm test # argv + tool-schema cases; live case skipped
CODEX_SUBAGENT_LIVE=1 npm test # also runs gpt-6-astra + xhigh for real
插件把每个决策都记录到 ~/.dsh/codex-pro.log:
apply: provider "codex-pro" registered with agentOptions: true; presets=["daily","heavy"]
decide … composed=standard header=standard -> skip serve …: subagent_codex registered (modelSelection=true, background=true, via=app-server) run: model=gpt-6-astra effort=xhigh cwd=… prompt=179B via=app-server run: published 3f2a…
run done: text=8B
一次验证过的端到端运行:30 秒墙钟时间,模型的 PROBE_OK 作为工具结果返回。真实的 app-server 运行也由 live 测试覆盖,它会用 reasoningEffort 打开一个临时 thread,并用 effort 跑一个 turn。
后台运行与进度
一次委派要花一分钟甚至更久,所以只要 jobs 服务(@deepseek-ai/dsh-jobs)已加载,run_in_background 就存在。它返回一个 job id: js
tools.subagent_codex({ description: "…", prompt: "…", run_in_background: true })
// → { kind: "background", jobId: "subagent-3" } collect with job_output
子进程自己的活动会实时追加到 job 的输出环形缓冲区——完成的命令和文件变更,加上 Codex 的 commentary 消息——所以 job_output 展示长时间委派任务的进展,而不只是它最后说了什么。
能力
| | 状态 |
| 每次调用可指定 model / reasoning_effort | ✅ |
| 返回最终消息 | ✅ |
| run_in_background + 通过 job_output 查看进度 | ✅ |
| app-server 协议(握手、临时线程、审批决策) | ✅ |
| 交互式审批 | 设计上就没有——委派运行无人值守,官方服务商也是如此 |
| 可继续 / 线程复用 | ❌ 一次性,官方服务商也是如此 |
| 深度限制、persona、outputSchema、toolFilter | ❌ 未实现 |
在协议保真度重要的场景,官方服务商仍是更好的选择——
这个插件之所以存在,是因为官方服务商无法表达上面这两个选择;等上游支持后,它就该退役了。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ckanner/dsh-subagent-codex-pro
每次调用可指定模型与推理强度
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个给…
★ 761已汉化DSH
68.7
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 379已汉化DSH
67.8
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1