Chat Providers
Providers are transport channels between users and the Ash runtime. They control how messages arrive and where replies are sent.
Chat Providers In 30 Seconds
- Provider config controls authentication and access policy
ash serveruns provider integrations- Telegram is the primary provider documented here
Quick Start (Telegram)
[telegram]bot_token = "123456789:ABCdef..." # Requiredallowed_users = ["@yourusername"] # Restrict who can use the botallowed_groups = ["-100123456789"] # Optional group allowlistgroup_mode = "mention" # mention | always
[telegram.passive]enabled = false # Passive group listeningresponse_allowed_chats = [] # Optional passive-response allowlistresponse_blocked_chats = [] # Suppress passive responses in specific chatsStart runtime:
uv run ash serveConfigure Access
Use allowlists for production deployments:
[telegram]allowed_users = ["@yourusername", "123456789"]allowed_groups = ["-100123456789"]Group behavior:
[telegram]group_mode = "mention" # respond when mentioned# group_mode = "always" # respond to all messages in allowed groupsTroubleshooting
Bot does not respond
uv run ash doctoruv run ash logs --component providersCommon fixes:
- invalid
bot_token - missing
allowed_users/allowed_groupsentries - runtime not started via
uv run ash serve
Group replies are missing
Check group_mode and allowlists:
[telegram]group_mode = "mention"allowed_groups = ["-100123456789"]Passive mode seems inactive
Enable it explicitly:
[telegram.passive]enabled = true# response_allowed_chats = ["-100123456789"] # Reply only in these groups# response_blocked_chats = ["-100999999999"] # Never reply in these groupsReference (Advanced)
Provider runtime and integration code:
src/ash/providers/- provider adapterssrc/ash/cli/commands/serve.py- runtime entrypoint- provider logs via
uv run ash logs --component providers