Anthropic's measure-first agent loop: 3,000+ merges and a 3x faster claude.ai
Anthropic's account of an agent-driven two-week performance sprint, decoded for small teams that want to copy the benchmark-ratchet-review loop.
Picture a two-person team running a React SaaS dashboard. Customers keep saying it feels sluggish. Today the fix goes like this. Someone runs a profiler once, has a hunch, ships a change, and eyeballs the next week's dashboards. They can't say whether the win held. Three sprints later a new feature quietly undoes it, and nobody notices until the complaints come back. An AI coding agent could write the optimizations, but with no number to beat, it's guessing too. Whatever it ships still has to be reviewed by the same two tired people.
Anthropic's post How we made claude.ai 3x faster in two weeks (published 2026-09-23) is a detailed vendor account of fixing exactly that gap. The loop has three parts: make each slow thing measurable, let an agent climb against that measurement, and lock in each win with a CI guardrail that can only get stricter. On X, @trq212 framed the takeaway less formally: "have you tried telling Claude 'we have the power to do anything, please be braver'". The part worth copying is less the bravery than the measuring.
What it is
This isn't a product launch. It's a method, with numbers, and all of them come from Anthropic's own account. The company says that in August it made the core experience of claude.ai and the desktop app about 3x faster in a two-week sprint, run from a single Slack channel with Claude in every thread. At the 75th percentile:
- time to a typeable page on a fresh claude.ai load went from 3.1s to 0.55s
- starting a new Claude Code session went from 0.8s to 0.3s
- loading a Claude Cowork cloud session went from 2.6s to 0.73s
The agent was Claude Tag (beta) running "an internal research model roughly comparable to Opus 5.5." Anthropic says Claude found bottlenecks, built benchmarks, shipped improvements and watched deploys. Humans set goals, made tradeoffs and approved every change. The team reports more than three thousand merged changes "without a single customer-facing incident or rollback."
Here is how each piece maps to the lede's pain:
- No number to beat → instrument first. Claude analyzed usage data through the Datadog MCP server and picked four journeys covering 95% of activity. The team then added instrumentation until the thirteen resulting measurements were directly comparable.
- Noisy wall-clock time → deterministic lab benchmarks. Milliseconds are too flaky to gate CI, so the team used instruction counts under Valgrind. Anthropic made Claude prove each count tracked real latency and dropped any benchmark that didn't. On two hot paths, cutting instructions 48% and 31% cut wall-clock time 78% and 44%.
- Wins that decay → ratchets. Any PR that raised those instruction counts failed CI, and a daily job lowered each ceiling whenever the count dropped.
- Invisible problems → new telemetry. Someone noticed sidebar rows popping in after load. Claude built a layout-shift event per named region, plus an integration test that went "red 20 of 20 runs on main, and green 20 of 20 on the PR." Field data then showed 31% of web page loads shifting after the page was usable.
- Review load → safety rails set up front. Every PR got automated review plus at least one human approval. Unit tests came before optimizations. Risky changes shipped behind short-lived feature flags and rolled out to employees, then 1% of users, then everyone.
Tech Bytes' write-up restates the same figures and adds per-journey numbers, but it does no independent testing.
Alternatives, if you want the loop without Claude Tag:
- Claude Code + Datadog MCP (solo reproduction). You get the same observability bridge through a public Datadog plugin for Claude Code. The trade-off: no always-on Slack teammate, so you run the deploy-watching yourself.
- OpenAI Codex + Datadog MCP. Datadog documents a native Codex config. Composio offers a hosted MCP layer for Codex. The trade-off with Composio is a third-party integration and a Composio API key in the loop.
- Cursor + Datadog MCP. Cursor is a listed supported client. The trade-off: it's an IDE workflow, not a shared-channel model.
Who it's for
Pick this up if you already have real-user telemetry, a CI pipeline you trust, and feature flags or staged rollouts. You also need a hot path users complain about, and someone willing to review a steady stream of small PRs. The method assumes those foundations exist. Anthropic set up its safety mechanisms before the sprint started, not during it.
Skip it if you have no tests, no production metrics, or no appetite for reviewing agent output. Without those, the loop has nothing to climb against and nothing to stop a bad change. Also skip it if you're expecting Anthropic's pace. Its results came from an internal model and a multi-engineer team running more than 150 threads at once.
Before and after
Before
- A user complains that the app is slow.
- An engineer profiles once and guesses at the cause.
- They ship a fix and wait for field data.
- Nothing protects the win, so it decays.
After (as Anthropic describes it)
- The agent reads production telemetry and ranks journeys by impact.
- You add instrumentation until each journey has a comparable start and end.
- The agent estimates the impact of each candidate project in milliseconds. Those estimates set the targets; Anthropic hit twelve of its thirteen by day three.
- For fast iteration, pick a deterministic lab metric, such as instruction counts, render commits or style recalculations. The agent must prove it correlates with wall-clock time.
- The agent optimizes against that metric. Unit tests land first, and risky changes ship behind flags.
- A human approves each PR, and you roll out in stages.
- You check in a CI ratchet so the metric can only improve.
- You go looking for the next thing to measure.
Tech Bytes' account describes a per-thread version of the same loop. A human posts a recording, Claude reproduces the problem and opens review-sized PRs, then reads real-user data after deploy. If the metric improved, Claude ratchets it; if not, the flag goes off. The primary-source excerpt we reviewed cuts off before listing its loop steps, so treat this summary as secondary.
Try it
The smallest real step needs neither Claude Tag nor Anthropic's model. Pick one hot function, find a deterministic metric for it, confirm that moving the metric moves wall-clock time, and add a CI check that fails if the metric gets worse. Anthropic calls this the central lesson: "With Claude, measuring something makes it tractable."
If you use Datadog and Claude Code, Datadog's setup docs say to install the plugin from the official Anthropic marketplace:
/plugin install datadog@claude-plugins-official
Then run /ddsetup to pick your Datadog site and complete OAuth, and /ddtoolsets to choose tool groups. The optional code-exec toolset lets the agent run a single read-only JavaScript script against Datadog APIs. This helps with regression queries that would otherwise take many tool calls.
For Claude Tag, the Claude Help Center says setup is done by a Primary Owner or Owner. They provision Claude's identity, connect tools and repositories, and choose channels. Billing is consumption-based: tagging Claude in a channel is charged to the organization, with org-wide and per-channel spend caps, while direct messages are billed to your own Claude account. The sources give no pricing figures.
Where it breaks
- The model isn't public. Anthropic used an internal research model it says is roughly comparable to Opus 5.5. Nobody has confirmed whether a solo builder with Claude Code and a public model gets similar results.
- Review at volume is unexplained. The sources don't show how 3,000+ changes got human approval without rubber-stamping, and on the busiest days more than 200 landed. The detail was cut off in the text we reviewed.
- Failures aren't reported. The account names no failed PRs, human overrides or reverted flags. "No rollbacks" is Anthropic's own claim.
- The headline metrics are self-reported. The "tens of thousands of user-hours" saved daily is Anthropic's estimate. We found no independent measurement of the latency gains, and Tech Bytes only restates the post.
- Lab metrics can lie. Anthropic threw out benchmarks that were flaky or didn't track real latency. It also cites a layout bug caused by Chrome's speculative prerendering that none of its metrics caught; a teammate spotted it on a screen recording. Staged rollouts still matter.
- Claude Tag availability is unclear. It's in beta and needs org-admin setup. We couldn't confirm that its deploy-monitoring behavior is available to every beta user.
- Datadog has limits. Fair-use limits are 50 requests per 10 seconds and 100,000 tool calls a month. The server isn't GovCloud compatible. Datadog also collects usage data, including prompts leading to tool use, and stores it for 120 days. Code-exec is read-only by design.
- Flag debt adds up. Anthropic introduced nearly 200 flags in two weeks, and more than half were cleaned up by the end.
- Lock-in. Copying this exactly ties you to Slack, Claude Tag and Datadog. The measure-and-ratchet loop itself is portable.
Sources
- How we made claude.ai 3x faster in two weeks / claude.dev Blog · Anthropic
- How we made claude.ai 3x faster in two weeks · Tech Bytes
- Code Execution with the MCP Server · docs.datadoghq.com
- What is Claude Tag? | Claude Help Center · Claude Help Center
- How to integrate Datadog MCP with Codex | Composio · Composio
- Datadog MCP Server · docs.datadoghq.com
- Set Up the Datadog MCP Server · docs.datadoghq.com
- @trq212: have you tried telling Claude "we have the power to do anything, please be braver" · @trq212