来源:OpenAI Cookbook | Self-Evolving Agents 作者:Shikhar Kwatra, Calvin Magurs

核心理念

OpenAI Cookbook 提供了一套完整的 Agent 自我改进循环,让 Agent 能够通过四步闭环实现自主优化:

Traces(轨迹) → Feedback(反馈) → Evals(评估) → Codex(优化) → 循环

这不是传统的模型微调(fine-tuning),而是通过提示词的迭代优化实现自我进化的方法论。

核心步骤

Step 1:基线智能体(Baseline Agent)

准备一个初始版本的 Agent,例如:

  • 用特定提示词做文本摘要的 Agent
  • 针对特定任务优化的基础版本
  • 可复现的参考实现

这个基线作为改进的起点,所有后续优化都相对于它进行对比。

Step 2:收集反馈(Collect Feedback)

让 Agent 跑一批任务,收集输出的评价。反馈来源包括:

反馈类型说明
人工打分人类专家对输出质量进行评分
LLM-as-Judge用另一个(通常更强的)LLM 来评估输出
自动化指标基于规则或启发式的自动检查

关键要点:反馈必须是可量化、可追踪的,才能用于后续的改进决策。

Step 3:运行评估(Run Evals)

基于收集的反馈,运行系统的评估流程:

  • 通过率分析:统计 Agent 在不同类型任务上的成功/失败比例
  • 错误模式识别:找出 Agent 经常失败的场景或模式
  • 性能基线:建立当前版本的各项指标基准

评估不是一次性动作,而是持续运行的反馈系统。

Step 4:优化迭代(Iterate with Codex)

用评估结果驱动优化:

  • 提示词优化:根据失败案例调整提示词
  • 流程改进:优化 Agent 的决策步骤
  • 错误处理:增强对异常情况的处理能力
  • 参数调优:调整温度、top_p 等生成参数

每次优化后重新跑循环,直到:

  • 性能超过预设阈值
  • 达到最大迭代次数
  • 改进收益递减

完整示例:制药规管文档摘要

OpenAI 以制药规管文档的摘要任务为实例,展示了完整的实现流程:

场景特点

  • 高度专业化:需要理解医学术语和规管要求
  • 准确性要求极高:摘要错误可能导致严重后果
  • 格式规范严格:必须符合特定的文档结构

实现要点

agent = BaselineAgent()
 
# 四步循环
while not performance_threshold_met:
    # Step 1: 跑任务收集轨迹
    traces = agent.run_batch(tasks)
 
    # Step 2: 收集反馈(人工 + LLM Judge)
    feedback = collect_feedback(traces)
 
    # Step 3: 运行评估
    eval_results = run_evals(feedback)
 
    # Step 4: 用 Codex 优化提示词
    improved_prompt = optimize_prompt_with_codex(eval_results)
    agent.update_prompt(improved_prompt)

关键设计原则

1. 安全保障(Safety Guarantees)

自我进化过程中必须确保:

  • 单调性:不允许任务效果下降
  • 安全性:避免生成有害或不安全的输出
  • 可控性:保留人类对关键决策的否决权

2. 评估驱动(Eval-Driven)

所有改进决策都基于客观数据,不是凭感觉调整。评估指标包括:

  • 任务完成率
  • 输出质量分数
  • 响应时间
  • Token 消耗

3. 渐进优化(Gradual Improvement)

  • 从简单任务开始,逐步扩展到复杂场景
  • 每次只改一个变量,隔离效果
  • 保留每次迭代的完整记录,可回滚

与传统方法的对比

维度传统 Fine-tuning提示词优化循环
成本高(需要 GPU 训练)低(纯 API 调用)
速度慢(训练周期长)快(即时生效)
可解释性黑盒(权重难解释)白盒(提示词可读)
灵活性低(重新训练成本高)高(随时可调整)
数据需求大(千级样本)小(几十样本即可)

工具支持

OpenAI 提供了完整的工具链支持这个循环:

  • Agents SDK:快速构建和迭代 Agent
  • Tracing:记录 Agent 的每一步决策
  • Evals Framework:标准化的评估工具
  • Codex API:辅助提示词优化

适用场景

这种自我改进循环特别适合:

✅ 适合:

  • 知识密集型任务(文档摘要、知识问答)
  • 流程化任务(数据分析、报告生成)
  • 规模化场景(需要处理大量相似任务)
  • 快速迭代需求(业务逻辑频繁变化)

❌ 不适合:

  • 创意生成(艺术、文学创作)
  • 高度个性化任务(每个任务都不同)
  • 计算密集型任务(需要大量推理资源)

相关页面