XIII · Cognition & IntrospectionMature★★

BDI Agent

also known as Belief-Desire-Intention Agent, Rao-Georgeff Agent, PRS-Style Agent

Agent maintains explicit Beliefs about the world, Desires (goals), and Intentions (committed plans), and reasons by reconciling the three.

Context

An LLM agent runs across many model calls, observes the world through tool outputs, has goals it accumulates and abandons, and commits to multi-step plans. By default all of this lives implicitly in the prompt context: the agent's beliefs, goals, and commitments are tangled in one prose blob the next prompt assembles.

Problem

Implicit BDI is brittle. The agent loses track of which beliefs are current vs stale, which goals are still active vs satisfied, and which intentions it has committed to vs merely entertained. A new prompt can silently abandon a committed plan because the commitment was not represented as a typed thing. Without explicit BDI structures the agent has no vocabulary for 'I currently believe X, my goal is Y, and I am pursuing plan Z' that survives across prompts.

Forces

  • Beliefs change as observations arrive; staleness must be representable.
  • Desires (goals) can be in conflict; the agent needs a rule for which to pursue.
  • Intentions (committed plans) should not be silently abandoned.
  • Updates to beliefs may invalidate intentions; the reconciliation step is non-trivial.

Example

A long-running ops agent maintains Beliefs (current cluster state, last-known costs), Desires (keep p95 latency under 200ms, keep monthly cost under $X), and Intentions (currently scaling out replica set 3). When a new observation arrives showing replica set 3 already scaled, the agent reconciles: belief updates, Intention is satisfied and retired with rationale, Desires re-evaluated, new Intention possibly committed.

Diagram

Solution

Therefore:

Maintain three typed stores: Beliefs (propositions about the world with currency timestamps), Desires (active goals with priorities), Intentions (committed plans with status and rationale). On each tick the agent (a) updates Beliefs from new observations, (b) re-evaluates Desires given new Beliefs, (c) checks Intentions for continued viability (still consistent with Beliefs and aligned with Desires), and (d) commits new Intentions or abandons existing ones explicitly. Each transition writes a trace entry. Distinct from a plain scratchpad: BDI structures are typed.

What this pattern forbids. The agent's mental state must not be entirely implicit in the prompt blob; Beliefs, Desires, and Intentions are typed stores that the agent reconciles on each tick.

And the patterns that stand alongside it, or against it —

  • complementsCommitment Tracking·Extract stated intents from each agent turn into a structured ledger with open / followed-through / expired status, making the gap between promise and follow-through visible and auditable.
  • complementsHypothesis Tracking·Persist the agent's candidate provisional answers as a typed ledger of records carrying summary, confidence, status, and next-test, so guesses survive sessions and stay distinguishable from open questions.
  • complementsGoal Decomposition★★Decompose a goal into sub-goals recursively until each leaf is directly actionable.
  • complementsWorld Model as Tool·Let a planning agent invoke a generative world model as a tool to roll out hypothetical futures before committing to an action, treating the world model as a callable simulator rather than a training target.
  • alternative-toScratchpad★★Give the agent a writable scratch space for intermediate notes that informs later turns but does not pollute the response.
  • complementsPlan-and-Execute★★Plan all the steps once with a strong model, then execute each step with a cheaper model under the plan.
  • composes-withJoint Commitment Team·A team of agents adopts a shared goal plus the meta-commitment that each member will notify the others as soon as it believes the goal is achieved, impossible, or no longer relevant.

Neighbourhood

Click any neighbour to follow the language. Scroll to zoom, drag to pan.