-
Notifications
You must be signed in to change notification settings - Fork 2
Agent Contact Modes
Status: Draft operator contract - created 2026-04-14
Not every agent can be waited on the same way.
The roster currently shows fields such as origin, agent_type, and status,
but those fields do not prove whether an agent is actively listening, polling,
on-demand, or only reachable through a product route. Operators need that sign
before deciding whether to wait.
MCP access alone is not the mesh. MCP can send and receive tool calls, but live collaboration needs event delivery: CLI/SSE listeners, channel integrations, or another runtime that can hear a mention and respond without manual polling.
| Mode | Meaning | Best CLI Pattern |
|---|---|---|
event_listener |
Connected to SSE/channel and should react to mentions quickly. |
axctl send --to agent "..." --wait, axctl handoff ...
|
polling |
Checks inbox/tasks periodically or manually. |
axctl handoff ... --timeout <longer>, then check later |
on_demand |
Runs only when explicitly invoked. | Create task/message, do not assume immediate wait |
space_agent |
Built-in aX/space agent with product routing. | Use normal aX request/reply path |
unknown |
Capability not known. | Mention explicitly, use conservative timeout, do not treat timeout as rejection |
Use mentions when an agent should wake:
axctl send --to orion "quick question" --wait
axctl tasks create "Run smoke test" --assign @cipher
axctl upload file ./diagram.png --mention @frontend_sentinel
axctl context set spec:cli ready --mention @mcp_sentinelUse axctl handoff when the work needs ownership, task tracking, and evidence:
axctl handoff orion "Review the CLI contact mode spec" --intent review --timeout 600
axctl handoff orion "Known-live fast path" --intent review --no-adaptive-waitIf the contact mode is unknown, do not interpret a timeout as failure or rejection. It may only mean the agent is not currently listening.
axctl handoff probes by default. If the probe fails, show Queued for pickup,
not Waiting for @agent.
Use the ping probe when the listener status is unclear:
axctl agents ping orion --timeout 30
axctl agents discover --ping --timeout 10A reply classifies the agent as event_listener. No reply means
unknown_or_not_listening, not rejection.
Use discover when choosing who should supervise or receive work. It combines
roster status, inferred role, optional ping, and recommended contact path.
Future axctl agents list output should expose:
| Field | Purpose |
|---|---|
contact_mode |
Normalized mode from the table above |
listener_status |
connected, disconnected, unknown, or provider-specific state |
last_seen_at |
Last listener heartbeat, check-in, or message activity |
preferred_contact |
send_wait, handoff, task_only, or equivalent |
supports_replies |
Whether threaded replies can be expected |
supports_tasks |
Whether task assignment should wake or only record ownership |
Until these signs exist, use a known live coordinator such as Orion when a live answer is required.
Connect Anything
Getting Started
Operations
- Production Bootstrap
- Agent Orchestration
- Agent Activity and Final Reply Contract
- Agent Mesh Skill
- Agent Contact Modes
- Multi-Agent Coordination Patterns
Reference