# Hermes Agent Integration

> **Letzte Überprüfung**: 2026-09-18 · 📄 Gemäß offizieller Dokumentation (Hermes Agent v0.21.3 / Tag v2026.9.14, veröffentlicht 2026-09-14)

## Auf einen Blick

| Element | Details |
|---|---|
| Verfügbare Modelle | Claude ✅ (Anthropic-Protokoll) · GPT ✅ · Chinesische Modelle ✅ · Gemini ❌ (kein Gemini-Adapter in der offiziellen Transport-Enum) |
| Protokoll & Base URL | Anthropic: `https://api.qcode.cc/api` · OpenAI: `https://api.qcode.cc/openai/v1` |
| Konfiguration unter | `~/.hermes/config.yaml` (Schlüssel in `~/.hermes/.env`); native Windows-Installationen unter `%LOCALAPPDATA%\hermes` |
| Offizielle Dokumentation | [Anbieter](https://github.com/NousResearch/hermes-agent/blob/main/website/docs/integrations/providers.md) |

Hermes Agent ist ein **KI-Agent für allgemeine Zwecke** von Nous Research (er lernt Fähigkeiten aus Erfahrung): ein Terminal-TUI sowie ein Multi-Channel-Gateway für Telegram / Discord / Slack / CLI. **Es ist kein Code-Editor** – kann jedoch als ACP-Server hinter ACP-kompatiblen Editoren fungieren (siehe [ACP-Übersicht](/docs/ide/acp)). Alle Modellendpunkte befinden sich in der eigenen `config.yaml`, unabhängig von einem Host-Editor.

## Voraussetzungen

- Hermes Agent installiert (folgen Sie der [offiziellen README](https://github.com/NousResearch/hermes-agent); diese Seite wiederholt keine Installationsbefehle).
- Ein QCode.cc `cr_`-Schlüssel ([Dashboard](https://qcode.cc/dashboard)). Kein Nous-Portal- oder Modellanbieter-Konto erforderlich.
- Die Aufgabenteilung kennen: Geheime Daten gehören in `~/.hermes/.env`, Verhaltensoptionen in `config.yaml`. `config.yaml` ist die einzige Quelle der Wahrheit für Modell und Endpunkt – die Legacy-Variable `LLM_MODEL` wurde upstream entfernt.

## Einrichtung

### Route A: benannte Anbieter (empfohlen; Claude und GPT/chinesische Modelle nebeneinander)

In `~/.hermes/config.yaml`:

```yaml
# ~/.hermes/config.yaml
model:
  provider: custom:qcode_claude
  default: claude-sonnet-5

providers:
  qcode_claude:
    api: https://api.qcode.cc/api
    key_env: QCODE_API_KEY
    transport: anthropic_messages
    default_model: claude-sonnet-5
    discover_models: false
  qcode_openai:
    api: https://api.qcode.cc/openai/v1
    key_env: QCODE_API_KEY
    transport: chat_completions
    default_model: glm-5.3
```

Dann den Schlüssel in `~/.hermes/.env` einfügen:

```text
# ~/.hermes/.env
QCODE_API_KEY=cr_your-QCode-key
```

Wichtige Punkte (alle aus der offiziellen Anbieter-Dokumentation):

- `transport` hat genau drei kanonische Werte: `chat_completions` / `anthropic_messages` / `codex_responses` (Kleinschreibung, Unterstriche). Claude-Modelle auf QCode müssen `anthropic_messages` verwenden.
- Der URL-Schlüssel in jedem Anbieter-Eintrag ist `api` in offiziellen Beispielen (`base_url` / `url` sind akzeptierte Aliasse); der Protokollschlüssel ist `transport` (`api_mode` ist der Alias).
- `key_env` benennt eine Umgebungsvariable (ohne `$`); deren Wert steht in `.env`.
- Hermes erkennt den Transport nur automatisch, wenn eine Anbieter-URL auf `/anthropic` endet; `api.qcode.cc/api` löst **keine** Erkennung aus, daher muss `transport` ausdrücklich angegeben werden.

### Route B: einzelner Endpunkt (nur OpenAI-kompatibler Teil)

Um GPT / chinesische Modelle zuerst zum Laufen zu bringen, verwenden Sie die flache offizielle Form (`provider: custom` = jeder OpenAI-kompatible Endpunkt):

```yaml
model:
  provider: custom
  base_url: https://api.qcode.cc/openai/v1
  api_key: cr_your-QCode-key
  default: gpt-5.6
```

## Modelle innerhalb einer Sitzung wechseln

```text
/model custom:qcode_claude:<model-id>
/model custom:qcode_openai:<model-id>
```

`<model-id>` ist jede Modell-ID, die Sie für den jeweiligen Anbieter deklariert haben (Claude-Teil z. B. `claude-sonnet-5`, OpenAI-Teil z. B. `glm-5.3`).

Offizielle Aufgabenverteilung: `/model` wechselt nur zwischen bereits konfigurierten Anbietern und Modellen; **ein Anbieter hinzuzufügen erfordert, die Sitzung zu beenden und den `hermes model`-Assistenten auszuführen**.

## Überprüfung der Funktionsweise

Starten Sie `hermes` und stellen Sie eine beliebige Anfrage. Falls es fehlschlägt, prüfen Sie der Reihe nach:

1. Ob der Pfad und der Key ankommen (OpenAI-Leg):

```bash
curl -s -o /dev/null -w '%{http_code}\n' -X POST https://api.qcode.cc/openai/v1/chat/completions \
  -H "Authorization: Bearer $QCODE_API_KEY"
# → 401 = key invalid; 400 = path fine (missing body is expected)
```

2. YAML-Einrückung der `providers:`-Einträge (zwei Leerzeichen, Geschwister).
3. Ob die `key_env`-Namen exakt mit `.env` übereinstimmen.
4. Jede Anfrage wird auf [probe.qcode.cc](https://probe.qcode.cc) protokolliert; immer noch festgefahren? Nutzen Sie den [Fehlerbehebungsleitfaden](/docs/reference/troubleshooting).

## Bekannte Einschränkungen

- **Anthropic-Leg nicht live getestet**: Jedes offizielle `anthropic_messages`-Beispiel verwendet eine Host+Präfix-URL **ohne `/v1`** (z. B. `https://proxy.example.com/anthropic`), daher verwendet diese Seite `https://api.qcode.cc/api`; wie Hermes den finalen Pfad aufbaut, wurde von uns nicht verifiziert. Falls Anfragen 404 zurückgeben, setzen Sie `api` stattdessen auf den vollständigen Pfad `https://api.qcode.cc/api/v1/messages`.
- `discover_models: false`: Hermes prüft `<base>/models` auf eigenen Endpunkten. Dieser Pfad existiert auf dem QCode-OpenAI-Leg, aber `/api/models` nicht (404, getestet) — deaktivieren Sie die Erkennung beim Claude-Eintrag wie gezeigt und benennen Sie Modelle über `default_model` / `models`.
- Leiten Sie keine chinesischen Modelle über `codex_responses` um — das QCode-Responses-Leg bedient ausschließlich GPT-Modelle (Matrix: [Endpunkte und API-Pfade](/docs/getting-started/endpoints-and-api-paths)).
- Keine Gemini-Unterstützung: Das offizielle Transport-Enum enthält keinen Gemini-Adapter, daher sind `gemini-*`-Modelle nicht verfügbar.
- `OPENAI_BASE_URL` zeigt QCode nirgendwohin: Laut Dokumentation wird es nur für den `openai-api`-Provider berücksichtigt. Verwenden Sie `config.yaml`.
- Output-Token-Obergrenzen sind nicht konfigurierbar: Upstream hat das Lesen von `model.max_tokens` und Verwandten eingestellt, daher sind alte Tutorials veraltet.

## Verwandte Dokumentationen

- [Endpunkte und API-Pfade](/docs/getting-started/endpoints-and-api-paths)
- [Tool-Kompatibilitätsübersicht](/docs/ide/tool-compatibility)
- [ACP-Übersicht](/docs/ide/acp)
- [Chinesische Modelle](/docs/usage/cn-models)
- [Fehlerbehebung](/docs/reference/troubleshooting)