Hermes is my production AI agent stack. It is not a demo or a weekend prototype; it runs on a private server, handles real conversations, and routes requests across multiple LLM providers based on cost, latency, and task fit.
What it does
- Telegram assistant: private bot that answers questions, runs workflows, and acts as a daily AI companion.
- Slack integration: team notifications and slash-command-style interactions.
- Model routing: sends requests to OpenAI, Anthropic, DeepSeek, or local LLMs depending on the task, with fallback chains.
- Self-hosted infrastructure: Docker containers, Nginx reverse proxy, Linux server, custom monitoring.
Stack
| Layer | Tools |
|---|---|
| LLM providers | OpenAI, Anthropic, DeepSeek, local models |
| Messaging | Telegram Bot API, Slack Bolt |
| Runtime | Docker, Linux, Nginx |
| Language | Python, TypeScript, Bash |
Architecture
User (Telegram/Slack)
|
v
Nginx reverse proxy
|
v
Hermes core router
|
+--> OpenAI GPT-4o
+--> Anthropic Claude
+--> DeepSeek V3
+--> Local LLM via Ollama/vLLM
|
v
Response back to user
Lessons learned
Running your own agent forces you to care about things that disappear in hosted products: retry logic, rate-limit handling, prompt versioning, context window management, and graceful degradation. It is also the best way to learn how to test agents in production.
This project is under active development. Details are updated as the stack evolves.