Hermes Agent is the channel gateway for messaging-based integrations — Telegram, Signal, and WhatsApp. It handles channel routing, scheduling, memory indexing, and skill execution. The inference backend behind it is ds4-server running DeepSeek-V4-Flash.
This guide covers the integration steps. Follow it when you want a messaging surface on top of the inference stack.
Prerequisites
- A running ds4-server instance (see Setup and Deployment).
- The ds4-server endpoint reachable on the host or network where Hermes Agent runs. The default is
http://127.0.0.1:8000/v1if Hermes and the server run on the same machine. - A Hermes Agent installation. Hermes is operator-supplied infrastructure; use the version your team has standardized on.
Provider Configuration
Add ds4-server to Hermes Agent as an OpenAI-compatible custom provider:
Type: openai-compatible
Base URL: http://127.0.0.1:8000/v1
API Key: <not-needed for local ds4, or set if configured>
Default Model: deepseek-v4-flash
Available models exposed by ds4-server:
| Model | Description |
|---|---|
deepseek-v4-flash |
Primary inference model |
Security Notes
- Bind ds4-server to
127.0.0.1for local-only access. Tunnel through SSH/Tailscale/WireGuard for remote access. - Hermes Agent will see all message content forwarded to the model. Treat the Hermes deployment with the same sensitivity as the messaging accounts it connects to.
- For multi-user scenarios, Hermes Agent's personality and tool policies handle routing.
Verification
Once the provider is configured, verify the integration with a direct chat completion:
curl -s http://127.0.0.1:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-flash",
"messages": [{"role":"user","content":"Reply with exactly: pong."}]
}' | head -40
A successful response is a standard OpenAI-style chat completion. If the response is empty or hangs, check ds4-server logs for model-load failure or GPU memory pressure (see Operations Runbook).
After the direct curl succeeds, send a test message through your Hermes channel of choice. The response should arrive in the chat.
Troubleshooting
| Symptom | Likely Cause | Where to Look |
|---|---|---|
| Empty / hang response | Model not loaded or GPU OOM | ds4-server container logs (podman logs ds4-server) |
| 502 / connection refused | ds4-server not running | podman ps to verify container state |
| No response in channel, but curl works | Hermes Agent routing or channel-token issue | Hermes-side logs |
| Slow first response, then fast | KV-cache warm-up | Expected; disk-backed cache loads on first access |
For other failures, the Operations Runbook covers restart procedures, model loading diagnostics, and recovery steps.