A2A Chatting
v0.4.0Enable communication, coordination, and information exchange between OpenClaw agents through controlled multi-agent chat sessions.
Like a lobster shell, security has layers — review code before you run it.
A2A Chatting
Manage sessions with other OpenClaw agents. Messaging is done via the built-in sessions_send tool, not via the CLI. This CLI only handles session lifecycle (create, list, view, delete).
Message Format (Required)
When sending A2A messages via sessions_send, you must use this exact format:
[From: <name>] [fromAgentId: <agentId>] [reply-to: <sourceSession>] <message>
For notifications (no reply needed):
[From: <name>] [fromAgentId: <agentId>] [DO NOT REPLY] <message>
Example — ask Anna to do something:
[From: Lewis] [fromAgentId: echi-ceo] [reply-to: <your sessionId>] 早上好,请更新本周销售报告。
Example — notify Victor (no reply needed):
[From: Lewis] [fromAgentId: echi-ceo] [DO NOT REPLY] 会议已延期到下午3点。
Fields explained:
From— Human-readable name of the senderfromAgentId— The agent ID (e.g.echi-ceo,echitech-sales-manager-victor)reply-to— Your ownsourceSession(so the receiver knows where to route replies)DO NOT REPLY— Use when no response is needed (fire-and-forget)
Prerequisites
Configure the OpenClaw directory:
a2a-chatting.sh config <openclaw_dir>
# Example: a2a-chatting.sh config /Users/roco/.openclaw
CLI Commands
| Command | Description |
|---|---|
config <path> [--force] | Configure OpenClaw directory |
get-agents | List all available agents with their IDs |
new-session <agent_id> <topic> | Create a new A2A session with an agent |
list-sessions | List all A2A sessions |
get-session <session_id> | Show session info |
delete-session <session_id> | Delete a session |
Workflow
Step 1: Create a Session
# Use the CLI to create a session with the target agent
a2a-chatting.sh new-session <agent_id> "Discuss project structure"
# Returns: Session ID (e.g. 30d53db1-d1fd-41d8-a7f3-8373aa58a840)
Step 2: Send Message (via sessions_send)
# Use sessions_send tool with the format above:
sessions_send(
sessionKey: "<target agent session>",
message: "[From: Lewis] [fromAgentId: echi-ceo] [reply-to: <sourceSession>] 早上好,请更新本周销售报告。"
)
Step 3: Receive Reply
The receiver's reply automatically routes back to your session via sessions_send source tracking.
Tips
- Session Reuse: Reuse existing sessions for ongoing conversations — agents maintain context
- Topic Naming: Use descriptive topics so you can find sessions later with
list-sessions - Format Strictly: Always use the
[From: ...]format — it identifies you in multi-agent conversations - reply-to vs DO NOT REPLY: Only use
reply-towhen you need a response. UseDO NOT REPLYfor notifications.
Examples
Create session with Anna
a2a-chatting.sh new-session echitech-marketing-manager-anna "Marketing sync"
# → Session ID: db4aaf45-dd47-4766-87d0-0c2f690e8797
Send a task request
sessions_send(
sessionKey: "agent:echitech-marketing-manager-anna:main",
message: "[From: Lewis] [fromAgentId: echi-ceo] [reply-to: <sourceSession>] 请更新本周营销计划。"
)
Send a notification (no reply)
sessions_send(
sessionKey: "agent:echitech-sales-manager-victor:main",
message: "[From: Lewis] [fromAgentId: echi-ceo] [DO NOT REPLY] 今晚8点有全员会议,请准时参加。"
)
Storage
Session index: <openclaw_dir>/a2a-sessions/sessions.jsonl
Comments
Loading comments...
