BDI Agent
Structure the agent's cognition around three typed stores — Beliefs (world facts), Desires (goals), and Intentions (committed plans) — reconciled explicitly each tick.
Intent & Description
🎯 Intent
Tangling beliefs, goals, and commitments in a prose prompt blob makes all three invisible, stale, and irreconcilable — BDI makes them first-class typed state.
📋 Context
An LLM agent runs across many model calls, builds observations, accumulates goals, and commits to multi-step plans. By default all of this sits implicitly in one prose blob assembled per prompt. Commitments don’t survive turns; stale beliefs are invisible; goal abandonment is untraced.
💡 Solution
Maintain three typed stores: Beliefs (propositions about the world with currency timestamps), Desires (active goals with priorities), Intentions (committed plans with status and rationale). Each tick: (a) update Beliefs from new observations, (b) re-evaluate Desires given updated Beliefs, (c) check Intentions for continued viability, (d) explicitly commit new Intentions or abandon stale ones. Every state transition writes a trace entry.
Real-world Use Case
- A long-running agent where commitments must survive across many prompts.
- Goal conflicts and abandonment are common and need explicit handling with rationale.
- Operators need a vocabulary for the agent’s beliefs, goals, and plans — not just its last output.
Source
Advantages
- Intentions survive across prompts because they’re first-class state, not prompt text
- Stale beliefs become surfaceable and inspectable rather than invisibly influencing output
- Goal abandonment is an explicit traced move with a rationale, not a silent drop
Disadvantages
- Three typed stores plus reconciliation is heavy machinery for simple agents
- BDI doesn’t solve priority conflicts — the conflict-resolution rule still needs design
- Typed stores can drift away from what the prompt actually shows the model