Skip to content

Strands BitChat: P2P Agent Communication 📡

PyPI

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

pip install strands-bitchat

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

agent.tool.bitchat(action="send_public", message="Hello everyone!")

Private Messages

agent.tool.bitchat(
    action="send_private",
    message="Secret message",
    recipient="worker"
)

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:

agent.tool.bitchat(action="enable_monitor", agent=agent)

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. 📡