Engineering & Technical

The Engineer

The Signal

Plan-and-Act's ungrounded planner scored 16 points below running no planner at all.

Same model, four harnesses, same WebArena-Lite tasks: a plannerless ReAct loop hit 36.97%, a fluent plan grounded in nothing fell to 20.60%, and replanning against actual page state carried the winner at 53.94%. The failure mode is the interesting part. The plan reads well and matches nothing on the page, so the agent you're grading looks coherent in every trace you read while it clicks into the void.

In Play

  1. Inference Autoscaling on the Wrong Signal

    Every item today fails the same way: quietly, in a dimension nothing on your dashboard plots. Start here, because it is probably already true in your production. A production serving roadmap covered by Daily Dose of Data Science names two defaults most inference deployments get wrong: autoscale on queue depth rather than GPU utilization, and report p50/p95/p99 time-to-first-token and inter-token latency rather than means. The deep dive carries the mechanism, the panels that replace the ones you have, and why the agent restructuring everyone is prototyping lands in this same tier.

    Ask Clarity
    Try
  2. Agent Harness Beat Model Choice

    The Plan-and-Act paper (arXiv 2503.09572) ran four agent configurations of one unchanged model on WebArena-Lite, per Daily Dose of Data Science. A plannerless ReAct loop scored 36.97%. A grounded planner with per-step replanning reached 53.94%, and replanning alone accounted for +10.31 of that. The gain came from harness design — planner/executor split, pruning consumed observations, replanning against current state — not from a bigger model.

    Ask Clarity
    Try
  3. Cloudflare's Monetization Pressure Lands on Your Bill

    A bearish trader flagged Cloudflare at more than 35x revenue with 12% incremental operating margins, per The Bear Cave. The deep dive prices each affected primitive. The takeaway for this week: estimate switching cost before a renegotiation, not during one.

    Ask Clarity
    Try
  4. Financial-Reporting Controls Become Deploy-Pipeline Requirements

    The SEC created a dedicated Financial Reporting and Accounting Unit inside its Division of Enforcement, per The Bear Cave. No engineering consequence is reported; file it as context for finance-adjacent roadmaps, not as a workstream.

    Ask Clarity
    Try

Deep Dives

Autoscale on Queue Depth, Then Delete the Mean-Latency Panel

Utilization-based scaling under-provisions the exact bursts it exists to absorb, and the agent restructuring everyone is prototyping doubles arrival rate into that same mis-instrumented tier.

Why a pinned GPU stays pinned while the queue grows

Prefill and decode fail differently. Prefill runs the whole prompt in parallel and is compute-bound. Decode emits one token at a time and is bound by reading weights out of high-bandwidth memory, so the device reports busy at modest arithmetic intensity. The gauge reads saturated long before throughput is exhausted. It reads the same with zero requests waiting and with four hundred. That is the defect: the autoscaling signal is not a function of backlog. The horizontal pod autoscaler adds replicas late and removes them early.

The latency panel beside it is blind the same way. Continuous batching lets one long prefill stall short decodes. The distribution goes bimodal and the mean sits in the empty middle. It looks healthy while tail users time out. Histograms at p50/p95/p99, on time-to-first-token and inter-token latency, are the only view that shows the stalled request.

The replacement scaling signal is the serving engine's waiting-requests gauge, exposed on /metrics. Verify the exact metric name against your vLLM or SGLang version before wiring it up. These names have moved between releases. A silently absent metric evaluates as zero, and an autoscaler fed zero never scales.


Two more panels that mislead the same way

Signal in useWhat it actually tracksFailure it hidesReplace with
Requests per secondArrival rate onlyPer-request token growth from agent loopsTokens per request and steps per task
"Prefix caching is enabled"Configuration stateWorkloads whose prefixes never repeatPer-workload cache hit rate

The agent change lands in this tier

Conditional replanning is a serving change in an agent costume. One LLM call per step becomes two, which doubles arrival rate against the same replicas. The two roles have opposite shapes. Planner prompts carry state plus prior plans plus action history, so they are prefill-heavy. Executor calls emit one action, so they are decode-heavy. Mixed into one queue, a long planner prefill delays every executor decode sharing that batch.

Two consequences follow. Splitting model routing by role, strong model for the planner and cheap grounded model for the executor, is a cheaper lever than a frontier upgrade, and it lets the two workloads scale as separate pools with separate SLOs. And a per-request token budget that hard-caps steps is the only defense against one pathological task occupying a replica indefinitely.

