# 8. Agent 自我迭代闭环 > 每个 Agent 都是一个持续进化的实体。通过四级迭代闭环,从"新手"逐步成长为"专家"。 --- ## 8.1 Agent 的权限边界:谁能改什么? ``` Agent 能改的 (自治区) Agent 不能改的 (需要上级) ┌──────────────────────┐ ┌──────────────────────┐ │ memory/ │ │ agent.md ← 宪法│ │ └ memory.md │ │ soul.md ← 灵魂│ │ └ daily/ │ │ identity.md │ │ │ │ user.md │ │ skills/ │ │ │ │ └ 技能代码 │ │ 只有上级 Agent │ │ └ SKILL.md │ │ 才能修改 │ │ │ │ │ │ workspace/ │ │ (上级调用 │ │ └ code/data/assets │ │ updateBootstrap()) │ │ │ │ │ │ knowledge/ │ │ │ └──────────────────────┘ └──────────────────────┘ ``` Agent 可以改自己的记忆、技能代码、工作区。但不能改自己的"宪法"(agent.md / soul.md)。 就像员工可以自学新技能、积累经验,但不能自己改自己的岗位职责 — 那是老板的事。 --- ## 8.2 四级迭代闭环 ``` ┌────────────────────────────────────────────────────────────┐ │ 四级联动飞轮 │ │ │ │ ┌─ L1 Micro Loop ──────────────────────────────────┐ │ │ │ 每次任务后: 写入 memory.md → 下次思维更精准 │ │ │ │ (秒级迭代) │ │ │ └────────────────────────────────────────────────────┘ │ │ ↓ │ │ ┌─ L2 Skill Loop ──────────────────────────────────┐ │ │ │ 每几轮后: 重写技能代码 → 执行能力结构性提升 │ │ │ │ (分钟级迭代) │ │ │ └────────────────────────────────────────────────────┘ │ │ ↓ │ │ ┌─ L3 Meta Loop ───────────────────────────────────┐ │ │ │ 累积后: 向上级建议 → 上级改 agent.md → 行为重塑 │ │ │ │ (小时/天级迭代) │ │ │ └────────────────────────────────────────────────────┘ │ │ ↓ │ │ ┌─ L4 Org Loop ────────────────────────────────────┐ │ │ │ 战略级: CXO 调整 Pipeline → 增减部门 → 组织进化 │ │ │ │ (天/周级迭代) │ │ │ └────────────────────────────────────────────────────┘ │ │ │ └────────────────────────────────────────────────────────────┘ ``` ### L1 — Micro Loop(记忆迭代) 触发:每次任务完成后 执行者:Agent 自己 修改目标:`memory/memory.md` + `memory/daily/` ``` 执行任务 → 评估结果 → 写入记忆 → 下次任务读取记忆 → 更好的执行 例: 第1次: 爬了 200 条热搜, 有效率只有 15% ↓ Reflect 写入 memory.md: "含'广告','推广','赞助'的标题应过滤" "互动量 < 100 的热搜价值低" ↓ 第2次: 读取 memory.md → 过滤更精准 → 有效率 35% ↓ 持续积累 第5次: → 有效率 70% ``` **机制**: memory.md 每次 session 启动时注入 ACP 上下文。上一轮写入的经验,下一轮变成思维的一部分。 ### L2 — Skill Loop(技能迭代) 触发:两种路径 1. **反馈驱动** — 收到执行反馈,发现 benchmark 不达标,直接修改技能代码 2. **创新驱动** — 遗传算法生成变体,验证测试后择优保留 执行者:Agent 自己 修改目标:`skills/{name}/` 内的代码和配置 ``` 路径 A: 反馈驱动(大部分场景) ┌───────────────────────────────────────────┐ │ 执行 → 结果低于 benchmark → 分析原因 │ │ ↓ │ │ 修改技能代码 (skills/crawler/crawler.js) │ │ 更新 SKILL.md 版本 1.0 → 1.1 │ │ ↓ │ │ 下次执行: 代码级优化 → 指标提升 │ └───────────────────────────────────────────┘ 路径 B: 创新驱动(需要突破时) ┌───────────────────────────────────────────┐ │ 当前方案已到瓶颈, 微调无法再提升 │ │ ↓ │ │ 生成多个方案变体 (遗传算法: 交叉 + 变异) │ │ 每个变体独立测试 benchmark │ │ ↓ │ │ 选择最优变体 → 替换当前 SKILL.md │ │ 淘汰劣质变体 │ └───────────────────────────────────────────┘ ``` ### L3 — Meta Loop(上级重定义) 触发:Agent 向上级 report 建议,或上级主动调整 执行者:上级 Agent 修改目标:`agent.md` / `soul.md` ``` Agent 积累经验后发现根本性问题 → task.report 建议给上级 → 上级评估 → 上级调用 role.redefine → 修改 agent.md → Agent 热加载新"宪法" → 行为根本性改变 例: 编剧部执行 20 轮后: → "我被限定为'都市爱情',但数据显示'悬疑互动'留存高 3 倍" → 向 CEO report + 数据证据 → CEO 同意 → 修改编剧部 agent.md,扩展题材范围 → 编剧部下一轮开始创作悬疑剧本 ``` ### L4 — Org Loop(组织进化) 触发:CXO / Master 的全局反思 执行者:CXO / Master 修改目标:Pipeline + 组织架构(不一定影响单个 Agent 的内部迭代) ``` CXO 5 分钟心跳 → 扫描全局进度 → 发现瓶颈 → 调整 Pipeline 顺序 → 增设 / 裁撤部门 → 重分资源 例: CEO 发现"制作部产能跟不上编剧部": → role.create("制作二部") ← 不改编剧部, 改组织 → pipeline.adjust(并行制作) ← 不改部门, 改流程 ``` --- ## 8.3 四级对比 | 级别 | 频率 | 谁触发 | 改什么 | 本质 | |------|------|--------|--------|------| | **L1 Micro** | 每次任务 | Agent 自己 | memory.md | 记住经验 | | **L2 Skill** | 每几轮 | Agent 自己 | skills/ 代码 | 磨刀(反馈修正 or 创新突破)| | **L3 Meta** | 累积后 | 上级 Agent | agent.md / soul.md | 员工建议 → 老板改职责 | | **L4 Org** | 天/周级 | CXO / Master | Pipeline + 架构 | 调部门调流程, 不改单个人 | --- ## 8.4 四层差异化反思 四层 Agent 的 Reflect 阶段各不同: | 层级 | 哲学 | 反思内容 | L1 | L2 | L3 | L4 | |------|------|---------|----|----|----|----| | **Master** | 道 | 人的意图是否被正确理解? | ✅ | — | — | ✅ | | **CXO** | 法 | 战略是否有效?Pipeline 该不该调? | ✅ | — | ✅ | ✅ | | **Role** | 术 | 领域产出质量够高吗? | ✅ | ✅ | ✅ | — | | **Skill** | 器 | 执行结果正确吗?代码需要优化吗? | ✅ | ✅ | — | — | - Skill 只做 L1(记忆) + L2(技能优化) - Role 还做 L3(建议上级) - CXO 还做 L4(调整组织) - Master 做 L1(记忆) + L4(顶层调整) --- ## 8.5 出生训练:Hunt → Digest → Evolving > **Agent 不是创建完就直接上岗的。** 创建目录只是"出生",还要经过训练才能成为领域专家。 参考 Innovator 系统的三级训练管线,Agent(尤其是 Skill 和 Role)创建后必须完成以下训练才算就绪: ``` 创建目录 (出生) │ ▼ ┌─ Phase 1: Hunt (狩猎 — 采集领域知识) ──────────────────┐ │ │ │ 目标: 把这个领域的最佳实践、标杆案例全部采集回来 │ │ │ │ 1. 搜索该领域的权威资料、方法论、论文 │ │ 2. 爬取行业标杆案例(优秀案例 + 普通案例) │ │ 3. 输出: │ │ └ knowledge/hunt/research.md ← 原始研究资料 │ │ └ knowledge/hunt/toplist.md ← 标杆案例排行 │ │ └ knowledge/hunt/crawl_data/ ← 爬取的原始数据 │ │ │ └─────────────────────────────────────────────────────────┘ │ ▼ ┌─ Phase 2: Digest (消化 — 提炼领域方法论) ──────────────┐ │ │ │ 目标: 从原始资料中提炼可执行的 knowhow + benchmark │ │ │ │ 1. 分析 hunt 阶段的数据, 提取最佳实践 │ │ 2. 对比 elite vs average, 找出差异化维度 │ │ 3. 输出: │ │ └ knowledge/digest/knowhow.md ← 领域方法论 │ │ └ knowledge/digest/benchmark.md ← 评分标准 │ │ (5-8 个可量化维度, 权重, 详细 Rubric, 通过线 90) │ │ │ └─────────────────────────────────────────────────────────┘ │ ▼ ┌─ Phase 3: Evolving (进化 — 迭代直到达标) ──────────────┐ │ │ │ 目标: 用 benchmark 反复测试和优化, 直到 score ≥ 90 │ │ │ │ for iteration = 1 to N: │ │ 1. 用当前 SKILL.md / agent.md 执行测试任务 │ │ 2. 用 benchmark 逐维度评分 → score │ │ 3. if score ≥ 90 → 毕业 ✅ → 状态改为 ready │ │ 4. 分析弱项维度 (score < 70 的) │ │ 5. 针对弱项修改 SKILL.md │ │ 6. 保存版本快照到 evolve/v{N}/ │ │ 7. 回到步骤 1 │ │ │ │ 停止条件: │ │ - score ≥ 90 → 毕业 ✅ │ │ - 超过最大迭代次数 → 标记为 needs_help ⚠️ │ │ - 连续 3 次分数变化 < 2 分 → 停滞, 需要上级介入 │ │ │ │ 输出: │ │ └ skills/{name}/evolve/evolve_log.md ← 进化日志 │ │ └ skills/{name}/evolve/v{N}/ ← 版本快照 │ │ └ config.json status: "ready" │ │ │ └─────────────────────────────────────────────────────────┘ │ ▼ Agent 就绪 (状态: ready) → 开始正式工作 → 进入四级迭代 ``` ### 训练后的 Agent 目录变化 ``` data/agents/skill-hot-crawler-001/ ├── agent.md ← 创建时由上级写入 ├── soul.md ← 创建时由上级写入 ├── skills/ │ ├── skills.md ← 更新: 技能已通过 benchmark 90 分 │ └── crawler/ │ ├── SKILL.md ← Evolving 反复修改后的最终版 (v1.3.0) │ ├── crawler.js ← 进化过程中优化的代码 │ └── evolve/ ← 🆕 训练日志 │ ├── evolve_log.md │ ├── v1/ │ ├── v2/ │ └── v3/ ← 最终通过版本 ├── knowledge/ ← 🆕 Hunt + Digest 的产出 │ ├── hunt/ │ │ ├── research.md │ │ ├── toplist.md │ │ └── crawl_data/ │ └── digest/ │ ├── knowhow.md ← 领域方法论 │ └── benchmark.md ← 评分标准 ├── memory/ ← 🆕 训练过程中的记忆 │ └── memory.md ← "训练期间发现: ..." └── config.json ← status: "ready" (训练前是 "training") ``` --- ## 8.6 完整的 Agent 生命周期 ``` 出生 → 训练 → 就绪 → 工作 (四级迭代) → 退休/销毁 ┌─────┐ ┌─────────┐ ┌───────┐ ┌───────────────┐ ┌─────────┐ │ 出生 │──→│ 训练 │──→│ 就绪 │──→│ 工作 + 迭代 │──→│ 退休 │ │ │ │ │ │ │ │ │ │ │ │mkdir│ │Hunt │ │status │ │L1: 更新 memory │ │destroy()│ │目录 │ │Digest │ │=ready │ │L2: 优化 skill │ │ │ │ │ │Evolving │ │ │ │L3: 上级重定义 │ │ │ │ │ │score≥90 │ │ │ │L4: 组织调整 │ │ │ └─────┘ └─────────┘ └───────┘ └───────────────┘ └─────────┘ ``` ### Agent 状态流 | 状态 | 含义 | 触发条件 | |------|------|---------| | `created` | 目录已创建, 等待训练 | `registry.create()` | | `training` | 正在 Hunt/Digest/Evolving | 训练管线启动 | | `ready` | 已通过 benchmark, 可以工作 | Evolving score ≥ 90 | | `running` | 正在执行任务 | 收到 task.assign | | `reflecting` | 正在反思和自我迭代 | Loop 的 Reflect 阶段 | | `needs_help` | 自我迭代停滞, 需要上级介入 | 连续 3 轮无进展 | | `idle` | 空闲等待 | 当前无任务 | | `retired` | 被上级裁撤 | `registry.destroy()` | --- ## 8.7 L2 Skill Loop 的两条路径详解 L2 的两条路径对应不同的触发场景: ### 路径 A: 反馈修正(Benchmark 修标定) **场景**: 工作中收到反馈,发现 benchmark 本身的标准需要修正。 ``` 工作执行 → 上级/用户反馈 "这个热搜列表不够精准" ↓ Agent 分析: 不是我执行得不好, 而是评判标准漏掉了"时效性"维度 ↓ 修改 knowledge/digest/benchmark.md: 新增维度: "时效性" (权重 15%) 调整其他维度权重 ↓ 用新 benchmark 重新评估自己 → 发现得分从 92 降到 78 ↓ 进入 Evolving 循环 → 修改 SKILL.md → 直到新 benchmark 下也能 ≥ 90 ↓ 毕业: 既符合旧标准, 也符合新标准 ``` **本质**:反馈让我认识到"过去的标准不够好",先修标准再修技能。 ### 路径 B: 创新突破(遗传算法变体) **场景**: 当前方案已到瓶颈,常规微调无法再提升分数。 ``` 连续 3 轮 score 在 82-84 之间徘徊 (停滞) ↓ Agent 判断: 渐进式优化已到极限, 需要探索性突破 ↓ 遗传算法: 1. 基于当前 SKILL.md 生成 3-5 个变体 - 变体 A: 改换数据源 (微博→抖音) - 变体 B: 增加二次验证步骤 - 变体 C: 改换过滤算法 - 变体 D: A+B 的交叉组合 2. 每个变体独立跑 benchmark 3. 选出 score 最高的 → 替换当前版本 4. 淘汰其他变体 ↓ 如果最优变体 score ≥ 90 → 突破成功 如果仍不够 → 基于最优变体再做一轮遗传 如果连续失败 → status = "needs_help", 等上级介入 ``` **本质**:像自然界的进化一样,通过"变异 + 选择"实现非线性突破。