The benchmarks for web-browsing agents split along a fault line the coding benchmarks never had — and the trick that makes one of them work quietly hides which half of your agent is actually good.
MCP standardized how agents connect and A2A standardized how they talk. The Agent Control Specification standardizes the part that decides whether you can deploy — what an agent is allowed to do — and its smartest move is what it refuses to standardize.
The query assumes three live standards fighting for the agent-to-agent layer. Two of the three answers are already settled — and the third isn't even in the same race.
The choice isn't speed versus security. It's whether the model is writing code that orchestrates your tools or code that needs the whole operating system — and that picks the security model for you.
SWE-bench hands an agent a broken test and a healthy repo. Terminal-Bench hands it a live machine and lets it break things. That's why a top SWE-bench score tells you almost nothing about the second number.
The number on the spec sheet is a memory allocation, not a comprehension score. A needle test passing at 1M tokens tells you the model can find a string — not that it can use the context. Here's the benchmark that measures the difference.
A new benchmark replays an agent's failures into a corrupted environment and asks a fresh model to fix them. The leaderboard reorders — recovery is not the same skill as solving.
You can freeze an agent run and play it back in CI — but there are two layers you can record at, and picking the wrong one means your tests stop catching the bug you actually care about.
A classifier that blocks 98% of injections sounds like a fix. Against an attacker who can retry, a nonzero bypass rate isn't a wall — it's a toll. The defenses with real guarantees don't detect the bad instruction at all; they cap what any instruction is allowed to cause.
The reflex is to wrap everything in JSON because it's 'structured.' On the way into a prompt that's a token tax; on the way out it's an accuracy tax. The right answer is split, not single.
Every provider now sells the same ~90% discount on repeated context. The number on the brochure is not where the bills actually diverge — three quieter terms are.
One of these isn't an inference engine at all — it's a wrapper around the other two. Sorting that out is the whole decision, and it just got simpler because one contender quietly left the race.
The number at the top of the MTEB leaderboard has quietly stopped meaning what you think it means. Here is which board to read, and why the newest one hides half its test set on purpose.
The 2026-07-28 release candidate kills the session and the handshake, graduates Tasks and Apps to extensions, and deprecates Sampling. The real story isn't statelessness — it's a shrinking core.
Decode is memory-bandwidth bound, so a GPU's TFLOPs barely predict serving capacity. What caps concurrency is the KV cache. Here's the actual arithmetic, with a worked example.
They ship the same orchestration patterns now, so stop comparing them on patterns. The real fork is where your production agent actually runs — in code you hold, or in a cloud you rent.
The provider's per-user field won't give you an invoice, and raw token counts lie. The honest unit of attribution is the priced token — after caching, batching, and hidden thinking.
You can't script a conversation, so you hand the user's seat to a second LLM. That move doesn't solve your measurement problem — it relocates it into a simulator you never validated, and the default one grades on easy mode.
The progressive-delivery playbook assumes a bad release trips an alarm. A worse model returns HTTP 200 on time with a fluent wrong answer — so the canary you copied from your web service is blind to the only failure that matters.
Every pricing model for an AI agent is really a decision about who absorbs the inference bill — and the floor under any outcome price is the cost of producing that outcome.
Adding and updating vectors is the easy half — upsert overwrites by ID. The half everyone forgets is deleting the orphans, because a stale vector never errors. It just keeps getting retrieved.
Bigger context windows don't fix forgetting. The benchmarks that actually test agent memory — LoCoMo and LongMemEval — and what their question categories reveal about where it breaks.
Transcription accuracy is table stakes. The failure surface that actually loses calls is conversational timing — turn-taking, barge-in, and an end-to-end latency budget you have to measure component by component.
A single throughput figure is uninterpretable without the load that produced it and the prompt shape you fed in. The honest output of an LLM benchmark is a curve, and the number that matters is goodput — the most traffic you can serve while still meeting your latency SLO.
You wire your eval into GitHub Actions, gate the merge on it, and a week later it's red on a PR that changed nothing. The fix isn't a retry — it's admitting an eval is a measurement, not an assertion.
One speeds up the attention math; the other stops your KV cache from wasting most of the GPU. You run both — and the friction where they meet is the actual story.
A trillion-parameter MoE only fires a fraction of itself per token. Expert parallelism scatters those experts across dozens of GPUs — but the hard part was never the split. It's the all-to-all traffic and the hot experts, and they only pay off when you're drowning in load.
Two of these are near-twins separated by a license; the third is a different kind of machine entirely. The hard part is realizing you're answering two questions, not one.
The textbook breaker opens when calls start failing. The incident that actually bankrupts an agent is a loop where every call succeeds — so you need a second breaker that watches money, not errors.
It isn't a FLOPS race. Decode is memory-bound, and the MI300X's 192 GB lets a model live on fewer GPUs than an 80 GB H100 can. The catch was never the silicon — it was ROCm. Here's where that tax stands in 2026.