Provide a minimal but real agent-to-agent communication layer for OpenClaw instances.
Use the bundled scripts to initialize identity, scan a local network range, exchange contact requests, approve peers, and send signed direct messages.
Require explicit acceptance before trusted communication begins.
Implement only these capabilities:
Do not claim NAT traversal, full mesh routing, or multi-party consensus in V1.
Store mesh state outside the skill folder.
Use this default path unless the user specifies another one:
~/.openclaw/agent-mesh/Expected files:
identity.json — local agent identityprivate_key.pem — local signing keypeers/.json — trusted peersrequests/incoming/*.json — pending inbound contact requestsrequests/outgoing/*.json — outbound contact requestsmessages/incoming/*.json — verified inbound messagesmessages/outgoing/*.json — sent messagesgroups/ — reserved for future versionsRun scripts/mesh.py init.
This creates a signing keypair and an identity card with:
agent_iddisplay_namepublic_keyendpointcreated_atfingerprintSet the endpoint to a reachable HTTP URL if the node should receive requests from peers.
Run scripts/mesh.py scan with a base URL template or a list of candidate URLs.
Scanning in V1 is HTTP discovery, not raw port scanning.
Probe each candidate at:
/agent-mesh/discoveryTreat discovered nodes as untrusted until approved.
Run scripts/mesh.py request-contact.
Send a signed request to a discovered node’s inbox endpoint.
The receiver stores the request as pending.
Run scripts/mesh.py list-requests then approve-request or reject-request.
Approval writes the peer into the trust store.
Rejection leaves no trusted relationship.
Run scripts/mesh.py send-message only after trust exists.
The sender signs the message envelope.
The receiver verifies signature, timestamp, and trust status before accepting.
Run scripts/mesh.py list-messages or inspect stored message JSON files.
Use acknowledgements to confirm receipt.
V1 uses simple HTTP JSON endpoints:
GET /agent-mesh/discoveryPOST /agent-mesh/contact-requestPOST /agent-mesh/messageRun scripts/server.py to expose these endpoints from a node that should be discoverable or receive peer traffic.
Example:
python3 scripts/server.py --host 0.0.0.0 --port 8787 --state-dir ~/.openclaw/agent-meshIf the user does not yet have a server to receive HTTP traffic, use the scripts to generate and inspect signed payloads locally first.
references/protocol.md for the JSON message model.references/verification.md for trust and signature checks.When using this skill, produce one or more of:
共 1 个版本