Model
Proposes decisions. It is a component, not the whole system.
Building, Controlling, and Scaling LLM Agents in Practice
Build the smallest possible agent. Run it. Break it deliberately. Then engineer the failure.
An agent is a software system in which a model participates in decisions that can affect an environment. Most of the field can be understood through five components.
Proposes decisions. It is a component, not the whole system.
The information selected and made visible for the current decision.
Capabilities whose consequences can change an external environment.
What persists: working state, memory, artifacts, checkpoints and experience.
What may happen, how execution proceeds, what resources are available, and when it stops.
The objective is not maximum autonomy. It is useful autonomy under appropriate control.
Start with one model call and progressively add abilities, reasoning, collaboration, reliability, and advanced autonomy.
Every experiment isolates a mechanism, creates a failure, and turns the failure into an engineering lesson.
Frameworks come later. First, make the control loop visible enough to reason about.
class Agent:
def run(self, goal):
messages = [goal]
for step in range(10):
decision = self.model(messages)
if decision.done:
return decision.answer
result = self.tools[
decision.tool
](**decision.arguments)
messages.append(result)
raise RuntimeError(
"Step limit reached"
)Download the complete 349-page PDF, including the cover, practical experiments, and the full journey from a model call to controlled autonomy.
You can still read Chapter 1 immediately.
59 executable experiments. One tiny agent kernel. No magic.