back to reflections

On Feedback Loops

Explores why autonomous coding agents require automated feedback loops — linters, type checkers, and unit tests — to operate independently over long periods, and why replacing human feedback with fully automated signals is a prerequisite for truly agentic systems.
Petko D. Petkovon a break from CISO duties, building cbk.ai

Every agent needs a feedback loop. That's not a nice-to-have. Without feedback, an agent has no way to know whether it's on track, drifting, or completely off the rails.

For humans, feedback is natural. Someone reviews your work, catches the mistake, points it out. You correct course. Simple. But that model breaks down the moment you want an agent to operate autonomously, especially over long periods of time.

Coding agents make this concrete. If you want an agent that can run for hours, touching dozens of files, making hundreds of decisions, you cannot rely on a human sitting there reviewing each step. The loop has to close automatically.

The tools that make this possible already exist, such as linters, type checkers, unit tests. The catch is that out-of-the-box configurations are almost never enough. Generic linting rules don't know your conventions. The type checker doesn't know your domain invariants. Default test suites don't cover the edge cases that actually matter for your specific system. To get an agent that produces code meeting your actual expectations (not just code that compiles) you need custom rules, custom checkers, and tests written for your codebase specifically.

This combination, custom static analysis plus targeted unit tests, is what turns a feedback loop from a vague idea into something the agent can act on. The agent generates code, the tooling evaluates it, the agent adjusts. No human required in the middle.

The broader insight is that this applies well beyond coding. Any agent system operating autonomously over time needs to answer the same question. What provides the signal? Humans are the obvious answer, but humans don't scale and they don't work at machine speed. The harder and more important question is how to build feedback that is fully automated and fully objective that can be consumed without interpretation, ambiguity, and waiting.

That's the actual engineering problem underneath agentic systems. Not the model, not the scaffolding. The feedback loop.


A practical note: ChatBotKit makes it easy to build custom feedback loops - not just for coding agents, but for any business process. Define what correct looks like for your domain, wire in your signals, and let the agent close the loop on its own.