AI Engineer World's Fair 2026

Beating RL With Reflection: GEPA and Optimize Anything — Lakshya A. Agrawal, GEPA

Slide chapters

9 slide and demo groups · Timestamps are approximate. 24 additional groups were omitted from this pass.

Reflective Optimization

Lakshya A. Agrawal introduces reflective optimization: self-improving prompts, agents, and models using textual feedback.

Text in image
Reflective Optimization

Self-improving prompts, agents, and models from text feedback

Lakshya A Agrawal, Donghyun Lee (Luke), Shangyin Tan, Rishabh Tiwari, Dilara Soylu, Kusha Sareen, Noah Ziems, Wenjie Ma, Rishi Khare, Karim Elmaaroufi, Krista Opsahl-Ong, Arnav Singhvi, Rohit Sandadi, Herumb Shandilya, Michael J Ryan, Christopher Potts, Kurt Keutzer, Inderjit S Dhillon, Meng Jiang, Sanjit A. Seshia, Rishabh Agarwal, Devvrit Khatri, Koushik Sen, Dan Klein, Joseph E. Gonzalez, Ion Stoica, Omar Khattab, Alexandros G. Dimakis, Matei Zaharia

github.com/gepa-ai/gepa

Logo text: The University of California Berkeley, 1868; sky

How can we teach AI new tasks?

Pretraining, SFT, and RL teach tasks through gradient descent, but require vast numbers of tokens, labeled examples, or trial rollouts. Most teams lack that much data or compute.

Text in image
How can we teach AI new tasks?

Standard way: weight updates with gradient descent: pretraining, supervised fine tuning (SFT), reinforcement learning (RL)

Very effective, but requires huge numbers of examples!
- Trillions of tokens for pretraining
- 10,000s of labeled examples for SFT
- 100,000s of rollouts (trials) for RL (math, coding, etc)

Most teams do not have that much data or compute.

Interface text:
CC

Why this is hard in practice

Domain-specific data can be too scarce for supervised fine-tuning, while rollouts can be costly when the LLM workflow or task metric is slow or expensive to execute.

Text in image
Why this is hard in practice

Low availability of domain specific knowledge resources

Expensive rollouts: either the LLM workflow for the task or the task metric is slow/expensive to execute

Illustrations:
AI Engine-ML Kernel and Graph Programming Guide
[illegible]
AMD
TASK

Increasing use of agents for real-world applications

Agents connect models to tools and retrieval, with guardrails. Long-running tool calls can make repeated rollouts costly, worsening sample inefficiency.

Text in image
Increasing use of Agents for real-world applications

Monolithic LLM

Agent

Tool Invocation
Retrieval
Guardrails

Interface text: CC

The current dominant paradigm

The model generates multiple rollouts, but RL uses their 0/1 rewards to update the model. The speaker asks whether the intermediate traces—including tool calls, responses, and error messages—could also inform learning.

Text in image
The current dominant paradigm

RL with verified rewards:

Model
Rollout 1 → 1
Rollout 2 → 0
Rollout 3 → 1
Rewards

There was a lot of information in each rollout, but we only took a 0/1 score and propagated that via gradient descent. Can we use the other info?

Interface text: CC

Idea: Reflective Optimization in Text Space

A language model examines rollout traces and intermediate outputs to identify what worked, potentially using retrieval. It then updates a prompt, where one natural-language change can substantially alter behavior.

Text in image
Idea: Reflective Optimization in Text Space

Instead of only using the 0/1 reward signal, have a LM look at the traces of all the rollouts and reflect on what worked in them (using all intermediate outputs, and potentially even other tools, such as retrieval!)

Instead of only updating weights with small deltas, update a prompt: a single natural language update can give a large behavior change

Agent
Tool Invocation
Retrieval
Guardrails

Interface text: CC

3:34Completed build

Show 2 builds
  1. 3:00

    An agent diagram accompanies a proposal for a language model to reflect on rollout traces and intermediate outputs.

    Text in image
    Idea: Reflective Optimization in Text Space
    
    Instead of only using the 0/1 reward signal, have a LM look at the traces of all the rollouts and reflect on what worked in them (using all intermediate outputs, and potentially even other tools, such as retrieval!)
    
    Agent
    Tool Invocation
    Retrieval
    Guardrails
    
    Interface text: CC
  2. 3:34

    An agent diagram accompanies explanations of reflecting on rollout traces and updating prompts.

    Text in image
    Idea: Reflective Optimization in Text Space
    
    Instead of only using the 0/1 reward signal, have a LM look at the traces of all the rollouts and reflect on what worked in them (using all intermediate outputs, and potentially even other tools, such as retrieval!)
    
    Instead of only updating weights with small deltas, update a prompt: a single natural language update can give a large behavior change
    
    Agent
    Tool Invocation
    Retrieval
    Guardrails
    
    Interface text: CC

GEPA: Reflective Prompt Optimization for Agents

GEPA uses text feedback to evolve prompts and Pareto-based selection to find test-case-specific solutions before aggregating them.

Text in image
GEPA: Reflective Prompt Optimization for Agents

RL in text space: Instead of just receiving a reward score, we obtain <score, text feedback>

Genetic
Leverage text feedback to create good prompts from genetic pool

Pareto (Multi Objective)
Discovers test case specific solutions first and aggregate later

Interface text:
CC

GEPA Generates a System Specification

GEPA expands a one-line seed into a second-hop retrieval specification. It directs the query toward missing, related information rather than repeating facts already found in the first hop.

Text in image
Seed Prompt for Second-Hop of Multi-Hop QA System

Given the fields question, summary_1, produce the fields query.

GEPA Prompt Optimizer

GEPA generates a complete system specification

GEPA’s Optimized Prompt for Second-Hop of Multi-Hop QA System, GPT-4.1 Mini

You will be given two input fields: question and summary_1. Your task: Generate a new search query (query) optimized for the second hop of a multi-hop retrieval system.

• The original user question is typically complex and requires information from multiple documents to answer.
• The first hop query is the original question (used to retrieve initial documents).
• Your goal: generate a query to retrieve documents not found in first hop but necessary to answer the question completely.

Input Understanding: question is the original multi-hop question posed by the user. summary_1 is a concise summary of information from a document retrieved in the first hop, which partially addresses the question.

Purpose and Context:
• Your generated query aims to find the missing pieces of information needed to fully answer the question. …
• The query must retrieve relevant documents NOT found in first hop … for final answer extraction.

Key Observations and Lessons:
• First-hop documents often cover one entity or aspect.
• Remaining relevant documents often involve connected or higher-level concepts mentioned in summary_1 but not explicitly asked in the original question. The query should target these missing, but logically linked, documents.
• Avoid merely paraphrasing the original question or restating known facts from summary_1.
• Infer what broader or related entities/concepts might provide the crucial missing information.
• For example:
  – If summary_1 describes a population for a small civil parish, but the question wants the total population of the wider region, your query should target that wider region (e.g., “Madeira archipelago population in 2011”).
  – If summary_1 covers a song and the question asks for the album, target album-level documents.

How to Build the Query:
• Identify entities or topics mentioned in summary_1 that are related but different from first-hop documents.
• Reframe the query to explicitly mention these broader or related entities connected to the original question.
• Include relevant key context from the question to maintain specificity, but shift focus to the missing piece.
• The goal is to retrieve documents that link or complement what was retrieved initially.

Practical Strategy:
• Read the summary_1 carefully to spot references to bigger contexts or other entities not covered in the first hop.
• Ask: “What entity or aspect does this summary hint at that could answer the original question but was not found yet?”
• Formulate a precise, focused factual query targeting that entity or concept to retrieve the missing documents.

