skills/ai-wiley-wooldridge-an-introduction-to-multi-agent-systems/SKILL.md
Choose multi-agent architectures using environment-first analysis, coordination pressure, commitment tuning, and knowledge levels. Use for autonomy design, protocol choice, and coordination failures. NOT for single-agent planning, centralized schedulers, or prompt-only swarms.
npx skillsauth add curiositech/windags-skills ai-wiley-wooldridge-an-introduction-to-multi-agent-systemsInstall 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.
Use this skill when the question is not "how do I make several models talk," but "what kind of autonomous system does this environment force me to build?"
Start with observability, determinism, dynamics, and time pressure. Architecture choice is downstream of environment shape, not personal preference for a fashionable agent pattern.
Agents are not just asynchronous objects. They decide whether and when to comply, which means requests need semantics, refusals, and coordination logic rather than implicit obedience.
Partial observability, resource contention, and interdependent goals create coordination pressure. Good protocol design begins by naming that pressure instead of assuming collaboration is always desirable.
Bold agents overcommit in fast-changing environments; cautious agents thrash in stable ones. Reconsideration frequency is a design parameter tied to environment dynamics, not a universal best practice.
Individual knowledge, everyone-knows, common knowledge, and distributed knowledge are not interchangeable. Asking for the wrong level can make a protocol impossible or wastefully expensive.
flowchart TD
A[Need agent architecture] --> B{Environment fully observable and stable?}
B -->|Yes| C[Simple reactive or planner-heavy design may suffice]
B -->|No| D{Need real-time reaction under uncertainty?}
D -->|Yes| E[Hybrid architecture]
D -->|No| F[Deliberative architecture]
E --> G{Why do agents need to coordinate?}
F --> G
G -->|Partial information| H[Information-sharing protocol]
G -->|Resource contention| I[Negotiation or allocation mechanism]
G -->|Task dependency| J[Commitment or delegation protocol]
G -->|No real autonomy| K[Use a simpler centralized design]
Cue: the team wants BDI, debate, or a fancy agent framework before anyone can describe the environment.
Fix: force environment characterization first.
Cue: the design talks about beliefs and desires but cannot map them to local state, observations, or protocol obligations.
Fix: ground mental language in concrete computational state.
Cue: communication traffic rises, but no one can explain which environmental pressure requires it.
Fix: identify the actual forcing function and design the minimal protocol that addresses it.
Cue: one "agent" silently makes all important choices while the others just execute.
Fix: either admit the architecture is centralized or redistribute genuine decision rights.
Cue: protocol correctness depends on every agent knowing that every other agent knows a fact, but the network is unreliable.
Fix: relax to distributed knowledge, acknowledgments, or eventual consistency as the environment allows.
A coding system uses security, performance, and style agents. Security reviews depend on different evidence than style review, and no single reviewer has global visibility. Use a hybrid coordinator plus targeted information-sharing instead of assuming every reviewer should see the entire context.
Sensor agents cover overlapping but incomplete regions. Coordination is necessary because no single agent can maintain end-to-end track continuity. Design the protocol around partial observability rather than generic "collaboration."
references/environment-characterization-drives-architecture.md: load when architecture choice is the main question.references/coordination-as-necessity-not-luxury.md: load when you must justify or minimize coordination.references/commitment-strategies-and-environment-dynamics.md: load when boldness or replanning cadence is the main tuning issue.references/grounded-epistemic-logic-for-distributed-agents.md: load when knowledge claims drive safety or correctness.references/negotiation-and-resource-allocation-mechanisms.md: load when autonomy collides with scarce resources.tools
Building resilient distributed systems with circuit breakers, retries with full-jitter exponential backoff, retry budgets (per-request 3-attempt + per-client 10% ratio per Google SRE), deadline propagation, and the cascading-failure math (4 layers × 3 retries = 64x amplification). Grounded in Resilience4j, Microsoft Cloud Patterns, AWS Architecture Blog (Marc Brooker), and Google SRE Book.
testing
Designing HTTP cache headers that work correctly across browsers, CDNs, and shared proxies — `Cache-Control` directives per RFC 9111, `stale-while-revalidate` and `stale-if-error` per RFC 5861, the Vary header for varying responses, and surrogate keys for tag-based purging. Grounded in IETF RFCs and Cloudflare/Fastly docs.
development
Use when designing or fixing a Content Security Policy on a real site, choosing between nonce-based and hash-based CSP, adding strict-dynamic, debugging "Refused to execute inline script" errors, deploying CSP in report-only mode first, configuring report-to / report-uri, or auditing an existing policy for unsafe-inline / unsafe-eval / wildcards. Triggers: "CSP blocks legitimate inline script", strict-dynamic, nonce-{RANDOM}, sha256-{HASH}, object-src none, base-uri none, frame-ancestors, Trusted Types, X-Content-Security-Policy obsolete, report-only vs enforced. NOT for general HTTP security headers (HSTS, COOP/COEP), Trusted Types deep dive, CORS configuration, or building a WAF.
tools
Choosing and operating an HTTP API versioning strategy that doesn't break clients — Stripe's date-based pinned versions, the Deprecation/Sunset header pair (RFC 9745 + RFC 8594), URI vs header vs media-type approaches, and the version-transformer pattern. Grounded in Stripe's published architecture and IETF RFCs.