Prefix caching is where agent loops genuinely pay off. A stable system prompt plus a fixed plan prefix repeats across every step of a task, which is close to the ideal cache shape. That is good engineering, and it deserves the credit. Measure the hit rate per workload rather than assuming a global win. A retrieval-heavy endpoint with unique context per call gets nothing from it, and a blended average will not tell you which one you have.

Utilization tells you the device is busy; only queue depth tells you the users are waiting.

Sequencing matters. Observability precedes optimization. Prefix caching, quantization and speculative decoding all have workload-dependent ceilings that histograms find and averages hide. Tune after the tail is visible, not before.

What to do

  1. Repoint inference autoscaling from GPU/CPU utilization to the engine's waiting-requests gauge this sprint, confirming the exact metric name against your deployed vLLM or SGLang version before rollout.

  2. Replace every mean-latency panel with TTFT and inter-token-latency histograms at p50/p95/p99 before your next load test.

  3. Measure prefix-cache hit rate per workload and set a per-request token budget that hard-caps agent steps before any replanning layer reaches production this quarter.

Your Agent's Reliability Ceiling Is an Append-Only State Object

Three of the four Plan-and-Act configurations teach more than the winning one: the cheapest reliability gain needs no planner at all, and the expensive gain relocates the context you just pruned.

The bug is the state object, not the prompt

A ReAct loop writes a thought, takes one action, reads the observation, appends all three to the same prompt. Nothing ever leaves. A failed search at step three still sits in context at step fifteen, competing with the objective for attention. Prompt tuning does not reach this. A larger context window does not fix it either. It slows the degradation and raises the per-step bill.

Plan-and-Act introduces asymmetric context. The planner reads the query and the initial page, then writes high-level steps. The executor reads the plan, the task, its own action history and the current HTML, emits one grounded action, then strips the HTML it no longer needs. Execution context stops growing with step count. A stale step, say a search for "library at CMU" returning nothing, gets rewritten by replanning to "libraries near CMU". The failure is replaced in the plan instead of accumulating in the trace.


Two costs the headline number hides

Replanning is token relocation, not token elimination. The planner's prompt carries current state plus previous plans plus actions taken, so context pruned out of the executor reappears there. LLM calls per step go from one to two. The authors flag this and propose letting the executor decide when a replan is needed, which they leave unsolved. Triggering on empty result sets and missing target elements covers most of it, with repeated actions catching the loop case, rather than firing on every step.

Plan granularity is load-bearing and it fails silently. "Input New York as the arrival city" works. "Input the arrival city" leaves the executor guessing which city. "Analyze the search results" is not a step at all; it hands the reasoning back to the executor, so you pay for two models and get one. A single click is too small and collapses back into ReAct at double the call volume.


The 20.60% run is the one to study

A planner finetuned without exposure to the target environment writes steps that read fine and match nothing on the page. The executor follows them anyway. No standard agent dashboard distinguishes a grounded plan from a fluent one. Task failure is observable. Plan groundedness is not. That is how a 16.37-point regression ships without anyone naming it. The same coverage lays out a staged modeling ladder: heuristic, then simplest model, then tuning within that model class, then deep learning, with each phase's best becoming the next phase's baseline. A plannerless loop is the Phase 1 heuristic. If a sophisticated planner cannot beat it, either planning adds nothing for that task or there is a pipeline bug.


Rollout order that respects the evidence

  1. Measure. Context tokens per step and steps per task. Then repeated-action rate, the cheapest stale-step detector available today.
  2. Prune observations. Derived fact in state, raw payload in logs. One reducer change. No planner and no new failure surface.
  3. Gate the planner on an eval set built from local environment traces, with the plannerless loop as the permanent comparator.
  4. Then conditional replanning. Always-replan is the reference implementation, not the production one.
An ungrounded planner is a sixteen-point regression you can ship by accident, because nothing in standard telemetry measures whether a plan matches the page.

Caveat worth holding: 53.94% is still near-coinflip. Harness engineering changed the slope, not the safety threshold. Anything customer-facing keeps a human confirmation step or a reversible-actions-only scope.

