Khorsheed/dsh-plugins--packages-local-agent-codex ↗★ 0
@khorsheed/dsh-local-agent-codex
集成Codex子代理 适合需要在DSH中委派任务给本地Codex CLI的用户。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Khorsheed/dsh-plugins#548eeabe331c121621b2d08deab4278ad81d6312&path:packages/local-agent-codex说明文档
阅读完整 README ↗配置
可选,写在 profile patch 层:
- id: local-agent-codex
config:
sandbox: workspace-write # codex exec 策略:read-only | workspace-write | danger-full-access
model: gpt-5.2 # 可选:每轮委派以它起 CLI;不写就一个模型参数都不传(见下)
live: false # 常驻驱动:每成员常驻一个 codex app-server 进程,按轮发 turn(运行时级优雅中断、事件推送镜像);关闭或通道不可用即回一次性 exec
liveIdleMs: 1800000 # 常驻 runtime 空闲回收时限(默认 30 分钟)
旧键迁移。 live 轮次统一消费增量输出:旧 liveMirrorGranularity: event | token 配置继续兼容读取,但不再影响行为,也不会改变运行中的进程。评测继续保留 exec 驱动;最终内容仍以 provider 完成项为准,包括工具记录和用量。
默认模型(model)
**不写 = 今天的表现。**没有这个键时,本插件在 argv 上一个模型参数都不加:跑哪个模型由作用域 config.toml 的顶层 model 决定,它也没有时由 codex 自己的默认决定。
**写了 = 每轮委派以它起 CLI。**新起一轮与续接(resume)同等对待:
| 驱动 | 传法 |
|---|---|
| 一次性(默认) | codex exec -m …;-m 是 codex exec 自己的选项,因此排在 resume 子命令之前(codex exec resume 不认自己的 -m) |
常驻(live: true) | codex app-server -c model="" --stdio;app-server 没有 -m,用 CLI 为此提供的进程级 -c 覆盖 |
作用域 config.toml 不会被改写——-m 每轮覆盖它,文件仍是你编辑的样子。
设置卡「默认模型」修改后续轮次使用的 provider 配置。共享选择器展示当前作用域的模型目录、发现来源和完整性,并保留按需填写模型 ID 的入口。清空选择后跟随有效配置及默认值链。保存不会打断当前轮次,也无需重载;共享选择器不可用时,卡片保留文本输入兜底。成员级模型和推理强度修改使用下文的持久控制面。
丰富目录读面现已保留原生显示名、隐藏候选和推理选项,遍历分页,并接入 core 缓存与刷新订阅。查询上下文跟随成员的 scope 和 cwd。刷新失败保留最后成功快照并标为过期;配置项和历史建议保留来源标识。共用模型菜单和成员 effort 控制已接入。运行中选择排到下一完整轮次(含工具续跑);core 统一持有当前/待生效配置、撤销与重试,冻结评测成员禁止变更。原生目录候选不等于账号权限证明。
委派级的模型优先。编排器可以经门面 DelegationCallOptions.model 给某一次委派点名模型,它排在这个键之前(固定顺序:会话覆盖 > 委派记录 > 本键 > 作用域 config > CLI 内置)。首轮请求的值记进委派记录,resume 轮照它重发——resume 不接受 model 参数。常驻模式下带模型的轮次不再被拒绝:它成为该成员的起始模型,在 app-server 起进程时绑定;若该成员的常驻 runtime 绑定的是另一个模型,先回收重生(同一 codex 线程经 thread/resume 续上),再以所点模型起新一轮。
**成员级切换(作曲器模型选择器)。**成员会话里可以按会话切换模型:一个内存中的会话级覆盖,优先级最高,宿主重启即失。切换在有轮次进行中时被拒绝;空闲时若成员有常驻 runtime 且绑定模型不同,切换即回收该 runtime——下一轮以新模型重生,CLI 会话(rollout)本身延续。一次性(exec)驱动下没有常驻进程,覆盖直接决定下一轮的 -m。
**这不是评测的缺口。**评测 run 的条件在建立时冻结:run 跑到一半改这个键,下一轮的模型回读会发现声明模型 ≠ 实测模型,run 直接判为 misattributed 而失败(冻结决策 5)。换句话说「切了新 run 照新走、进行中的 run 不被悄悄换掉」是设计出来的,不是漏掉的。