What a framework provides
The core of any agent framework is a loop that calls the model, processes its response, executes any requested tool calls, and feeds results back into the next model call. Beyond that loop, frameworks typically provide tool registration (defining tools the model can call), memory management (retrieving relevant history for the context window), state persistence (saving execution state across sessions), and error handling (retries, fallbacks, escalations). Some frameworks add multi-agent orchestration, allowing agents to spawn sub-agents or pass tasks between specialized agents.
How frameworks differ
Frameworks vary along several dimensions. Some are minimal and code-first, providing primitives that developers assemble; others include higher-level abstractions that conceal the loop. Some are tightly coupled to a specific LLM provider; others are model-agnostic. Some optimize for single-agent simplicity; others are designed for complex multi-agent graphs. The right framework depends on task complexity, the team's engineering depth, and whether a high-level abstraction's reduced control is worth its development speed benefits.
When you might not need one
Many agent use cases are simple enough that a framework adds overhead without value. If a task requires one model call, a results-processing step, and a second model call, building that as plain code is faster to develop, easier to test, and easier to understand than importing a framework. Frameworks earn their cost when the task has more than a few steps, when multiple agents need to coordinate, or when the team needs built-in observability and retry logic rather than writing it themselves.