Part of World Models Handbook
Explains how options, symbolic STRIPS planning, language grounding, and multi-agent belief models structure long-horizon planning and where abstractions fail.
Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.
Article links
Make inline references clickable
Hierarchical, Symbolic, Language, and Multi-Agent Planning
Much of the planning machinery introduced so far in Part VII: Planning and Agency is easiest to present at the primitive-action level: torque commands, joint velocities, discrete moves, or token-level gestures. That representation becomes awkward when one task spans thousands of decisions. A robot retrieving a mug from a cabinet or negotiating a traffic merge needs feedback at the motor level, but its task planner should not enumerate every motor command. Long primitive rollouts also expose a learned world model to compounding error and states outside its training support.
The combinatorics are easy to see. If a task requires primitive timesteps and the agent has actions at each step, a naive full tree has leaves. Four moves over fifty steps already give action sequences. Heuristics, pruning, constraints, and replanning can avoid enumerating that tree. Temporal abstraction offers another lever: it can reduce the number of high-level decisions, and a carefully chosen skill library can keep the high-level branching factor manageable.
There is a second reason to avoid long primitive rollouts: model error compounds. A learned option-outcome model can replace many primitive predictions with one high-level prediction, but that helps only when its initiation states and outcomes are covered by training data or checked during execution. An option can itself traverse unfamiliar states, so hierarchy is not an automatic cure for distribution shift.
The practical move is to structure the problem. Skills can compress many primitive timesteps into one high-level choice. Symbols can discard continuous detail irrelevant to a task. Language can specify goals and constraints without requiring a user to write reward code. Models of other agents can expose strategic dependence that a single-agent transition model hides. These mechanisms change different dimensions of planning; only temporal abstraction directly shortens the decision horizon. Human-readable abstractions can also make plans easier to inspect and communicate, although learned latent skills need not be interpretable.
Abstraction is familiar elsewhere in computing. High-level programming languages let programmers express algorithms in functions and statements that compilers lower into machine instructions. Operating systems expose files and processes rather than disk sectors and page tables. Hierarchical planning applies the same separation of interfaces to decisions: a high-level controller selects a meaningful behavior while a lower-level controller handles its internal feedback.
This chapter develops four interfaces for that structure. Temporal abstraction uses options and skills. Symbolic abstraction maps task-relevant state into predicates and operators. Language grounding converts an instruction into a goal, constraint, reward, or plan sketch. Multi-agent planning represents joint actions, private information, and assumptions about other policies. They are related because each factorizes a planning problem, not because they share one compression formula.
The organizing question is therefore precise: what variable has been simplified, and what assumption makes the simplification valid? Options simplify decision time but rely on competent closed-loop skills. Predicates simplify state descriptions but rely on sound grounding and effects. Language simplifies task specification but relies on reference resolution and semantic alignment. Opponent or teammate models structure strategic uncertainty, but often enlarge rather than shrink the represented state. Each interface creates a distinct failure mode.
By the end of the chapter you will be able to:
- define an option as a temporally extended action with a policy, a termination condition, and an initiation set;
- write the semi-Markov decision process equations that make options composable with ordinary planners;
- build a symbolic abstraction from a continuous world model, including predicates, operators, and the STRIPS-style planning loop;
- condition a plan on a natural-language instruction by grounding it into a goal predicate or reward signal;
- reason about opponents and nested beliefs using the tools of game theory and recursive belief modeling;
- recognize when each abstraction fails and design evaluations that catch the failure.
We assume you have worked through Search and Belief-Space Planning, Policies Learned in Imagination, and Active Perception, Dual Control, and Exploration. This chapter reuses their state, belief, policy, and information notation while changing the structure of the decisions being planned.
Skills, options, and temporal abstraction
The single most important idea in this section is that a high-level decision can take time. In the primitive-action MDP formulation from Markov and Partially Observable Decision Processes, each decision epoch selects one primitive action . An MDP modeler could encode a macro as an action or augment state with a commitment variable, but the option formalism gives variable-duration closed-loop behavior an explicit interface.
If the agent selects “walk to the door,” the choice must carry both a low-level feedback policy and a rule for returning control. The option formalism supplies those pieces and leads to duration-aware value backups. The standard definition follows Sutton, Precup, and Singh (1999).
An option is a temporally extended action defined by a triple :
- is the initiation set, the states from which the option may be started.
- is a probability distribution over primitive actions for each state : a policy kernel. For discrete actions, its point probabilities lie in ; continuous-action densities need not.
- is the termination probability, the chance the option ends at each state.
An agent choosing option at state then follows until triggers, at which point it makes a fresh decision.
Each of the three components answers a different question, and it is worth separating them explicitly. The initiation set answers "when am I allowed to try this?" If the option is "grasp the cup," it makes no sense to start it when the cup is on the other side of the room, so the initiation set excludes those states. The policy answers "what do I actually do while the option is running?" This is the low-level controller, and it can be a hand-written script, a learned neural network, or a classical motion planner. The termination probability answers "when do I stop and reconsider?" A deterministic termination condition is the special case where is either zero or one at every state, which is what you get from a discrete detector such as "the fingers have closed around the cup."
An option is best thought of as a reusable subroutine. "Grasp the cup" is an option whose policy is a learned grasping controller and whose termination is a detector for the fingers closing around the cup. When the option's policy is stochastic, an outcome model must describe terminal state , duration , and cumulative reward. Once you have a small library of such models, a higher-level planner can treat each option as one decision while the option policy handles primitive feedback internally.
The subroutine analogy has a limit. A software subroutine has a specified interface, but its runtime can still depend on inputs and the execution environment. A physical option also evolves through stochastic state transitions, so both its terminal state and its duration can vary. The SMDP equations account for this variable duration explicitly.
Semi-Markov decision processes
Planning over variable-duration options gives a semi-Markov decision process (SMDP) at option decision epochs; one-step options recover the MDP special case. The distinguishing feature of an SMDP is that transitions can have variable duration. Let be the random number of primitive timesteps that option runs before terminating. For the normalized terminal-outcome models in this section, assume the selected option terminates almost surely. Otherwise, its finite-duration outcomes form a subprobability model and nontermination must be handled separately. Write for the options eligible to start at . Assume every nonterminal decision state has at least one eligible option; in the displayed backup, take the continuation maximum to be zero if the termination state is terminal. For an eligible , its value is the expected discounted return accumulated while it runs, plus the discounted value of the best eligible continuation option once it terminates:
where:
- : the state at which the option is initiated
- : the eligible option being evaluated (a temporally extended action with )
- : the random number of primitive timesteps the option runs before its termination condition triggers
- : the primitive timestep at which the option is initiated, so the option executes at primitive steps
- : the reward received at primitive timestep , while the option is executing
- : the index over primitive steps within the option, running from to
- : the discount factor applied to each primitive timestep
- : the discount applied to the value of the state where the option terminates, scaled by the option's random duration
- : the state at which the option terminates and control returns to the high-level planner
- : the continuation option selected at the termination state
- : the value of the best eligible option at a nonterminal termination state; the continuation term is zero at a terminal state
The outer expectation is taken over the two random quantities inside the option: the run length (how long the option keeps going before triggers) and the trajectory of states and rewards encountered while it runs. The expectation is taken under the option's own stochastic process, i.e., the distribution over induced by following from until triggers, not under the state distribution of the data or under the planner's prior. The sum accumulates the discounted per-step rewards for the primitive steps the option actually executes. The second term is the value of the best option available once the option has terminated, discounted by so that it is measured in units of the option's initiation time rather than the termination time. Concretely, the reward accrued at primitive step is discounted by because it occurs steps after the option is initiated, and the continuation value at is discounted by because the option ran for primitive steps before reaching that state.
The discount exponent is the key difference from a one-step Bellman backup. With the reward indexing above, the immediate reward has exponent zero and the continuation value is multiplied by because one primitive transition has elapsed. In an SMDP, each internal reward keeps its own offset , while the continuation value is multiplied by . For , with otherwise comparable internal rewards and the same positive continuation value, a slower option has a smaller continuation term and is less attractive. At , every positive-duration continuation term is zero, so duration creates no preference through that term. For , a negative common continuation value reverses the continuation-term preference; different intermediate rewards, costs, or terminal values can also reverse the overall preference.
The multiplier isolates the attenuation due to duration; it does not by itself determine the option's total return.
## Continuation-value discount gamma**tau as a function of option duration tau.
## Each curve uses a fixed discount factor from GAMMA_VALUES.
import numpy as np
GAMMA_VALUES = [0.90, 0.95, 0.99]
TAU_VALUES = np.arange(1, 26)
discount_curves = {g: g**TAU_VALUES for g in GAMMA_VALUES}
The same structure carries over to the state-value function. At a nonterminal state, define ; at a terminal state, set . The nonterminal optimality equation becomes
which has the shape of a Bellman optimality equation with a max over eligible options and a duration-aware return. Many dynamic-programming and temporal-difference methods have SMDP counterparts, but the backup must include cumulative option reward, duration, terminal state, and option eligibility. This is more than replacing a one-step transition matrix.
A useful sanity check is to ask what happens when the option library is trivial. Suppose every option is a single primitive action, so that the option's policy picks that action and the termination probability is one at every state. Then with probability one, the sum reduces to the single reward , the discount becomes , and the SMDP equation collapses exactly onto the ordinary MDP Bellman equation. The SMDP is therefore a strict generalization: it contains the MDP as the special case where every option is one-step. This containment is the reason we can mix primitive actions and options freely inside a single planner, using primitive actions where fine control matters and options everywhere else.
Planning over options can use dynamic programming on the SMDP. A learned primitive-step model can estimate an option outcome by rolling its closed-loop policy forward, while an option-level model can predict cumulative reward, duration, and terminal state directly. Either route avoids additional real-environment interaction, but neither is free: primitive rollouts accumulate model error and computation, while option-level models introduce their own abstraction and coverage errors.
The equation assumes call-and-return execution: once selected, an option runs until terminates it. The initiation set controls where an option may start; it does not interrupt an active option. Mid-option reconsideration therefore requires a modified termination rule or a separate polling/interruption mechanism. Termination and interruption rules are design choices because they determine when control returns to the high-level planner.
For model-based planning, define the discounted cumulative option reward and model the joint outcome . The state-duration marginal obeys the product rule
The conditioning on matters because terminal state and duration are usually dependent. Summing over gives the terminal-state marginal, but discarding duration loses the exponent needed for . Many value-estimation algorithms admit option-level variants built from this SMDP outcome model; sampling-based planners can likewise search over option outcomes.
The joint model also preserves correlations among reward, duration, and terminal state. A slow option might accrue more reward or reach a better state, so an expected duration and a marginal terminal distribution are not generally enough to reconstruct its value.
Where options come from
There are three practical ways to obtain options, and each teaches a different lesson about world models.
Hand-designed. A human specifies a controller such as pick, place, follow-path, or grip. Hand design can improve inspectability and make intended behavior easier to validate, but it does not guarantee correctness under perception error, implementation bugs, or unmodeled dynamics. Its coverage is limited to the skills and conditions the engineer anticipated.
Discovered from data. Option discovery asks which temporal chunks recur or provide useful control. One family of methods identifies graph bottlenecks: narrow gateways through which many trajectories between regions pass. Another seeks branching or high-control states from which many futures are reachable. These notions are related but not identical. Task-relevant bottlenecks and decision points are useful termination candidates, not a universal rule for where every option should end.
Learned jointly with a high-level policy. One active approach learns skills, termination rules, and the high-level selector together, sometimes using diversity or information objectives. The resulting skills can be useful without corresponding to human concepts, which makes them harder to inspect. This is distinct from the Dreamer family: Dreamer learns latent dynamics and a policy through imagination, but its standard formulation is not an option hierarchy with initiation and termination rules.
Whichever route you take, the planner needs an outcome model for each option: eligibility, cumulative reward, duration, and terminal state. A primitive-step world model can simulate the option policy, while an efficient high-level system may learn or cache an option-level model. The latter changes the model interface and must be validated on the option's execution distribution.
The abstraction tradeoff
Options shrink the number of high-level decisions but restrict when the high-level policy can switch. The intra-option policy remains closed-loop and may adapt at every primitive step. Under call-and-return execution, however, a different option cannot be selected until termination unless an explicit interruption mechanism is available.
The design tension is: longer options compress more decision epochs but postpone high-level reselection. Reaching, grasping, moving between waypoints, and opening a door are plausible task units. Their boundaries may align with useful symbols, although temporal skills and state abstractions capture different aspects of task structure.
For a deliberately crude full-tree comparison, suppose the primitive horizon is and each selected option lasts steps on average. An option tree then has about leaves rather than . Under these assumptions the option tree is smaller exactly when . Real planners add pruning, state merging, stochastic durations, failures, and unequal option costs; the calculation isolates only branching and depth.
This relationship between horizon and branching factor is easiest to grasp as a pair of growth curves. On a log scale, the primitive cost climbs steeply with horizon while the option cost climbs at a rate set by the mean option duration.
## Search-cost comparison at equal primitive horizon: naive primitives vs options.
## A_SIZE and OMEGA_SIZE are the branching factors |A| and |Omega|; TAU_BAR is
## the mean option duration used to divide the primitive horizon T.
A_SIZE = 4 # number of primitive actions
OMEGA_SIZE = 8 # number of options in the library
TAU_BAR = 5.0 # mean option duration in primitive steps
HORIZONS = np.arange(1, 41) # primitive horizon T, in steps
primitive_log10 = HORIZONS * np.log10(A_SIZE)
hierarchical_log10 = (HORIZONS / TAU_BAR) * np.log10(OMEGA_SIZE)
Two useful design tests are whether high-level replanning is valuable at a boundary and whether the abstract state predicts rewards and future abstract states well enough for the next decision. A doorway may satisfy both in one domain and neither in another. Approximate Markov sufficiency and graph bottlenecks are therefore criteria to test, not consequences of using options.
Symbolic abstractions and task planning
Options let us plan over long horizons, but they do not tell us which option to pick. For that, we need a higher-level representation of what is true in the world and what each option can change. That is exactly what symbolic abstraction provides.
The idea is to project continuous state onto Boolean or discrete predicates. For a fixed object set and finite grounded vocabulary, a predicate such as is either present or absent from a symbolic state. An option can then be represented by an operator with preconditions and effects. This supports graph search over grounded states and classical planning formalisms such as STRIPS.
The projection removes continuous detail from symbolic search, but it does not guarantee a small problem: Boolean ground atoms admit up to valuations, and grounding more objects can create many atoms. What it buys is a task-specific state description whose transitions can be searched discretely. What it gives up is resolution and often geometry, so the abstraction must preserve the distinctions needed for feasibility and reward.
Predicates, operators, and the STRIPS loop
A STRIPS-style operator defines when a symbolic action applies and how it changes the state. Formally, it takes the form
where:
- : the precondition set, i.e., the predicates that must all be true in the current symbolic state for the operator to be applicable
- : the add set, the predicates that become true after the operator is applied
- : the delete set, the predicates that become false after the operator is applied
The operator applies if all predicates in are true, and produces a new state where the predicates in become true and the predicates in become false:
where:
- : the current symbolic state, represented as a set of predicates that are true
- : the precondition set, which must be a subset of for the operator to be applicable
- : the predicates the operator turns on
- : the predicates the operator turns off
- : the symbolic state after the operator is applied, i.e., the original state with the delete set removed and the add set inserted
Classical planners search over sequences of operators that take an initial symbolic state to a goal state. The search operates over symbolic states, i.e., sets of predicates, and each operator application must satisfy in the current state before the update is applied.
Two assumptions are easy to conflate. Under a closed-world state representation, unlisted ground facts are treated as false. Under STRIPS persistence semantics, facts not mentioned in an applicable operator's add or delete effects retain their truth values. Exogenous events violate the modeled persistence rule: if a cup falls while no operator records the change, the symbolic state becomes stale.
The interesting question for us is not how STRIPS works in the abstract, which is a well-covered topic in classical planning literature, but how the symbols relate to the world model. Specifically:
- Predicates are grounded in observations or latent state. Object-centric representations can provide inputs for learning task-specific relations such as
on(x, y)orholding(x), but slots do not automatically supply calibrated predicates. - Operators summarize option effects. Rolling an option through a model can estimate its predicate-level outcomes. This is one neuro-symbolic planning pattern, alongside hand-authored operators and integrated geometric checks.
- Goals come from the task specification. In the basic STRIPS setting used here, a goal is a conjunction of ground predicates. Richer planning languages also support numeric, quantified, disjunctive, and temporal goals.
Layering can decouple symbolic search from continuous evaluation. A fully compiled symbolic model may avoid low-level simulation during search. Integrated task-and-motion or model-validated planners instead query geometry or learned dynamics while constructing candidate plans. Either design can extend the useful planning horizon, but physical validity still depends on grounding, operator models, and execution monitoring.
The interface must answer at least two questions: which predicates hold now, and what predicate-level outcomes can an option produce? Reliable answers are necessary but not sufficient. Planner correctness also depends on complete goals, applicable operators, exogenous-event assumptions, resource limits, and monitoring. A symbolic plan can therefore be internally valid yet physically infeasible.
Grounding and the symbol grounding problem
A practical failure mode is that grounded predicates may be wrong or stale. If a detector says on(cup, table) after the cup has fallen, subsequent search starts from a false state. This reliability problem is related to, but narrower than, Harnad's symbol grounding problem, which asks how symbols acquire semantic content from nonsymbolic representations. Several engineering responses help:
- Re-check preconditions before acting. Before executing an option, verify its preconditions still hold. If not, replan.
- Interleave symbolic and continuous reasoning. Instead of planning symbolically once and executing blindly, alternate a symbolic plan step with a short continuous rollout that validates it. This is one interleaved task-and-motion or model-validated planning pattern.
- Train predicates and effects for feasibility. Joint objectives can favor features predictive of feasible actions, but that property must be included and evaluated explicitly.
- Let symbolic planners propose and continuous planners dispose. The symbolic plan is a sketch; the continuous planner fills in the details.
These remedies treat a symbolic plan as a hypothesis rather than a fact. Rechecking high-risk or changeable preconditions is often worth the sensing cost, but monitoring can itself be expensive, delayed, or occluded. Its frequency should reflect uncertainty and consequence. In noisy physical domains, recovery matters because perfectly reliable learned predicates are generally unrealistic.
Symbolic planning also omits continuous parameters. Task-and-motion planning (TAMP) combines discrete operator choices with continuous state, geometry, and motion constraints. A simple decomposition proposes an operator skeleton and solves for continuous parameters and states :
where:
- : the continuous state after operator
- : continuous parameters such as a grasp or target pose
- : admissible state-parameter pairs whose resulting motion satisfies collision, kinematic, and dynamic constraints
- : the continuous transition or trajectory endpoint induced by
- : applicability, including relevant geometric conditions
- : the terminal goal constraint
- : execution cost over the feasible state-parameter choices
A skeleton-first solver fixes the operator order while solving continuous feasibility. Integrated TAMP methods interleave these searches and revise the skeleton when geometry fails; Garrett et al. (2021) survey these designs. We will not implement a full TAMP solver here.
The transition and precondition constraints couple consecutive operators: the state produced by one parameterized motion must make the next operator applicable. The feasible-set constraint separately rules out motions that violate collision, kinematic, or dynamic limits even when their endpoints satisfy symbolic predicates. Initial applicability and the terminal goal are separate constraints, which avoids the undefined that a shorthand “next precondition” would create.
Language-conditioned goals and plans
If symbols ground plans, language specifies them. "Put the red mug on the top shelf" is a natural-language instruction that a symbolic planner can translate directly into a goal state: on(red_mug, top_shelf). The instruction does not say how to do it (that is the planner's job), but it does say what "done" means. Language-conditioned planning turns natural-language instructions into executable plans by grounding the instruction into predicates, rewards, or constraints that the planner can optimize.
Language is a useful planning interface because it can name objects, relations, preferences, and orderings. The mapping is not syntactic substitution: reference resolution, context, missing concepts, and ambiguity all matter. A phrase such as “the red mug” must first identify an entity represented by the system before a goal such as on(red_mug, top_shelf) is meaningful.
There are three regimes worth distinguishing.
Instruction as goal. The simplest regime: the instruction names a target state, and the planner finds a path there. "Go to the kitchen" translates to agent_at(kitchen). The instruction acts as a goal specification channel: the target predicate becomes the goal, and the planner uses the same world model and search machinery it would use for any other goal-conditioned problem. The plan it produces is only as good as the grounding, so a wrong predicate yields a wrong plan even when the planner is correct. Because the world model is the same one you would use for any other goal, the machinery is nearly identical to what we built in Search and Belief-Space Planning.
Instruction as procedure. The instruction gives intermediate steps, ordering, or constraints. “First heat the pan, then add oil, then add the eggs” is a totally ordered procedure; a partially ordered example could allow whisking the eggs while the pan heats, then require both to finish before cooking. The planner fills in missing details and checks feasibility. A supplied order can reduce search, but it can also exclude a necessary alternative.
Instruction as reward. A third regime: the instruction defines a preference, not a hard constraint. "Tidy the room" does not specify a particular arrangement; it describes a family of acceptable outcomes. In this regime the instruction can be compiled into a reward or cost function, and planning proceeds as ordinary reward maximization. This is the regime most relevant to language-conditioned RL and to the reward-from-language literature. A common instantiation treats the instruction as defining a reward that depends on the instruction , so that the induced objective is the expected return
where:
- : the policy being optimized, mapping states to distributions over actions
- : the natural-language instruction that conditions the reward
- : the instruction-conditioned reward at timestep
- : the discount factor
- : the expected discounted return of policy under instruction
Maximizing this objective yields an instruction-conditioned policy. Rolling that policy out from a particular initial state produces a trajectory; computing a contingent or open-loop plan requires the corresponding planning procedure.
These interfaces trade specificity and flexibility in different ways; none is uniformly more expressive without fixing the goal, procedure, and reward languages. A procedure can constrain action order more than a goal, while a reward can encode graded preferences yet leave behavior under-specified. The right interface depends on which parts of the task the instruction states reliably and which parts the planner should infer.
Grounding language to state
For the goal-predicate regime, let be the vocabulary of atomic grounded predicates. A grounding function maps an instruction and state or observation context to a desired goal set :
where:
- : the space of instructions (natural-language strings or token sequences)
- : the state space of the world model (continuous or latent)
- : the atomic grounded-predicate vocabulary
- : the specific instruction being grounded
- : the specific state the instruction is being grounded against
A common supervised approach fits a probabilistic grounder to paired instructions, contexts, and goal sets. With data distribution , maximum conditional likelihood gives
Here is the whole target set, so is a per-example negative log likelihood. A multilabel Bernoulli model is one implementation; contrastive and pretrained-model approaches are also possible. Reward, constraint, and procedure grounding use different output types rather than pretending they are predicate sets. Even with a useful world-state representation, grounding may require relational reasoning, reference resolution, and uncertainty estimation.
A useful first stage is referent selection: given an instruction and an observation, identify candidate objects and relations. Object-centric representations can supply candidate entities, but slots may not align with names, attributes, events, affordances, or sets. Grounding remains a modeling problem rather than a lookup.
If a fixed world representation and action interface do not encode a referred concept, language-only scaling cannot reliably ground or execute it. Joint representation learning, new perception, tools, or external memory can change that interface, so the limitation belongs to the fixed system rather than to language in general.
Plans as sentences
One family of systems uses a language model to propose high-level skills, then scores proposals with affordance or value models, simulators, or environmental feedback. SayCan combines language scores with learned skill affordances; Inner Monologue conditions replanning on feedback. These scoring components are fallible models, not correctness certificates. The analogy to neural MCTS is limited: a policy prior guides exploration and a value model estimates leaves; neither automatically verifies feasibility.
Proposal and checking separate candidate coverage from candidate evaluation. Reliability depends on both: the proposer must include a workable candidate, and the scorer must be calibrated on that candidate's state-action distribution. Model error, missing constraints, and distribution shift can still admit an infeasible plan.
In the fixed-library architecture developed here, language specifies objectives and helps compose existing skills. It cannot create a missing actuator or low-level controller. It can still improve task decomposition, parameterization, tool selection, and plan quality within those physical limits.
If a robot has no controller or tool for opening a drawer, a clearer instruction does not supply the missing physical capability. Better language reasoning can nevertheless choose and compose available skills more effectively, so grounding quality and skill coverage should be evaluated separately.
Coordination, opponents, and nested beliefs
Other agents introduce joint actions, private information, and strategic dependence. A Markov game's transition kernel can remain stationary when all policies are fixed. From one independent learner's perspective, however, the induced dynamics become nonstationary when teammates or opponents update their policies. Explicit opponent modeling is useful when adaptation to particular agents matters, but robust policies, self-play, population training, and centralized planning need not expose an opponent model as a named state variable.
Multi-agent as a game
A fully observed multi-agent decision problem can be written as a stochastic (Markov) game, introduced by Shapley (1953) and adopted as a multi-agent reinforcement-learning framework by Littman (1994):
where:
- : the shared state space of the environment
- : the action space of agent , with the number of agents
- : the transition kernel, which depends on the joint action of all agents
- : the reward function for agent
- : the discount factor shared by all agents
Each action may affect the shared transition and other agents' outcomes. When , the tuple reduces to an MDP. Under partial observability, agent receives observation and conditions its policy on a local history rather than on the shared state. A decentralized planner must therefore reason about joint behavior without assuming that every actor sees the same information.
The value of one action can depend on what others do and on what they believe about the focal agent. Rock-paper-scissors provides a minimal warning: against an adaptive opponent, a deterministic policy is exploitable, while the equilibrium mixed strategy randomizes uniformly.
The standard tools for reasoning in these settings include:
- Nash equilibrium, where no agent can improve by a unilateral deviation, for strategic interactions generally Nash (1951);
- subgame-perfect equilibrium for extensive-form games, requiring a Nash equilibrium in every proper subgame;
- level- or cognitive-hierarchy reasoning, where level 0 is a specified nonstrategic baseline and higher levels respond to lower levels Camerer, Ho, and Chong (2004);
- Opponent modeling as a supervised learning problem: predict the opponent's action given the history.
These tools encode different assumptions. The Nash definition is mutual best response; using it as a behavioral prediction can additionally require strong rationality and information assumptions. Subgame perfection rules out non-credible behavior in proper subgames, while imperfect-information settings often need refinements defined at information sets. Level- models can fit bounded reasoning in some laboratory games, but their advantage is context dependent. Learned opponent models avoid an equilibrium requirement, yet still assume a policy class, stationarity window, and training distribution.
Theory of mind and nested beliefs
The recursive structure of “what I think you think” can be represented with interactive beliefs. For focal agent , let denote a chosen class of depth- models of the other agents. A depth- belief has type
where denotes probability distributions over . A base type in is a specified behavioral model; it need not be uniform. At the next depth, a type may itself contain a belief about physical state and lower-depth models. This typed construction follows the interactive-state view of Gmytrasiewicz and Doshi (2005). It has no general dimension formula. A factorized implementation may store summaries with parameters each, but correlated types, histories, and deeper model classes can grow much faster.
Bounding depth is one approximation. Another shares parameters across agents or keeps only a small population of opponent types. The approximation must state what one node represents, which agents can appear next, and whether repeated identities are allowed.
The following count makes one deliberately uncompressed approximation concrete. In a toy tree where each modeled agent branches to every other agent identity, each additional depth multiplies the node count by . This is an illustration, not a general complexity law.
## Illustrative count for one focal agent in a full tree of distinct-other models.
import numpy as np
N_AGENTS = 3
DEPTHS = np.arange(0, 7)
BRANCHING = N_AGENTS - 1
belief_terms = BRANCHING**DEPTHS
A message such as “I will go left” is an observation, not automatically a commitment. In an aligned protocol with reliable semantics and incentives, it can reduce uncertainty about the sender's intended policy. Under deception, ambiguity, execution noise, or conflicting incentives, nested uncertainty remains. Communication is valuable when it is informative and credible, not because it universally collapses strategic reasoning.
The following two-action coordination problem makes that dependence concrete. Carrying yields value 4 only if the partner also carries; inspecting independently yields value 2. A message changes the focal agent's belief about the partner, and therefore its best response, but the computation treats the message as probabilistic evidence rather than a binding promise.
prior_partner_carries = 0.40
p_message_given_carry = 0.90
p_message_given_inspect = 0.20
posterior_partner_carries = (
p_message_given_carry
* prior_partner_carries
/ (
p_message_given_carry * prior_partner_carries
+ p_message_given_inspect * (1 - prior_partner_carries)
)
)
def coordination_values(prob_partner_carries):
return {"carry": 4.0 * prob_partner_carries, "inspect": 2.0}
before_message = coordination_values(prior_partner_carries)
after_message = coordination_values(posterior_partner_carries)
print(f"Prior P(partner carries): {prior_partner_carries:.2f}")
print(
f"Best response before message: {max(before_message, key=before_message.get)}"
)
print(f"Posterior after message: {posterior_partner_carries:.2f}")
print(
f"Best response after message: {max(after_message, key=after_message.get)}"
)Prior P(partner carries): 0.40 Best response before message: inspect Posterior after message: 0.75 Best response after message: carry
The switch occurs because the posterior exceeds the threshold , where . Different likelihoods or incentives can leave the best response unchanged. This tiny example does not solve decentralized planning; it shows how a communication observation enters a belief-dependent action choice.
Cooperative and adversarial settings
The dynamics of coordination depend sharply on whether other agents are cooperative, adversarial, or indifferent:
- Fully cooperative. Agents share a reward, but decentralized execution remains difficult when observations differ. Centralized training with decentralized execution (CTDE) is one widely used research pattern when joint information is available during training.
- Two-player zero-sum. Rewards satisfy ; finite games have a minimax value. Constant-sum games can be normalized to this form.
- Mixed-motive. Agents' interests partially overlap. Many real coordination and negotiation problems are mixed-motive: two companies negotiating a deal, two robots sharing a corridor, two nations managing a border. Nash equilibrium is a central solution concept, but there can be multiple equilibria with very different welfare properties, so which one gets selected becomes a first-order design question.
In mixed-motive settings, equilibria can have different welfare properties and equilibrium selection matters. Exact solution becomes intractable in many large or partially observable formulations, though complexity depends on the game class, representation, horizon, and solution concept. Practical methods exploit structure, self-play, approximation, or learned models rather than applying one universal recipe.
In CTDE, a centralized critic can condition on joint information during training while decentralized actors use local observations at execution. This can improve credit assignment and reduce apparent nonstationarity, as in Lowe et al. (2017). It does not guarantee equilibrium selection, communication, robustness, or coordination under distribution shift.
For world models, the requirement is to account for other agents' behavior. A model may represent policies, types, and beliefs explicitly, or encode them implicitly in a history-dependent latent state. Either way, evaluation should separate prediction under fixed co-player policies from adaptation after those policies change.
Worked example: options with explicit initiation and failure
The gridworld below has a start, a key, a locked door, and a goal. The state includes position, key possession, and door status. Navigation, unlocking, and goal-reaching are separate options with explicit initiation predicates and structured results. The example is deterministic and illustrative; it compares decision granularity, not runtime or sample efficiency.
from collections import deque
from dataclasses import dataclass
import numpy as np
GRID = np.array(
[
[0, 0, 0, 1, 0, 0],
[0, 1, 0, 1, 0, 1],
[0, 1, 2, 1, 0, 0],
[0, 0, 0, 0, 3, 0],
[1, 1, 1, 1, 0, 0],
[0, 0, 0, 0, 4, 0],
]
)
START = (0, 0)
KEY = tuple(map(int, np.argwhere(GRID == 2)[0]))
DOOR = tuple(map(int, np.argwhere(GRID == 3)[0]))
DOOR_APPROACH = (DOOR[0], DOOR[1] - 1)
GOAL = tuple(map(int, np.argwhere(GRID == 4)[0]))
MOVES = [(-1, 0), (1, 0), (0, -1), (0, 1)]
@dataclass(frozen=True)
class EnvState:
cell: tuple
has_key: bool
door_open: bool
@dataclass(frozen=True)
class OptionResult:
state: EnvState
cells: tuple
steps: int
succeeded: bool
reason: str
def step(state, action):
"""Apply a movement or unlock action and return the next environment state."""
if action == "unlock":
if state.cell != DOOR_APPROACH or not state.has_key:
return state
return EnvState(state.cell, True, True)
dr, dc = action
nr, nc = state.cell[0] + dr, state.cell[1] + dc
if not (0 <= nr < GRID.shape[0] and 0 <= nc < GRID.shape[1]):
return state
if GRID[nr, nc] == 1 or ((nr, nc) == DOOR and not state.door_open):
return state
cell = (int(nr), int(nc))
return EnvState(cell, state.has_key or cell == KEY, state.door_open)The unlock action changes door_open; merely holding the key no longer changes the door dynamics implicitly. Navigation policies are shortest-path tables computed for either a closed or open door.
def bfs_policy(target, door_open):
"""Map each reachable cell to one shortest-path movement toward target."""
frontier = deque([target])
distance = {target: 0}
action_from = {}
while frontier:
cell = frontier.popleft()
for action in MOVES:
nr, nc = cell[0] - action[0], cell[1] - action[1]
previous = (nr, nc)
if not (0 <= nr < GRID.shape[0] and 0 <= nc < GRID.shape[1]):
continue
if GRID[nr, nc] == 1 or (previous == DOOR and not door_open):
continue
if previous in distance:
continue
distance[previous] = distance[cell] + 1
action_from[previous] = action
frontier.append(previous)
return action_from
NAV_POLICIES = {
"go_to_key": (KEY, bfs_policy(KEY, door_open=False)),
"go_to_door": (DOOR_APPROACH, bfs_policy(DOOR_APPROACH, door_open=False)),
"go_to_goal": (GOAL, bfs_policy(GOAL, door_open=True)),
}
def option_is_initiable(name, state):
if name == "go_to_key":
return not state.has_key and state.cell in NAV_POLICIES[name][1]
if name == "go_to_door":
return (
state.has_key
and not state.door_open
and state.cell in NAV_POLICIES[name][1]
)
if name == "unlock_door":
return (
state.has_key
and not state.door_open
and state.cell == DOOR_APPROACH
)
if name == "go_to_goal":
return (
state.has_key
and state.door_open
and state.cell in NAV_POLICIES[name][1]
)
return False
def run_option(name, state, step_cap=64):
if not option_is_initiable(name, state):
return OptionResult(
state, (state.cell,), 0, False, "initiation condition failed"
)
if name == "unlock_door":
next_state = step(state, "unlock")
return OptionResult(
next_state,
(state.cell,),
1,
next_state.door_open,
"terminated" if next_state.door_open else "unlock failed",
)
target, policy = NAV_POLICIES[name]
cells = [state.cell]
for used in range(1, step_cap + 1):
if state.cell == target:
return OptionResult(
state, tuple(cells), used - 1, True, "terminated"
)
action = policy.get(state.cell)
if action is None:
return OptionResult(
state, tuple(cells), used - 1, False, "no policy action"
)
next_state = step(state, action)
if next_state.cell == state.cell:
return OptionResult(
state, tuple(cells), used, False, "blocked transition"
)
state = next_state
cells.append(state.cell)
if state.cell == target:
return OptionResult(state, tuple(cells), used, True, "terminated")
return OptionResult(
state, tuple(cells), step_cap, False, "step cap exhausted"
)
def execute_option_sequence(names, initial):
state = initial
trajectory = [state.cell]
total_steps = 0
log = []
for name in names:
result = run_option(name, state)
log.append((name, result.succeeded, result.reason, result.steps))
state = result.state
trajectory.extend(result.cells[1:])
total_steps += result.steps
if not result.succeeded:
return state, trajectory, total_steps, log
return state, trajectory, total_steps, logFirst execute a hand-specified sequence. This demonstrates option semantics; it is not yet a high-level planner.
Manual option sequence succeeded: True Primitive timesteps: 10 Option calls: 4 Observed mean option duration: 2.50
The ratio is exactly the sample mean duration of the four option calls in this run. It estimates only across representative repeated executions. A larger task increases compression only if its selected options span longer useful behaviors; horizon alone does not force the ratio upward. The injected-wall check above confirms that a failed option returns its reached state, visited cells, and attempted step count; it restores the map before the successful trajectory is plotted.

Worked example: symbolic planning bound to options
Now the symbolic layer will choose the sequence. A single abstraction function maps an environment state into mutually exclusive location predicates plus key and door facts. Every symbolic operator has an option with matching initiation and effects.
def abstract_state(state):
if state.cell == START:
location = "at_start"
elif state.cell == KEY:
location = "at_key"
elif state.cell == DOOR_APPROACH:
location = "at_door_approach"
elif state.cell == GOAL:
location = "at_goal"
else:
raise ValueError(f"No symbolic location for {state.cell}")
return frozenset(
{
location,
"has_key" if state.has_key else "no_key",
"door_open" if state.door_open else "door_closed",
}
)
OPERATORS = [
(
"navigate_to_key",
frozenset({"at_start", "no_key", "door_closed"}),
frozenset({"at_key", "has_key"}),
frozenset({"at_start", "no_key"}),
),
(
"navigate_to_door",
frozenset({"at_key", "has_key", "door_closed"}),
frozenset({"at_door_approach"}),
frozenset({"at_key"}),
),
(
"unlock_door",
frozenset({"at_door_approach", "has_key", "door_closed"}),
frozenset({"door_open"}),
frozenset({"door_closed"}),
),
(
"navigate_to_goal",
frozenset({"at_door_approach", "has_key", "door_open"}),
frozenset({"at_goal"}),
frozenset({"at_door_approach"}),
),
]
OP_BY_NAME = {op[0]: op for op in OPERATORS}
OPERATOR_TO_OPTION = {
"navigate_to_key": "go_to_key",
"navigate_to_door": "go_to_door",
"unlock_door": "unlock_door",
"navigate_to_goal": "go_to_goal",
}
GOAL_PREDS = frozenset({"at_goal", "has_key", "door_open"})
def applicable(state, op):
return op[1].issubset(state)
def apply(state, op):
return frozenset((state - op[3]) | op[2])
def plan(initial, goal, operators, max_depth=8):
queue = deque([(initial, [])])
seen = {initial}
while queue:
state, sequence = queue.popleft()
if goal.issubset(state):
return sequence
if len(sequence) >= max_depth:
continue
for op in operators:
if applicable(state, op):
next_state = apply(state, op)
if next_state not in seen:
seen.add(next_state)
queue.append((next_state, sequence + [op[0]]))
return None
def execute_symbolic_plan(operator_names, initial):
env_state = initial
symbolic = abstract_state(env_state)
trajectory = [env_state.cell]
execution_log = []
for op_name in operator_names:
op = OP_BY_NAME[op_name]
if not applicable(symbolic, op):
raise RuntimeError(f"Symbolic precondition failed for {op_name}")
result = run_option(OPERATOR_TO_OPTION[op_name], env_state)
if not result.succeeded:
raise RuntimeError(f"Option failed for {op_name}: {result.reason}")
predicted_symbolic = apply(symbolic, op)
actual_symbolic = abstract_state(result.state)
if predicted_symbolic != actual_symbolic:
raise RuntimeError(f"Effect mismatch for {op_name}")
env_state, symbolic = result.state, actual_symbolic
trajectory.extend(result.cells[1:])
execution_log.append((op_name, result.steps))
return env_state, symbolic, trajectory, execution_logInitial symbolic state: ['at_start', 'door_closed', 'no_key']
Plan selected by symbolic BFS: ['navigate_to_key', 'navigate_to_door', 'unlock_door', 'navigate_to_goal']
Operator-to-option execution: [('navigate_to_key', 4), ('navigate_to_door', 2), ('unlock_door', 1), ('navigate_to_goal', 3)]
Physical execution succeeded: TrueThe planner sees predicates and operators, not coordinates. The executor then checks each precondition, dispatches the bound option, and compares predicted effects with the abstraction of the resulting environment state. Symbolic search remains independent of grid geometry only while the grounded operator set is fixed and valid; a new map can change option feasibility or grounding cost even if the abstract sequence remains reusable.
Worked example: language-conditioned goals
The final layer maps a small set of instructions to goal predicates. This hand-written grounder accepts a state argument for the interface but does not use it to choose a goal; its accepted mappings are context-insensitive. It requires the relevant object token and rejects negation rather than silently reversing its meaning.
def ground_instruction(text, state):
"""Map fixed token patterns to goals; state appears only in error text."""
punctuation = str.maketrans("", "", ".,!?;:")
tokens = set(text.lower().translate(punctuation).split())
if tokens & {"not", "never", "don't", "dont"}:
raise ValueError("Negated instructions are outside this toy grammar.")
if {"key", "goal"}.issubset(tokens) and tokens & {"get", "reach"}:
return frozenset({"has_key", "at_goal"})
if "key" in tokens and tokens & {"get", "take"}:
return frozenset({"has_key"})
if "door" in tokens and tokens & {"unlock", "open"}:
return frozenset({"door_open"})
if "goal" in tokens and tokens & {"reach", "go"}:
return frozenset({"at_goal"})
raise ValueError(f"Could not ground instruction in state {state}: {text!r}")
INSTRUCTIONS = [
"Get the key.",
"Unlock the door.",
"Reach the goal.",
"Get the key, then reach the goal.",
]
grounded_goals = {
text: ground_instruction(text, INITIAL_ENV) for text in INSTRUCTIONS
}
rejected = []
for text in ["Open the window.", "Unlock the phone.", "Do not open the door."]:
try:
ground_instruction(text, INITIAL_ENV)
except ValueError:
rejected.append(text)
assert len(rejected) == 3
assert ground_instruction("Get the key.", INITIAL_ENV) == ground_instruction(
"Get the key.", manual_final
)'Get the key.' -> ['has_key'] 'Unlock the door.' -> ['door_open'] 'Reach the goal.' -> ['at_goal'] 'Get the key, then reach the goal.' -> ['at_goal', 'has_key'] Rejected off-target or negated instructions: 3 Grounded symbolic plan: ['navigate_to_key', 'navigate_to_door', 'unlock_door', 'navigate_to_goal'] Executed option calls: ['go_to_key', 'go_to_door', 'unlock_door', 'go_to_goal'] Instruction satisfied in environment: True
The word “then” is not represented by the unordered goal set. In this domain, operator preconditions independently force key acquisition before the goal can be reached. A general procedure grounder would need to emit explicit ordering constraints, while a context-sensitive goal grounder would need to use the supplied state. The example therefore demonstrates a fixed-vocabulary goal interface, not unrestricted language understanding.

Every link remains a potential failure point: grounding can select the wrong goal, symbolic effects can be inaccurate, and an option can fail despite valid preconditions. The end-to-end assertion proves only this deterministic toy instance; it does not turn any learned component into a verifier.
Evaluating a structured planning stack
An end-to-end success rate cannot tell you which abstraction helped or which interface failed. A useful evaluation therefore treats every boundary in the stack as a contract. The contract states what enters a component, what it returns, which uncertainty accompanies the return, and which downstream decision uses it.
Separate prediction from action selection
The distinction from earlier chapters remains essential. A model can predict an option's terminal-state distribution accurately while a planner chooses the wrong option because its reward or constraint is misspecified. Conversely, a biased predictor can still support the correct action on a narrow decision boundary. Report both kinds of measurement:
- Predictive measurements test option duration, cumulative reward, predicate effects, language-grounding probabilities, and opponent-action probabilities against held-out outcomes.
- Decision measurements test task return, constraint violations, replanning frequency, coordination success, and regret against a stated baseline.
- Interface measurements test whether predicted symbolic effects agree with the predicates observed after option execution and whether language-derived goals match annotated intent.
The measurements should share evaluation episodes, but they should not be collapsed into one score. A high task success rate can hide a poor grounder when the planner reaches the goal through a dataset shortcut. A low success rate can blame the grounder unfairly when the required option does not exist.
Carry uncertainty across interfaces
The toy program uses deterministic states and effects so that the binding logic is visible. A learned system should expose distributions or confidence sets instead:
- An option model can return rather than one terminal state.
- A predicate detector can return calibrated probabilities or abstain near its decision boundary rather than assert a brittle Boolean fact.
- A language grounder can return several goal hypotheses with posterior weights rather than silently choose one interpretation.
- An opponent model can maintain a distribution over types or policies and update it after observed actions and messages.
Passing those uncertainties forward does not require every layer to share one representation. It requires the consumer to know what the producer's number means. A calibrated predicate probability is not the same object as an option-success probability, and neither is automatically a probability that the whole plan will succeed. The events are dependent: a grounding error changes which options are attempted, while an option failure changes which predicates are observed next.
For a fixed candidate plan , a planner may estimate a joint success probability by propagating its belief through each option model,
with the mass of equal to the probability that the prefix has succeeded under the modeled dynamics. Here is a subprobability mass function over state and successful-prefix execution; its total mass is the modeled probability that the prefix has succeeded. Failure probability remains visible as missing mass rather than being hidden by renormalization. Multiplying independent scalar success rates would be valid only under a conditional-independence model that is rarely justified. Belief propagation preserves how earlier outcomes alter later preconditions.
Test the failure that each abstraction permits
A focused test suite should deliberately perturb one interface at a time:
| Layer | Controlled perturbation | Local measurement | Downstream symptom |
|---|---|---|---|
| Option | Start near the edge of its initiation distribution | success, duration, return, termination reason | repeated failure or delayed replanning |
| Predicate | Corrupt one detector or introduce an exogenous event | calibration, false-positive rate, stale-state detection | valid symbolic plan for the wrong state |
| Symbolic operator | Alter one precondition or effect | transition agreement after execution | effect mismatch or infeasible suffix |
| Language grounder | Paraphrase, negate, or introduce a distractor object | goal-set exact match and abstention | wrong target with otherwise valid execution |
| Opponent model | Switch the co-player policy after training | log loss and adaptation delay | brittle best response or coordination loss |
| Communication | Vary message reliability and incentives | posterior calibration and protocol compliance | over-trust, under-use, or deceptive coordination |
The point is not to make all perturbations equally realistic. It is to give each component a falsifiable contract. In the gridworld, execute_symbolic_plan performs two such checks: it rejects a violated precondition before dispatch and compares the operator's predicted symbolic effects with the abstraction of the physical result afterward. A stochastic implementation would replace equality with a calibrated likelihood or acceptance region.
Compare against the right baselines
Hierarchical planning should not be compared only with exhaustive primitive search. Useful baselines include a receding-horizon primitive planner, a reactive or learned policy, and the same high-level planner with different option libraries. Symbolic planning should be compared both with a continuous planner and with an ablation that removes online feasibility checks. Language grounding should be compared with an oracle goal specification so that grounding error is separated from planning error. Multi-agent methods should face fixed policies, held-out populations, and adapting co-players rather than a single training opponent.
Control the quantity that supports each conclusion. If a plot claims that temporal abstraction reduces node expansions, hold the search algorithm, heuristic, task, and solution-quality requirement fixed while changing the action representation. If it claims faster wall-clock planning, include the cost of building option models and checking continuous feasibility. If it claims transfer, re-ground the same operator schema in changed environments and report both successful reuse and rejected infeasible instances.
This evaluation discipline also prevents a common category error. The symbolic plan in the worked example is geometry-independent as a data structure, but the system is not geometry-independent: the bound navigation options and effect checks still depend on the map. The abstraction is valuable because it isolates that dependence behind a testable interface, not because it makes the dependence disappear.
Key Parameters
The key design parameters across the abstractions in this chapter are:
- Option horizon, termination, and interruption: duration affects high-level decision frequency and continuation discounting. A closed-loop option still reacts internally; termination or an explicit interruption rule determines when the high-level policy can reselect.
- Option library size: a larger library can improve coverage while increasing high-level branching. Under the toy full-tree model, the depth benefit exceeds the branching cost when ; real selection also depends on option quality and overlap.
- Predicate granularity: the number and coarseness of symbolic predicates, which trades grounding reliability against planner tractability. Coarse predicates are easier to detect reliably but blur distinctions the planner may need; fine predicates capture more structure but are harder to ground correctly.
- Recursion depth : how many levels of nested belief the multi-agent model captures, trading strategic depth against computational cost and sensitivity to opponent assumptions. Higher depth can represent deeper strategic reasoning but is more expensive and more fragile when the assumptions are violated.
- Grounding vocabulary and training coverage: broader coverage can handle more concepts, but reliability depends on representation, data, compositional generalization, and calibrated abstention—not vocabulary size alone.
Limitations and impact
The four interfaces in this chapter restructure different parts of planning. Options reduce high-level decision frequency. Symbols reduce continuous detail in task search. Language changes how goals and constraints are specified. Multi-agent models represent strategic coupling and can increase computational burden. Their common bargain is that useful structure comes with assumptions whose failure must be detected.
Options trade high-level flexibility for temporal reach. Their internal policies remain adaptive, but call-and-return execution postpones option reselection. Boundaries near task-relevant decision points can work well, yet no location type is universally correct. The governing assumptions are that the skill remains competent over its initiation distribution and that its termination or interruption rule returns control soon enough when its purpose changes.
Symbolic abstractions trade resolution and grounding effort for discrete search. A coarse reliable predicate may be preferable to a fine unstable one, but the choice is task dependent. The model assumes that predicate detectors, operator effects, and exogenous-event handling remain valid over execution. A cup falling while no modeled operator records it violates persistence and can invalidate the plan.
Language trades compact specification for grounding ambiguity. New object names, relations, syntax, and unrepresented concepts can break a grounder; the exact failure rate is empirical and domain specific. Evaluation should separate reference resolution, goal extraction, planning, and physical execution rather than report only end-to-end success.
Multi-agent approximations trade model detail for scalability. Exact solution is hard in many large or partially observable formulations, but tractability depends on the game class and representation. An explicit opponent model can overfit to one behavior distribution; an implicit history model can fail after a policy change for the same reason. Evaluation should vary co-player populations and adaptation regimes.
The compounded problem. Because these abstractions stack, their errors also stack. An error at one layer can propagate to later layers, making diagnosis difficult without targeted evaluations. A language instruction that grounds into a symbolic goal whose predicates come from a world model that is itself imperfect produces a plan whose failure is not attributable to any single layer. Diagnostic evaluation therefore becomes essential: when the agent fails, you need to know which layer failed. Was the instruction misunderstood? Was the grounding wrong? Was the world model inaccurate? Was the option library missing a skill? Was the opponent behaving unexpectedly? Evaluation in hierarchical and multi-agent systems is more about attributing failure than measuring success, and this is the theme we will return to in Part XI: Evaluation and Understanding.
The practical consequence of compounding is that evaluation should probe one layer at a time. Test the grounder on instructions whose correct predicate set you know. Test the symbolic planner on predicate sets whose correct plan you know. Test the option library on tasks within its intended scope. Test the opponent model against a range of opponent behaviors, including ones it was not trained on. These component tests make failures easier to diagnose, but they do not replace end-to-end testing of interactions among layers.
Reusable skills and grounded symbols can make some long-horizon tasks substantially more tractable and inspectable. Language can reduce the cost of specifying tasks. Multi-agent models can improve prediction or coordination when their assumptions match the co-players. Reactive policies, receding-horizon control, search, and learned value functions remain viable alternatives or complements.
The next part, beginning with PILCO, PETS, Ensembles, and MBPO, turns to concrete model-based reinforcement-learning lineages. Those methods study probabilistic dynamics, uncertainty-aware control, and synthetic rollouts. Their machinery can later be combined with hierarchical or symbolic interfaces, but it does not automatically instantiate options, language grounding, or recursive multi-agent beliefs.
Summary
Large planning problems have several distinct sources of complexity. This chapter separated four ways to structure them rather than forcing them into one compression formula.
- Options turn a primitive action into a temporally extended subroutine with a policy, an initiation set, and a termination condition. They compose via the semi-Markov decision process equations, where transitions have variable duration and the Bellman equation must handle the option length by discounting both the intra-option rewards by and the continuation value by .
- Symbolic abstractions project task-relevant continuous state onto predicates and option effects onto operators. Fully compiled and integrated task-and-motion architectures make different choices about when to query continuous models.
- Language-conditioned planning can map an instruction to a goal, procedure, reward, or constraint. In the fixed-library example it changes the goal and composition, not the available physical controllers.
- Multi-agent planning accounts for joint actions, private information, and changing co-player behavior. Interactive beliefs, bounded reasoning, opponent models, and CTDE are different approximations with different assumptions.
The unifying pattern is structured factorization. Options compress decision time; predicates compress state description; language compresses task specification; multi-agent models structure uncertainty about other policies. Only the first is explicitly designed to change temporal depth. In every case the interface must be tested against the causal and informational structure of the task.
A second unifying pattern is that every interface relies on assumptions. Options rely on skill competence over their initiation distributions. Symbols rely on grounded predicates and modeled effects. Language relies on semantic alignment between instructions and the planner's representation. Multi-agent methods rely on assumptions about co-player behavior or the robustness of a history-dependent model. Naming those assumptions makes the corresponding evaluation target explicit.
The open design question is how much structure to specify and how much to learn. The decision-centric lineages in the next part provide concrete dynamics and control mechanisms against which that choice can be evaluated.
Quiz
Ready to test your understanding? Take this quick quiz to reinforce what you've learned about hierarchical, symbolic, language, and multi-agent planning.
Hierarchical, Symbolic, Language, and Multi-Agent Planning
Reference
Citation details
Cite or share this article.
Continue with the full handbook
This chapter is part of World Models Handbook. Use the handbook page to browse the complete table of contents and continue reading in sequence.
Explore World Models HandbookStay up to date
Get articles, book updates, and news delivered to your inbox.
No spam, unsubscribe anytime.
Join the community
Sign in to remove popups, track your reading progress, and join the discussion.

Comments
No comments yet. Be the first to share your thoughts!