Strands BitChat: P2P Agent Communication 📡
P2P encrypted mesh communication over Bluetooth for agent-to-agent networking.
Add decentralized, peer-to-peer encrypted chat capabilities to your Strands agents using Bluetooth Low Energy mesh networking.
Installation
Quick Start
from strands import Agent
from strands_bitchat import bitchat
from strands_tools import use_agent
# Add BitChat to your agent
agent = Agent(
tools=[bitchat, use_agent], # Both required
system_prompt="Agent with P2P communication"
)
# Enable P2P networking
agent.tool.bitchat(action="start", agent=agent)
agent.tool.bitchat(action="enable_agent", trigger_keyword="max", agent=agent)
Core Actions
| Action | Purpose | Parameters |
|---|---|---|
start |
Initialize P2P network | - |
stop |
Stop P2P network | - |
status |
Network status | - |
send_public |
Broadcast to all peers | message |
send_private |
Encrypted direct message | message, recipient |
send_channel |
Send to channel | message, channel |
join_channel |
Join/create channel | channel, password |
leave_channel |
Leave channel | - |
list_peers |
Show connected peers | - |
list_channels |
Show channels | - |
get_messages |
Get message history | - |
set_nickname |
Change nickname | nickname |
block_user |
Block user | nickname |
enable_agent |
Enable auto-responses | trigger_keyword, agent |
enable_monitor |
Silent monitoring | agent |
Agent-to-Agent Communication
# Agent A - Coordinator
coordinator = Agent(
system_prompt="BitChat coordinator. Agent A.",
tools=[bitchat, use_agent]
)
coordinator.tool.bitchat(action="start", agent=coordinator)
coordinator.tool.bitchat(action="enable_agent", trigger_keyword="coord", agent=coordinator)
# Agent B - Worker
worker = Agent(
system_prompt="BitChat worker. Agent B.",
tools=[bitchat, use_agent]
)
worker.tool.bitchat(action="start", agent=worker)
worker.tool.bitchat(action="enable_agent", trigger_keyword="worker", agent=worker)
# Now they can communicate:
# "coord, start task X"
# "worker, process data Y"
Features
Public Messages
Private Messages
Channels
# Join secure channel
agent.tool.bitchat(
action="join_channel",
channel="#team",
password="secret"
)
# Send to channel
agent.tool.bitchat(
action="send_channel",
message="Hello team!",
channel="#team"
)
Monitor Mode
Process all messages without auto-responding:
Architecture
graph TB
A1[Agent 1] <-->|BLE Mesh| A2[Agent 2]
A2 <-->|BLE Mesh| A3[Agent 3]
A3 <-->|BLE Mesh| A1
subgraph "Encrypted P2P"
A1
A2
A3
end
Notes
- Always include both tools:
[bitchat, use_agent] - ~5 seconds for peer discovery
- Two modes: Trigger (auto-respond) or Monitor (silent)
- Auto-installs Bluetooth dependencies on first use
Decentralized agent communication. 📡