System Prompt Learning for Coding Agents Using LLM-as-Judge Evaluation

arize · Tech · 2025 · source Agentic: yes · promotional bias: med · source-backed · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Coding-agent optimization and evaluation

Arize needed a practical way to improve coding agents such as Claude and Cline through system prompts without the cost, sample hunger, and operational complexity of reinforcement learning or fine-tuning.

Constraints:

Architecture

Arize built an iterative system-prompt-learning loop: a coding agent solves benchmark issues with its current rules, execution results are evaluated by an LLM-as-judge prompt, the judge emits English-language failure feedback, and a meta-prompt turns that feedback into improved system prompt rules for the next iteration.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  system_prompt_rules["System prompt rules"] --> coding_agent["Coding agent"]
  coding_agent --> execution_harness["Execution harness"]
  execution_harness --> llm_as_judge_evaluator["LLM-as-judge evaluator"]
  llm_as_judge_evaluator --> meta_prompt_rule_generator["Meta-prompt rule generator"]
  meta_prompt_rule_generator --> system_prompt_rules
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Coding agent Claude or Cline instance that attempts benchmark software engineering tasks with current system prompt rules. Execution harness, System prompt rules
System prompt rules Mutable instruction layer appended to the base coding-agent prompt. Coding agent, Meta-prompt rule generator
Execution harness Runs agent outputs against benchmark tests and captures failure signals. Coding agent, LLM-as-judge evaluator
LLM-as-judge evaluator Evaluates the problem, solution, tests, and execution results and emits failure explanations. Execution harness, Meta-prompt rule generator
Meta-prompt rule generator Turns judge feedback into proposed English-language system prompt rules. LLM-as-judge evaluator, System prompt rules

Data flow

Claude or Cline receives a software engineering problem and current rules. The generated solution is executed against tests, the problem and execution results go to an LLM-as-judge evaluator, and the evaluator's explanatory feedback is fed into a meta-prompt that proposes updated prompt rules.

4 supporting quotes
“Arize's solution involved an iterative process using LLM-as-judge evaluations to generate English-language feedback on agent failures”summary, stated
“which was then fed into a meta-prompt to automatically generate improved system prompt rules.”summary, stated
“Stage 1: Code Generation - The coding agent (Claude or Cline) receives a software engineering problem along with its current system prompt.”summary, stated
“The eval prompt is engineered to output not just a pass/fail judgment but detailed explanations of failure modes.”summary, stated

Why this architecture

The loop uses language feedback because prompt changes are cheap while RL and fine-tuning require much more data, infrastructure, and iteration cost.

3 supporting quotes
“traditional reinforcement learning approaches are sample-inefficient and resource-intensive.”summary, stated
“By positioning system prompt learning as an alternative that works with small datasets and doesn't require fine-tuning infrastructure”summary, stated
“writing really good evals is how you get the best kind of insight into what you could do to improve your agents.”summary, stated

Models used: Claude · Cline · LLM-as-judge · Meta-prompted LLM

Scale

Alternatives considered (roads not taken)

Reinforcement learning

Rejected because: It was framed as time intensive, data hungry, and requiring more specialized team support.

“traditional approaches are "time intensive," "data hungry," and require "a whole data science team."”summary, stated

Model fine-tuning

Rejected because: System prompt learning avoided fine-tuning infrastructure while still improving coding-agent performance.

“improve the performance of production coding agents (Claude and Cline) without model fine-tuning.”summary, stated

DSPy's MIPRO optimizer

Rejected because: The summary notes the comparison but also flags missing quantitative cost and iteration details.

“The comparison would be more compelling with concrete numbers.”summary, stated

Patterns

eval-driven-development (quality)

LLM-as-judge explanations drove each system prompt update for coding agents.

“Arize's solution involved an iterative process using LLM-as-judge evaluations to generate English-language feedback on agent failures, which was then fed into a meta-prompt to automatically generate improved system prompt rules.”summary, stated

context-engineering (prompt and instruction management)

The system improved agent behavior by iteratively editing the instruction context supplied through Claude and Cline rule files.

“Both agents support customizable rules or configuration files (Claude uses .claude.md files, Cline uses rules files) that can be appended to base system prompts.”summary, stated

Tradeoffs

Optimize system prompts instead of model weights.

Chose System prompt learning over RL or fine-tuning.

Rationale: It worked with small datasets and avoided heavier model-training infrastructure.

“well-engineered evaluation prompts can efficiently optimize agent performance with minimal training data compared to approaches like DSPy's MIPRO optimizer.”summary, stated

Generate English-language rules from judge feedback.

Chose Meta-prompted rule generation over Manual-only prompt editing.

Rationale: The loop could convert repeated failure modes into reusable prompt rules.

“The explanations generated by the LLM-as-judge categorize errors (parsing errors, library-specific issues, edge case handling, etc.) and provide actionable insights.”summary, stated

Gotchas (what bit them)

Scalar pass/fail rewards are too opaque for prompt improvement.

Root cause: The agent receives little information about why an attempt failed.

Resolution: Use an LLM-as-judge evaluator that emits detailed failure explanations.

“In the RL paradigm, an agent receives only scalar rewards (like test scores) and must blindly iterate to improve performance.”summary, stated

Evaluation prompt quality becomes a dependency of the optimization loop.

Root cause: The learning signal is only as useful as the judge prompt's failure explanations.

Resolution: Invest in eval prompt engineering as a core competency.

“The speaker emphasizes that "eval prompt engineering is a whole kind of concept" that Arize spends significant time on”summary, stated

Evaluation

Arize evaluated the prompt-learning loop on SWEBench with Claude and Cline, comparing issue-resolution improvements after applying generated rules.

Metrics: 150 SWEBench training examples. · 5% Claude improvement. · 15% Cline improvement. · Failure categories from LLM-as-judge explanations.

“Testing on the SWEBench benchmark with just 150 examples, they achieved a 5% improvement in GitHub issue resolution for Claude and 15% for Cline”summary, stated
“The explanations generated by the LLM-as-judge categorize errors (parsing errors, library-specific issues, edge case handling, etc.)”summary, stated

Outcomes

The benchmark used 150 training examples; the summary explicitly notes uncertainty about scaling to larger datasets and more diverse failure modes.

“Testing on the SWEBench benchmark with just 150 examples, they achieved a 5% improvement in GitHub issue resolution for Claude and 15% for Cline”summary, stated
“It's unclear how performance scales with larger datasets, more complex domains, or agents with more diverse failure modes.”summary, stated