AI 에이전트 evals 탈신비화 — 감으로 비행하지 않기 위한 측정 설계
에이전트를 유용하게 만드는 자율성·지능·유연성이 곧 평가를 어렵게 만든다. task·trial·grader·transcript·outcome의 어휘 정리부터 코딩·대화·리서치·컴퓨터 사용 에이전트별 채점 기법, pass@k·pass^k까지 잇는 실전 로드맵. 실패 사례 20~50개로 일찍 시작하고·경로가 아니라 결과를 채점하고·점수를 액면 그대로 믿지 말고 transcript를 직접 읽으라는 Anthropic의 현장 교훈.
Demystifying evals for AI agents
생각 덩어리
유용함의 원천이 곧 평가의 난점
The capabilities that make agents useful also make them difficult to evaluate.
Without them, it’s easy to get stuck in reactive loops—catching issues only in production, where fixing one failure creates others. Evals make problems and behavioral changes visible before they affect users, and their value compounds over the lifecycle of an agent.
평가의 해부 — transcript는 말, outcome은 상태
An evaluation (“eval”) is a test for an AI system: give an AI an input, then apply grading logic to its output to measure success.
The outcome is the final state in the environment at the end of the trial. A flight-booking agent might say “Your flight has been booked” at the end of the transcript, but the outcome is whether a reservation exists in the environment’s SQL database.
When we evaluate “an agent,” we’re evaluating the harness and the model working together.
정적 eval의 한계를 모델이 먼저 넘어버린 사례:
Frontier models can also find creative solutions that surpass the limits of static evals. For instance, Opus 4.5 solved a 𝜏2-bench problem about booking a flight by discovering a loophole in the policy. It “failed” the evaluation as written, but actually came up with a better solution for the user.
evals 없는 개발 — '느낌상 나빠졌다'와 감으로 비행
The breaking point often comes when users report the agent feels worse after changes, and the team is “flying blind” with no way to verify except to guess and check. Absent evals, debugging is reactive: wait for complaints, reproduce manually, fix the bug, and hope nothing else regressed.
Two engineers reading the same initial spec could come away with different interpretations on how the AI should handle edge cases. An eval suite resolves this ambiguity.
When more powerful models come out, teams without evals face weeks of testing while competitors with evals can quickly determine the model’s strengths, tune their prompts, and upgrade in days.
Their compounding value is easy to miss given that costs are visible upfront while benefits accumulate later.
Descript’s agent helps users edit videos, so they built evals around three dimensions of a successful editing workflow: don’t break things, do what I asked, and do it well.
grader 세 유형 — code·model·human의 조합
Agent evaluations typically combine three types of graders: code-based, model-based, and human. Each grader evaluates some portion of either the transcript or the outcome. An essential component of effective evaluation design is to choose the right graders for the job.
For each task, scoring can be weighted (combined grader scores must hit a threshold), binary (all graders must pass), or a hybrid.
(원문 표 요약 — 모델 기반 grader: rubric 채점·natural language assertion·pairwise 비교·multi-judge consensus 등. 유연하고 확장 가능하며 뉘앙스를 잡지만, 비결정적이고 인간 채점과의 보정이 필요. 인간 grader: SME 리뷰·spot-check·A/B 테스트 등. gold standard 품질이지만 비싸고 느리다.)
Capability vs Regression — 오를 언덕과 졸업
Capability or “quality” evals ask, “What can this agent do well?” They should start at a low pass rate, targeting tasks the agent struggles with and giving teams a hill to climb.
Regression evals ask, “Does the agent still handle all the tasks it used to?” and should have a nearly 100% pass rate. They protect against backsliding, as a decline in score signals that something is broken and needs to be improved.
After an agent is launched and optimized, capability evals with high pass rates can “graduate” to become a regression suite that is run continuously to catch any drift. Tasks that once measured “Can we do this at all?” then measure “Can we still do this reliably?”
코딩 에이전트 — 테스트 통과가 곧 채점
Deterministic graders are natural for coding agents because software is generally straightforward to evaluate: does the code run and do the tests pass?
SWE-bench Verified gives agents GitHub issues from popular Python repositories and grades solutions by running the test suite; a solution passes only if it fixes the failing tests without breaking existing ones. LLMs have progressed from 40% to >80% on this eval in just one year.
Terminal-Bench takes a different track: it tests end-to-end technical tasks, such as building a Linux kernel from source or training an ML model.
Once you have a set of pass-or-fail tests for validating the key outcomes of a coding task, it’s often useful to also grade the transcript.
대화형 에이전트 — 상호작용의 질 자체가 평가 대상
conversational agents present a distinct challenge: the quality of the interaction itself is part of what you're evaluating.
Unlike most other evals, they often require a second LLM to simulate the user. We use this approach in our alignment auditing agents to stress-test models through extended, adversarial conversations.
Success for conversational agents can be multidimensional: is the ticket resolved (state check), did it finish in <10 turns (transcript constraint), and was the tone appropriate (LLM rubric)?
conversational agent evaluations typically use model-based graders to assess both communication quality and goal completion, because many tasks—like answering a question—may have multiple “correct” solutions.
리서치 에이전트 — '정답'이 맥락에 의존한다
Unlike coding agents where unit tests provide binary pass/fail signals, research quality can only be judged relative to the task. What counts as “comprehensive,” “well-sourced,” or even “correct” depends on context: a market scan, due diligence for an acquisition, and a scientific report each require different standards.
Research evals face unique challenges: experts may disagree on whether a synthesis is comprehensive, ground truth shifts as reference content changes constantly, and longer, more open-ended outputs create more room for mistakes.
Groundedness checks verify that claims are supported by retrieved sources, coverage checks define key facts a good answer must include, and source quality checks confirm the consulted sources are authoritative, rather than simply the first retrieved.
Given the subjective nature of research quality, LLM-based rubrics should be frequently calibrated against expert human judgment to grade these agents effectively.
컴퓨터 사용 에이전트 — 확인 페이지가 아니라 백엔드 상태
Computer use agents interact with software through the same interface as humans—screenshots, mouse clicks, keyboard inputs, and scrolling—rather than through APIs or code execution.
WebArena tests browser-based tasks, using URL and page state checks to verify the agent navigated correctly, along with backend state verification for tasks that modify data (confirming an order was actually placed, not just that the confirmation page appeared).
DOM-based interactions execute quickly but consume many tokens, while screenshot-based interactions are slower but more token-efficient. For example, when asking Claude to summarize Wikipedia, it is more efficient to extract the text from the DOM. When finding a new laptop case on Amazon, it is more efficient to take screenshots (as extracting the entire DOM is token-intensive).
In our Claude for Chrome product, we developed evals to check that the agent was selecting the right tool for each context.
pass@k와 pass^k — 비결정론을 읽는 두 지표
pass@k measures the likelihood that an agent gets at least one correct solution in k attempts. As k increases, pass@k score rises: more “shots on goal” means higher odds of at least 1 success.
pass^k measures the probability that all k trials succeed. As k increases, pass^k falls since demanding consistency across more trials is a harder bar to clear. If your agent has a 75% per-trial success rate and you run 3 trials, the probability of passing all three is (0.75)³ ≈ 42%. This metric especially matters for customer-facing agents where users expect reliable behavior every time.
Both metrics are useful, and which to use depends on product requirements: pass@k for tools where one success matters, pass^k for agents where consistency is essential.
시작은 실패 사례 20~50개 — 기다릴수록 비싸진다
We see teams delay building evals because they think they need hundreds of tasks. In reality, 20-50 simple tasks drawn from real failures is a great start.
Evals get harder to build the longer you wait. Early on, product requirements naturally translate into test cases. Wait too long and you're reverse-engineering success criteria from a live system.
A good task is one where two domain experts would independently reach the same pass/fail verdict. Could they pass the task themselves? If not, the task needs refinement. Ambiguity in task specifications becomes noise in metrics.
With frontier models, a 0% pass rate across many trials (i.e. 0% pass@100) is most often a signal of a broken task, not an incapable agent, and a sign to double-check your task specification and graders.
For each task, it’s useful to create a reference solution: a known working output that passes all graders. This proves that the task is solvable and verifies graders are correctly configured.
양방향 문제 세트 — 한쪽만 재면 한쪽으로 휜다
Test both the cases where a behavior should occur and where it shouldn't. One-sided evals create one-sided optimization. For instance, if you only test whether the agent searches when it should, you might end up with an agent that searches for almost everything.
The team built evals covering both directions: queries where the model should search (like finding the weather) and queries where it should answer from existing knowledge (like “who founded Apple?”).
Striking the right balance between undertriggering (not searching when it should) or overtriggering (searching when it shouldn’t) was difficult, and took many rounds of refinements to both the prompts and the eval.
격리된 trial, 경로가 아닌 결과 채점
It’s essential that the agent in the eval functions roughly the same as the agent used in production, and that the environment itself doesn’t introduce further noise. Each trial should be “isolated” by starting from a clean environment.
in some internal evals we observed Claude gaining an unfair advantage on some tasks by examining the git history from previous trials.
There is a common instinct to check that agents followed very specific steps like a sequence of tool calls in the right order. We’ve found this approach too rigid and results in overly brittle tests, as agents regularly find valid approaches that eval designers didn’t anticipate. So as not to unnecessarily punish creativity, it’s often better to grade what the agent produced, not the path it took.
For tasks with multiple components, build in partial credit. A support agent that correctly identifies the problem and verifies the customer but fails to process a refund is meaningfully better than one that fails immediately.
We recommend choosing deterministic graders where possible, LLM graders where necessary or for additional flexibility, and using human graders judiciously for additional validation.
LLM judge에는 출구를 줘라: To avoid hallucinations, give the LLM a way out, like providing an instruction to return “Unknown” when it doesn’t have enough information.
점수를 액면 그대로 믿지 마라 — CORE-Bench 42%→95%
Opus 4.5 initially scored 42% on CORE-Bench, until an Anthropic researcher found multiple issues: rigid grading that penalized “96.12” when expecting “96.124991…”, ambiguous task specs, and stochastic tasks that were impossible to reproduce exactly. After fixing bugs and using a less constrained scaffold, Opus 4.5’s score jumped to 95%.
METR discovered several misconfigured tasks in their time horizon benchmark that asked agents to optimize to a stated score threshold, but the grading required exceeding that threshold. This penalized models like Claude for following the instructions, while models that ignored the stated goal received better scores.
An eval at 100% tracks regressions but provides no signal for improvement. Eval saturation occurs when an agent passes all of the solvable tasks, leaving no room for improvement.
As a rule, we do not take eval scores at face value until someone digs into the details of the eval and reads some transcripts.
포화의 역효과 사례: the code review startup Qodo was initially unimpressed by Opus 4.5 because their one-shot coding evals didn’t capture the gains on longer, more complex tasks. In response, they developed a new agentic eval framework, providing a much clearer picture of progress.
치팅 방어도 설계의 일부: Make your graders resistant to bypasses or hacks. The agent shouldn’t be able to easily “cheat” the eval.
Transcript를 읽어라 — eval-driven development의 복리
You won't know if your graders are working well unless you read the transcripts and grades from many trials.
Failures should seem fair: it’s clear what the agent got wrong and why. When scores don’t climb, we need confidence that it’s due to agent performance and not the eval.
Internally, we often build features that work “well enough” today but are bets on what models can do in a few months. Capability evals that start at a low pass rate make this visible. When a new model drops, running the suite quickly reveals which bets paid off.
Teams that invest early find the opposite: development accelerates as failures become test cases, test cases prevent regressions, and metrics replace guesswork.
With current model capabilities, product managers, customer success managers, or salespeople can use Claude Code to contribute an eval task as a PR—let them! Or, even better, actively enable them.
The most effective teams combine these methods: automated evals for fast iteration, production monitoring for ground truth, and periodic human review for calibration.
(원본 후반부 논의 — 자동 eval은 전체 그림의 일부일 뿐이다. 프로덕션 모니터링·A/B 테스트·사용자 피드백·수동 transcript 리뷰·체계적 휴먼 평가가 각각 개발 단계별로 다른 빈틈을 메운다. 부록에서는 Harbor·Braintrust·LangSmith·Langfuse·Arize Phoenix 등 eval 프레임워크를 소개하되, 프레임워크는 그 위에 돌리는 task의 품질만큼만 유용하니 빨리 하나 골라 정착하고 에너지는 task와 grader 자체에 쏟으라고 맺는다. 마지막 당부는 한 줄 — Read the transcripts!)