08-differentiated-reflection.md 17.7 KB

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", 等上级介入

本质:像自然界的进化一样,通过"变异 + 选择"实现非线性突破。