2.9 KiB
2.9 KiB
How to Connect an AI Agent to Chat Apps with nanobot
nanobot can run as a self-hosted chatbot or AI agent in Telegram, Discord, Slack, WeChat, Email, Mattermost, and other chat apps. The gateway receives chat messages, runs the agent, and sends replies back to the same channel.
What you will build
- a working local agent
- one enabled chat channel
- a running gateway
- a pairing-based approval flow or a narrow static allowlist
When to use this
Use chat apps when the agent should live where users already communicate: private DMs, team channels, group chats, email threads, or bot workspaces.
Install
python -m pip install nanobot-ai
nanobot onboard --wizard
nanobot agent -m "Hello!"
Then choose one platform guide:
- Telegram AI agent
- Discord AI agent
- Slack AI agent
- Feishu AI agent
- WhatsApp AI agent
- WeChat AI agent
- QQ AI agent
- Email AI agent
- Mattermost AI agent
Minimal working example
Every channel follows the same pattern:
- Get the platform token, login state, webhook, or mailbox credentials.
- Merge the channel snippet into
~/.nanobot/config.json. - Prefer pairing for DM-capable channels: omit
allowFrom, then approve the first DM's pairing code. - For channels without pairing, such as Email, keep access narrow with
allowFromor platform-specific allow lists. - Check status:
nanobot channels status
- Start the gateway:
nanobot gateway
- Send a test DM, approve the pairing code when prompted, then send the test message again.
Production notes
- Keep the gateway running as a service for always-on chat apps.
- Use mention-only group policies before opening a bot to busy channels.
- Use one channel at a time while debugging.
- Prefer DMs for first tests; pairing only works in DMs, and group chats add permissions and routing behavior.
Security notes
- Prefer pairing or explicit allowlists; do not use
allowFrom: ["*"]outside an intentional sandbox. - Rotate bot tokens if they are pasted into logs or shared files.
- Review file, shell, and web tool access before inviting other users.
Troubleshooting
- If
nanobot channels statusdoes not show the channel, the config key or optional dependency is likely missing. - If the first DM returns a pairing code, approve it with
/pairing approve <code>before expecting normal replies. - If messages do not arrive, run
nanobot gateway --verboseand compare platform credentials, event permissions, and allow lists. - If group replies are unexpected, review that channel's group policy.