stream
Search in program space
Coding agents run a search in program space.
That's the closest analogy I can find for how to use agents productively. If you think of it as an assistant to whom you give tasks, you'll generally be in too tight a loop, giving feedback every few minutes.
But the search analogy forces you to consider:
- The objective. What am I searching for? How will the agent know that it has succeeded?
- The constraints. What are properties that any good solution will have?
Both of these have many levels.
Objectives could be ticket-level (fix a bug, solve a user story) or company-level (grow MRR). The same goes for constraints: repo-level (conform to a test coverage level) or company-level (follow our design system).
To move up this ladder and still work productively, the agent needs to run longer without human input. Which means the objectives and constraints need to be defined well enough for the agent to self-evaluate.
Agents today handle ticket-level work well by getting feedback from automated tests or humans. But if you put in enough work and creativity to create an automated feedback loop, you can generate entire products (or clones thereof) with software factories.
If you want agents to run for hours instead of minutes, pre-define both the objective and the constraints. Then give agents a way to evaluate and debug against these so they can make progress on their own.