惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
小众软件
小众软件
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
量子位
博客园_首页
T
Tailwind CSS Blog
The Cloudflare Blog
J
Java Code Geeks
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
人人都是产品经理
人人都是产品经理
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
腾讯CDC
P
Proofpoint News Feed
aimingoo的专栏
aimingoo的专栏
Recent Announcements
Recent Announcements
T
The Blog of Author Tim Ferriss
D
Docker
Microsoft Azure Blog
Microsoft Azure Blog

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Feedback Latency Is the Agent's IQ
Ian Johnson · 2026-05-29 · via DEV Community

Ian Johnson

The same agent, same prompts, did markedly different work on two codebases I work in. One has a test suite that runs in eight seconds. The other takes twelve minutes. The eight-second project gets a careful, iterative collaborator. The twelve-minute project gets a confident guesser.

I noticed it first as a vibe. The agent in the slow codebase would write five files at once, then announce the task complete without having run anything end to end. The agent in the fast codebase would write one function, run the tests, react to the failure, fix it, run them again. Same model. Same configuration. The only difference was how expensive it was to learn whether the previous step was right.

That is the whole post in one sentence. An agent's effective intelligence is bounded by how fast it can verify its hypotheses. Cut the verification cost and you raise the agent's apparent IQ. Raise it and you lower the agent's apparent IQ. The model in the middle is unchanged.

Why this binds harder for agents than for humans

A human engineer can hold a hypothesis in their head. "I think this works. I will check it later." The cost of holding the hypothesis is roughly free; the human has institutional memory, intuition, a sense of what the code does that does not require running the code to confirm. They can defer verification without losing fidelity.

An agent cannot. It has no intuition about your codebase. The only ground truth it has access to is what the tests say, what the type checker says, what the build says. When those signals are cheap, the agent uses them constantly. When they are expensive, the agent stops using them and starts speculating.

Speculation by an agent looks plausible. It produces code that compiles, follows the patterns it has seen in your repository, names things sensibly. The problem is that plausible is not the same as correct. The agent that speculates is shipping a guess; the agent that iterates is shipping a tested answer. From the diff alone, they can be hard to tell apart.

This is the insight that took me too long to internalize. Slow feedback does not produce a slower agent. It produces a less honest one.

What different latencies actually feel like

Some rough buckets, from the agent's behavior on tasks I have watched closely.

Sub-second feedback (lint, type check, a small unit test on save) gives you an agent that operates like a careful TDD practitioner. It edits, it checks, it edits, it checks. The unit of work is a single change. Mistakes get caught before they leave the function they were made in.

A few seconds to a minute (a fast unit suite) gives you an agent that batches changes into small commits and runs the suite between them. Mistakes get caught within the file or the module. The agent corrects course frequently and visibly.

Five to ten minutes (a typical integration suite) gives you an agent that runs the suite at the start, makes a chunk of changes, runs it once more at the end, and crosses its fingers in between. Mistakes get caught only at boundaries. Subtle regressions inside the chunk sometimes slip past because the agent did not get the granular feedback that would have flagged them.

Twenty minutes or more (a slow CI loop, or a suite the agent only runs locally because nothing else is fast enough) gives you the speculator. The agent runs the suite once, maybe twice in the whole session, and otherwise reasons from the code without verifying. Mistakes get caught in review, in QA, or in production.

The breakpoints are not exact. The shape is real. Every order of magnitude of latency you remove from the loop is an order of magnitude of fidelity you give back to the agent.

What this changes about the case for fast tests

The case for fast tests used to go like this. Developers will run them more if they are fast. Faster feedback catches bugs earlier. Slow tests are skipped, and skipped tests are dead code. All of that is still true.

There is a new term in the equation. Your agent is now one of the consumers of the test suite. A test suite optimized for the agent looks the same as a test suite optimized for the developer, only more so. The bar is no longer "fast enough that developers will run it". The bar is "fast enough that the agent will run it between every meaningful change".

That bar is much lower. A developer might tolerate a two-minute suite. An agent will gladly run a two-second suite a hundred times in an hour. The investments that get you there (port-and-adapter seams, in-memory fakes for everything that does not need a database, a hard line between unit and integration tiers) are the same investments I argued for in a piece about cutting CI time. The argument is the same; the consumer is different; the payoff compounds.

The investments that pay

A short list of the things that actually move the needle.

Dependency inversion in production code. Every external boundary (database, mailer, HTTP client, queue) sits behind an interface owned by the application. In tests, the interface gets an in-memory implementation. The test process does not boot Docker; it does not migrate a schema; it does not open a socket. The cost of a test drops to milliseconds.

A test pyramid that earns its confidence. Unit tests, the cheap and numerous layer, run on every change. Integration tests, the few that genuinely need infrastructure, run separately and less often. Mixing them is what produces the suite that takes ten minutes when it could take ten seconds.

Pre-commit hooks that catch the silly stuff. Lint and type errors should fail in milliseconds, not after a full test run. The agent should never spend a CI cycle learning that it forgot a semicolon. That is what the local hook is for.

A clean separation of test scopes. When the agent can run only the tests for the module it is touching, every cycle of the loop is faster. The agent will choose the narrowest scope it can defend, and ship more confident work as a result.

No shared state between tests. Parallelism is the cheapest speedup you have not taken yet. A suite that can run across all your cores is one that the agent can iterate against without burning your patience.

What I would tell someone shipping their first agent feature

Before you tune your prompts, time your test suite. Before you write more rules, count the seconds it takes to learn whether the last change worked. The fastest path to a better agent in most codebases is not a bigger model or a richer harness. It is a feedback loop short enough that the agent can afford to use it.

The model is doing the best it can with what you give it. What you give it, mostly, is how fast you let it learn.