用途
self-improve 用于改进智能体自身,或审计其近期表现。它关注更好的技能、提示词、工作流与配置,并对质量、可靠性和记忆卫生进行评审。
模式选择
通过 ${var} 选择模式,可选带聚焦领域,格式为 mode 或 mode:focus。
- 空或 improve → improve 模式:从最近日志中找出影响最大的问题,然后通过 PR 提出并应用修复(默认)。
- improve:<area>(或直接写领域名如 notifications)→ improve 模式,聚焦该特定领域(例如 heartbeat、notifications、memory)。
- audit → audit 模式:回顾智能体做了什么、什么失败了、什么可改进;保存完整评审并直接应用安全的明显修复。
- audit:<area> → audit 模式,聚焦该特定领域(例如 reliability、memory)。
设置(两种模式共用)
将 ${var} 解析为模式和可选的聚焦领域:
- 在第一个 : 处分割——前面是模式,后面是聚焦领域。
- 如果模式是 audit → 运行下面的 Mode: audit 分支(focus = 可选的集中评审领域)。
- 如果模式是 improve 或为空 → 运行下面的 Mode: improve 分支(focus = 可选的修复领域)。
- 如果该词既不是关键字又非空(例如 notifications)→ 视为 improve 模式,整个 ${var} 作为聚焦领域(向后兼容)。
然后:
- 读取 memory/MEMORY.md 获取高层上下文和目标。
- 读取最近的 memory/logs/(improve 模式:最近 2 天;audit 模式:最近 7 天)中的错误、失败和质量问题。
- 如果设置了聚焦领域,将本次运行集中在该领域。
Mode: improve(默认)
基于近期表现改进智能体自身。每次运行只做一处改动。
步骤:
- 检查是否有未关闭的改进 PR——不要堆积未评审的工作:
OPEN_PRS=$(gh pr list --state open --json title,number --jq '[.[] | select(.title | test("^(fix|feat|chore)\\("; "i"))] | length')
如果已有 3 个及以上未关闭的改进 PR,记录 "self-improve: 3+ open PRs, waiting for review" 并退出。不要制造更多债务。
- 确定要改进什么。如果聚焦领域为空,扫描问题:
- 读取最近 2 天的 memory/logs/——查找:失败或产出低质量的技能;错误、超时、"zero output"、限流;未发送或被截断的通知;记忆整合问题。
- 读取 memory/cron-state.json 中成功率低的技能。
- 读取最近 7 天的 output/articles/repo-actions-*.md 获取自我改进想法。
- 选择影响最大、成本最小的修复。每次运行只做一处改动。
- 理解你要修复的领域。读取相关文件:
- 技能:skills/{name}/SKILL.md
- 配置:aeon.yml
- 工作流:.github/workflows/*.yml
- 智能体指令:CLAUDE.md
- 仪表盘:apps/dashboard/(如果与 UI 相关)
在改动任何内容之前先理解当前行为。
- 实施修复。做最小、有针对性的改动:
- 如果技能提示词不清晰 → 重写含糊的部分
- 如果技能触发限流 → 添加退避逻辑或降低频率
- 如果产出质量低 → 收紧提示词、添加示例、明确格式
- 如果通知损坏 → 修复格式或截断问题
- 如果配置错误 → 修复 aeon.yml
不要:
- 从头重写整个技能
- 添加新功能(那是 create-skill 的工作)
- 更改核心架构
- 修改密钥或环境变量
4b. Dry-run 门禁。在打开 PR 之前,用合成密钥执行一次改进后的技能,这样回归就不会仅凭真实凭据运行就进入生产。设 $skill 为你编辑的技能:
DRYRUN_VERDICT="output/.dry-run/$skill.json" bash scripts/dry-run.sh run "$skill" || true
读取 output/.dry-run/$skill.json:passed: true(或 skipped: true,当 SKILL_DRYRUN 仓库变量为 0 时)则继续。passed: false 表示回滚编辑并停止(记录 self-improve: dry-run gate failed for $skill 及 verdict reasons[];不要打开 PR)。将 verdict 放在 PR 正文的 ## Dry-run 部分。该门禁是结构性的(exit、output、声明的 mode、声明的 requires:);运行中不进入任何真实凭据。
- 创建分支和 PR:
git checkout -b fix/self-improve-${today}
git add -A
git commit -m "fix: [description of what was improved]
Problem: [what was failing/degraded]
Fix: [what was changed]
Evidence: [log entries, error messages, success rates]"
打开 PR:
gh pr create --title "fix: [short description]" \
--body "## Problem
[What was failing or degraded — cite specific log entries or error messages]
## Fix
[What was changed and why]
## Evidence
- [Relevant log entries]
- [Success rate before: X%]
- [Error pattern: ...]"
- 通知。通过 ./notify 发送:
self-improve: [what was fixed] — PR: [url]
- 记录日志(见下方共享的 ## Log 部分)。
指南:
- 每次运行只做一处修复。不要捆绑不相关的改动。
- 最小可行修复。一行提示词微调 > 完整重写。
- 如果找不到可改进之处,那也没关系。记录 "self-improve: everything looks healthy" 并退出。
- 绝不修改工作流文件(.github/workflows/)——只改技能文件、CLAUDE.md 和 aeon.yml。
- 不要制造循环改进(例如不要改进 self-improve 本身)。
Mode: audit
审计智能体做了什么、什么失败了、什么可改进。生成完整评审,应用安全修复,并提出建议。
步骤:
-
读取 memory/MEMORY.md 获取上下文和目标。读取最近 7 天的所有 memory/logs/ 条目。
-
审计产出质量:
- 读取 output/articles/ 中的近期文章——它们是有实质内容还是公式化?
- 检查日志中的近期通知——它们有用还是嘈杂?
- 回顾发布的任何 PR 评论——它们是否可操作?
- 审计可靠性:
- 有多少技能运行了 vs 预期?
- 是否有重复错误或失败模式?
- 监控是在捕捉真实问题还是总是返回 OK?
- 审计记忆卫生:
- MEMORY.md 是否最新且少于 50 行?
- 日志结构是否一致?
- 是否有应清理的陈旧数据?
- 生成改进建议:
- 要添加、修改或禁用的技能
- 调度调整
- 配置变更(要添加/移除的 feeds、repos、地址)
- 质量改进(更好的提示词、新数据源)
-
将完整评审保存到 output/articles/self-review-${today}.md。
-
直接应用任何安全、明显的改进:
- 清理陈旧的 MEMORY.md 条目
- 如果 feeds 失效则更新 feeds.yml
- 通过 ./notify 发送摘要:
*Self Review — ${today}*
Quality: assessment
Reliability: X/Y skills ran
Actions taken: what was fixed
Recommendations: top 2-3 suggestions
- 记录日志(见下方共享的 ## Log 部分)。
Log
完成运行后,在 memory/logs/${today}.md 中追加一条日志条目,放在单个 ### self-improve 标题下,并有一行 discriminator 说明运行的模式:
### self-improve
- **Mode:** improve (or: audit)
然后,对于 improve 模式:
- **Target:** [what was improved]
- **Problem:** [what was failing]
- **Fix:** [what was changed]
- **PR:** [url]
对于 audit 模式:
- **Review:** output/articles/self-review-${today}.md
- **Quality:** [assessment]
- **Reliability:** [X/Y skills ran]
- **Actions taken:** [what was fixed directly]
- **Recommendations:** [top 2-3]
网络说明
写模式。两个分支都会触及仓库(improve 通过 git/gh 打开 PR;audit 写入 output/articles/self-review-${today}.md,并可能清理 MEMORY.md/feeds.yml)。对于 GitHub API,使用 gh CLI(gh pr list、gh pr create)——它在内部处理认证,因此任何 $SECRET 都不会出现在命令行上(命令行上裸露的密钥是 Bash 权限层拒绝的;没有网络沙箱)。不需要预取或后处理侧通道。