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.