什么是 Agent 自进化?

Agent 自进化是指 AI Agent 能够从自己的行为中学习,持续优化自己的表现。不是靠人类手动调参,而是 Agent 自己发现"这样做效果不好",然后自动调整策略。

在 OpenClaw 2026 的语境下,自进化包含三个层面:

自进化循环

执行任务 → 收集反馈 → 分析模式 → 更新策略 → 执行任务
                                                   ↑                   ↓
                                              记忆压缩 ← 经验积累

记忆压缩:从海量对话中提炼精华

问题:上下文窗口不够用

# 一个活跃的 Agent 每天可能产生:
- 50+ 次对话
- 200+ 条消息
- 10+ 个工具调用结果
总计: ~100K tokens/天

# 但上下文窗口有限(128K-200K)
# 一周后,早期对话就会被截断
# Agent 失去了"长期记忆"

解决方案:分层记忆压缩

# OpenClaw 的记忆分层架构
┌─────────────────────────────────────┐
│ Layer 1: 工作记忆 (Working Memory)   │
│ - 当前对话上下文                      │
│ - 最近 10-20 条消息                   │
│ - 完整保真,无压缩                    │
├─────────────────────────────────────┤
│ Layer 2: 短期记忆 (Short-term)       │
│ - 今天的对话摘要                      │
│ - 关键决策和结果                      │
│ - 轻度压缩 (5:1)                     │
├─────────────────────────────────────┤
│ Layer 3: 长期记忆 (Long-term)        │
│ - 用户偏好、习惯                      │
│ - 重要事件和里程碑                    │
│ - 高度压缩 (20:1)                    │
├─────────────────────────────────────┤
│ Layer 4: 永久记忆 (Permanent)        │
│ - SOUL.md (Agent 人格)              │
│ - USER.md (用户信息)                 │
│ - TOOLS.md (工具配置)                │
│ - 不压缩,永久保留                    │
└─────────────────────────────────────┘

压缩算法

# 记忆压缩的实现逻辑
def compress_memory(conversations):
    # 1. 提取关键信息
    key_facts = extract_entities(conversations)
    
    # 2. 识别重复模式
    patterns = find_patterns(conversations)
    
    # 3. 生成摘要
    summary = llm_summarize(conversations, max_tokens=500)
    
    # 4. 评估重要性
    importance = rate_importance(key_facts, patterns)
    
    # 5. 保留高重要性信息
    compressed = filter_by_importance(
        key_facts, patterns, summary,
        threshold=0.7
    )
    
    return compressed

反馈学习:从用户行为中学习

显式反馈

# 用户直接告诉 Agent 做得好不好
用户: "这个回答太长了,简短点"
Agent: 记录 → 该用户偏好简短回答

用户: "不错,正是我想要的"
Agent: 记录 → 这种回答模式有效

用户: "不对,我要的是..."
Agent: 记录 → 这种理解方式有误

隐式反馈

# Agent 从用户行为中推断反馈
用户复制了回答 → 回答有用,保留模式
用户重新问了同一个问题 → 上次回答不够好
用户修改了 Agent 的输出 → Agent 的输出有改进空间
用户在 5 秒内追问 → 回答可能不够完整

反馈处理流程

# 反馈学习的处理流程
[收到反馈]
    ↓
[分类反馈类型]
    - 正面反馈 → 强化当前策略
    - 负面反馈 → 标记需要改进
    - 中性反馈 → 记录但不调整
    ↓
[更新用户画像]
    - 偏好更新
    - 习惯更新
    - 期望更新
    ↓
[调整响应策略]
    - 语言风格
    - 回答长度
    - 详细程度
    - 主动性程度

技能组合进化

自动技能发现

# Agent 在执行任务时发现需要新能力
用户: "帮我分析这个 CSV 文件并生成图表"

Agent 内部推理:
1. 我有文件读取能力 ✅
2. 我有数据分析能力 ✅
3. 我没有图表生成能力 ❌
4. 搜索 ClawHub → 发现 chart-generator 技能
5. 自动安装并使用

# Agent 实现了能力的自我扩展

技能组合优化

# Agent 学习哪些技能组合效果好
成功组合记录:
- web_search + web_fetch + write → 信息收集任务成功率 95%
- feishu_calendar + feishu_task → 任务管理成功率 92%
- exec + git → 代码管理成功率 98%

失败组合记录:
- browser + exec → 浏览器自动化经常超时
- 需要更多错误处理

Agent 策略调整:
- 浏览器任务增加超时重试
- 优先使用 web_fetch 而非 browser

自进化配置

基本配置

# openclaw.json
{
  "agent": {
    "evolution": {
      "enabled": true,
      "memoryCompression": {
        "enabled": true,
        "interval": "daily",
        "strategy": "importance-based"
      },
      "feedbackLearning": {
        "enabled": true,
        "implicitFeedback": true,
        "updateInterval": "hourly"
      },
      "skillDiscovery": {
        "enabled": true,
        "autoInstall": false,  // 建议手动确认
        "searchOnDemand": true
      }
    }
  }
}

进化日志

# 查看 Agent 的进化记录
openclaw agent evolution --log

# 输出示例
[2026-06-10] Memory compression: 15K → 2K tokens (87% reduction)
[2026-06-10] Feedback: +12 positive, -3 negative, +5 neutral
[2026-06-10] Strategy update: response_length reduced by 20%
[2026-06-09] New skill discovered: chart-generator (installed)
[2026-06-09] Skill combination optimization: web_search + web_fetch priority ↑

最佳实践

💡 自进化优化建议:
  • 监控进化方向:定期检查 Agent 的进化日志,确保方向正确
  • 设置进化边界:Agent 的进化应该在可控范围内
  • 保留回滚能力:如果进化方向错误,能够回滚到之前的状态
  • 人工审核关键决策:技能安装、策略重大变更需要人工确认
  • 量化评估:用指标衡量进化效果,不只是主观感受
⚠️ 注意事项:
  • 自进化不等于"自我意识"——Agent 仍然遵循人类设定的目标
  • 过度优化可能导致"过拟合"——对特定用户过度适应
  • 隐私考虑——学习过程中的数据需要妥善保护