2026-05-16 fix 验证:Worker 已修复 oh-my-openagent 加载链路。当前方案为:
- 在容器启动前把
OPENCODE_CONFIG_CONTENT写入~/.config/opencode/opencode.json;- 使用
"plugin": ["oh-my-openagent@latest"](单数 key,tag 而非精确 semver);/global/health通过后继续轮询/agent,等待外部插件完成初始化。arm64 验证结果:
opencode 1.15.0+oh-my-openagent 4.1.2下,日志显示service=plugin path=oh-my-openagent@latest loading plugin,/agent在健康检查后第 12 秒返回包含Prometheus/Sisyphus的 agent 列表。
| 字段 | 值 |
|---|---|
| 状态 | Accepted(当前运行时已生效) |
| 日期 | 2026-05-13 |
| 关联 Spike | Phase 0 Spike 1b(版本确认,已完成);Spike 3(容器内验证,2026-05-16 完成) |
| 关联 HITL | H11(oh-my 版本 pin,本 ADR 收口) |
opencode 通过"plugin"机制加载 oh-my-openagent,使得 Prometheus/Sisyphus agent 可在 HTTP Server 模式下通过 prompt_async 的 agent 参数路由。Worker 需要决定:
- 运行时调用入口:
oh-my-opencode runCLI vs HTTP APIagent参数。 - oh-my-openagent 插件版本 pin 策略。
| npm 包名 | 用途 | 当前 pin | npm latest(2026-05-16) |
|---|---|---|---|
oh-my-openagent |
opencode 插件,通过 opencode 插件配置加载 | 4.1.2(install-based cache,含运行时依赖) |
4.1.2 |
oh-my-opencode |
CLI 工具,用于 smoke test 和本机调试 | 4.1.2 |
4.1.2 |
两者是不同 npm 包但随 oh-my 项目同步发版。Worker 运行时加载的是 oh-my-openagent(插件),不是 oh-my-opencode(CLI)。
HTTP API + agent 参数(不使用 oh-my-opencode run)。
POST /session/:id/prompt_async请求体中传"agent": "Prometheus"(plan_first)或"agent": "Sisyphus"(direct execute)。- opencode server 内部路由到对应 agent;oh-my-openagent 插件负责扩展行为。
oh-my-opencode run保留为本机 smoke test 工具,不作为 Worker 运行时调用路径。
理由(见 ADR-001):HTTP API 路径已在 Spike 1a 完整验证;oh-my-opencode run 为黑盒子进程,缺乏 SSE 事件流和细粒度控制,不适合 Worker 架构。
Dockerfile 中 pin oh-my-openagent 到 4.1.2;运行时配置使用 oh-my-openagent@latest 插件入口。
# opencode 插件配置(通过 OPENCODE_CONFIG_CONTENT 写入 opencode.json)
# "plugin": ["oh-my-openagent@latest"]opencode 配置文件中的插件版本:
{
"plugin": ["oh-my-openagent@latest"]
}理由:
4.1.2是当前 npm latest,且已与opencode 1.15.0在 arm64 验证镜像中实测通过/agent加载检查。oh-my-openagent 4.1.2的发布包会在运行时引用zod等外部依赖,因此 cache 必须按 install-based 方式预置完整依赖树,而不能只拷贝包目录。- 配置入口使用
@latest,而镜像制品通过离线 cache pin 到4.1.2,既兼容上游安装器生成的 plugin entry,也避免把精确 semver 写死到运行时 JSON 中。
- 先更新离线制品:
opencode-linux-*tgz 和 install-based 的oh-my-openagent-cache.tar.gz。 - 重建镜像后验证两条日志:
service=plugin path=oh-my-openagent@latest loading plugin与verified oh-my-openagent agents loaded: Prometheus, Sisyphus。 - 若新版本导致
/agent就绪时间变化,优先调整 entrypoint 的轮询窗口,不要退回到内置plan/buildagent。
- Dockerfile / dist 离线制品已升级到
opencode 1.15.0+oh-my-openagent 4.1.2。 - Worker entrypoint 会先写
opencode.json,再等待/agent就绪;不能再把OPENCODE_CONFIG_CONTENT仅视为环境变量透传。 OPENCODE_CONFIG_CONTENT中的插件数组 key 为plugin(单数),值使用oh-my-openagent@latest。- Worker adapter 的 agent routing 参数值:
"Prometheus"(plan_first)、"Sisyphus"(ultrawork)——在 Spike 3 容器 smoke test 中随插件升级一并验证。 - H11 正式收口:当前 pin 为
4.1.2,并已完成容器级验证。