A Telegram bot powered by AI models that provides intelligent responses through the Telegram messaging platform.
- Go 1.24+
- Telegram Bot Token (from @BotFather)
- AI API Key (compatible with OpenAI API format)
- Get the bot:
git clone https://github.com/edgard/murailobot.git
cd murailobot
- Configure:
cp config.yaml.example config.yaml
# Edit config.yaml with your tokens and admin ID
- Run:
make build
./murailobot
Minimal config.yaml example:
# Telegram Bot Token (from BotFather)
bot_token: "your-telegram-bot-token"
# Your Telegram User ID (for admin access)
bot_admin_id: 123456789
# OpenAI API Key or compatible service key
ai_token: "your-openai-api-key"
# System instruction for the AI
ai_instruction: "You are a helpful assistant focused on providing clear and accurate responses."
# Instruction for profile generation
ai_profile_instruction: "You are a behavioral analyst with expertise in psychology, linguistics, and social dynamics.\n\nYour task is to analyze chat messages and build concise, meaningful profiles of users."
For a complete configuration with all options, see config.yaml.example.
docker pull ghcr.io/edgard/murailobot:latest
docker run -v $(pwd)/config.yaml:/app/config.yaml ghcr.io/edgard/murailobot:latest
/start
- Initialize bot conversation/mrl_reset
- Clear chat history (admin only)/mrl_analyze
- Analyze user messages and update profiles (admin only)/mrl_profiles
- Show user profiles (admin only)/mrl_edit_user
- Edit user profile data (admin only)
MurailoBot is designed to operate in Telegram group chats:
- Add the bot to your group
- Mention the bot (@your_bot_name) in your message to get a response
- The bot will analyze the conversation context and respond appropriately
- Group messages are saved for context and profile generation
- Chat with AI through Telegram group mentions
- Persistent conversation history with context preservation
- Advanced user profiling system with behavioral analysis
- Automated daily user profile updates
- Role-based access control
- Docker support for both AMD64 and ARM64 architectures
- Simple YAML configuration
- Efficient message cleanup and storage management
MurailoBot includes a sophisticated user profiling system that:
- Automatically analyzes message patterns and content to build psychological profiles
- Runs daily profile updates with data preservation mechanisms
- Tracks user metadata including display names, locations, and age ranges
- Maintains persistent profiles across conversations
- Enhances AI responses with contextual user information
- Preserves existing profile data while incrementally updating with new insights
The profiling system helps the bot provide more personalized and context-aware responses by analyzing:
- Language patterns and word choice
- Emotional expressions and communication style
- Recurring themes in communications
- Cultural references and personal details
- Group interaction dynamics
This project uses an automated release workflow. Here's how it works:
When code is pushed to the main
branch, the following happens automatically:
- The CI workflow detects changes in the codebase
- Version is automatically bumped based on commit messages:
fix:
orfix(scope):
→ patch bumpfeat:
orfeat(scope):
→ minor bumpBREAKING CHANGE:
in commit body → major bump
- A new git tag is created with the new version
- A GitHub release is generated with release notes
- Binary artifacts are built for multiple platforms
- Docker images are built and pushed to GitHub Container Registry
- No need to manually create version tags or releases
- Use Conventional Commits format for your commit messages
- The release type (patch, minor, major) is determined by your commit messages
All releases are available on the Releases page.
CC0 1.0 Universal - see LICENSE file