Design patterns for building intelligent agents — from reactive to BDI to hybrid.
This repository is the design-pattern layer of the agent track.
Use it after multi-agent-system-basics if you want to understand how different agent decision models are structured.
By the end of this repository, you should be able to:
- distinguish reactive, BDI, layered, and utility-based agent styles
- choose an architecture based on the problem rather than on hype
- understand where fast response, planning, and trade-off reasoning fit into agent design
Recommended before starting:
- multi-agent-system-basics
- basic Python familiarity
Continue with:
- autonomous-agent-design for agent loops, self-correction, and goal-directed behavior
- agent-planning-reasoning for planning and deliberate reasoning structures
| Pattern | Complexity | When to Use |
|---|---|---|
| Reactive | Low | Fast response, no planning needed |
| BDI (Belief-Desire-Intention) | High | Goal-driven, deliberative agents |
| Layered/Hybrid | Medium | Combine reactive speed with deliberation |
| Utility-Based | Medium | Decisions require tradeoff analysis |
| File | Description |
|---|---|
examples/01_reactive_agent.py |
Subsumption-style reactive layers |
examples/02_bdi_agent.py |
Belief-Desire-Intention architecture |
examples/03_utility_agent.py |
Utility function-based decision making |
- Match architecture to problem — Don't use BDI for simple reflexes
- Separate perception from action — Keep sensor processing and actuators modular
- Use state machines for reactive layers — Finite state machines are debuggable
- Test each layer independently — Layered architectures should have isolated tests
- Profile decision time — Ensure deliberation doesn't cause real-time violations
| Resource | Description |
|---|---|
| Brooks - Subsumption Architecture | Reactive robotics pioneer |
| jason-lang/jason | BDI agent programming in AgentSpeak |
| AIMA Chapter 2 | Russell & Norvig agent architectures |
| crewAIInc/crewAI | Modern agent framework |
Dhiraj Singh
This repository is shared publicly for learning and reference. It is made available for everyone through VAIU Research Lab. For reuse, redistribution, adaptation, or collaboration, contact Dhiraj Singh / VAIU Research Lab.