
Latest
Everything published, newest first.
The log
Entries 61–80 of 167 · by original publication date
Join Batch Eval Results by custom_id, Never by Line Number
Scoring 5,000 eval items through OpenAI's Batch API costs less than sending them one at a time. The guide lists a 50% discount against the synchronous APIs…Quick thoughtopenaibatch-processingMeasure Agent Latency: Time to First Token, Decode and the p95 Tail
Measured on small open models you can run on Colab: prefill that grows with the prompt, decode at a fixed cost per token, a prefix cache 22 times faster, and a queue that explodes near capacity.12 min readlatencyinference-costDid Model A Really Beat Model B? Eval Variance, Measured
Measured on 100 AIME problems, ten runs each: single runs of GPT-6 Luna scored anywhere from 88% to 98%. Derive task-level errors, pass@k and pass^k, and paired intervals, then play with them.11 min readagent evaluation varianceevaluation-statisticsUpdatedPut the Rubric First, Then Measure Your Prompt-Cache Hits
Grading 2,000 eval items with the same rubric and the same few-shot examples means sending the same long prefix 2,000 times.Quick thoughtopenaiprompt-cachingBound an Agent's Repair Loop by Attempts, Time and Side Effects
A repair loop needs three separate limits: attempts, a deadline, and external work. Derive what each extra repair buys, see why decode time sets the real cap, and measure repair success with an error bar.10 min readLLM repair loopstructured-outputGive a Research Agent's Tool Failures a Shape It Can Act On
Your research agent has a tool that fetches an eval run from the experiment tracker. When the call fails, the model sees whatever string you return.Quick thoughtopenaitool-callingKey a Cached Answer to Its Reader's Current Access, Not Just the Query
An answer cache keyed on the query serves a revoked reader their old answer. Add an authorization revision to the key, recheck before release, test the race, and count what per-reader keys cost in tokens.7 min readanswer-cachingpermission-aware-retrievalMeasure Prompt Injection as an Attack-Success Rate, Then Bound It
Measured on four small open models you can run on Colab: attack success from 10% to 61%, and a permission gate that let none through. Score it in code and bound it with the right sampling unit.12 min readprompt-injectionadversarial-evaluationRetrieved Text Is Evidence, Not Permission: Measure the Leak Rate
A retrieval step hands the model a document. It contains a fact the task needs and a sentence addressed to the model: ignore your task and call deleterun.Quick thoughtopenaitool-callingMake 'Propose a Job' and 'Launch a Job' Different Tools
"Propose a training job" and "launch a training job on 64 GPUs" are different operations. So are "draft a cleanup of old checkpoints" and "delete them."Quick thoughtopenaitool-callingWrite Repair Feedback That Fixes Format Errors and Stops on Policy
Send a model the field and error code it needs to repair a type error, stop on policy errors, and measure how much feedback detail actually improves repair success.10 min readstructured-outputrepair loopsKeep the Budget Out of the Model's Output, Even When a README Asks
An injected line in a repo tells your eval agent the sweep is pre-approved for $5,000. Close the plan schema so no model output can set a budget, and test four override shapes.8 min readprompt-injectionstructured-outputMeasure Whether a Coding Agent Weakens Tests Under Pressure
Coding agents sometimes pass by editing the tests instead of the code. Here is the evidence, the arithmetic, and a protocol you can run to measure how often it happens.10 min readspecification-gamingevaluationValidate Tool Arguments in Code, Even With Strict Mode
A model's tool call is a request for your code to act. OpenAI's function calling guide lays out the flow: the model returns a tool call, and you "execute code…Quick thoughtopenaitool-callingCheck That Your Judge Prompt's Examples Agree With Its Rubric
An LLM judge prompt usually has a rubric and a few examples. When an example contradicts the rubric, the model has two versions of the job, and you can't…Quick thoughtopenaipromptingTurn a Notebook Cell Into a Contract Your Eval Harness Can Call
A notebook cell that parses one judge verdict is not yet a function a harness can call. Declare accepted inputs, rejected inputs and a stable output, then run eight cases through every entry point.9 min readresearch engineeringPydanticWhat You Still Decide When a Coding Agent Builds the Change
A coding agent can implement a change to your eval runner. It cannot decide what counts as the same request, what a retry may do, or who may change the tests.8 min readdark-software-factoriescoding-agentsA Contamination Cutoff Needs a Clock, Not Just a Date
A training cutoff of March 31 is a date without a clock. One post can land on either side of it depending on the time zone. How to pick one clock, size the ambiguous boundary day and keep it out of a held-out split.8 min readevaluationtimezonesBuild an Agent Eval Environment That Resists Reward Hacking
An eval or RL task is an input, an environment and a hidden grader. Freeze the environment, keep the oracle away from the agent, and prove the grader with null, cheating and gold agents.9 min readagent-evaluationRL environmentsContinued on the next page.
To browse rather than follow: topics, all articles and all notes. To learn in order: courses and the book.











