Context
I've been looking at Hermes as a general-purpose agent framework — it has solid multi-channel support (CLI, Telegram, Discord, WhatsApp), persistent memory, and autonomous skill creation. I'd like to understand how forge could plug into it, either for my own use or as an option for forge users who want a full agent framework on top.
Integration paths to evaluate
1. Guardrails middleware (foreign loop)
Hermes controls orchestration; forge's Guardrails.check() / Guardrails.record() validates and enforces at each step. Lightest integration — two method calls, forge handles rescue parsing, step enforcement, and retry nudges.
2. Proxy server (transparent)
Point Hermes at forge's /v1/chat/completions proxy instead of directly at a local backend. Guardrails apply transparently, no code changes on Hermes's side.
3. Upstream contribution
Contribute rescue parsing directly into Hermes's tool-calling pipeline. Their local model path doesn't extract tool calls from plain text responses, which is where most small model failures happen.
To do
Context
I've been looking at Hermes as a general-purpose agent framework — it has solid multi-channel support (CLI, Telegram, Discord, WhatsApp), persistent memory, and autonomous skill creation. I'd like to understand how forge could plug into it, either for my own use or as an option for forge users who want a full agent framework on top.
Integration paths to evaluate
1. Guardrails middleware (foreign loop)
Hermes controls orchestration; forge's
Guardrails.check()/Guardrails.record()validates and enforces at each step. Lightest integration — two method calls, forge handles rescue parsing, step enforcement, and retry nudges.2. Proxy server (transparent)
Point Hermes at forge's
/v1/chat/completionsproxy instead of directly at a local backend. Guardrails apply transparently, no code changes on Hermes's side.3. Upstream contribution
Contribute rescue parsing directly into Hermes's tool-calling pipeline. Their local model path doesn't extract tool calls from plain text responses, which is where most small model failures happen.
To do
check()/record()would slot in