Series: The Learn Arc — 50 posts teaching Active Inference through a live BEAM-native workbench. ← Part 21: Session 3.3. This is Part 22.
The session
Chapter 3, §4. Session title: What makes an agent active. Route: /learn/session/3/s4_what_makes_an_agent_active.
Chapter 3's final session synthesizes everything the chapter built. Session 3.1 gave you the equation. Session 3.2 split the columns. Session 3.3 added the softmax. Session 3.4 zooms back out and answers the question the whole chapter is named for: what separates an Active Inference agent from a passive Bayesian observer?
The one-sentence answer
An agent is active when it can change its future observations through action, and its policy distribution is chosen to minimize its own expected surprise.
Every word in that sentence earns its keep:
- "Change its future observations through action" — rules out passive observers. A retina is a Bayesian filter; an eye moving to look at something is an Active Inference agent.
- "Policy distribution" — not a single action, a distribution. The agent commits probabilistically, hedging against model error.
-
"Minimize its own expected surprise" — the agent doesn't need a reward signal from outside. It's self-evaluating against its own preference distribution
C.
That's the whole chapter.
The synthesis
The four ingredients from Chapters 2–3 assemble like this:
1. A generative model P(o, s | π) (Chapter 2)
2. Variational posterior Q(s, π) (Chapter 2)
3. Expected free energy G(π) (Chapter 3)
4. Policy selection Q(π) = softmax(−γG) (Chapter 3)
Four pieces. One agent. No reward function. No value network. No meta-controller. The whole thing closes under "minimize F with respect to different arguments." Section 3.4 makes this closure explicit.
What this buys the book
Chapter 4 onward is consequences. Specifically:
- Chapter 4 (Generative Models): what do these four pieces look like when you have to actually write them down? A, B, C, D matrices.
- Chapter 5 (Message Passing): how does biology implement this? Cortical columns as factor nodes, neuromodulators as precisions.
- Chapter 6 (Recipe): the six-question design template.
- Chapter 7 (Discrete Time): POMDPs + Dirichlet + hierarchy.
- Chapter 8 (Continuous Time): generalised coordinates.
- Chapter 9 (Model-Based Data Analysis): fitting these models to subject data.
- Chapter 10 (Unified Theory): where the framework bends.
Each chapter takes one piece of Chapter 3's synthesis and specializes it. Session 3.4 is the hinge.
The sophisticated counter-example
One recipe worth knowing before you leave Chapter 3: /cookbook/sophisticated-plan-vs-naive runs two agents side by side. One uses the default Plan action (Chapter 3's minimal G computation). One uses the SophisticatedPlanner from Chapter 7 (deep tree search over G). Same γ, same C, same world.
The difference: the sophisticated agent considers paths the naive agent never visits. Its expected G at the start of an episode is lower because it has looked further ahead. Session 3.4 doesn't teach sophisticated planning — that's Chapter 7 — but it flags the recipe as the natural next question: "if Active Inference is an agent that minimizes G, how deeply should it compute G?"
The honest answer is: as deep as the decision warrants. Chapter 7 gives you the tools.
Why Chapter 3 matters so much
Of all ten chapters, Chapter 3 is the one most people who hear about Active Inference know nothing about. They know "Bayesian perception" (Chapter 2) and "POMDPs with some exploration" (Chapter 7 light). They miss Chapter 3, which is the chapter that makes exploration mean something specific and testable.
If you only remember one Chapter from the book: remember 3. Everything else supports it.
The concepts this session surfaces
- Active — able to change future observations.
- Agent — minimizer over policy of expected surprise.
- Passive observer — Bayesian filter with no ability to shape observations.
- Closure — the four-piece recipe from Session 3.4's synthesis.
The quiz
Q: Which of the following is NOT an Active Inference agent?
- ☐ A robot that picks actions to reach a goal cell in a maze.
- ☐ A Kalman filter tracking a moving object. ✓
- ☐ A saccadic eye movement controller aiming the fovea.
- ☐ A language-model agent that chooses which tool to call.
Why: A Kalman filter is a passive observer — it updates beliefs from incoming data but has no policy selection over actions that shape what comes next. The other three are all Active Inference agents (the robot via B/C, the saccade via proprioception-driven C, the LLM-agent via tool-call action selection).
Run it yourself
-
/learn/session/3/s4_what_makes_an_agent_active— session page. -
/cookbook/sophisticated-plan-vs-naive— naive vs deep planning. -
/cookbook/sophisticated-plan-tree-search— deep planning alone. -
/cookbook/efe-decompose-epistemic-pragmatic— the full synthesis live. -
/guide/orchestrate— the ORCHESTRATE framework, which has a lot to say about "active" in a different sense (you).
The mental move
You now know what Active Inference agents are. Chapter 4 is where we figure out how to write one down concretely. A matrices. B matrices. C vectors. D vectors. And the two equations — 4.13 and 4.14 — that tell the agent what to do each tick.
Next
Part 23: Session §4.1 — States, observations, actions. Chapter 4's opening session. Back to the Chapter 6 design template — but earlier, when we're laying the groundwork. How to pick the three lists that define every Active Inference agent you'll ever build.
⭐ Repo: github.com/TMDLRG/TheORCHESTRATEActiveInferenceWorkbench · MIT license
📖 Active Inference, Parr, Pezzulo, Friston — MIT Press 2022, CC BY-NC-ND: mitpress.mit.edu/9780262045353/active-inference
← Part 21: Session 3.3 · Part 22: Session 3.4 (this post) · Part 23: Session 4.1 → coming soon

Top comments (0)