Search
Search docs, blog posts, and ecosystem packages with citations.
Enter a query to see grounded citations.
Platform-agnostic messaging for AI agents across Telegram, Discord, Slack, and WhatsApp
Open source on GitHub →defp deps do
[
{:jido_messaging, "~> 0.1.0"}
]
end
Core ecosystem relationship
Core ecosystem relationship
Jido Messaging is a platform-agnostic messaging system that enables AI agents and humans to communicate across multiple messaging platforms through a unified, pure-Elixir API. It provides a channel-agnostic abstraction layer where conversations are modeled as rooms containing messages from participants — with AI agents as first-class citizens alongside human users. Messages use an LLM-native content structure (roles, tool calls, tool results) that maps directly to LLM context formats.
Built on OTP principles with GenServers, Supervisors, Registries, and ETS, Jido Messaging delivers fault-tolerant, isolated messaging instances that can run entirely in-memory for testing or connect to production persistence backends.
Jido Messaging serves as the communication layer in the Jido ecosystem, bridging Jido AI agents and external chat systems. It allows agents to participate in conversations on any supported messaging platform — responding to messages, using tools, streaming responses, and collaborating with human users — through a single, consistent API.
Message struct with role-based identification and rich content blocks, Room conversation containers, Participant entities for humans/agents/systems, and Instance channel connection descriptors.
Behaviour-based platform adapters for Telegram (via Telegex), Discord (via Nostrum), Slack (via slack_elixir), and WhatsApp (via whatsapp_elixir). Plugin registry with capability declarations and content filtering.
Ingest pipeline for inbound normalization with deduplication and room/participant resolution. Deliver pipeline for outbound delivery with status tracking. Streaming GenServer for rate-limited progressive updates.
AgentRunner GenServer managing agent participation per room with configurable triggers (all, mention, prefix). AgentSupervisor for lifecycle management.
RoomServer for per-room state with bounded history, presence, typing, reactions, and read receipts. InstanceServer for channel connection lifecycle state machines.