Skip to content
NLEN

Self-hosted agents: the gaps you only see once you run them

The most interesting signals about self-hosted agents this week don't come from announcements, but from bug trackers. That's a good sign: it means enough people are actually running these things, long enough to find the sharp edges.

An HTTP 200 says nothing about a successful run

At Hermes, a model endpoint neatly returned a successful HTTP status and an SSE stream — but without content and without finish_reason. The automatic retries afterward cost over a minute of delay (NousResearch/hermes-agent#89836).

That's the most important monitoring lesson of the week. A healthcheck that watches status codes reports green here. What you actually need to validate is whether tokens came out, whether there was a finish signal, how many retries were needed, and how long the run took in total. An agent that silently responds empty and retries three times burns budget and time without ever producing an error message.

A related case: NInfer offers an OpenAI-compatible endpoint, but passed through the setting used by Hermes reasoning_effort incorrectly (Neroued/ninfer#60). "OpenAI-compatible" means the route exists, not that every parameter arrives. Check whether settings actually take effect and are visible in the logs.

Profiles are not a UI preference

A Hermes Desktop update started an external backend without the required --profileparameter, after which sessions disappeared from all agent profiles (NousResearch/hermes-agent#89675).

The lesson is broader than Hermes: startup arguments that determine which state a process loads should be explicitly fixed in scripts or service units — not in a menu choice that an update can reset. And test session recovery after every update, not just whether the process starts.

Deleting is not the same as starting over

A LobeHub installation on Synology Docker showed that deleted memories are not re-extracted, because the topics remain internally marked as "processed" (lobehub/lobehub#18498).

AI memory consists of multiple states that don't move in lockstep: the content, the processing flag, and the derived index. Deleting one leaves the other two intact. For a NAS setup, that means: back up both the database and the volumes before every cleanup, and afterward verify that the rebuild actually happened.

The reachability question

Two projects tackle the same problem from different angles. An open-source companion app makes a self-hosted Hermes agent reachable from a phone, without WhatsApp or a terminal as an intermediary (r/vibecoding). OpenClaw takes the other route and places the agent inside the software you already use — Slack, Teams, and web frameworks like React, Angular, and Vue, with human approval via AG-UI (@ataiiam).

Both enable the same thing: the agent runs at home, the controls are wherever you are. Both also add the same risk: an extra access point to a process that has access to your files. A secured tunnel, strong authentication, and tight API permissions are not a luxury here.

Federation sounds better than it is (for now)

Syndicate OS is experimenting with a federation of self-hosted Hermes and OpenClaw agents under its own management (Kevin-the-minion/syndicate-os). The architecture is interesting, but the math for a modest homelab is sober: every permanent agent costs memory, management overhead, and an extra access point. Central coordination only pays off once there's enough genuinely parallel work to coordinate.

The same sober approach applies on the model side. An Ollama request asks for an official Q3_K_M MLX quantization of Qwen3.8-35B-A3B for Macs with 16 or 24 GB of shared memory (ollama/ollama#17869). On Apple Silicon, quantization and context length matter more than model size; a smaller model that always fits is, in practice, more reliable than a large model that sometimes swaps.

The division of roles that keeps recurring

Nearly every signal this week hides the same division, and it's worth making it explicit: let compute run on the machine with the fastest inference, and use the NAS for what the NAS does well — storage, models, datasets, logs, backups, and long-running services. An inventory of self-hostable applications arrives at the same conclusion: cut overlap and keep the set small (@WunderTech).

And for agents that execute code themselves, the strictest variant applies. An almost fully self-hosted agentic software factory explicitly combines autonomous development processes with sandboxing (jakesaunders.dev). Separate containers, minimal permissions, and temporary workspaces belong in the design, not the cleanup phase.

What you can build in this week