Overview
This issue proposes a set of capabilities to make SLIM a first-class transport layer for autonomous agents. The goal is to define the components and workflow an agent needs to: discover SLIM infrastructure via the Agntcy ai-catalog/directory, join channels, exchange messages with other participants, and bridge those messages into agent-native protocols (e.g. A2A).
Motivation
Agents operating in multi-agent environments need a secure, low-latency way to:
- Find and connect to shared communication channels
- Receive invitations and queue messages asynchronously
- Route messages to other agents using their preferred protocol
Right now SLIM has strong primitives (channels, sessions, SLIMRPC) but no cohesive story for how a standalone agent process bootstraps into this ecosystem and uses it as a persistent background transport.
Proposed Flow
1. Agent is configured with:
- Address of its local SLIM node
- Address of the Agntcy ai-catalog/directory
2. Agent starts the SLIM client daemon under a chosen identity
(certificate / JWT / shared secret — whatever auth the node requires)
3. Agent queries ai-catalog to locate a channel-manager service
4. Agent (via daemon) sends a SLIMRPC message to the channel-manager:
- List available channels
5. Agent picks a channel and requests an invitation
6. Channel-manager sends an invite; the daemon:
- Accepts the session automatically, OR
- Queues the invite for explicit acceptance
- Notifies the agent (signal / callback / IPC event)
7. Daemon joins the channel and begins receiving messages:
- Messages are queued locally
- Agent is notified of new messages
8. Agent acts on messages:
- Reads them directly from the daemon queue
- OR pipes a sub-client (e.g. A2A CLI) to the channel to consume/produce messages
- OR uses the channel as a transport to deliver A2A messages to a specific named participant
9. Agent can also use ai-catalog to find other individual agents and send them
direct SLIM messages (e.g. "please request an invite to channel X")
Key Gap: SLIM Client Daemon
The most important missing piece is a SLIM client daemon — a long-lived background process that an agent can start to maintain a persistent SLIM identity and connection.
Responsibilities
| Capability |
Description |
| Identity management |
Start with a given identity (cert/token) and maintain it across reconnects |
| Session handling |
Accept or queue incoming session invitations; notify the agent |
| Channel subscription |
Subscribe to one or more channels and buffer inbound messages |
| Outbound messaging |
Accept send requests from local clients via IPC (socket/pipe/stdin) |
| Sub-client bridging |
Expose a local endpoint that protocol adapters (A2A, HTTP, etc.) can connect to |
| Offline queuing |
Buffer messages so agents can process them at their own pace |
Interface options (to be decided)
- Unix domain socket / named pipe — allows any local process to connect as a sub-client
- Local HTTP/gRPC endpoint — language-agnostic; easy to integrate from Python/Go/JS agents
- stdin/stdout pipe — simplest for CLI-driven agents
- Event callback / signal — notify parent process when a new message or invite arrives
Related Components
Channel Manager CLI
Extend (or create) a CLI that an agent can invoke to:
channel-manager list — list channels exposed by a discovered channel-manager
channel-manager invite <channel> <identity> — request or send an invite
channel-manager participants <channel> — list current channel members
A2A ↔ SLIM Bridge
Allow an A2A client to use a SLIM channel as its transport:
- SLIM channel carries A2A task envelopes as payloads
- A2A CLI can address a specific participant in a channel by their SLIM name/identity
- Inbound A2A tasks arrive via the daemon queue and are dispatched to the agent's A2A handler
ai-catalog Integration
Standardise the catalog record schema so agents can query for:
- Channel managers (
type: slim/channel-manager, endpoint: slimrpc://...)
- Individual agents (
type: agent, slim-identity: ...)
Open Questions
- Daemon lifecycle — should this be a standalone binary (
slim-daemon) or a sub-command of slimctl?
- IPC protocol — which local interface is the right default for broad language support?
- Invite policy — auto-accept vs. explicit; should policy be per-channel or global?
- Message ordering / delivery guarantees — does the queue need sequence numbers? replay?
- Identity portability — can an agent export/import its SLIM identity so it survives restarts?
- ai-catalog schema — what fields are required for SLIM-capable services?
Acceptance Criteria (initial scope)
Overview
This issue proposes a set of capabilities to make SLIM a first-class transport layer for autonomous agents. The goal is to define the components and workflow an agent needs to: discover SLIM infrastructure via the Agntcy ai-catalog/directory, join channels, exchange messages with other participants, and bridge those messages into agent-native protocols (e.g. A2A).
Motivation
Agents operating in multi-agent environments need a secure, low-latency way to:
Right now SLIM has strong primitives (channels, sessions, SLIMRPC) but no cohesive story for how a standalone agent process bootstraps into this ecosystem and uses it as a persistent background transport.
Proposed Flow
Key Gap: SLIM Client Daemon
The most important missing piece is a SLIM client daemon — a long-lived background process that an agent can start to maintain a persistent SLIM identity and connection.
Responsibilities
Interface options (to be decided)
Related Components
Channel Manager CLI
Extend (or create) a CLI that an agent can invoke to:
channel-manager list— list channels exposed by a discovered channel-managerchannel-manager invite <channel> <identity>— request or send an invitechannel-manager participants <channel>— list current channel membersA2A ↔ SLIM Bridge
Allow an A2A client to use a SLIM channel as its transport:
ai-catalog Integration
Standardise the catalog record schema so agents can query for:
type: slim/channel-manager,endpoint: slimrpc://...)type: agent,slim-identity: ...)Open Questions
slim-daemon) or a sub-command ofslimctl?Acceptance Criteria (initial scope)
slim-daemon(orslimctl daemon) binary that maintains a persistent SLIM connection