# BDI Agent

> Structure the agent's cognition around three typed stores — Beliefs (world facts), Desires (goals), and Intentions (committed plans) — reconciled explicitly each tick.

- **Category**: Agentic AI
- **Subcategory**: Cognition & Introspection
- **Canonical URL**: https://designpattern.fyi/patterns/bdi_agent/

---

## 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.



## Use Cases
- 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.






## Trade-offs


### 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




### Considerations & Drawbacks

- 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







---
**Reference**: [Original Source](https://www.agentpatternscatalog.org/patterns/bdi-agent/)

