Why AI coding agents feel powerful at first, then become harder to control
2 points
1 hour ago
| 2 comments
| HN
I’ve been thinking a lot about why AI coding agents feel great in the beginning, but become frustrating as projects grow.

At small scale, prompting works. As the codebase grows, things start to drift: - constraints leak into prompts - commands get longer - behavior becomes inconsistent - “helpful” changes appear outside the intended scope

Lately, I’ve been mapping common agent concepts (rules, commands, skills, sub-agents, MCP, hooks) not as features, but as control layers in an execution loop.

Very roughly: - rules constrain decisions - commands trigger execution - skills encode repeatable methodology - sub-agents limit responsibility - MCP enables observation - hooks enforce guarantees

My hypothesis is that many frustrations come from mixing these layers.

For example, encoding constraints in commands, or trying to use hooks for reasoning.

I’m curious how others here are thinking about this: - Do you treat agents as conversations or as systems? - At what point does prompting stop scaling for you? - How do you control blast radius when agents touch larger codebases? - Have you found concepts like skills or sub-agents actually useful, or just extra complexity?

hoangnnguyen
1 hour ago
[-]
I wrote a longer piece exploring this, but I’m more interested in hearing how other engineers are approaching it in practice.

https://codeaholicguy.com/2026/01/31/ai-coding-agents-explai...

reply
pcmcc
1 hour ago
[-]
I have also encountered similar problems. Is it possible that the current AI coding is difficult to converge to the state we desire? Therefore, I think that currently, the AI tools are more suitable as a conversational tool when dealing with large projects. For example, humans can envision the framework and break down the implementation steps. Then, each small task can be given to the AI to solve, and then humans can integrate the code. This efficiency is lower than complete vibecoding, but it can alleviate the situation where the code becomes unmanageable.
reply