An agent is a system that perceives its environment, reasons about it, and acts. Unlike procedural workflows (fixed sequences), agents decide what action to take based on the current state. An LLM-based agent takes user input, reasons about what tool to call, executes the tool, and iterates until reaching a goal. Understanding the perception-decision-action loop is the foundation of agent architecture.
The Agent Loop
User Input
↓ [Perception] → Read environment, history, available tools ↓ [Reasoning] → LLM decides: "I should call tool X with args Y" ↓ [Action] → Execute tool, get result ↓ [Evaluation] → Check if goal is reached ↓ Loop until done
Agentic vs. Procedural Reasoning
Procedural: Fixed sequence of steps (deterministic).
Step 1: Get user input
Step 2: Call search API Step 3: Format results Step 4: Return
Agentic: Flexible, decision-driven.
Agent reasons: "User wants information about X. I should search for it."
Agent calls search. Agent examines results and decides: "I need more specific info. I'll refine the search." Agent calls search again with refined query. Agent formats and returns.
Agents handle variable, unpredictable tasks. Procedural workflows handle fixed, well-defined tasks.
Conclusion
Agents are autonomous systems that reason and act. The perception-decision-action loop is the core abstraction. Understanding when to use agents (complex, variable tasks) vs. procedural workflows (simple, fixed tasks) guides architecture decisions. Next: we'll explore specific agent patterns—ReAct, tool use, and prompt design.
