skills/rao-georgeff-1995-bdi-agents-from-theory-to-practice/SKILL.md
Foundational framework for modeling intelligent agents through Beliefs, Desires, and Intentions with practical implementation strategies under resource constraints
npx skillsauth add curiositech/windags-skills rao-georgeff-1995-bdi-agents-from-theory-to-practiceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Skill ID: bdi-agents-theory-practice
Domain: Agent architectures, AI system design, decision-making under resource constraints
Source: Rao & Georgeff, "BDI Agents: From Theory to Practice"
INPUT: Environment volatility + Goal clarity + Computation budget
IF Environment volatility = LOW (changes slower than plan execution):
└─ IF Goal clarity = HIGH (specific, measurable outcomes):
└─ CHOOSE: Blind commitment
• Perceptual cue: Plan steps complete in predictable timeframes
• Trigger reconsideration: Only when goal achieved/failed
└─ IF Goal clarity = LOW (abstract, evolving objectives):
└─ CHOOSE: Single-minded commitment
• Perceptual cue: Subgoal failures indicate impossibility
IF Environment volatility = MEDIUM (changes comparable to plan duration):
└─ IF Computation budget = HIGH:
└─ CHOOSE: Open-minded commitment
• Perceptual cue: Monitor for better opportunities
• Trigger reconsideration: Goal deprioritization OR impossibility
└─ IF Computation budget = LOW:
└─ CHOOSE: Single-minded commitment
• Perceptual cue: Focus on clear failure signals only
IF Environment volatility = HIGH (changes faster than typical plans):
└─ IF Goal urgency = CRITICAL:
└─ CHOOSE: Reactive execution (bypass BDI deliberation)
• Perceptual cue: Environmental state requires immediate response
└─ ELSE:
└─ CHOOSE: Open-minded with frequent reconsideration windows
• Perceptual cue: Schedule reconsideration at plan checkpoints
IF Domain knowledge = COMPLETE AND STABLE:
└─ Pre-compile all plans with full context conditions
└─ Use hash-table indexing on event types
IF Domain knowledge = INCOMPLETE OR EVOLVING:
└─ Use hierarchical decomposition with abstract plans
└─ Enable runtime plan composition
└─ Index on goal patterns, not specific events
IF Real-time constraints = CRITICAL:
└─ Sacrifice completeness for speed
└─ Cache frequent plan instantiations
└─ Use compiled pattern matching over full search
IF Environmental change rate > Belief update rate:
└─ Use event-triggered updates only
└─ Accept temporary inconsistency for speed
IF Belief inconsistency tolerance = LOW:
└─ Implement belief revision with dependency tracking
└─ May require pausing execution during updates
IF Memory constraints = TIGHT:
└─ Maintain only current-state beliefs
└─ Compile temporal dependencies into plan preconditions
Symptoms: Agent switches between plans rapidly, never completing goals, high deliberation overhead Detection Rule: If reconsideration frequency > 1 per plan step execution, you're thrashing Root Cause: "Potentially significant change" detection is too sensitive OR commitment strategy is too weak for environment Fix: Tighten change detection criteria, increase commitment strength, or batch environmental updates
Symptoms: Agent continues executing obviously obsolete plans, ignores contradictory evidence, goals never achieved Detection Rule: If plan execution continues after preconditions become false, you have zombie plans Root Cause: Missing "impossibility" detection in termination conditions OR belief update failures Fix: Add explicit plan precondition monitoring, implement belief-intention consistency checks
Symptoms: Long delays before any plan selection, agent appears "frozen" before acting, timeout failures Detection Rule: If time-to-first-action > environment change period, option generation is the bottleneck Root Cause: Plan library too large for real-time search OR matching algorithm is naive Fix: Index plans by triggering events, use compiled pattern matching, accept incompleteness for speed
Symptoms: Plan library grows exponentially, new situations require entirely new plans, brittle to minor variations Detection Rule: If adding new capability requires modifying >10% of existing plans, you have schema bloat Root Cause: Plans encode too much detail rather than using hierarchical decomposition Fix: Use abstract plans with subgoal decomposition, separate invariant patterns from situation-specific details
Symptoms: Agent attempts impossible combinations, violates resource constraints, goals conflict in execution Detection Rule: If multiple intentions require mutually exclusive resources, desires and intentions are confused Root Cause: Deliberation process doesn't filter desires for mutual consistency before commitment Fix: Implement explicit compatibility checking in deliberation, maintain resource allocation tracking
Scenario: Delivery robot must reach destination in 10 minutes. Environment has pedestrians (medium volatility) and network connectivity for map updates (computation budget = medium).
Decision Process:
Key Insight: Agent commits to paths but reconsiders when assumptions (clear route) become invalid. Novice would either replan at every pedestrian (thrashing) or ignore the blocked path (zombie plan).
Scenario: Algorithm trading in options market, goal is profit maximization, market shows high volatility.
Decision Process:
Failure Trace: Without proper reconsideration windowing, agent either:
Scenario: Earth station controlling satellite with 3-second communication delay, goal is maintain orbital position.
Decision Process:
Expert vs Novice:
Do NOT use BDI for:
Delegate to other skills:
data-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.