Building With Agents

No one is free from uttering stupidities. The misfortune is to say them very carefully. - Michel de Montaigne, Essays

I consider myself an early adopter of agentic engineering - designing a system where AI agents continuously iterate and deliver sans human oversight. Claude Code has been open in a terminal for me since April, yet I assure you everything in my essays is written only by myself. I will certainly say stupid things, so when I do, I want to say them with honesty. I write as an attempt to explore, not to declare truth, but to try to understand my ideas.

The only constant is change. Creating a barrier between my own thoughts and what I communicate with an agent feels insincere. The agent's output feels like hardened ice atop a running river - bound to crack and disintegrate, an artifact of a state in time floating unsteadily over water that changes with the tides and seasons. I'm thankful for snowy winters in New Jersey. Winters are cold and insufferable regardless - at least with snow we have something to show for it. When the first snowfall arrives and begins to accumulate, it's beautiful. It's pristine. It lies untouched and untested. Then once the storm settles, it's time for play (or work). The streets are plowed and polluted, the snow turns into a slush of gravel, dirt, and wet. The snow is dirtied, the icy river accumulates trash. We shovel and redirect the snow in ways unlike nature, it's designer, intended or thought up. The hardened snow eventually returns to the flowing river. The river changes, but it remains. Water is constant.

For me, writing with agents - whether words or software - is creating a layer of hardened ice atop a flowing river. The river is the changing problem, the company you're trying to solve it with, and the people you're solving it for. The icy output is uncooperative. Like a snowflake, it cannot be rebuilt exactly the same way twice. It grows exponentially, yet one crack will break it. It is immovable yet experience shows it is unreliable. It blocks the flow of the moving, changing river beneath it. Eventually, energy is spent navigating around what has accumulated rather than letting the river guide it. Building with ice can be purposeful - a temporary bridge that eventually recedes back into the river. Building with agents allows me to collect new information. I fast-forward into problems, I experiment and validate ideas, I build icy bridges over gaps that aren't meant to last - but now I know what exists on the other side of the gap, and I can build the proper infrastructure for what's over there.

Through my explorations with agents, I've consistently found three gaps. The first is the comprehension gap - the difference between what exists and what I comprehend about it. What exists? The river, the idea, the problem, the company, the solution, the users - all consistently flowing and changing. I spend most of my time looking at the surface of the water, while the topography below and moons above dictate the surface more than anything I can recognize. The true watermen of the world have a complete mastery of the wind, the swells, and the changing surfaces below - and even they stand on the shoulders of astronomers and explorers before them. The surface - what I do recognize - is a small representation of what actually exists, and a poor predictor of what the surface will look like compared to wind forecasts, tide schedule, swell forecasts, and knowledge on how they will all interact with the ocean floor. The comprehension gap is large, research and collaboration help close it. I maintain it's sometimes better to begin navigating with what you have and understand the boundaries of the unknown. Navigating close to the boundary has often revealed more about it than any preparation would have done for me.

The second gap I've experienced is the communication gap. Agents operate on "what I communicate to them" rather than "what exists." This holds true with any agent or employee - what I say overrides their understanding of what exists. Careless writing or speaking convolute what I'm trying to accomplish. Needless communication and unclear rambling conflate ideas and makes people lose interest. Everyone operates better with clear instructions. In the age of constant communication and agentic engineering, learning how to clearly express myself becomes a larger part of my duties in work and life.

The third gap is the most insidious: the accumulation gap. When I work with agents, I find they add their own noise to each output - hallucinations, misplaced priorities, needless complexity. Left untreated, an unrestrained AI can't distinguish its own noise - or my own noise from the comprehension or communication gap - from actual signal from the problem to be solved. The noise compounds, it creates uneven chunks across the ice that looks smooth from a distance. As it accumulates, it becomes harder and harder to break out, to restructure, while the river continues to move underneath. You can use the ice to traverse where you couldn't before. You can adapt like the iceboats that outrun horses, but eventually the ice breaks - a single crack renders it all unusable. The iceboat innovation built atop the hardened ice becomes a burden. Maintenance of the features built for the ice takes up space like technical debt. Time spent building on an unstable foundation was time away watching how the river is changing.

Until I better comprehend what exists, until I feel I can clearly communicate it, and until better tools and techniques exist to help guide agents - I've grown overly cautious of playing on the ice. I grew up hearing stories of friends and family falling through, taken by the current, unable to break back through the icy layer from underneath. Sometimes it takes falling through yourself to understand how quickly the ice can collapse. Agents have helped me extend my knowledge of what exists and move quickly through scaffolding, boilerplate, and experiments. Relying on the icy output as a foundation, as replacement of my own understanding, has failed me.