Repository navigation
·
258 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
🎯 What is HermesX?
HermesX is a production-grade, multi-tenant AI agent runtime built in Go. It provides a complete SaaS control plane for deploying AI agents across 14+ messaging platforms with enterprise-grade isolation, observability, and governance.
⚡ Highlights
Independent Project Identity
- Fully rebranded from hermes-agent-go fork to independent project "HermesX"
- New module path:
github.com/Colin4k1024/hermesx - Binary:
hermesx, Docker image:ghcr.io/colin4k1024/hermesx - All metrics, containers, and toolsets use
hermesxprefix
Multi-Tenant SaaS Platform
- Row-Level Security (RLS) — PostgreSQL-enforced tenant isolation across all 9 business tables
- API Key Authentication — SHA-256 hashed keys with scope-based RBAC
- Per-Tenant Rate Limiting — Redis-backed with atomic Lua script (no race conditions)
- GDPR Compliance — Full data export + deletion chain (PG + MinIO + audit trail)
- Tenant-scoped Skills — MinIO object storage with path traversal protection
Enterprise Hardening
- Circuit Breaker — Per-provider LLM circuit breaker with configurable thresholds
- LLM Retry Transport — Exponential backoff with jitter, stream-aware error classification
- ExecutionReceipt — Cryptographic proof of agent execution for audit/compliance
- Metering & Usage — Async batch token counting with granular query API
- OpenAPI Spec — Auto-generated from route definitions
Observability
- OpenTelemetry Tracing — HTTP, LLM, PGX spans with tenant context propagation
- Prometheus Metrics —
hermesx_http_*,hermesx_llm_*,hermesx_breaker_*,hermesx_rate_limit_* - Structured Audit Logging — Every API call logged with tenant, user, action, latency
Platform Coverage (14+ Channels)
Telegram, Discord, Slack, WhatsApp, Signal, Email (IMAP/SMTP), SMS (Twilio), Matrix, Mattermost, DingTalk, Feishu/Lark, WeCom, Home Assistant, Webhooks
Deployment Ready
- Multi-arch Docker images (linux/amd64, linux/arm64, darwin/amd64, darwin/arm64, windows/amd64)
- Helm chart (
deploy/helm/hermesx/) - Kubernetes HPA + PDB manifests
docker-compose.prod.ymlfor single-node deployment
📊 Codebase Stats
| Metric | Value |
|---|---|
| Go source files | 420 |
| Test files | 125 |
| Lines of Go code | ~80,000 |
| Test packages passing | 21 |
| Integration test coverage | RLS, GDPR, Skills isolation, Sandbox |
| CI jobs | 9 (Build×5, Test, Lint, Docker, Integration) |
| Supported LLM providers | OpenAI, Anthropic, Google, AWS Bedrock, Azure, Ollama, custom |
🔒 Security
- PostgreSQL RLS enforced on all tenant tables (sessions, messages, memories, user_profiles, audit_logs, api_keys, cron_jobs, roles)
- Write/Update/Delete RLS policies prevent cross-tenant mutation
- No-context-deny-all policy (fail-closed)
- OSV malware check for MCP server packages
- Input validation with path traversal protection
- Approval queue governance with stale reaper
🏗️ Architecture
cmd/hermesx/ CLI + SaaS entrypoints
internal/
├── api/ REST API (OpenAI-compatible + admin)
├── agent/ Agent loop + tool orchestration
├── auth/ API key extraction + RBAC
├── gateway/ 14 messaging platform adapters
├── llm/ Multi-provider LLM client + retry + breaker
├── metering/ Usage recording + query
├── middleware/ Auth, RLS, rate limit, audit, metrics
├── observability/ OTel tracing + Prometheus
├── objstore/ MinIO object storage
├── skills/ Tenant-scoped skill management
├── store/ PostgreSQL + SQLite + Redis
└── toolsets/ 30+ toolset definitions
🚀 Quick Start
# Docker (recommended)
docker pull ghcr.io/colin4k1024/hermesx:latest
docker run -e HERMES_API_KEY_LLM=sk-xxx ghcr.io/colin4k1024/hermesx:latest
# From source
git clone https://github.com/Colin4k1024/hermesx.git
cd hermesx && make build
./hermesx --help⚠️ Breaking Changes from v1.x
- Module path changed:
github.com/Colin4k1024/hermesx(wasgithub.com/hermes-agent/hermes-agent-go) - Binary renamed:
hermesx(washermes) - Prometheus metrics prefix:
hermesx_(washermes_) - Docker containers:
hermesx-*prefix - Plugin directory:
hermesx_plugins/(washermes_plugins/) - Toolset names:
hermesx-cli,hermesx-telegram, etc.
Unchanged for backward compat:
- Config directory:
~/.hermes/ - Environment variables:
HERMES_*
🙏 Acknowledgements
Built upon the foundational work of Nous Research and their original Hermes agent concept. HermesX extends this vision into a production-grade enterprise SaaS platform.
Full Changelog: https://github.com/Colin4k1024/hermesx/commits/v2.0.0