Introduction
My work with AI prototypes has made me less interested in treating an agent as a self-contained product and more interested in the system around it. A useful agent still depends on ordinary software concerns: clear interfaces, bounded permissions, observable behavior, reliable data, and a recovery path when the model is wrong.
This post outlines the mental model I use when thinking about agents inside larger systems.
What Makes a System Agentic?
An agent combines a model with a loop that observes a situation, selects an action, uses tools, and evaluates what happened. The model may provide flexible reasoning, but the surrounding application determines what the agent can see, what it can change, and when a human must intervene.
Four properties are especially useful:
- Autonomy: The system can complete a bounded sequence of actions without step-by-step human direction.
- Reactivity: It can update its behavior when tools, users, or the environment return new information.
- Goal direction: It selects actions in relation to an explicit objective and stopping condition.
- Coordination: It communicates with people, services, or other agents through defined interfaces.
These are design properties, not guarantees of intelligence or reliability.
Where Agents Can Help
Decision Support
Agents can gather information from several tools, organize evidence, and present options to a human decision-maker. The valuable output is not merely an answer; it is a traceable synthesis with assumptions and uncertainty made visible.
Workflow Automation
An agent can coordinate repetitive, multi-step tasks that are awkward to encode as a rigid script. This is most useful when the possible paths vary but the permissions and success criteria remain well defined.
Adaptive Interfaces
Agents can translate a user’s intent into calls to existing services. The underlying services should remain authoritative, while the agent acts as a flexible interface rather than an unrestricted source of truth.
Implementation Considerations
An agentic workflow should be designed as a controlled subsystem:
- Verification: Check important outputs against rules, tests, trusted data, or human review.
- Permission boundaries: Give each tool the minimum access required for its task.
- Fallback behavior: Define what happens when a model, tool, or external service fails.
- Observability: Record decisions, tool calls, errors, and outcomes in a form that can be audited.
- Evaluation: Test the complete workflow on representative failures, not only successful demonstrations.
Conclusion
AI agents can make software more flexible, but flexibility is only useful when the surrounding system remains understandable and controllable. The engineering challenge is therefore not to maximize autonomy. It is to decide where autonomy earns its place, constrain it accordingly, and preserve a reliable path back to conventional software and human judgment.