Bound Hermes tool loops and document MCP fixes

This commit is contained in:
Mikei386 committed 2026-08-25 15:55:49 +02:00
1 parent f5c2817c19
commit 488518a5e9
3 files changed
+27 -2

No files matched your search

+13
View File
@@ -123,6 +123,12 @@ Der Router übernimmt:
Hermes-Backend (`voice.client_direct: false`), weil Router und TTS nur im Hermes-Backend (`voice.client_direct: false`), weil Router und TTS nur im
internen Docker-Netz erreichbar sind. internen Docker-Netz erreichbar sind.
- Version: 0.20.5, offizielles Image per OCI-Digest gepinnt - 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 - Standardmodell: `qwen-medium`, 160.000 Kontext, über den Profile Router
- Dashboard: WireGuard-Port 9119 mit Basic-Auth - Dashboard: WireGuard-Port 9119 mit Basic-Auth
- Agent-API: WireGuard-Port 8642 mit eigenem Bearer-Key - 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 - lokales Terminal: ausschließlich `/data/hermes/workspace` im Container
- MCPs: Athena-Plattform, Athena-Operator, allgemeines Web, GitHub, Home - MCPs: Athena-Plattform, Athena-Operator, allgemeines Web, GitHub, Home
Assistant, ARR, Navidrome und ein gemeinsamer MUA-Unraid-Zugang 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 - kein Docker-Socket, kein Host-Root-Mount und keine Veröffentlichung auf der
Universitätsadresse Universitätsadresse
- Start verweigert, wenn die verwaltete Konfiguration nicht lesbar ist oder - Start verweigert, wenn die verwaltete Konfiguration nicht lesbar ist oder
+8
View File
@@ -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 angles. Once the requested conclusion is supported, stop calling tools and
answer. 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 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 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 verification and stay below that limit; do not reinterpret it as a number of
+6 -2
View File
@@ -47,7 +47,11 @@ mcp_discovery_timeout: 15.0
mcp_single_query_discovery_timeout: 30.0 mcp_single_query_discovery_timeout: 30.0
agent: 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 gateway_timeout: 3600
session_stall_timeout: 600 session_stall_timeout: 600
tool_loop_guardrails: tool_loop_guardrails:
@@ -62,7 +66,7 @@ agent:
same_tool_failure: 8 same_tool_failure: 8
idempotent_no_progress: 5 idempotent_no_progress: 5
loop_caps: loop_caps:
max_web_searches: 20 max_web_searches: 8
max_subagents: 8 max_subagents: 8
# Compact before a tool-heavy session can grow beyond the selected model's # Compact before a tool-heavy session can grow beyond the selected model's