What to do

  1. Instrument every agent run this sprint with three counters — context tokens per step, steps per task, repeated-action rate — and determine whether context growth or looping dominates your failures before restructuring anything.

  2. Change your agent state reducer this sprint to keep the derived fact and route raw observations (HTML, tool payloads, retrieval dumps) to logs, then re-measure tokens per step.

  3. Freeze the plannerless ReAct loop as a permanent CI regression baseline and gate any planner release this quarter on beating it against an eval set built from your own environment traces.

Price Your Edge Stack Before the Renegotiation Starts

Three monetization levers all land inside the same dependency graph, and the cheapest defense is a two-day differ pointed at the vendor pages nobody rereads.

Twelve cents is the mechanism; the multiple is noise

An incremental operating margin near 12% is a statement about mix, not sentiment. Bandwidth, inference, and seat-based Zero Trust carrying support load are expensive to serve. No source reports an actual price change, and this is an inference from margin plus multiple rather than an announcement. Worth preparing for anyway, because the preparation is cheap and useful in either branch. Three levers exist: higher list prices, more aggressive metering through new billable dimensions or tightened free tiers, and pruning unprofitable products. All three arrive as changes to primitives already sitting in the critical path.

Exit cost is per primitive, not per vendor

The lock-in classification below is Clarity's engineering judgment, not a reported figure.

PrimitiveLock-inNearest portable substituteRealistic exit cost
Workers (isolates)MediumDeno Deploy, Vercel Edge, Fastly Compute, self-hosted workerdWeeks — non-standard bindings, Cache API semantics, cold-start assumptions
Durable ObjectsHighNo true equivalent; needs Redis-plus-lease or partitioned-consumer redesignMonths — single-writer consistency leaks into your domain model
R2LowAny S3-compatible storeDays of code, weeks of data movement — the egress bill is the lock-in, not the API
D1Medium-highPostgres, Turso/libSQLWeeks — SQLite dialect and concurrency limits baked into query patterns
KVLow-mediumRedis, DynamoDBDays — but eventual-consistency assumptions may be load-bearing
Zero Trust / WARPHighTailscale, IdP-native ZTNAMonths — identity, device posture and policy all need re-plumbing

Leaving is the wrong response. Find the two rows that would actually hurt in a given stack and put a seam there and nowhere else. Abstracting everything costs the exact primitives that justified adopting the platform in the first place. A Workers deployment behind a generic "edge function" interface is a Lambda with worse cold starts.

Then run the numbers on the lines nobody controls. Model a 2x unit-cost scenario on your three largest usage dimensions, requests, storage, egress or seats, and check whether it breaks gross margin or only the budget approval. Agent traffic makes this urgent regardless of what the vendor decides. Request count per user task and tokens per request both grow once a loop starts calling a planner as well as an executor. The lines most exposed to repricing are the same lines the roadmap is about to multiply.


The differ nobody builds

The most copyable pattern in today's material came from a research vendor, not a platform team. Canary Data surfaced undisclosed McDonald's executive departures by diffing public leadership pages, catching an executive quietly removed from the site before any filing. Mechanically it is four parts: a scheduled fetch, a normalizer that strips navigation and timestamps, a structural diff, and an alert on change or deletion. Two days of work. Unglamorous, and genuinely well chosen. Pointed at pricing pages, deprecation notices, status-page history and SDK release notes for the top ten dependencies, it produces advance warning on breaking changes that no vendor announcement will give. Deprecations land in docs before they land in your inbox.

The corollary runs the other direction. Public surfaces are being snapshotted on someone else's schedule, so removing a pricing tier, a status incident or a page is itself a diffable event.

The switching cost you never estimated is the one your vendor's pricing team is counting on.

What to do

  1. Enumerate every Cloudflare primitive in production this quarter, classify each as low, medium or high lock-in, and attach a switching estimate — Durable Objects and Zero Trust are redesigns, not reconfigurations.

  2. Build the change-detection watcher this sprint — scheduled fetch, normalize, structural diff, alert — pointed at pricing pages, deprecation notices and changelogs for your top ten vendors.

  3. Model a 2x unit-cost scenario on your three largest usage lines before the next renewal cycle and record whether it breaks gross margin or only the budget approval.

The bottom line

Four failures, none of which raise an alert: a fluent plan that matches nothing on the page, a pinned device gauge sitting in front of a growing backlog, an average that swallows the stalled request, a vendor page edited without notice. All four are probably already true in your production. They break the assumption that adding capability is the risky step; the unmeasured step is. Instrument the comparator before you ship the upgrade: name the dumb baseline for every new layer, and make its number a release gate.