Files
agent-estate-wiki/concepts/tool-calling.md
T

42 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Tool Calling
type: concept
status: active
created: 2026-07-22
updated: 2026-07-22
verified_on: 2026-07-22
confidence: high
tags: [concept, tool-calling]
sources: [raw/configs/hermes-config-sanitized.txt]
---
# Tool Calling
## Idea
How Hermes decides to invoke a tool, and — more specifically for this page — how it detects and stops itself when tool use goes wrong (loops, repeated failures).
## How this install implements guardrails
**Verified (`~/.hermes/config.yaml`, `tool_loop_guardrails:`):**
```
warnings_enabled: true
hard_stop_enabled: false
warn_after:
exact_failure: 2
same_tool_failure: 3
idempotent_no_progress: 2
hard_stop_after:
exact_failure: 5
same_tool_failure: 8
idempotent_no_progress: 5
```
- Warnings trigger well before any hard stop (23 repeats vs 58).
- **`hard_stop_enabled: false`** — Hermes will *warn* about a stuck tool loop but will not currently force-stop itself. That's a deliberate-looking but consequential setting: a genuinely stuck loop only gets a warning, not an automatic halt.
## Why it matters here
This is the mechanism behind [[runbooks/troubleshoot-tool-loop]] — that runbook's "agent loops on one tool" symptom is exactly what `warn_after`/`hard_stop_after` are meant to catch. With hard-stop disabled, a human (or the messaging integrations) is the actual backstop today.
## Related
- [[concepts/persistent-shells]]
- [[runbooks/troubleshoot-tool-loop]]
- [[systems/hermes-agent]]