Active inference is the claim that perception, action, and learning are all one process. An agent perceives and acts so as to minimize surprise, the gap between what it senses and what its model of the world predicted. Over about two decades Karl Friston and others have stretched this one idea to cover the cortex, psychiatric symptoms, robot control, and reinforcement learning.
I think it is one of the most interesting ideas in neuroscience, and one of the hardest to actually learn. The papers run across twenty years and several fields that barely cite each other, the math is heavy, and most introductions assume you have already read the other introductions. I bounced off it a few times before it stuck. Awesome Active Inference is the reading list I wish someone had handed me at the start. It runs from textbooks and tutorials through the original free-energy papers, predictive coding, the discrete and continuous-time formulations, deep active inference, computational psychiatry, and the software libraries, in roughly the order I would read them now. There are two starting points at the top. Neuroscientists and machine-learning people need almost entirely different first papers, and the list says which.
The fastest way in for me was predictive coding, the idea that the cortex spends most of its effort predicting its own inputs and passing the errors upward. Rafal Bogacz’s 2017 tutorial writes this out as a small circuit you can actually simulate.
The other half is decision-making. In the discrete-state version an agent plans over a POMDP and trades off getting reward against getting information. Exploration drops out of the same quantity the agent is already minimizing. The continuous-time version connects to control theory and robotics. The same machinery serves as both a theory of what brains do and a recipe for building agents.
Like the Awesome Computational Primatology list, this is a public GitHub repo. If some paper, tutorial, lecture, or library is the thing that made active inference click for you, please add it.