diff --git a/docs/CURRENT_REFERENCE.md b/docs/CURRENT_REFERENCE.md index 1ce6ee9..dd30be8 100644 --- a/docs/CURRENT_REFERENCE.md +++ b/docs/CURRENT_REFERENCE.md @@ -123,6 +123,12 @@ Der Router übernimmt: Hermes-Backend (`voice.client_direct: false`), weil Router und TTS nur im internen Docker-Netz erreichbar sind. - Version: 0.20.5, offizielles Image per OCI-Digest gepinnt +- Die gepinnte Version trägt beim Containerstart zwei eng geprüfte lokale + Upstream-Workarounds: API-Agenten übernehmen den live registrierten + MCP-Katalog (Hermes-Issue 69746), und `tool_search` veröffentlicht auch + geänderte Katalogbeschreibungen bei gleichbleibenden Brückennamen + (Hermes-Issue 72560). Der Start bricht bei unbekannt verändertem + Upstream-Code ab, statt blind zu patchen. - Standardmodell: `qwen-medium`, 160.000 Kontext, über den Profile Router - Dashboard: WireGuard-Port 9119 mit Basic-Auth - Agent-API: WireGuard-Port 8642 mit eigenem Bearer-Key @@ -136,6 +142,13 @@ Der Router übernimmt: - lokales Terminal: ausschließlich `/data/hermes/workspace` im Container - MCPs: Athena-Plattform, Athena-Operator, allgemeines Web, GitHub, Home Assistant, ARR, Navidrome und ein gemeinsamer MUA-Unraid-Zugang +- Der Home-Assistant-Eintrag heißt in Hermes intern `homeassistant-admin`. + `homeassistant` kollidiert mit Hermes' deaktiviertem eingebautem Toolset und + würde den gesunden externen MCP aus dem Agentenkatalog filtern. +- Ein Agententurn ist standardmäßig auf 64 Schritte und acht Websuchen + begrenzt. Lange Implementierungen setzen nach einem belegten Zwischenstand + in einem frischen Turn fort; bekannte Container werden direkt inspiziert, + statt ungezielt vollständige Hostinventare in den Kontext zu laden. - kein Docker-Socket, kein Host-Root-Mount und keine Veröffentlichung auf der Universitätsadresse - Start verweigert, wenn die verwaltete Konfiguration nicht lesbar ist oder diff --git a/platform/hermes/SOUL.md b/platform/hermes/SOUL.md index d957604..c46d8f0 100644 --- a/platform/hermes/SOUL.md +++ b/platform/hermes/SOUL.md @@ -16,6 +16,14 @@ the same catalogue, source tree, status, or evidence from slightly different angles. Once the requested conclusion is supported, stop calling tools and answer. +Keep tool output proportional to the question. When a Docker container is +already named, inspect that container directly instead of listing the complete +host inventory. For inventory questions, request compact output and filter by +state; request live statistics only when the user actually needs them. Prefer +one precise specialist query over several synonym searches. After two +materially different attempts fail to provide the missing evidence, report the +specific limitation instead of broadening the search indefinitely. + Treat every individual tool invocation as one call, including calls issued in the same batch. If the user gives a call limit, reserve one call for final verification and stay below that limit; do not reinterpret it as a number of diff --git a/platform/hermes/config.yaml b/platform/hermes/config.yaml index 2f272de..e474328 100644 --- a/platform/hermes/config.yaml +++ b/platform/hermes/config.yaml @@ -47,7 +47,11 @@ mcp_discovery_timeout: 15.0 mcp_single_query_discovery_timeout: 30.0 agent: - max_turns: 500 + # A single turn may be substantial, but must not silently consume an entire + # context window in a no-progress loop. Long builds continue from a compact + # checkpoint in a fresh turn instead of receiving an effectively unlimited + # 500-step budget. + max_turns: 64 gateway_timeout: 3600 session_stall_timeout: 600 tool_loop_guardrails: @@ -62,7 +66,7 @@ agent: same_tool_failure: 8 idempotent_no_progress: 5 loop_caps: - max_web_searches: 20 + max_web_searches: 8 max_subagents: 8 # Compact before a tool-heavy session can grow beyond the selected model's