Skip to content

SkillOpt-Sleep Codex 集成反馈 #57

@bjvgukv25842-cmyk

Description

@bjvgukv25842-cmyk

我在 macOS + Codex Desktop / Codex CLI 0.140.0-alpha.2 上尝试安装并运行 plugins/codex。整体思路可行,但当前 Codex 集成有一些明显边界和功能问题。

  1. Codex integration 仍强依赖 Claude 路径
    当前 skillopt_sleep/config.py 默认使用:
    ~/.claude/projects
    ~/.claude/history.jsonl
    ~/.claude/skills
    cycle.py 也默认写项目下的:
    CLAUDE.md
    这导致 plugins/codex 虽然文档说支持 Codex,但实际不会开箱即用地读取 Codex Desktop/CLI 的历史记录。我的 Codex 历史在:
    ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl
    ~/.codex/history.jsonl
    建议:增加真正的 Codex transcript adapter,识别 session_meta、turn_context、response_item.message、response_item.function_call 等结构,并把 Codex memory 目标改为项目级 AGENTS.md,skill 目标改为 ~/.codex/skills/.../SKILL.md。
  2. Codex skill 安装路径疑似不对
    plugins/codex/install.sh 把 skill 安装到:
    ~/.agents/skills/skillopt-sleep/SKILL.md
    但我当前 Codex Desktop 实际加载的是:
    ~/.codex/skills//SKILL.md
    导致安装脚本可能显示成功,但 Codex Desktop 不一定能看到这个 skill。
    建议:检测当前 Codex 版本支持的 skill path,至少同时支持 ~/.codex/skills,或在 README 中明确版本差异。
  3. 文档说 custom prompts 稳定,但 Codex 当前更偏 skills / plugins
    plugins/codex/README.md 说使用 ~/.codex/prompts/.md 作为 /sleep。但当前 Codex 有 codex plugin 命令,也有 skills 机制;custom prompt 的长期稳定性需要再确认。
    建议:提供一个正式 Codex plugin manifest,或明确说明这是“临时 prompt + skill 适配”,不是 Codex 原生插件包。
  4. run-sleep.sh 无法指定 Python 路径
    我的系统 Python 是 3.9.6,但 Codex Desktop 自带 Python 3.12。原始 runner 只在 PATH 里找 python3.12/python3.11/python3.10/python3,无法通过环境变量直接指定。
    建议:支持:
    SKILLOPT_SLEEP_PYTHON=/path/to/python3
    否则很多 macOS 用户会因为系统 Python 版本低而安装失败。
  5. 真实 Codex backend 运行成本和耗时不可控
    我用:
    --backend codex --max-tasks 1 --edit-budget 1
    跑真实学习。一次成功 run 大约花了两分钟,并生成 accepted proposal;另一次 run 卡在 candidate memory validation 的 codex exec 子进程里,数分钟无输出,需要手动中断。
    问题点:
    每个 replay/judge/reflect 都 spawn codex exec
    缺少实时进度日志
    缺少 per-call timeout 的 CLI 参数
    max_tokens_per_night 配置存在,但未看到真实强制预算控制
    建议:增加 --max-tasks、--codex-timeout、--max-codex-calls、实时阶段日志,并真正执行 token/time budget。
  6. Accepted 后会 stage 未变化文档
    我遇到一次 accepted memory edit,但 staging 同时生成了 proposed_SKILL.md。当 live skill 文件里已有测试残留/旧内容时,它会被一起 stage,哪怕本轮 accepted edit 只针对 memory。
    建议:stage 前比较 result.new_skill != original_skill、result.new_memory != original_memory,只有实际变化的文件才写入 manifest。
  7. 测试或 mock run 容易污染真实用户状态
    在本地测试过程中,测试用的 mock persona 规则曾写入真实:
    ~/.codex/skills/skillopt-sleep-learned/SKILL.md
    ~/.skillopt-sleep/state.json
    这会导致后续真实 run 的 staged proposal 混入 mock 示例规则,例如:
    Always wrap the final answer in ... tags.
    Report arXiv ids in the exact form arXiv:XXXX.XXXXX.
    建议:测试默认必须使用 isolated temp state_dir / agent_home,不应触碰真实 home;CLI demo 也应显式提醒 state 写入位置。
  8. Staging 文件命名仍是 proposed_CLAUDE.md
    即使目标是 Codex 的 AGENTS.md,staging 里仍写:
    proposed_CLAUDE.md
    这会让用户误解它要改 Claude 配置。
    建议:根据 platform/memory filename 生成:
    proposed_AGENTS.md
    proposed_CLAUDE.md
    或统一叫 proposed_memory.md。
  9. Secret redaction 配置存在但实现不明显
    config.py 有:
    "redact_secrets": True
    但我没有看到 harvest 阶段对 Codex/Claude transcript 做明确 secret redaction。由于历史会话可能包含 API key、路径、私有代码、业务信息,这个边界很重要。
    建议:在 harvest 后、LLM miner 前做强制 redaction,并在 report 里说明 redaction 是否启用。
  10. lookback_hours 似乎没有实际参与 harvest
    配置里有:
    lookback_hours: 72
    但当前 cycle 主要依赖 state.last_harvest_for(project);首次运行时没有看到按 lookback window 限制历史读取。
    建议:首次运行也应按 lookback_hours 限制,避免第一次就扫描大量历史并触发大量 LLM mining。
  11. README 中“Codex 支持的路径”与现实有偏差
    README 写 Codex skills 在:
    ~/.agents/skills//SKILL.md
    但我的 Codex Desktop 环境中可见 skills 是:
    ~/.codex/skills
    建议更新 README,并注明 Codex Desktop、CLI、旧版/新版路径差异。
  12. 缺少清晰的“不会随 Codex 启动自动运行”的说明
    用户容易误以为安装后会后台自动学习、同步启动、持续消耗 token。实际不是,只有手动 run --backend codex 才会消耗。
    建议在 README 明确写:
    Installation does not start a daemon.
    No learning happens on Codex startup.
    Only /sleep run or skillopt_sleep run triggers replay and model calls.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions