Hermes Agent Infrastructure
Self-hosted autonomous AI agent stack — persistent semantic memory, multi-model routing, browser automation and multi-platform messaging on a $5/month ARM VPS.
Problem
Hosted AI assistants are stateless, locked to a single provider and unreachable outside their own app. I wanted a persistent agent I fully control — one that remembers context across sessions, survives provider outages and rate limits, automates browser tasks, and is reachable from the messaging apps I already use — without recurring SaaS costs or sending private data to a third-party host.
Role
Infrastructure & AI Engineer — self-hosted deployment, integration and operations of the open-source Hermes Agent framework.
Personal AI agent infrastructure built on Hermes Agent (Nous Research's open-source framework). I designed, deployed and operate the full self-hosted stack: vector-backed long-term memory, LLM provider routing with fallbacks, cloud browser automation, a multi-platform messaging gateway and scheduled automation — all running 24/7 on Oracle Cloud ARM64.
Solution
Deployed and operate the full Hermes Agent stack self-hosted on Oracle Cloud (ARM64, Ubuntu 22.04): Mem0 (OSS mode) with a self-hosted Qdrant vector database for cross-session semantic memory, multi-model inference routed through OpenRouter and OpenCode Go with automatic fallback chains across ~20 providers, cloud browser automation via the Browser Use REST API with hybrid cloud/local routing, and a systemd-managed messaging gateway serving Telegram and Slack (6+ platforms supported). Cron-based scheduled jobs deliver daily briefings and health reports, and a Kanban orchestration pipeline dispatches multi-worker task flows. Exposed securely through Cloudflare Tunnel — no open inbound ports.
Technical Decisions
Self-hosted Mem0 (OSS) + Qdrant over managed memory APIs — semantic long-term memory with hybrid search (vector + keyword) stays on my own infrastructure. The agent captures and retrieves cross-session context automatically via LLM-powered extraction, with zero per-request SaaS cost.
Multi-provider routing through OpenRouter / OpenCode Go — fallback chains across ~20 model providers (Claude, GPT, Gemini, DeepSeek, Qwen) with credential pools, rate-limit recovery and exhaustion tracking. No single provider is a point of failure.
Browser Use cloud API with hybrid routing — public URLs are handled by cloud browsers via REST; LAN/localhost targets auto-route to a local Chromium sidecar. Keeps internal services unexposed while enabling full web automation.
Cloudflare Tunnel instead of open ports — the dashboard and gateway are reachable from anywhere with no inbound firewall rules on the VPS, reducing attack surface on a box that holds API credentials.
systemd user services for the gateway and sidecars — automatic restarts, journald logging and clean dependency ordering without a container orchestrator. Docker is reserved for stateful services (Qdrant, Mem0).
OCI ARM64 free/low-cost tier — the entire stack (agent, vector DB, memory layer, gateway, dashboard) runs 24/7 on a ~$5/month ARM VPS, which forced deliberate choices about resource footprint and ARM-compatible images.
Trade-off — self-hosting means I own upgrades, backups and incident response. Acceptable for a personal system; it is also the point: the project exists to operate real AI infrastructure end-to-end, not just consume it.
Technical Challenges
Integrated Mem0 (self-hosted OSS mode) with Qdrant v1.18 as vector store — configured LLM-powered memory extraction, semantic + keyword hybrid search and cross-session retrieval so the agent recalls facts and preferences without manual memory management.
Configured provider routing and fallback chains across ~20 LLM providers with credential pools, automatic rate-limit recovery and per-provider exhaustion tracking — the agent degrades gracefully instead of failing when a provider throttles.
Deployed the full stack on ARM64 (OCI) — sourcing/validating ARM-compatible Docker images for Qdrant and Mem0, tuning memory footprint to fit a small VPS, and keeping everything on Ubuntu 22.04 with unattended upgrades.
Set up a long-running multi-platform messaging gateway under systemd — Telegram and Slack live, with per-platform tool gating, DM pairing authorization and isolated session stores per platform.
Built scheduled automation with cron-based jobs (daily briefings, system health reports) delivered across platforms, plus Kanban orchestration for multi-profile, multi-worker task pipelines with automatic dispatch and failure recovery.
Operate 40+ agent skills with a background curator handling lifecycle — stale detection, archival, backup and rollback — keeping the agent's procedural knowledge maintainable over time.
Tech stack
ai
data
automation
messaging
infrastructure
Impact
~$5/month total infrastructure cost for a 24/7 autonomous agent stack
~20 LLM providers behind automatic fallback routing — no single point of failure
6+ messaging platforms supported through one self-hosted gateway