Skip to main content
The same agent backend can serve Slack, Telegram, WhatsApp, browser clients, and agent-to-agent systems. AgentOS interface adapters map each surface onto the same run and session model.

Available surfaces

Sessions per surface

Each interface maps surface state onto AgentOS sessions, so a follow-up in the same thread continues the same conversation. For Telegram and WhatsApp, /new preserves earlier sessions and creates a session whose ID has a new eight-character suffix. This command requires a database. Stored memory can follow a user across surfaces when the interfaces resolve to the same user_id and use the same agent database and memory configuration. Session history remains scoped to each interface-generated session_id. Interfaces can add surface metadata and dependencies to a run.

Register several interfaces

Conditional registration

Register only the interfaces you have credentials for, so a dev run without secrets does not crash.

Resolving Slack identities

Slack hands you opaque IDs like U07ABCXYZ. Set resolve_user_identity=True on the Slack interface and it resolves the ID to the user’s email, which becomes the run’s user_id. The display name is added to run metadata. Off by default because it costs an extra Slack API call per message.

One-off webhooks

For a one-off integration, a custom FastAPI route that calls the agent is enough. See Serve as an API.

Next steps

Developer Resources