diff --git a/docs/chatgpt-codex-alignment.md b/docs/chatgpt-codex-alignment.md index 2084e67..df2e3d5 100644 --- a/docs/chatgpt-codex-alignment.md +++ b/docs/chatgpt-codex-alignment.md @@ -73,6 +73,42 @@ worker 参数里加 `--seed-skills` 是部署时另行应用的 主机步骤(unit 文件不在 deploy tar 里,仿 websearch)。 +## 真实任务实测(2026-10-30,临时 worker,生产未部署) + +- 隔离方式:测试任务带 `depends_on: ["skill-test-gate-never"]`, + 生产 worker 只认领依赖已完成的任务,永远不会认领它; + 临时 worker 不跑循环,只跑一次 `run_one(task=指定任务)`, + 认领走 CAS,只跑这一个任务。临时 worker 代码在主机 + `/tmp/skill-temp-worker/`(对齐分支 git archive),不动 + `/opt` 生产代码;跑时用 codexsvc 身份 + 生产 DB 环境, + 否则租户目录属主对不上容器 1003。 +- 第一次失败,教训已记:用 repo_url 项目时 GitHub clone + 在 684K 卡了 6 分钟以上,且 `run_one` 单任务模式没有 + run_loop 的心跳线程,任务在 300 秒时被生产 worker 的 + sweep 标 interrupted(心跳停滞),而 clone 还没完、 + 播种根本没跑到。第二次改用无 repo_url 的 test-repo + 项目(本地模板,不 clone)+ 临时 runner 里补心跳线程 + (每 30 秒刷 `_heartbeat_running_tasks`),问题消失。 +- 第二次成功,任务 7235de8f…(临时用户 skilltest-15fd9f58, + 临时项目 59961c66…,Docker,effort low,实际模型 + gpt-5.6-sol,约 40 秒 completed,tokens 64335, + cost_record 425,error 空):租户 codex-home/skills/ + 里确有 3 个技能的 SKILL.md;trace 里 agent 真执行了 + `sed -n '1,240p' /var/lib/codex-app-server/codex-home/skills/live-info/SKILL.md` + (容器内挂载路径),即技能不只是被列出,而是被读了; + 最终答案以 `SKILL: live-info` 开头,并按技能规则明说 + web_search 不可用、不编造实时数字。 +- 仍未解决的独立问题:Docker 任务里 web_search 本身 + 因 DNS/联网失败而不可用(与 2026-10-28 websearch e2e + 探针的 DuckDuckGo DNS 失败同类),技能发现/调用已证, + 但 live-info 要真正查到天气/时间,还得先修 web_search + 在 Docker 里的联网问题——那是另一批工作,不在本批 + 宣称范围内。 +- 清理已核:第二次测试的用户/项目/任务、租户目录、 + 临时 worker 代码与临时 key 全部删除,用户剩余 0, + 生产 health 仍 3696dad、worker_ok;第一次测试的 + 临时行与租户目录也已同样清理。 + ## 不照搬(诚实边界) - CUA / 桌面操作:需要浏览器自动化 + 桌面操作基础设施,