Hermes
A multi-agent system that coordinates different language engines to build and maintain real projects from a conversation.
The Problem
Keeping several projects alive at the same time (QGIS plugins, a bilingual site, data analyses) means switching all day between deciding what to do, implementing it, checking the result and shipping it. Language models good enough to write production code charge by the token, and that bill grows with the amount of work done. The real bottleneck is not writing code: it is deciding, executing, checking and paying for all of it in a way that holds up over months.
The Solution
Hermes is a multi-agent system derived from Nous Research's Hermes Agent, adapted to run around the clock on a dedicated Ubuntu 24.04 VPS. The whole operation happens through Discord, including from a phone, with no terminal open and no continuous working session required. Each channel on the server maps to one project, and the same cycle repeats in every one of them: conversation, plan, implementation, review and publication.
Architecture Decisions
Coordination separated from execution: a lightweight orchestrator reads the conversation and decides what needs to happen, but the implementation always goes to an external subscription engine such as Claude Code (Opus), Antigravity (Gemini) or Codex. The orchestrator never writes code itself; it delegates.
The strong model plans, the cheap one executes: the expensive reasoning (understanding the request, drafting the plan, reviewing the outcome) stays with the most capable model available. Each step of the plan is implemented by a cheaper executor, and it only moves forward once the strong model has checked what came back.
A routing engine of its own, by difficulty: a Python engine reads the plan and sends each step to the executor that matches its complexity, telling mechanical tasks apart from the ones that need reasoning. When a provider runs out of quota, the engine falls back to another one without interrupting the work in progress.
Cost split into two buckets: only coordination, the part that decides and reviews, spends credits billed per token. Execution runs on monthly subscriptions already paid for the coding engines, which brings the marginal cost of each executed task close to zero. That split was a deliberate financial decision, and each engine's behaviour (cost, quota, quality) is measured and revisited over time.
Human approval at the start, automated review at the end: no plan runs without being approved first, and nothing is published without an automated review of the result. The two checkpoints keep the system out of the autonomous decision both about what to do and about what reaches production.
Operations and Reliability
Hermes runs as a persistent systemd service, with a separate timer that audits its own behaviour every week. The whole operation emits structured logs and notifications, and every line of the system's code is versioned in git. Publishing this site, for instance, is automated by GitHub Actions from the moment an approved change is pushed. The system's evolution stays documented: each architecture decision is recorded with its date, and the behaviour of the models in use (cost, quota, answer quality) is measured empirically rather than assumed.
Technology Stack
Python Multi-Agent Architecture LLM Orchestration Prompt Engineering Claude Code (Opus) Gemini Codex Discord API Linux / Ubuntu Server systemd Git GitHub Actions QGIS / PyQGIS
Impact
The result can be checked on three fronts. Hermes develops and maintains the published QGIS plugins (GisBR, Desire Lines and SIG-Bus, all three available in the official plugin repository), keeps this site running (the blog posts in Portuguese and English, and this portfolio page itself) and runs data analyses, all of it driven by conversation. The arrangement shows what it takes to design systems that coordinate multiple language models with cost under control, clear roles between planning and execution, and human oversight at the points where it matters.