Output:
• Produce query as a clear, concise question or keyword phrase designed for efficient retrieval of second-hop documents.
• Ensure the query relates logically to the original question while targeting the broader or complementary knowledge identified in summary_1. … Do not include the original question or simply rephrase it. Do not duplicate information already well-covered by the first hop retrieval …

Interface text:
CC

GEPA on GPT-4.1-mini: Math

On LiveBench Math, GEPA-optimized GPT-4.1-mini outperforms GPT-4.1. The accompanying prompt spells out answer formats and guidance for exact values, geometry and notation.

Text in image
GEPA on GPT-4.1-mini: Math

LiveBench Math
Y-axis ticks: 55%, 56%, 57%, 58%, 59%, 60%, 61%, 62%, 63%, 64%, 65%
Legend: GPT-4.1-mini; GPT-4.1-mini GEPA; GPT-4.1

You will be given a mathematical problem to solve. Your task is to provide a detailed, step-by-step solution that clearly explains your reasoning, including any substitutions, assumptions, known results, or algebraic manipulations. This reasoning should be thorough enough to validate correctness and allow easy parsing.

Important domain-specific details and formatting rules you must strictly follow:

1. Final Answer Formatting

- If the question presents multiple-choice options labeled by letters (e.g., (A), (B), (C), etc.), and explicitly asks you to pick an answer letter, then after determining the correct choice, respond by writing that letter repeated exactly five times consecutively in a single string (e.g., "AAAAA" if the answer is A).
- If the question asks for a numeric or symbolic expression to be enclosed in a box, present your exact final numeric or symbolic answer within LaTeX \(\boxed{}\) notation without decimal approximations. For example, write \(\boxed{42}\) or \(\boxed{\frac{1674}{7}}\).

2. Exact Values and Fractions

Whenever computing numeric quantities such as means, variances, or simplifying expressions, avoid decimal approximations. Use exact or fractional forms to maintain precision and ease of parsing.

3. Geometry Problems Involving Tangent Circles

