Foundations of Agentic Systems: Definitions, Taxonomies, and Design Principles
Foundations of Agentic Systems: Definitions, Taxonomies, and Design Principles
The conceptual hygiene of any engineering discipline is determined by the precision of its primitives. A practitioner who cannot distinguish a *deliberative* agent from a *learning* agent, or who cannot articulate why *observability* is non-negotiable for production agentic systems, will inevitably reproduce the architectural pathologies of the previous paradigm while believing they have invented a new one. This chapter establishes the formal vocabulary upon which every subsequent architectural argument in this book depends. The central question is deceptively simple: *what is an autonomous agent, and what unifying design principles govern the engineering of agentic systems across paradigms?* The answer is not a single definition but a layered one—a formal definition, a multi-dimensional taxonomy, a set of canonical properties, and a quartet of design tenets whose necessity transcends any particular implementation substrate.
1.1 Historical Continuity and Paradigmatic Rupture
The contemporary surge of interest in "agentic AI" risks obscuring an inconvenient truth: there is no paradigmatically novel problem in the design of autonomous systems, only a redistribution of which sub-problems are tractable given the available substrate. The lineage runs from the symbolic deliberation systems of the 1970s, through the subsumption and behavioral robotics of the 1980s, into the reinforcement learning revolution of the 1990s and 2010s, and finally into the LLM-driven agentic systems that have dominated discourse since 2023. Each transition has been marketed as a rupture; each has actually been a reweighting of concerns within a stable problem frame.
The symbolic tradition, exemplified by Shakey the robot and later by STRIPS planners, treated agency as theorem-proving under resource constraints. An agent was a system that, given a symbolic representation of the world, could mechanically derive a sequence of operators whose preconditions were satisfied and whose cumulative effects achieved a goal state. The architectural commitment was to a cleanly separable *reasoning* module and a thin *actuation* interface. The pathologies of this tradition are now well documented: brittleness in the face of perceptual noise, combinatorial explosion in plan search, and an inability to recover from representational gaps. Yet the *conceptual decomposition*—perception, reasoning, action, monitoring—survived intact in every subsequent paradigm because it captured something real about the topology of the problem.
The behavioral and reactive revolution, inaugurated by Rodney Brooks in 1986 with the subsumption architecture, inverted the priority. The thesis was that intelligence is an emergent property of layered, competence-building reactive controllers operating in continuous feedback with the environment, not a property of centralized symbolic reasoners. The implications were profound: agents should be designed from the bottom up, with increasing competence layered atop working systems rather than abstracted from working systems downward. The contribution to the modern vocabulary is the *reactive layer*—a vocabulary still in use when contemporary LLM-based agents are described as having "fast" reflex paths and "slow" deliberative paths. The cost of the reactive turn was an undercommitment to long-horizon planning and an impoverished treatment of communication between agents; multi-agent coordination in purely subsumption-based systems remained theoretically intractable for nearly a decade.
Reinforcement learning, particularly in its deep variants after 2013, reframed agency as policy optimization in a Markov decision process. The agent becomes a function approximator—initially a linear combination of features, later a convolutional or transformer network—that maps states or observations to actions under the pressure of a reward signal. This paradigm delivered the first decisive empirical victories in domains where the symbolic tradition had stagnated: Atari game play (Mnih et al., 2015), the game of Go (Silver et al., 2016), StarCraft II (Vinyals et al., 2019), and dexterous robotic manipulation (OpenAI et al., 2018, 2019). The architectural commitment was to end-to-end learning with minimal symbolic scaffolding; the pathologies were sample inefficiency, reward specification difficulty, and a near-complete opacity of the learned policy to human inspection.
The LLM-based agentic turn, beginning roughly in 2022 with systems like AutoGPT, BabyAGI, and later Devin, repositions the language model as a general-purpose reasoning engine whose role is to interpret goals, decompose them into subtasks, invoke tools, and reflect on intermediate outcomes. The substrate change is consequential—natural language is now the lingua franca for tool invocation and inter-agent communication—but the *architectural topology* is recognizably the same: perception (context retrieval), deliberation (chain-of-thought and reflection), action (tool use), and monitoring. The new paradigm inherits every design tenet of the symbolic and reactive traditions while inheriting their pathologies as well, particularly with respect to determinism, observability, and graceful degradation when the world fails to match the model's distribution.
This continuity is not merely academic. It implies that the design principles derived in this chapter are not contingent on the substrate in which they were first articulated. Composability was a concern for STRIPS plan operators; it remains a concern for LLM tool calls. Observability was a concern for early RL agents whose policies lived as opaque weight matrices; it remains a concern for transformer-based agents whose internal state is a high-dimensional residual stream. Anyone engineering agentic systems in 2024 who treats these principles as historical curiosities will rediscover them as production failures within months.
1.2 A Formal Definition of Agency
The literature offers at least three distinct definitions of "agent," each gesturing at a different cluster of properties. The loosest, due to Wooldridge and Jennings, defines an *agent* as any system situated in some environment that is capable of flexible autonomous action in order to meet its design objectives. The word "flexible" is doing extraordinary work here; in their 1995 paper, it decomposes into reactivity, proactiveness, and social ability, which we examine in section 1.4. The strictest definition, due to Russell and Norvig, ties agency explicitly to the notion of *rational action*: an agent is anything that perceives its environment through sensors and acts upon it through actuators, with the implicit requirement that its action selection can be understood as a rational response to its perceptions relative to some performance measure.
A definition useful for engineering must occupy the middle ground: precise enough to adjudicate contested cases, loose enough to encompass the diversity of contemporary implementations. We therefore adopt the following formalization, which extends the perception–action loop introduced by Wiener and formalized for AI by Albus.
Definition 1.1 (Agent). An *agent* $\mathcal{A}$ is a tuple $\langle \mathcal{S}, \mathcal{P}, \mathcal{A}, \mathcal{T}, \pi, \mathcal{U} \rangle$ where:
- $\mathcal{S}$ is the state space of the environment;
- $\mathcal{P}: \mathcal{S} \rightarrow \mathcal{O}$ is a perception function mapping environment states to observations in observation space $\mathcal{O}$;
- $\mathcal{A}$ is the set of actions the agent can execute, each corresponding to an interface the agent can invoke upon the environment or itself;
- $\mathcal{T}: \mathcal{S} \times \mathcal{A} \rightarrow \Delta(\mathcal{S})$ is the environment transition function, which we treat as stochastic in general;
- $\pi: \mathcal{H} \rightarrow \Delta(\mathcal{A})$ is the *policy* (or *decision function*),