
AI Agent提示工程模型优化【免费下载链接】gepaOptimize prompts, code, and more with AI-powered Reflective Optimization项目地址https://gitcode.com/gh_mirrors/ge/gepa点击查看免费下载本指南围绕仓库中的 examples/arc_agi 示例展开讲解如何用 GEPA 的反射式优化Reflective Optimization把能解 ARC-AGI 谜题的Agent Python 代码而非提示词当作优化对象通过训练样本反复评估、反思并演化最终得到一个可部署的求解程序。读完本文你将掌握ARC-AGI 示例的数据切分与评估口径、从种子 Agent 到优化循环的完整代码脉络、GEPAConfig/EngineConfig/ReflectionConfig各字段的实战含义以及如何复现优化后自动在测试集上对比基线准确率的完整流程。ARC-AGI 示例在做什么优化代码而不是提示词ARC-AGIAbstraction and Reasoning Corpus是经典的抽象推理基准每个任务给出若干训练输入/输出网格对Agent 需要推断出背后的变换规则并预测测试输入的输出网格。传统做法通常是手写提示词来提示大模型推理而本示例走的是另一条路线——GEPA 直接把 Agent 的 Python 程序作为优化对象让大模型反射模型依据每次评估的反馈反复改写这段代码直到它在验证集上拿到更好的分数。该设计的关键约束记录在 main.py 与 utils.py 的BACKGROUND说明中每个问题最多允许10 次 LLM 调用max_llm_calls10每个测试输入最多提交2 个输出尝试任一正确即算该例通过与 ARC-AGI 竞赛规则一致每问题 LLM 成本目标控制在约$0.8~1.0允许 Agent 自由探索多样策略多 Agent 系统、集成、投票等。也就是说示例中的solve()不是被优化者而是被优化对象——GEPA 的反射循环会基于评估结果持续生成它的改进版本。数据集与评估口径README 明确给出了数据来源与划分集合内容来源HuggingFacedataartist/arc-agiTrain训练 split 中的 200 个问题用于优化过程中的训练评估Val从训练 split 中留出的 200 个问题用于候选选择Test完整的 evaluation split用于优化结束后的最终对比对应实现见 utils.pyload_arc_dataset()加载dataartist/arc-agi把每条记录转成dspy.Example字段为problem_id / train_in / train_out / test_in / test_out用固定seed0打乱训练集后取最后 200 条作为val_set其余作为train_setevaluation split 全部作为test_set。需要留意的是 ARC-AGI 的计分口径utils.py测试评估时每个输入允许最多 2 次尝试只要任意一次与标准输出网格完全一致即算通过而一个问题只有全部测试样例都通过才算解决all_correct为真时该问题得 1.0否则 0.0。这一二元计分在优化时会被当作评估分数反馈给反射模型是驱动代码演化的核心信号。环境准备与安装在仓库根目录gepa/下按 README 的顺序执行uv venv uv pip install datasets dspy litellm uv pip install -e . # must come after dspy to avoid PyPI overwriteuv venv创建虚拟环境然后依次安装数据加载datasets、DSPydspy示例用它的Example承载训练样例、LiteLLMlitellm统一各类 LLM 后端最后以可编辑模式安装当前仓库。README 特别强调-e .必须放在dspy之后以避免 PyPI 上同名的旧包覆盖本地源码——这是本示例可复现运行的前提。运行优化配置好模型 API Key 后从仓库根目录运行export OPENAI_API_KEY... uv run python -m examples.arc_agi.main示例默认使用openrouter/google/gemini-3-flash-preview作为反射模型main.py。运行流程main.py加载数据集得到train_set / val_set / test_set构造GEPAConfig调用optimize_anything()以种子 Agent 代码为起点在训练集上评估、在验证集上选择候选反复迭代优化结束后把最优 Agent 代码写入outputs/arc_agi/best_agent.py分别在测试集上评估种子 Agent基线与最优 Agent打印两者准确率与提升幅度。Best score (on val): 0.1234 Evaluating Baseline (Seed Agent)... Evaluating Best Agent... Baseline accuracy: 5.0% Optimized accuracy: 15.0% Improvement: 10.0%关键代码脉络种子、评估器与 SideInfo种子 Agent一段可被exec的solve()函数优化起点是一段普通 Python 源码字符串main.py。它定义一个solve(train_inputs, train_outputs, test_inputs, llm)把训练样例与测试输入拼进提示词调用llm得到 JSON 网格列表再解析并按数量切分为训练预测与测试预测测试部分以[[g], ...]形式容纳最多 2 个尝试。这段代码本身可运行但表现平平——这正是 GEPA 演化的起点。评估器返回(score, SideInfo)optimize_anything的评估器签名是evaluator(candidate, example) - (score, side_info)。本示例的实现main.py调用run_agent()真正执行 Agent动态exec(agent_code)后调用solve()并在内部用TrackedLLM包装模型调用utils.pyscore test_score - 0.1 * (cost 1.0)当单个问题 LLM 成本超过 1 美元时扣 0.1 分形成对烧钱方案的经济惩罚引导反射模型在精度与成本之间做权衡SideInfo本示例中为dict[str, Any]携带problem_id、agent_code、training_score、test_score、cost、error、train_examples、test_examples以及llms.get_traces()返回的调用轨迹每次 LLM 调用的 prompt、response、cost、reasoning超过 10 次时随机抽样并标注。在 GEPA 中这种结构化反馈被称为 Actionable Side InformationASI——官方文档定位它是文本优化的梯度梯度告诉数值优化器往哪个方向移动ASI 则告诉反射 LLM 候选为什么失败、如何修复见 gepa_launcher.py。本例中compare_grid生成的矩阵形状不符 / 第 (i,j) 元素值错误 / 期望网格为...等细粒度诊断utils.py正是这类可操作反馈的来源。成本与调用追踪TrackedLLMTrackedLLMutils.py是一个带预算闸门的模型封装每次调用前检查已用次数超过max_llm_calls示例为 10直接抛RuntimeError从机制上保证 Agent 不超过 LLM 调用配额通过 LiteLLM 的completion()发请求支持以extra_body{reasoning: {effort: ...}}传递 OpenRouter 风格推理强度参数逐次记录prompt / response / cost / duration / reasoningget_traces()再把轨迹整理为 GEPA 反射可读的字典含llm_calls、llm_budget、total_cost、trajectory最终并入SideInfo。这套追踪使得最多 10 次调用、单问题成本约 $0.8~1.0的约束不仅是提示词里的口头约定而是被代码强制执行并进入反射反馈的硬指标。GEPA 配置详解从 GEPAConfig 到三层组件示例只用了两层配置main.py却是理解 GEPA 控制面的最佳入口config GEPAConfig( engineEngineConfig( run_dirlog_dir, max_metric_calls3000, parallelTrue, max_workers64, cache_evaluationTrue, track_best_outputsTrue, ), reflectionReflectionConfig( reflection_lmLLM_MODEL, # We use Gemini 3 Flash, but a stronger model will do better results ), )GEPAConfig是顶层配置gepa_launcher.py把设置分组为嵌套组件engine、reflection、tracking以及可选的merge/refiner/callbacks/stop_callbacks它支持从 dict 构造__post_init__会把传入的 dict 展开为对应 dataclass因此很容易从 JSON/YAML 读取配置。EngineConfig优化循环的预算、并行与缓存本示例用到的字段及其含义gepa_launcher.py字段示例值含义run_diroutputs/arc_agi引擎工作目录状态文件、迭代产物写在这里max_metric_calls3000评估预算上限最关键字段达到后停止优化parallel/max_workersTrue/64并行评估开关与线程池大小默认parallelTrue、max_workersos.cpu_count() or 32cache_evaluationTrue评估缓存默认关闭按(candidate, split, example_id)为键避免重复评估track_best_outputsTrue追踪并保存每个样例上的最优输出可用于热启动后续优化此外EngineConfig还提供max_candidate_proposals、max_reflection_cost、stop_at_score验证集达到阈值即停、candidate_selection_strategy默认pareto、acceptance_criterion默认strict_improvement、capture_stdio自动把评估器中的print()捕获进 ASI等更多旋钮供按需开启。ReflectionConfig反射 LLM 与反思节奏本示例只覆盖了reflection_lm反射模型默认为openai/gpt-5.1。完整的反思配置gepa_launcher.py还包含reflection_minibatch_size每次反思展示的样本数单任务默认 1、多任务默认 3用小批量而非全部样例换取聚焦的定向改进batch_sampler默认epoch_shuffled保证不同迭代覆盖不同样例module_selector多组件优化时每轮选择改哪个组件默认round_robinreflection_lm_kwargs透传给litellm.completion的额外参数如reasoning_effort、temperaturereflection_prompt_template/custom_candidate_proposer自定义反思提示词或完全替换提议器例如接 Claude Code 作为候选生成器。optimize_anything 调用语义完整调用main.py将任务拆成三个部分对应 optimize_anything.py 的签名result optimize_anything( seed_candidateSEED_AGENT_CODE, # 优化对象Agent 源码 evaluatorevaluate, # 如何打分(candidate, example) - (score, side_info) datasettrain_set, # 优化中用到的训练样例 valsetval_set, # 候选选择用的验证样例 configconfig, # 引擎、预算、反射配置 objectiveOBJECTIVE, # 短目标陈述 backgroundBACKGROUND, # 长上下文任务格式、约束、成本说明 )objectiveBuild an ARC-AGI agent program that maximizes a test score.与background任务格式、2 次尝试规则、10 次 LLM 调用与成本预算会被逐字注入反思提示词见 gepa_launcher.py 的动态模板构建逻辑也就是说约束说明要尽量写进background反射模型才会在每一轮都看到它们。运行后result.best_candidate即最优 Agent 代码result.val_aggregate_scores[result.best_idx]是其在验证集上的聚合分数示例随后把最优代码落盘到outputs/arc_agi/best_agent.py并用evaluate_on_testset()utils.py基于ThreadPoolExecutor并行评估默认 32 线程对比种子与最优 Agent 在测试集上的解决率。实战要点与延伸建议约束要可执行也要可反馈10 次调用上限由TrackedLLM强制执行成本超限由评分函数扣分惩罚——优化目标里写不进去的东西要靠代码闸门兜住。反馈要细粒度compare_grid输出的结构/形状/逐格错误信息直接进入 ASI是反射模型能看懂为什么失败的关键如果换用只回 0/1 的评估器演化会退化为随机盲搜。评估口径要与目标一致ARC-AGI 的全对才得分二元计分是刻意为之——若改成平均逐格正确率演化出的 Agent 可能擅长部分正确而偏离竞赛目标。预算与并行按资源调示例max_metric_calls3000、max_workers64是针对并行评估设计的预算不足时优先调小验证集或开启cache_evaluation避免同一候选被重复评估。看更多GEPAConfig的mergePareto 前沿候选交叉、refiner每次评估后即时精修与trackingWB / MLflow 实验追踪可在仓库 src/gepa/gepa_launcher.py 中进一步查阅官方还提供OptimizeAnythingConfigsrc/gepa/oa/config.py这一扁平化配置入口支持max_evals/max_token_cost预算与gepa/autoresearch/meta_harness等引擎切换。总而言之本示例是GEPA 优化一段可执行程序而非一段提示词的完整范式数据集、种子程序、评估器、SideInfo 与引擎配置五块拼图共同构成一个可复现、可扩展的 Agent 代码演化流水线——把它换成其他编程任务你只需要替换solve()的输入/输出约定、评估器与数据集GEPA 的反射循环无需任何改动。赞分享AI Agent提示工程模型优化【免费下载链接】gepaOptimize prompts, code, and more with AI-powered Reflective Optimization项目地址https://gitcode.com/gh_mirrors/ge/gepa点击查看免费下载相关推荐GEPA optimize() 完全指南用反射式演化优化 Prompt、代码与任意文本组件系统GEPA optimize 完全指南用反射式演化优化 Prompt、代码与任意文本组件系统 本文是 GEPA 核心入口 gepa.optimize 的完整使用AI Agent提示工程模型优化GEPA用 LLM 反射与 Pareto 进化搜索优化任何文本参数 —— 从 Prompt、代码到 Agent 架构GEPA用 LLM 反射与 Pareto 进化搜索优化任何文本参数 —— 从 Prompt、代码到 Agent 架构 导读 GEPAGenetic PareAI Agent提示工程模型优化GEPA StdOutLogger 使用指南在反射式优化中接入最小化标准输出日志GEPA StdOutLogger 使用指南在反射式优化中接入最小化标准输出日志 GEPA 是一套以 AI 反射式优化Reflective OptimizaAI Agent提示工程模型优化上一篇Pwn2Own2018提权秘籍XNU内核漏洞实现从普通用户到root的终极突破下一篇提升远程开发体验GitHub_Trending/au/autocomplete与SSH/Mosh集成方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考