This project implements a Telegram bot system with two instances: a daemon bot and an apprentice bot. The daemon bot handles the main workload, while the apprentice bot can be updated and take over when needed. The system supports both OpenAI (ChatGPT) and Anthropic (Claude) AI models.
Here are some of the upcoming features and improvements planned for the bot:
* **Refactor messaging service integration:** Abstract the messaging service (currently Telegram) to allow for easier integration of other services like Slack or email. Dummy classes for new services will be created as a first step. (Issue #194)
* **Dynamic inference service switching:** Enable switching between different inference services (e.g., Gemini, OpenAI) during runtime without restarting the bot. Message history will be preserved across service switches. (Issue #195)
* **Scheduled agent tasks:** Allow agents to run on a timer to perform specific tasks autonomously, such as:
* Store the GitHub API key and current repository in `context.user_data["github_api_key"]` and `context.user_data["current_repository"]` respectively on the Telegram side.
* **User-provided inference service API keys:** Allow users to input their own API keys for inference services (e.g., OpenAI, Gemini, Anthropic, other OpenAI-compatible services). These keys will be stored in `context.user_data`. A wizard may be implemented to guide users through obtaining API keys if needed. (Issue #199)
***Server-side storage for timed agents:** For agents running on a timer, API keys and other sensitive information will be stored server-side. This will eventually be a paid service. (Issue #200)