Skip to content
Back to skills

Swarm Communication Protocols

ASecurity

Use when designing agent-to-agent communication in swarms.

  • 2 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 10, 2026
ai-agentspythongoapisecurity

Works with

  • api
  • mcp

Security analysis

A100/100

Scanned September 10, 2026

npx -y skills add LoopyLuci/Skills --skill swarm-communication-protocols --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Swarm Communication Protocols?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Swarm Communication Protocols
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/loopyluci-swarm-communication-protocols/badge)](https://www.skillsdirectory.com/skills/loopyluci-swarm-communication-protocols)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: swarm-communication-protocols
description: "Use when designing agent-to-agent communication in swarms."
version: 1.0.0
author: Hermes Agent
license: MIT
metadata:
  hermes:
    tags: [agents, swarm, communication, protocols, messaging]
    related_skills: [agent-swarm-architectures, hierarchical-swarm-architectures, multi-agent-orchestration, tool-augmented-agents]
---

# Swarm Communication Protocols

Designing and implementing communication protocols between agents in a swarm — message formats, routing, synchronization, and conflict resolution.

## When to Use

- Designing how agents in a swarm talk to each other
- Building multi-agent systems where agents share context, results, or dependencies
- Implementing broadcast, multicast, or point-to-point agent messaging
- Handling agent synchronization, consensus, or conflict resolution
- Designing agent communication languages and schemas

## Communication Topologies

### Point-to-Point (Direct)
```
Agent A ──────→ Agent B
```
Best for: Known dependencies, task handoffs, private coordination.

### Broadcast
```
Agent A ──────→ All agents
```
Best for: Status updates, shared observations, emergency stops.

### Multicast (Group)
```
Agent A ──────→ Group X (agents B, C, D)
```
Best for: Team updates, shared task context, parallel sub-task coordination.

### Publish-Subscribe
```
Agent A (Publisher) → Message Bus → Subscribers (B, C, D)
```
Best for: Decoupled communication, event-driven swarms, scalable systems.

### Blackboard
```
All agents read/write to shared context store
```
Best for: Collaborative problem-solving, shared state, gradual convergence.

## Message Formats

### Structured Message Schema

```json
{
  "protocol_version": "1.0",
  "message_id": "msg_001",
  "sender": "agent_worker_3",
  "recipient": "agent_manager_1",
  "message_type": "task_result",
  "timestamp": "2026-07-28T12:00:00Z",
  "ttl": 300,
  "priority": "normal",
  "payload": {
    "task_id": "task_42",
    "status": "completed",
    "result_summary": "Rule parser processed 10K rules",
    "artifacts": ["/tmp/rules_parsed.json"],
    "metrics": {"duration_s": 2.3, "rules_per_second": 4348}
  },
  "context": {
    "parent_task": "task_40",
    "dependencies": ["task_41"],
    "blocked_tasks": []
  },
  "signature": "hmac_sha256_hash"
}
```

### Compact Message (Low-Overhead)

```json
{
  "id": "m_1",
  "from": "w3",
  "to": "m1",
  "type": "result",
  "task": "t42",
  "status": "ok",
  "ts": 1722172800
}
```

### Control Messages

| Type | Purpose | Example |
|------|---------|--------|
| `heartbeat` | Liveness check | `{"type": "hb", "from": "w3", "load": 0.7}` |
| `ack` | Acknowledgment | `{"type": "ack", "in_reply_to": "msg_001"}` |
| `nack` | Negative ack | `{"type": "nack", "in_reply_to": "msg_001", "reason": "busy"}` |
| `escalate` | Issue escalation | `{"type": "escalate", "issue": "timeout", "from": "w3", "to": "m1"}` |
| `sync_request` | State sync | `{"type": "sync_req", "from": "m1"}` |
| `sync_response` | State snapshot | `{"type": "sync_resp", "state": {...}}` |
| `cancel` | Cancel task | `{"type": "cancel", "task_id": "t42"}` |

## Synchronization Patterns

### Barrier Synchronization

All agents must reach a checkpoint before any proceeds:

```python
# Manager coordinates barrier
def barrier(agent_ids, timeout=60):
    ready = set()
    start = time.time()
    while len(ready) < len(agent_ids):
        if time.time() - start > timeout:
            raise TimeoutError(f"Barrier timeout: {agent_ids - ready}")
        for agent in agent_ids:
            if agent.reports("ready"):
                ready.add(agent)
        time.sleep(0.5)
    # All agents proceed
```

### Consensus Protocol

Agents agree on a value (e.g., classification, decision):

```python
def simple_majority_consensus(agent_votes):
    """Each agent votes; majority wins."""
    counts = {}
    for vote in agent_votes:
        counts[vote] = counts.get(vote, 0) + 1
    winner = max(counts, key=counts.get)
    threshold = len(agent_votes) * 0.5 + 1
    if counts[winner] >= threshold:
        return winner
    raise ConsensusError("No majority reached")
```

### Quorum Protocol

For critical decisions, require N confirmations before acting:

```python
def quorum_check(confirmations, total_agents, quorum_pct=0.66):
    return len(confirmations) >= total_agents * quorum_pct
```

## Conflict Resolution

### Resource Conflicts
Multiple agents need the same resource (file, tool, API):

```python
# Lock-based resolution
import threading
resource_locks = {}

def acquire_resource(resource_id, agent_id, timeout=10):
    lock = resource_locks.setdefault(resource_id, threading.Lock())
    if lock.acquire(timeout=timeout):
        return True
    # Conflict: manager arbitrates
    manager_arbitrate(resource_id, agent_id)
    return False
```

### Priority-Based Resolution
Higher-priority agents preempt lower-priority ones:

```python
PRIORITY_MAP = {"critical": 5, "high": 4, "normal": 3, "low": 2, "background": 1}

def resolve_conflict(agents_contending, resource):
    return max(agents_contending, key=lambda a: PRIORITY_MAP.get(a.priority, 3))
```

## Agent Communication Languages

### Hermes Delegation Protocol (via delegate_task)

```python
# Built-in: sub-agents communicate through delegate_task
# The tool itself handles serialization, routing, result collection
result = delegate_task(
    goal="Analyze network traffic patterns",
    context=f"Raw data from agent-alpha: {traffic_data}"
)
```

### Custom MCP-Based Agent Communication

```python
# Agents communicate through MCP tools exposed by each other
# Agent A calls Agent B's MCP endpoint
response = call_agent_mcp(
    agent_id="b",
    tool="analyze_traffic",
    parameters={"data": traffic_sample}
)
```

### Structured Context Passing

```python
# Shared blackboard pattern
class AgentBlackboard:
    def __init__(self):
        self.store = {}
        self.subscribers = {}
    
    def write(self, key, value, publisher):
        self.store[key] = {"value": value, "publisher": publisher, "ts": time.time()}
        self._notify(key, value)
    
    def read(self, key):
        return self.store.get(key)
    
    def subscribe(self, key_pattern, callback):
        self.subscribers.setdefault(key_pattern, []).append(callback)
    
    def _notify(self, key, value):
        for pattern, callbacks in self.subscribers.items():
            if fnmatch.fnmatch(key, pattern):
                for cb in callbacks:
                    cb(key, value)
```

## Common Pitfalls

1. **Message storms** — N agents broadcasting to each other creates O(N²) traffic; use pub/sub or hierarchical routing
2. **Infinite waits** — always set timeouts on inter-agent communication
3. **Stale state** — agents operating on outdated shared state; use versioned or timestamped data
4. **Serialization mismatches** — agents must agree on message schemas; use protobuf/avro for cross-language
5. **Deadlocks** — circular dependencies in resource allocation; use timeout-based backoff
6. **Security** — unauthenticated agent messages; implement signatures or tokens for critical operations

## Verification Checklist

- [ ] Communication topology matches swarm structure (flat/pub-sub/hierarchical)
- [ ] Message format schema is documented and versioned
- [ ] Timeouts defined for every message type
- [ ] Conflict resolution strategy documented
- [ ] Heartbeat/liveness monitoring configured
- [ ] Synchronization barriers at critical dependency points
- [ ] Fallback for unresponsive agents defined

## See Also

- agent-swarm-architectures — flat swarm topology design
- hierarchical-swarm-architectures — multi-level hierarchy patterns
- multi-agent-orchestration — orchestrating multiple agents
- tool-augmented-agents — building tools for agents

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…