Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
adk-gateway
Multi-channel AI gateway for adk-rust agents. Connects Telegram, Slack, WhatsApp, Discord, Matrix, webhooks, and AI agents to your LLM-powered agents via a single binary — with memory, RAG, access control, a React control panel, and AWP protocol support.
Install
That's it. The control panel UI is embedded in the binary.
Run
Open http://localhost:18789/ui — the setup wizard guides you through configuration on first run.
The wizard walks you through:
- Choosing a model provider (Free Tier, Frontier, or Auto Intelligence)
- Setting API keys
- Connecting a channel (Telegram, Slack, WhatsApp, Discord, or Matrix)
Config is saved to ~/.adk-gateway/gateway.json and hot-reloads on edit.
Features
- 5 Channels — Telegram, Slack, WhatsApp, Discord, Matrix
- 14 LLM Providers — Gemini, Claude, GPT, Ollama, DeepSeek, Groq, OpenRouter, and more
- Fallback Chains — Automatic retry across multiple models on failure
- Multi-Agent — Create, start, stop, configure specialist agents at runtime
- Multi-User — Multiple paired users per channel with independent sessions
- Persistent Memory — SQLite-backed knowledge graph with entity extraction and search (survives restarts)
- RAG — Document ingestion with vector/hybrid/filtered search
- Graph Workflows — DAG-based execution with agent nodes, action nodes, conditional routing
- Scheduled Tasks — Cron-style jobs with agent prompts, delivery targets, suppress keywords, activity logs
- Heartbeat V2 — Session-integrated heartbeat with full conversation context
- Tool Approval — Interactive approve/reject for dangerous tool calls via Telegram inline buttons
- Stale Context Detection — Welcome-back messages after idle periods with pending task summaries
- Rate Limiting — Sliding-window rate limiter prevents runaway tool loops
- Health Monitoring — Periodic health checks with webhook/Telegram alerting
- Config Encryption — AES-256-GCM encryption for sensitive config values at rest
- Zero-Downtime Restart — SIGUSR1 graceful restart with drain phases
- ACP Integration — Delegate tasks to Claude Code or Codex via Agent Communication Protocol
- MCP Integration — Connect external tool servers (computer-use, browser, media) via Model Context Protocol
- 108 Agent Tools — Filesystem, KG, agents, tasks, MCP tools, send_photo, all callable by the LLM
- Access Control — DM pairing, RBAC, role-based tool access, JWT/SSO
- AWP Protocol — Make your gateway discoverable by other AI agents
- Real-Time UI — WebSocket-powered control panel with 14 pages
- Hot-Reload — Edit config, changes apply without restart
- Session Backends — In-memory, SQLite, Postgres, Redis, Firestore
- Typing Indicators — Persistent typing bubble during processing
- Progress Messages — Tool execution updates sent to user during long operations
- Cancel Support —
/stopcommand cancels in-flight requests - Image Delivery —
send_phototool sends images directly to Telegram - Docker + Systemd — Production-ready Dockerfile and systemd service
Control Panel
A React + TypeScript SPA at /ui with:
| Page | What it does |
|---|---|
| Setup Wizard | First-run guided configuration |
| Dashboard | Metrics, channel status, pairing code, live WebSocket updates |
| Model Providers | Model presets, fallback chains, API keys, configured providers sidebar |
| Agents | Multi-agent lifecycle — create, start, stop, configure, delegation permissions |
| Channels | Configure all 5 channels with pairing and test connection |
| Sessions | Active sessions with terminate |
| AWP | Health, capabilities, subscriptions, consent |
| Integrations | MCP servers, tools |
| Scheduled Tasks | Create, edit, pause, resume, delete tasks with activity logs and error display |
| Configuration | JSON editor with validation |
| Logs | Real-time streaming with filters |
| Memory | Knowledge graph protocol editor |
| Settings | Session backend, memory, RAG config |
Configuration
{
"agent": {
"model": {
"primary": "openai/gpt-5.4-mini",
"fallbacks": ["openai/gpt-5.4-nano"]
}
},
"channels": {
"telegram": {
"botToken": "${TELEGRAM_BOT_TOKEN}",
"dmPolicy": "open"
}
},
"gateway": { "port": 18789 },
"memory": {
"backend": "inmemory",
"embedding": { "provider": "gemini" }
}
}
See docs/config-reference.md for all options.
HTTP Endpoints
| Endpoint | Description |
|---|---|
GET /health |
Channel health + session count |
GET /metrics |
Prometheus-format metrics |
GET /ui/* |
React control panel |
WS /ws/events |
WebSocket live updates |
POST /hooks/inbound |
Webhook for external systems |
GET /.well-known/awp.json |
AWP discovery |
POST /awp/a2a |
Agent-to-agent messages |
CLI
Development
# From published crates (recommended)
# From source
# Build UI (for development with hot reload)
&& &&
# Run gateway with verbose logging
# Run tests
Deployment
Single binary deployment:
Docker:
Systemd (Linux):
Launchd (macOS):
See docs/deployment-guide.md for full production setup.
Agent Tools
The system agent has access to 108+ tools across these categories:
| Category | Tools |
|---|---|
| Knowledge Graph | kg_create_entities, kg_add_observations, kg_search_nodes, kg_read_graph, kg_delete_entities |
| Agents | agent_list, agent_create, agent_start, agent_stop, agent_delete, agent_configure |
| Scheduled Tasks | task_list, task_create, task_cancel, task_delete |
| Filesystem | fs_pwd, fs_list, fs_tree, fs_read, fs_search |
| Media | send_photo |
| Computer Use | 58 tools via MCP (screenshot, click, type, scroll, etc.) |
| Browser | 23 tools via MCP (navigate, click, snapshot, evaluate, etc.) |
Current Limitations
| Feature | Status |
|---|---|
| Multi-Agent Codegen | Experimental — generates agent binaries but A2A endpoints are placeholder |
| AWP Commerce | Placeholder — protocol endpoints work, commerce capabilities are declarations only |
License
Apache-2.0