- When the problem involves circles tangent to each other or to lines (such as Apollonius circle problems or Soddy circle problems), apply relevant theorems like the Descartes Circle Theorem (Soddy's formula) carefully, paying close attention to sign conventions and curvatures.

4. Polynomial and Trigonometric Identities

- Be prepared to recall or derive polynomial expansions or trigonometric identities, for example expansions of \(\tan(nx)\), binomial expansions involving complex numbers, or identities involving coefficients depending on parity to extract particular terms.

5. Expression and Variable Consistency

- Use consistent and clear notation, especially when dealing with coordinates (often homogenized coordinates for points in projective geometry), roots, factorization, or parametric forms.

6. Solution Style

- Do not enclose your solution reasoning inside any special tags; instead, present your reasoning plainly followed immediately by your final answer.
- If unsure of the final numeric value, make a best-educated guess consistent with problem context, clearly marking the final answer according to formatting rules.

Interface text: CC

Read the talk

Beating RL With Reflection: GEPA and Optimize Anything

Lakshya A. Agrawal explains how full execution traces can teach an optimizer more than a reward alone—and how the same search can improve prompts, agent programs, repository skills and evaluators.

From a talk by Lakshya Agrawal

At a glance

Ideas worth remembering

  • Reflection uses the diagnostic content of an attempt—intermediate outputs, tool responses and errors—to propose a behavioral change in text.

  • GEPA’s Pareto pool preserves candidates with strengths on individual examples, allowing search to continue along alternatives when the highest-scoring prompt stops improving.

  • Optimize Anything can search over prompts, programs and policies when they can be represented as text and scored. The evaluator should return actionable feedback alongside its score.

  • Learned repository skills can carry practical knowledge between attempts and models, reducing repeated exploration as well as improving task completion.

  • For subjective tasks, detailed human annotations can first train an LLM judge prompt; that judge can then guide agent optimization in a continuing production feedback cycle.

When each attempt takes hours, learning from a score gets expensive

Teaching an AI system a new task usually means updating its weights: during pretraining, supervised fine-tuning or reinforcement learning. Lakshya A. Agrawal opens with the practical obstacle to that approach. Most teams do not have the data and compute needed for large training runs, especially when the task involves unfamiliar domain knowledge or an agent that works for hours.

Source frame: When each attempt takes hours, learning from a score gets expensiveOpen full source frame
Source frame: When each attempt takes hours, learning from a score gets expensive

Two costs make sample efficiency—the amount learned from each example—central:

  • Scarce domain examples. A specialized task may have too little existing knowledge or labeled data for supervised fine-tuning.
  • Expensive attempts. Running the agent, waiting for its tools and measuring the result can all take substantial time. Repeating that process hundreds of thousands of times becomes impractical.

In the reinforcement-learning setup described here, a model produces several rollouts, an evaluator assigns rewards, and an algorithm such as GRPO converts those rewards into weight updates. The learning signal compresses a rich attempt into a scalar score. Yet the attempt also contains intermediate reasoning, tool calls, environment responses and error messages. A failure score tells the optimizer that something went wrong; an error message may tell it what went wrong.

0:120:29
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:12 · section reference included

Use the trace to change the instructions

Reflective optimization gives a language model the rollout itself. The model examines what worked and what failed, then proposes a change to the prompt. Reflection can use intermediate outputs and, potentially, retrieve supporting information from a company knowledge base or a guide. The update happens in text, where a short instruction can express a large behavioral change.

Source frame: Use the trace to change the instructionsOpen full source frame
Source frame: Use the trace to change the instructions

A summarizer makes the idea easy to see. Change its instruction from producing a one-line summary to producing a ten-line summary, and the requested output changes substantially through a tiny edit. The example illustrates the size of an update available in prompt space: reflection can identify a desired behavior and state it directly, rather than trying to obtain it through a sequence of small weight updates.

GEPA combines this reflection with an evolutionary search over candidate prompts. Each attempt supplies a score and textual feedback, including domain-specific information. In Agrawal’s presented comparison, one reflection round using three examples produced twice the performance gains that GRPO achieved after 25,000 rollouts. Further reflection increased the gap, and the model performed its own reflection without an external expert teacher. These and the later benchmark results are task-specific reported outcomes; the recording does not establish complete evaluation protocols or dataset splits, so they do not establish a universal advantage over reinforcement learning.

3:023:04
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

3:02 · section reference included

A better prompt can be a better problem specification

The useful output of reflection is often a clearer specification of the task: how to interpret the input, what a pipeline stage is supposed to accomplish, and which lessons the examples reveal. In a multihop question-answering system, the optimized second-hop prompt captured a division of work. First-hop documents often cover one entity or aspect of the question; the next retrieval should find documents related to that information. The prompt teaches the stage how to contribute to the whole pipeline.

Source frame: A better prompt can be a better problem specificationOpen full source frame
Source frame: A better prompt can be a better problem specification

This automates part of the work teams otherwise do by repeatedly editing prompts and discovering the task specification themselves. Agrawal gives a run-time estimate of half an hour to one hour, depending on the pipeline. The approach also works through proprietary model interfaces: an optimized GPT-4.1 mini prompt outperformed GPT-4.1 on the math task presented.

The AMD example shows what a concrete learned correction can do. A coding agent had to program a new NPU through an unfamiliar API with very little information available online. Its initial performance was roughly 4%. GEPA changed the prompt, leaving the rest of the agent unchanged, and the reported result rose to roughly 30%. One discovered instruction told the agent to avoid an AMD library header that existed for NPU programming but did not work with the hardware generation being tested.

The causal change is specific: an apparently relevant library was unsuitable for this target, reflection discovered that restriction, and the prompt carried the restriction into subsequent attempts. GEPA found it in one step. The overall gain belongs to the optimized prompt as a whole; the example does not isolate how much of that gain came from this single instruction.

5:395:53
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

5:39 · section reference included

Optimize Anything makes the editable object larger

A prompt is one text artifact that controls behavior. An agent’s Python or JavaScript program is another. Optimize Anything extends the same search to an object that can be represented as text and evaluated with a score. Instead of editing only instructions inside an agent, the optimizer can edit the program that determines its tools and control flow.

Source frame: Optimize Anything makes the editable object largerOpen full source frame
Source frame: Optimize Anything makes the editable object larger

The evaluator has two jobs: measure the candidate and return information that can help improve it. The examples make that distinction concrete:

  • CUDA kernels. Compilation and profiling can produce both a score and diagnostics about the code.
  • Numeric parameters. Numbers can be serialized as text, making them editable candidates too.
  • Cloud scheduling policies. A policy or heuristic can be scored on cost or efficiency, while job traces and service-level agreement violations explain where it failed.

The API accepts the problems to solve and a fitness function that returns a score plus an open-ended dictionary of side information. Expert feedback, compiler errors, profiler messages, tool errors and documentation can all go into that dictionary. This is the integration work that makes reflection useful: expose what the environment knows about the candidate, rather than reducing everything to whether it passed.

A playful example optimizes a Python script that renders a 3D unicorn to a PNG. It demonstrates that the candidate can be an image-producing program, rather than a prompt that returns text. The recording compares the resulting renderings, but does not explain the visual fitness function; the example illustrates the range of editable artifacts rather than a reproducible measure of visual quality.

10:3210:34
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

10:32 · section reference included

From a single model call to an agent—and from trajectories to skills

Agent development usually involves choosing tools, writing their descriptions and arranging control flow. In the ARC-AGI example, the starting point was a four-line Python program that called a model to reason through the problem. After 16 reflection rounds, Optimize Anything produced a six-step agent, raising the reported Gemini Flash accuracy from 32.5% to 89.5%. The editable object was the agent file itself, so search could introduce new steps.

Source frame: From a single model call to an agent—and from trajectories to skillsOpen full source frame
Source frame: From a single model call to an agent—and from trajectories to skills

The generated agent induced rule hypotheses, synthesized code, executed and traced that code, debugged it and proposed revisions. It then ran the resulting code on the test inputs and returned the output. This changes how an answer is produced: the system can inspect the consequences of an executable hypothesis and revise it before returning a result. A second harness example on MATH-500 produced a two-step agent and a reported accuracy improvement of 20% for GPT-4.1 nano; the recording does not specify whether that figure means a relative increase or percentage points.

Repository skills offer a different place to store what reflection learns. The objective is to learn a skill from an agent trajectory that will help when a similar problem appears. In the Go repository issue-resolution example, learned skills raised a budget-constrained GPT-5 mini coding agent from 24% to 93%. The skills contained practical repository knowledge: where features live, how the repository is organized, how to invoke tests and which build system it uses.

Those skills also transferred to Claude Sonnet, where Agrawal reports 100% issue resolution on the tested tasks and almost a 50% reduction in resolution time. The proposed explanation is practical: carrying repository knowledge into the next attempt reduces repeated discovery and token use. The skills learned with a cheaper model could therefore help a different model work more efficiently. The open-source skill-learning feature is available through the GEPA repository.

13:3513:38
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

13:35 · section reference included

Choose whether to solve this instance or learn for future ones

Optimize Anything distinguishes three optimization modes by what the result must serve:

  • Single problem. Improve one artifact, such as a particular matrix-multiplication kernel.
  • Multitask search. Work on related problems, such as matrix-multiplication and dot-product kernels, where information may transfer between them.
  • Generalization. Optimize using a set of examples, then deploy the prompt, skill or agent architecture on new problems.
Source frame: Choose whether to solve this instance or learn for future onesOpen full source frame
Source frame: Choose whether to solve this instance or learn for future ones

The production examples span different objectives. Agrawal reports almost 40% lower cloud scheduling costs compared with expert heuristics and almost 35% lower OCR error rates for leading models. He also describes Databricks tuning an open model to outperform Claude Opus on its agent task at 90 times lower cost. These examples put accuracy, error rate and operating cost on the same agenda: a successful optimization need not mean buying a larger model.

Does a better model make prompt optimization less useful? Agrawal’s answer is the opposite: stronger instruction following can increase the value of precise task instructions. In the presented comparison, Claude Opus gained more from optimization than the open model did. That supports his view that model capability and task specification can reinforce each other, although it does not establish how every future model will respond.

16:4316:45
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

16:43 · section reference included

Learn the evaluator, then use it to improve the agent

Subjective tasks complicate the requirement to score a candidate. The proposed starting point is production experience: collect agent trajectories and ask a human to annotate about 50 of them with detailed feedback. Comments can describe response length, quality, terminology or other task-specific preferences. GEPA then optimizes an LLM judge prompt using those annotations, and that judge evaluates candidates while the agent is optimized.

Source frame: Learn the evaluator, then use it to improve the agentOpen full source frame
Source frame: Learn the evaluator, then use it to improve the agent

How does human feedback reach the next deployed agent? The cycle below makes the intermediate evaluator visible. Human annotations first shape the judge; the judge then guides agent optimization; deployment produces the next set of trajectories. The judge’s usefulness depends on how well the annotations capture the intended quality standard—this procedure makes that standard learnable, without making subjective evaluation objective.

The ending returns to weight training. In work called “Learning Fast and Slow,” Agrawal describes co-optimizing model weights and prompt harnesses for continual learning. He does not develop the update procedure in this recording. The proposal nevertheless changes the relationship established at the start: reflection in text can accompany weight updates, with both becoming parts of a learning system.

Agrawal closes with reports of production adoption and an integration claim: GEPA can work with different frameworks and models without hard dependencies. His practical advice is to expose as much actionable domain information as possible. A score selects the desired result; traces, errors, documentation and expert feedback give reflection something useful to change. That is the starting point for trying the approach through the open-source implementation.

Human feedback trains the judge that guides the agent

Production trajectoriesCollect attempts from the deployed agent.
Detailed human feedbackAnnotate about 50 trajectories with task-specific judgments.
Optimized LLM judgeUse annotations to optimize the judge prompt.
Optimize and deploy the agentUse the learned judge to guide agent improvement.
The evaluator is learned from annotated production behavior before it is used to optimize the agent.
Read the diagram as text
  • Production trajectories. Collect attempts from the deployed agent.
  • Detailed human feedback. Annotate about 50 trajectories with task-specific judgments.
  • Optimized LLM judge. Use annotations to optimize the judge prompt.
  • Optimize and deploy the agent. Use the learned judge to guide agent improvement.
  • Production trajectories → Detailed human feedback: Human review.
  • Detailed human feedback → Optimized LLM judge: Optimize the evaluation prompt.
  • Optimized LLM judge → Optimize and deploy the agent: Evaluate agent candidates.
  • Optimize and deploy the agent → Production trajectories: New production experience.
19:0719:09
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

19:07 · section reference included

Resources

From the talk

Read the complete timestamped transcript

9 slide groups. Extracted from the recording; expand builds to follow changes. Timestamps are approximate. 24 additional groups were omitted from this pass.

  1. 0:12

    Hi everyone, my name is Lakshia Agraal

  2. 0:15

    and today I'll be presenting on behalf

  3. 0:17

    of a very large effort uh the problem of

  4. Reflective Optimization

    Lakshya A. Agrawal introduces reflective optimization: self-improving prompts, agents, and models using textual feedback.

    Text in image
    Reflective Optimization
    
    Self-improving prompts, agents, and models from text feedback
    
    Lakshya A Agrawal, Donghyun Lee (Luke), Shangyin Tan, Rishabh Tiwari, Dilara Soylu, Kusha Sareen, Noah Ziems, Wenjie Ma, Rishi Khare, Karim Elmaaroufi, Krista Opsahl-Ong, Arnav Singhvi, Rohit Sandadi, Herumb Shandilya, Michael J Ryan, Christopher Potts, Kurt Keutzer, Inderjit S Dhillon, Meng Jiang, Sanjit A. Seshia, Rishabh Agarwal, Devvrit Khatri, Koushik Sen, Dan Klein, Joseph E. Gonzalez, Ion Stoica, Omar Khattab, Alexandros G. Dimakis, Matei Zaharia
    
    github.com/gepa-ai/gepa
    
    Logo text: The University of California Berkeley, 1868; sky
  5. 0:21

    reflective optimization or how can we

  6. 0:24

    self-improve prompts agents and models

  7. 0:27

    from textual feedback. The question we

  8. 0:29

    start with is how can we teach AI to

  9. 0:32

    perform new tasks. The standard way has

  10. 0:35

    been to perform weight updates with

  11. 0:37

    gradient descent either during

  12. 0:38

    pre-training, supervised fine-tuning or

  13. 0:41

    reinforcement learning. This has proven

  14. 0:43

    to be extremely effective, but it

  15. 0:45

    requires a huge number of examples.

  16. 0:48

    trillions of tokens for pre-training,

  17. 0:50

    tens of thousands of labeled examples

  18. 0:52

    for supervised fine-tuning or hundreds

  19. How can we teach AI new tasks?

    Pretraining, SFT, and RL teach tasks through gradient descent, but require vast numbers of tokens, labeled examples, or trial rollouts. Most teams lack that much data or compute.

    Text in image
    How can we teach AI new tasks?
    
    Standard way: weight updates with gradient descent: pretraining, supervised fine tuning (SFT), reinforcement learning (RL)
    
    Very effective, but requires huge numbers of examples!
    - Trillions of tokens for pretraining
    - 10,000s of labeled examples for SFT
    - 100,000s of rollouts (trials) for RL (math, coding, etc)
    
    Most teams do not have that much data or compute.
    
    Interface text:
    CC
  20. 0:54

    of thousands of rollouts for

  21. 0:56

    reinforcement learning in domains like

  22. 0:58

    math, coding, etc.

  23. 1:02

    However, most teams do not actually have

  24. 1:05

    that much data or compute and in fact

  25. 1:08

    the problems are that we are trying to

  26. 1:10

    tackle with AI now are bottlenecked by

  27. 1:13

    sample efficiency. What do we mean by

  28. 1:15

    that? Two things. First of all, there is

  29. 1:18

    low availability of domain specific

  30. 1:21

    knowledge resources which means there is

  31. 1:23

    not enough data to perform offline

  32. 1:25

    algorithms like SFT. Second, the domains

  33. Why this is hard in practice

    Domain-specific data can be too scarce for supervised fine-tuning, while rollouts can be costly when the LLM workflow or task metric is slow or expensive to execute.

    Text in image
    Why this is hard in practice
    
    Low availability of domain specific knowledge resources
    
    Expensive rollouts: either the LLM workflow for the task or the task metric is slow/expensive to execute
    
    Illustrations:
    AI Engine-ML Kernel and Graph Programming Guide
    [illegible]
    AMD
    TASK
  34. 1:28

    that we are trying to apply AI

  35. 1:30

    increasingly are having expensive

  36. 1:32

    rollouts where either the LLM workflow

  37. 1:34

    pipeline or agentic rollouts are itself

  38. 1:37

    uh very slow or expensive to do or the

  39. 1:40

    task metric is very slow or expensive to

  40. 1:42

    execute. We are seeing that agents can

  41. 1:44

    now work for hours on end and if you

  42. 1:47

    were to apply an online learning

  43. 1:49

    algorithm to this uh it would require

  44. 1:52

    hundreds of thousands of rollouts and it

  45. 1:53

    would not be feasible. So we are seeing

  46. Increasing use of agents for real-world applications

    Agents connect models to tools and retrieval, with guardrails. Long-running tool calls can make repeated rollouts costly, worsening sample inefficiency.

    Text in image
    Increasing use of Agents for real-world applications
    
    Monolithic LLM
    
    Agent
    
    Tool Invocation
    Retrieval
    Guardrails
    
    Interface text: CC
  47. 1:56

    increasing use of agents for real world

  48. 1:58

    product uh applications where uh these

  49. 2:01

    invoke tools which can also be long

  50. 2:03

    running further exacerbating the sample

  51. 2:05

    inefficiency issue.

  52. 2:08

    The current dominant paradigm is

  53. 2:10

    reinforcement learning with verified

  54. 2:11

    rewards where given a model and a task,

  55. 2:14

    we perform any number of parallel

  56. 2:16

    rollouts and get rewards at the end.

  57. 2:20

    Finally, an algorithm like GRPO takes

  58. 2:22

    these rewards and converts it into

  59. 2:24

    gradients that are applied back to the

  60. 2:26

    model. However, as we can see, there was

  61. The current dominant paradigm

    The model generates multiple rollouts, but RL uses their 0/1 rewards to update the model. The speaker asks whether the intermediate traces—including tool calls, responses, and error messages—could also inform learning.

    Text in image
    The current dominant paradigm
    
    RL with verified rewards:
    
    Model
    Rollout 1 → 1
    Rollout 2 → 0
    Rollout 3 → 1
    Rewards
    
    There was a lot of information in each rollout, but we only took a 0/1 score and propagated that via gradient descent. Can we use the other info?
    
    Interface text: CC
  62. 2:29

    a lot of information in each of these

  63. 2:32

    rollouts, but we only learned an O of

  64. 2:35

    one score and propagated that via

  65. 2:38

    gradient descent. We can see that there

  66. 2:40

    is chains of thought, the tool calls

  67. 2:42

    made to the environment, the envir

  68. 2:44

    environment's responses to those tool

  69. 2:46

    calls, which could potentially contain

  70. 2:48

    error messages which also provide

  71. 2:50

    diagnostic value and we learned almost

  72. 2:53

    nothing from all of that. So the

  73. 2:55

    question we ask is can we make use of

  74. 2:58

    this other extremely rich information.

  75. Idea: Reflective Optimization in Text Space

    A language model examines rollout traces and intermediate outputs to identify what worked, potentially using retrieval. It then updates a prompt, where one natural-language change can substantially alter behavior.

    Text in image
    Idea: Reflective Optimization in Text Space
    
    Instead of only using the 0/1 reward signal, have a LM look at the traces of all the rollouts and reflect on what worked in them (using all intermediate outputs, and potentially even other tools, such as retrieval!)
    
    Agent
    Tool Invocation
    Retrieval
    Guardrails
    
    Interface text: CC

    3:00

    Show 2 builds
    1. 3:00

      An agent diagram accompanies a proposal for a language model to reflect on rollout traces and intermediate outputs.

      Text in image
      Idea: Reflective Optimization in Text Space
      
      Instead of only using the 0/1 reward signal, have a LM look at the traces of all the rollouts and reflect on what worked in them (using all intermediate outputs, and potentially even other tools, such as retrieval!)
      
      Agent
      Tool Invocation
      Retrieval
      Guardrails
      
      Interface text: CC
    2. 3:34

      An agent diagram accompanies explanations of reflecting on rollout traces and updating prompts.

      Text in image
      Idea: Reflective Optimization in Text Space
      
      Instead of only using the 0/1 reward signal, have a LM look at the traces of all the rollouts and reflect on what worked in them (using all intermediate outputs, and potentially even other tools, such as retrieval!)
      
      Instead of only updating weights with small deltas, update a prompt: a single natural language update can give a large behavior change
      
      Agent
      Tool Invocation
      Retrieval
      Guardrails
      
      Interface text: CC
  76. 3:02

    Our idea is to perform reflective

  77. 3:04

    optimization in text space where instead

  78. 3:07

    of only using the zero or one reward

  79. 3:10

    signal, we can have a language model or

  80. 3:12

    an agent look at the trace of the entire

  81. 3:16

    rollout and reflect on what worked in

  82. 3:18

    them, what did not work in them. And

  83. 3:20

    this reflection could potentially use

  84. 3:22

    all intermediate outputs and potentially

  85. 3:25

    even make other tool calls such as

  86. 3:27

    retrieval from your company's knowledge

  87. 3:29

    base or some guide textbook and so on.

  88. 3:33

    So that's the first key idea and the

  89. 3:35

    second is that instead of only updating

  90. 3:38

    weights with small deltas, we can

  91. 3:40

    instead update a prompt where a single

  92. 3:43

    natural language update can give a very

  93. 3:45

    large behavior change. Let's take a

  94. 3:47

    simple example. Let's say you're tasked

  95. 3:48

    with writing a text summarization system

  96. 3:51

    and the prompt of that system says

  97. 3:53

    generate a oneline summary. If I just go

  98. 3:56

    and tweak that prompt to say generate a

  99. 3:58

    10-line summary, we can all agree that

  100. 4:01

    the behavior of the system would change

  101. 4:03

    quite significantly with that just one

  102. 4:05

    word change. And making that one word

  103. 4:07

    change is quite quick and we can reflect

  104. 4:09

    on our own behavior and identify what

  105. 4:12

    needs to change. If we were to achieve a

  106. 4:15

    similar kind of behavior update from our

  107. 4:17

    AI system, we would have to have

  108. 4:19

    thousands of gradient very tiny gradient

  109. 4:21

    updates sequentially.

  110. GEPA: Reflective Prompt Optimization for Agents

    GEPA uses text feedback to evolve prompts and Pareto-based selection to find test-case-specific solutions before aggregating them.

    Text in image
    GEPA: Reflective Prompt Optimization for Agents
    
    RL in text space: Instead of just receiving a reward score, we obtain <score, text feedback>
    
    Genetic
    Leverage text feedback to create good prompts from genetic pool
    
    Pareto (Multi Objective)
    Discovers test case specific solutions first and aggregate later
    
    Interface text:
    CC
  111. 4:23

    So with that key idea, we proposed JPEA

  112. 4:26

    which is a reflective prompt

  113. 4:27

    optimization technique for agents. It

  114. 4:30

    uses an evolutionary loop along with a

  115. 4:32

    novel parto-based candidate selection

  116. 4:34

    which I will come to later. It is akin

  117. 4:37

    to doing reinforcement learning in text

  118. 4:39

    space where instead of just rewarding

  119. 4:41

    receiving a reward score we are actually

  120. 4:44

    obtaining score along with textual

  121. 4:46

    feedback which can be very domain

  122. 4:47

    specific and learn all about the domain

  123. 4:50

    from it.

  124. 4:52

    Let's compare Japa with gRPO which is

  125. 4:54

    one of the leading RL techniques. On the

  126. 4:56

    x-axis we have the number of training

  127. 5:00

    steps uh also proportional to number of

  128. 5:02

    data samples seen and on the y-axis we

  129. 5:05

    have the performance on our domain that

  130. 5:07

    we are training for. And what we can see

  131. 5:09

    is that Japa in just one round of

  132. 5:12

    reflection using just three data points

  133. 5:14

    is already able to get twice the

  134. 5:16

    performance gains that gpo got after

  135. 5:19

    25,000 rollouts. Continuing to run Japa

  136. 5:22

    for a few more steps further increases

  137. 5:25

    that gap itself by another 2x. I want to

  138. 5:29

    note here that the model Quen 38B is

  139. 5:33

    optimizing itself here. There is no

  140. 5:35

    external expert teacher involved

  141. 5:37

    whatsoever.

  142. GEPA Generates a System Specification

    GEPA expands a one-line seed into a second-hop retrieval specification. It directs the query toward missing, related information rather than repeating facts already found in the first hop.

    Text in image
    Seed Prompt for Second-Hop of Multi-Hop QA System
    
    Given the fields question, summary_1, produce the fields query.
    
    GEPA Prompt Optimizer
    
    GEPA generates a complete system specification
    
    GEPA’s Optimized Prompt for Second-Hop of Multi-Hop QA System, GPT-4.1 Mini
    
    You will be given two input fields: question and summary_1. Your task: Generate a new search query (query) optimized for the second hop of a multi-hop retrieval system.
    
    • The original user question is typically complex and requires information from multiple documents to answer.
    • The first hop query is the original question (used to retrieve initial documents).
    • Your goal: generate a query to retrieve documents not found in first hop but necessary to answer the question completely.
    
    Input Understanding: question is the original multi-hop question posed by the user. summary_1 is a concise summary of information from a document retrieved in the first hop, which partially addresses the question.
    
    Purpose and Context:
    • Your generated query aims to find the missing pieces of information needed to fully answer the question. …
    • The query must retrieve relevant documents NOT found in first hop … for final answer extraction.
    
    Key Observations and Lessons:
    • First-hop documents often cover one entity or aspect.
    • Remaining relevant documents often involve connected or higher-level concepts mentioned in summary_1 but not explicitly asked in the original question. The query should target these missing, but logically linked, documents.
    • Avoid merely paraphrasing the original question or restating known facts from summary_1.
    • Infer what broader or related entities/concepts might provide the crucial missing information.
    • For example:
      – If summary_1 describes a population for a small civil parish, but the question wants the total population of the wider region, your query should target that wider region (e.g., “Madeira archipelago population in 2011”).
      – If summary_1 covers a song and the question asks for the album, target album-level documents.
    
    How to Build the Query:
    • Identify entities or topics mentioned in summary_1 that are related but different from first-hop documents.
    • Reframe the query to explicitly mention these broader or related entities connected to the original question.
    • Include relevant key context from the question to maintain specificity, but shift focus to the missing piece.
    • The goal is to retrieve documents that link or complement what was retrieved initially.
    
    Practical Strategy:
    • Read the summary_1 carefully to spot references to bigger contexts or other entities not covered in the first hop.
    • Ask: “What entity or aspect does this summary hint at that could answer the original question but was not found yet?”
    • Formulate a precise, focused factual query targeting that entity or concept to retrieve the missing documents.
    
    Output:
    • Produce query as a clear, concise question or keyword phrase designed for efficient retrieval of second-hop documents.
    • Ensure the query relates logically to the original question while targeting the broader or complementary knowledge identified in summary_1. … Do not include the original question or simply rephrase it. Do not duplicate information already well-covered by the first hop retrieval …
    
    Interface text:
    CC
  143. 5:39

    And what does Japa learn? Unlike prior

  144. 5:42

    prompt optimizers somewhat which would

  145. 5:44

    uh uh use model idiosyncrasies like my

  146. 5:48

    grandmother will be really angry if you

  147. 5:50

    don't generate a good prompt. Here Jpa

  148. 5:53

    is actually giving a very detailed

  149. 5:55

    problem specification which includes how

  150. 5:57

    to make sense of the input. What is the

  151. 6:00

    purpose and context of this particular

  152. 6:02

    pip part of the pipeline? What are some

  153. 6:04

    key observations and lessons from the

  154. 6:06

    data? So the prompt we are seeing here

  155. 6:08

    is for the second hop of a multihop

  156. 6:11

    question answering system where given a

  157. 6:13

    question we need to retrieve some

  158. 6:15

    documents that could potentially answer

  159. 6:16

    that question. Look at those documents

  160. 6:18

    summarize it and then finally answer the

  161. 6:20

    question. And here what we see is Japa

  162. 6:22

    has found out that first hop documents

  163. 6:24

    that often cover one entity or aspect

  164. 6:28

    and the second hop should actually be uh

  165. 6:31

    recovering documents that are related to

  166. 6:32

    it. We have seen that human engineering

  167. 6:35

    teams whenever a new model comes out

  168. 6:37

    spend weeks of their time manually

  169. 6:40

    tweaking one word here and there trying

  170. 6:43

    to discover the problem specification.

  171. 6:45

    This entire process is fully automated

  172. 6:48

    now with Japa which takes about half an

  173. 6:50

    hour to 1 hour to run depending on your

  174. 6:53

    uh pipelines.

  175. GEPA on GPT-4.1-mini: Math

    On LiveBench Math, GEPA-optimized GPT-4.1-mini outperforms GPT-4.1. The accompanying prompt spells out answer formats and guidance for exact values, geometry and notation.

    Text in image
    GEPA on GPT-4.1-mini: Math
    
    LiveBench Math
    Y-axis ticks: 55%, 56%, 57%, 58%, 59%, 60%, 61%, 62%, 63%, 64%, 65%
    Legend: GPT-4.1-mini; GPT-4.1-mini GEPA; GPT-4.1
    
    You will be given a mathematical problem to solve. Your task is to provide a detailed, step-by-step solution that clearly explains your reasoning, including any substitutions, assumptions, known results, or algebraic manipulations. This reasoning should be thorough enough to validate correctness and allow easy parsing.
    
    Important domain-specific details and formatting rules you must strictly follow:
    
    1. Final Answer Formatting
    
    - If the question presents multiple-choice options labeled by letters (e.g., (A), (B), (C), etc.), and explicitly asks you to pick an answer letter, then after determining the correct choice, respond by writing that letter repeated exactly five times consecutively in a single string (e.g., "AAAAA" if the answer is A).
    - If the question asks for a numeric or symbolic expression to be enclosed in a box, present your exact final numeric or symbolic answer within LaTeX \(\boxed{}\) notation without decimal approximations. For example, write \(\boxed{42}\) or \(\boxed{\frac{1674}{7}}\).
    
    2. Exact Values and Fractions
    
    Whenever computing numeric quantities such as means, variances, or simplifying expressions, avoid decimal approximations. Use exact or fractional forms to maintain precision and ease of parsing.
    
    3. Geometry Problems Involving Tangent Circles
    
    - When the problem involves circles tangent to each other or to lines (such as Apollonius circle problems or Soddy circle problems), apply relevant theorems like the Descartes Circle Theorem (Soddy's formula) carefully, paying close attention to sign conventions and curvatures.
    
    4. Polynomial and Trigonometric Identities
    
    - Be prepared to recall or derive polynomial expansions or trigonometric identities, for example expansions of \(\tan(nx)\), binomial expansions involving complex numbers, or identities involving coefficients depending on parity to extract particular terms.
    
    5. Expression and Variable Consistency
    
    - Use consistent and clear notation, especially when dealing with coordinates (often homogenized coordinates for points in projective geometry), roots, factorization, or parametric forms.
    
    6. Solution Style
    
    - Do not enclose your solution reasoning inside any special tags; instead, present your reasoning plainly followed immediately by your final answer.
    - If unsure of the final numeric value, make a best-educated guess consistent with problem context, clearly marking the final answer according to formatting rules.
    
    Interface text: CC
  176. 6:56

    We can also apply Japa to leading

  177. 6:58

    proprietary models. Just for an example

  178. 7:01

    here we were able to optimize GPT 4.1

  179. 7:04

    minis performance to outperform GPT 4.1

  180. 7:08

    on a math task and we can see the kind

  181. 7:10

    of information distillation JPA has done

  182. 7:13

    in the prompt space itself. Coming back

  183. 7:16

    to the problem of sample efficiency, AMD

  184. 7:19

    developed a new hardware accelerator

  185. 7:21

    called NPU XDNA2 which had used a

  186. 7:24

    completely new API to program which had

  187. 7:27

    almost zero available information over

  188. 7:29

    on the internet and because of this uh

  189. 7:32

    the leading models at the time which was

  190. 7:34

    GPT4 was failing miserably to perform

  191. 7:37

    this task. We are able to take an

  192. 7:39

    existing agent which was getting 4.25%

  193. 7:41

    25% on this task and apply Japa without

  194. 7:45

    any other change to the agent itself and

  195. 7:47

    we got this prompt and pushed this

  196. 7:49

    performance 7x to 30.52%.

  197. 7:53

    So what this is uh what this goes to say

  198. 7:55

    is there can be lots of domain specific

  199. 7:57

    information which if you include in your

  200. 8:00

    AI systems prompts the models could

  201. 8:02

    actually perform much better and JPA can

  202. 8:04

    help you fully automatically discover

  203. 8:07

    that. I want to highlight the sentence

  204. 8:09

    saying avoid including ADF.h H. Now the

  205. 8:11

    interesting thing is AMD actually ships

  206. 8:13

    a library called ADF.h for programming

  207. 8:15

    NPUs but that did not work with this

  208. 8:18

    latest uh generation of hardware that we

  209. 8:21

    were working with and Jeppo was able to

  210. 8:22

    discover that in just one step. So how

  211. 8:26

    does it work? It's an extremely simple

  212. 8:28

    algorithm which simply takes your AI

  213. 8:30

    pipeline written in any agentic

  214. 8:32

    framework or even raw LLM calls that you

  215. 8:34

    may have. It simply runs your systems on

  216. 8:37

    a few examples and collects domain

  217. 8:39

    specific feedback. whatever information

  218. 8:41

    your environment contains is observed.

  219. 8:44

    Second, it runs reflection with an LLM

  220. 8:46

    or agent that reads the feedback and

  221. 8:49

    proposes a better prompt. Finally, and

  222. 8:51

    most importantly, it keeps a parto pool

  223. 8:54

    where it keeps every single candidate

  224. 8:56

    that wins on even one training example

  225. 8:59

    and not just the top scorer. The

  226. 9:01

    question is, but why keep a parto pool?

  227. 9:04

    And we kept getting asked this question

  228. 9:06

    a lot that is Jepper really better than

  229. 9:09

    running the model in a loop. So we went

  230. 9:11

    and tested it out and what happens is a

  231. 9:13

    loop keeps only the best and gets stuck

  232. 9:16

    in a local optima. So on the left hand

  233. 9:18

    side you see a search tree that was

  234. 9:20

    generated by using an LLM in a loop

  235. 9:23

    starting from a seed prompt at the top

  236. 9:25

    left where um we asked the LLM to

  237. 9:28

    improve the prompt. It improved the

  238. 9:30

    prompt and it generated a prompt that

  239. 9:32

    gave us the middle node. However, this

  240. 9:34

    prompt got stuck in a local optima and

  241. 9:36

    once again when we asked the LLM to try

  242. 9:39

    and improve it, it proposed something

  243. 9:40

    but that was not actually better. So, it

  244. 9:42

    went back and it again tried to improve

  245. 9:44

    it and it kept doing this and it

  246. 9:46

    exhausted all of the search budget. On

  247. 9:48

    the other hand, with Japa's parto based

  248. 9:50

    candidate selection strategy on the

  249. 9:51

    right, we can see that it maintains a

  250. 9:53

    much more balanced search process

  251. 9:56

    eventually converging to a much higher

  252. 9:58

    score. Across four benchmarks, we saw

  253. 10:00

    that more than half of the gains seen

  254. 10:03

    with Japa actually account for this and

  255. 10:05

    it gets almost twice the performance

  256. 10:07

    gains that you would get with just

  257. 10:09

    applying the model in a loop.

  258. 10:11

    Japa can perform really well across

  259. 10:13

    diverse benchmarks. Here we see results

  260. 10:15

    on question answering, instruction

  261. 10:17

    following, claim verification as well as

  262. 10:19

    math which all the leading frontier

  263. 10:21

    model companies are already optimizing

  264. 10:23

    their models a lot for and we are still

  265. 10:25

    able to get plus 10% just by optimizing

  266. 10:28

    the prompt on it. So we have so far seen

  267. 10:32

    Japa only optimizing the prompts but

  268. 10:34

    Japa goes far beyond prompts. And

  269. 10:36

    because prompts are just text artifacts

  270. 10:38

    that determine AI system behavior, the

  271. 10:41

    same algorithm can improve anything that

  272. 10:43

    you can express as a piece of text and

  273. 10:46

    you can score. For example, your entire

  274. 10:49

    agent harness is eventually just a

  275. 10:50

    Python or a JavaScript file and we can

  276. 10:53

    apply the same kind of reflective

  277. 10:55

    optimization process to that entire file

  278. 10:57

    and we can work with it. So if you can

  279. 11:00

    write it as text and score it, JPA can

  280. 11:02

    optimize it. So with that insight in

  281. 11:05

    mind, we propose optimize anything which

  282. 11:07

    is a universal API for optimizing any

  283. 11:10

    text parameter given any domain like

  284. 11:14

    code optimization where let's say you

  285. 11:15

    want to optimize the CUDA kernel code.

  286. 11:17

    The input is just that CUDA kernel code

  287. 11:20

    where an evaluator looks at this piece

  288. 11:22

    of code, maybe compiles it, profiles it,

  289. 11:25

    generates a bunch of related information

  290. 11:27

    that we call as actionable side

  291. 11:28

    information which is then provided to an

  292. 11:31

    LLM which proposes an better candidate

  293. 11:34

    maintaining this parto and it keeps the

  294. 11:36

    uh repeating this process um till we get

  295. 11:39

    convergence. The same thing can be

  296. 11:41

    applied to numeric optimization where

  297. 11:42

    your numbers can actually be serialized

  298. 11:44

    as text or harness optimization where an

  299. 11:46

    entire harness can be serialized as text

  300. 11:49

    or even cloud scheduling policy

  301. 11:51

    optimization where the scheduling policy

  302. 11:53

    or heristic algorithm can be expressed

  303. 11:55

    as a piece of text and the evaluator can

  304. 11:58

    be something like the negative of cost

  305. 11:59

    or some function measuring accuracy uh

  306. 12:02

    efficiency and the actionable side

  307. 12:04

    information can be something like job

  308. 12:05

    traces SLA violations and so on.

  309. 12:09

    The API is dead simple to use. All it

  310. 12:12

    requires is you give us the set of

  311. 12:14

    problems that you care to be solved

  312. 12:16

    along with an evaluator function or a

  313. 12:18

    fitness function that returns a score

  314. 12:20

    along with any available domain specific

  315. 12:23

    side information. If your domain

  316. 12:25

    produces expert feedback, return that.

  317. 12:27

    If your domain produces compiler error

  318. 12:29

    messages, profiler messages, tool call

  319. 12:31

    error messages, return that. If you have

  320. 12:33

    maybe a written up documentation, return

  321. 12:36

    that. any kind of it's a very open-ended

  322. 12:38

    dictionary. You can return literally

  323. 12:40

    anything and all you do is you call

  324. 12:42

    optimize anything with this fitness

  325. 12:44

    function and the set of problems that

  326. 12:46

    you have and optimize anything will sort

  327. 12:48

    of take care of it um and give you a

  328. 12:51

    optimized solution. Let's see some

  329. 12:52

    applications. Let's say you were tasked

  330. 12:55

    with generating a 3D unicorn. This is

  331. 12:58

    all the code that you would write or

  332. 13:00

    your agent can now write it because we

  333. 13:02

    have seen that optimize anything is a

  334. 13:04

    very easy to use API for leading agents

  335. 13:06

    like plot code. So all you do is write

  336. 13:09

    this code which says optimize a Python

  337. 13:11

    program to generate a 3D unicorn. Um and

  338. 13:14

    the candidate is a Python script that

  339. 13:15

    produces a PNG rendering whatever and

  340. 13:19

    here is the result. On the left hand

  341. 13:20

    side we can see claude opus 4.6. If you

  342. 13:23

    gave it this task, this is what it

  343. 13:25

    generated. And on the right hand side,

  344. 13:27

    what what we the unicorn that we get

  345. 13:29

    with optimize anything. This just for

  346. 13:32

    fun. But let's say you were tasked with

  347. 13:35

    writing an agent to solve a specific

  348. 13:38

    task. Typically teams spend lots and

  349. 13:41

    lots of time tweaking their agents,

  350. 13:42

    building tools for it, writing tool

  351. 13:44

    descriptions, uh carefully orchestrating

  352. 13:47

    the control flow and so on. Here we

  353. 13:49

    started with a simple four-line Python

  354. 13:51

    program that was simply calling a

  355. 13:53

    model's uh chain of thought to solve an

  356. 13:56

    RKGI problem. Within just 16 rounds of

  357. 13:59

    reflection, JEPA within optimize

  358. 14:01

    anything was able to find this

  359. 14:04

    sophisticated sixstep agent that took

  360. 14:07

    RKGI accuracy on RKGI uh that took RKGI

  361. 14:10

    accuracy of Gemini flash from 32.5% to

  362. 14:15

    89.5%. And we can see that this agent is

  363. 14:18

    automatic like by itself doing rule

  364. 14:20

    hypothesis induction code synthesis. It

  365. 14:22

    executes and traces the code

  366. 14:24

    automatically debugs this code goes back

  367. 14:26

    and proposes new versions of that code.

  368. 14:28

    And finally it runs it on the actual

  369. 14:31

    test inputs and returns the output. This

  370. 14:33

    is a runnable example. You can go to

  371. 14:35

    this QR code and you can run this

  372. 14:36

    example right now.

  373. 14:40

    So um applying the same uh uh like

  374. 14:43

    approach of discovering agent harnesses

  375. 14:46

    to math 500 we are able to push its

  376. 14:48

    accuracy of GPT 4.1 nano by 20% by

  377. 14:52

    simply creating a two-step agent and

  378. 14:54

    again I want to emphasize that all we

  379. 14:56

    did is we asked optimize anything to

  380. 14:59

    optimize an agent file and it was

  381. 15:01

    automatically discovering the

  382. 15:03

    sophisticated agent architecture and we

  383. 15:04

    did not have to do anything other than

  384. 15:06

    specifying the objective and the task.

  385. 15:10

    Finally, every single one of us is using

  386. 15:12

    uh some coding agent like cloud code or

  387. 15:15

    codex or maybe your favorite agent and

  388. 15:18

    agent skills has become a very leading

  389. 15:20

    part of the ecosystem where almost all

  390. 15:22

    coding agents understand skills. Let's

  391. 15:24

    say you want to optimize skills for your

  392. 15:27

    specific repository. This is the code

  393. 15:29

    that you write which says learn a skill

  394. 15:31

    from the trajectory. When the coding

  395. 15:33

    agent is presented with similar problem,

  396. 15:35

    the skill should be helpful. We just

  397. 15:37

    gave it this natural language behavior.

  398. 15:39

    And what we see is we started with

  399. 15:41

    minisu agent with GPT5 mini because we

  400. 15:44

    were very budget constrainted and we

  401. 15:46

    were able to take its performance from

  402. 15:48

    24% to 93%. An almost 3x jump on go

  403. 15:53

    repository issue resolution but more

  404. 15:56

    importantly the skills that were

  405. 15:57

    optimized very cheaply on a GPT5 mini

  406. 16:00

    agent we are able to take that and apply

  407. 16:02

    to the latest claude sonnet. This was

  408. 16:04

    done of uh about a few months back but

  409. 16:06

    we applied it to clots onet 4.5 pushing

  410. 16:09

    its accuracy to 100% issue resolution

  411. 16:12

    while more importantly cutting down the

  412. 16:14

    execution time or issue resolution time

  413. 16:17

    by almost 50%. We cut it down into half

  414. 16:20

    which also means it spent less tokens

  415. 16:22

    because skills contain information about

  416. 16:25

    how the repository is organized, how to

  417. 16:27

    invoke the test cases, where a

  418. 16:29

    particular feature is implemented, um

  419. 16:32

    what are the build system used by this

  420. 16:33

    repository and so on. This is a a

  421. 16:37

    feature called GSkill. You can find it

  422. 16:39

    in the JPA repository and it's fully

  423. 16:40

    open source as well. So, optimize

  424. 16:43

    anything is a single uh interface that

  425. 16:45

    provides three optimization modes. If

  426. 16:47

    you have just a single problem like

  427. 16:48

    there is a single matrix multiplication

  428. 16:50

    kernel that you want to optimize you can

  429. 16:52

    use it that way. If you have any number

  430. 16:54

    of related problems like you want to

  431. 16:55

    optimize a matrix multiplication kernel

  432. 16:57

    along with a dot product kernel and you

  433. 16:59

    know there might be some information

  434. 17:00

    transfer between these two you can use

  435. 17:02

    what we call as the multitask search

  436. 17:04

    mode and finally build a skill which is

  437. 17:07

    if you want to optimize on a set number

  438. 17:09

    of problems but your uh deployment can

  439. 17:12

    actually come up with many new problems.

  440. 17:14

    So like uh in case of math op like in

  441. 17:16

    case of math prompt optimization we are

  442. 17:19

    training on some examples but when we

  443. 17:21

    deploy it we can receive a completely

  444. 17:22

    new kind of query. So we care about

  445. 17:24

    generalization mode. So there you can do

  446. 17:26

    prompt optimization agent architecture

  447. 17:28

    optimization and so on.

  448. 17:30

    So optimize anything is can be used for

  449. 17:34

    a broad set of domains including cloud

  450. 17:36

    scheduling policy optimization where we

  451. 17:38

    were able to cut costs by almost 40%

  452. 17:41

    compared to expert huristics write

  453. 17:44

    custom solvers to match and exceed

  454. 17:45

    Optina even in blackbox mathematical

  455. 17:47

    optimization create agent skills prompt

  456. 17:50

    optimization and so on. It is so easy to

  457. 17:53

    use that within just 20 hours of

  458. 17:55

    releasing it, people at Snorkel had

  459. 17:58

    already improved some of their internal

  460. 17:59

    benchmarks with it and were tweeting

  461. 18:01

    about it. So, and Japa also improves

  462. 18:04

    multimodel VLM models performance. Here

  463. 18:06

    we are able to cut OCR error rates for

  464. 18:09

    leading models by almost 35%. And this

  465. 18:12

    is an externally validated report. Um,

  466. 18:14

    similar similarly, data bricks actually

  467. 18:17

    achieved 90x cost reduction in their

  468. 18:20

    deployed agents performance. uh uh

  469. 18:22

    performance and here they were able to

  470. 18:24

    tune GPT OSS 120B to outperform Claude

  471. 18:28

    Opus while being 90x cheaper. More

  472. 18:31

    importantly, the performance delta

  473. 18:32

    improvement that you see on top of

  474. 18:34

    Claude Opus is actually bigger than the

  475. 18:36

    one you see on open source models. Some

  476. 18:39

    people have asked me that oh as models

  477. 18:41

    get better the importance of prompt

  478. 18:42

    optimization will go down. I argue the

  479. 18:45

    opposite which is as models get better

  480. 18:48

    they will get better at instruction

  481. 18:49

    following and the more precise

  482. 18:51

    instruction about your task that you

  483. 18:53

    have to give to a very smart model the

  484. 18:55

    better that model will be at a uh

  485. 18:58

    solving your task and this is exactly

  486. 18:59

    what we see happening here the better

  487. 19:01

    the instruction was claopus actually

  488. 19:03

    jumped much uh higher

  489. 19:07

    some people have this question of uh

  490. 19:09

    what if we have subjective tasks which

  491. 19:11

    are very hard to evaluate jpa can

  492. 19:13

    actually learn evals for your task from

  493. 19:15

    production traces. The way to do that is

  494. 19:18

    you collect a bunch of production traces

  495. 19:20

    from your agent. Get a human to annotate

  496. 19:22

    just about 50 of those trajectories

  497. 19:25

    giving very detailed feedback. This is a

  498. 19:26

    long response. This is a short response.

  499. 19:28

    This is a good response. This uses this

  500. 19:30

    terminology, whatever. And once you get

  501. 19:33

    those human annotations, you can use JPA

  502. 19:35

    to optimize an LLM as a judge prompt.

  503. 19:37

    And you can use that LLM as a judge

  504. 19:39

    prompt then to go back and optimize your

  505. 19:41

    agent and deploy that agent. And this

  506. 19:43

    becomes a data flywheel where you can

  507. 19:45

    keep improving it. And this is a

  508. 19:47

    successful paradigm that uh some leading

  509. 19:49

    teams in production are already using.

  510. 19:51

    Then the question we get asked is like

  511. 19:53

    can we actually use this uh reflective

  512. 19:56

    optimization to train models and we

  513. 19:58

    recently had this paper called learning

  514. 20:00

    fast and slow where we propose fast slow

  515. 20:03

    learning where we can co-optimize model

  516. 20:05

    weights and prompt harnesses and this

  517. 20:07

    shows some very strong properties that

  518. 20:09

    one would want in a continual learning

  519. 20:11

    algorithm. Um I don't have much time to

  520. 20:13

    go over details but please uh look at

  521. 20:15

    the uh papers and

  522. 20:19

    uh since uh since release Japa has been

  523. 20:22

    used in production by these companies as

  524. 20:24

    well as the main methodology in these

  525. 20:26

    papers and here the CEO of Dropbox and

  526. 20:29

    Shopify are talking about their use of

  527. 20:31

    Japa and OpenAI also wrote a blog post

  528. 20:33

    about how you can build self-improving

  529. 20:36

    AI systems with Japa. Um so it's very

  530. 20:39

    simple to get started. It can plug into

  531. 20:41

    any framework, any model and it has

  532. 20:44

    absolutely zero hard dependencies. So

  533. 20:46

    you can deploy it any in any kind of

  534. 20:48

    setting. So um don't be afraid to

  535. 20:51

    optimize in the tech space and many

  536. 20:54

    problems can be framed as optimization.

  537. 20:55

    So bring actionable side information and

  538. 20:58

    surface as much domain specific

  539. 21:00

    information as you can to optimizers and

  540. 21:02

    the optimizers of future will be able to

  541. 21:04

    work with them. So please go and check

  542. 21:07

    it out. Thank you very much.