hermes-agent/website/docs/user-guide
Teknium f21f388697
feat(agent): detect cyclic tool-call loops in tool guardrails
Port from google-gemini/gemini-cli#28429: the LoopDetectionService there
gained detection of alternating/cyclic tool-call execution patterns
(A->B->A->B and longer cycles) that per-call repetition counters
structurally cannot see, because every call differs from its predecessor.

Adapted to Hermes' ToolCallGuardrailController:
- Track the per-turn sequence of exact tool-call signatures (success or
  failure alike) and detect the trailing k-call window (k=2..5) repeating
  consecutively.
- warn_after.cycle (default 3 full repetitions) injects the standard soft
  warning; hard_stop_after.cycle (default 5) halts the turn when
  hard_stop_enabled is on, via the existing warn/halt plumbing (zero
  runtime changes).
- Length-1 cycles are deliberately excluded: pure self-repeats are already
  covered by exact_failure / idempotent_no_progress, and successful
  self-repeats of mutating tools (e.g. polling a background process) are
  legitimate.
- More specific failure/no-progress warnings take precedence over the
  cycle warning; cycle halt takes precedence over everything.

Validation: 30/30 tests in tests/agent/test_tool_guardrails.py +
tests/run_agent/test_tool_call_guardrail_runtime.py; E2E via real
DEFAULT_CONFIG -> from_mapping -> controller -> append_toolguard_guidance.
2026-07-22 17:09:48 -07:00
..
features Merge pull request #69602 from NousResearch/bb/voice-interrupt-note 2026-07-22 18:13:19 -05:00
messaging docs: describe active-turn redirect busy-input behavior 2026-07-22 12:10:58 -05:00
secrets fix(secrets): harden encrypted Bitwarden cache 2026-07-22 04:40:07 -07:00
skills feat(skills): bundle docx, xlsx, and pdf office skills; refresh powerpoint (#68595) 2026-07-21 05:39:23 -07:00
_category_.json
checkpoints-and-rollback.md feat(checkpoints): v2 single-store rewrite with real pruning + disk guardrails (#20709) 2026-05-06 05:44:35 -07:00
cli.md docs: describe active-turn redirect busy-input behavior 2026-07-22 12:10:58 -05:00
configuration.md feat(agent): detect cyclic tool-call loops in tool guardrails 2026-07-22 17:09:48 -07:00
configuring-models.md fix: harden /model --once against persistence and config-sync leaks 2026-07-18 14:01:56 -07:00
desktop.md Merge pull request #68725 from SHL0MS/fix/desktop-stop-parks-queue 2026-07-21 10:54:58 -05:00
docker.md fix(docker): replace dashboard --insecure with basic-auth provider 2026-06-21 19:05:27 -07:00
git-worktrees.md docs(developer-guide): document htui/hgui worktree UI dev helpers (#64783) 2026-07-16 22:51:23 -04:00
managed-scope.md docs: add managed scope admin guide + cross-link from configuration 2026-06-19 07:46:33 -07:00
multi-profile-gateways.md fix(gateway): skip port-conflicting multiplex profiles 2026-07-16 07:17:55 -07:00
profile-distributions.md Expand .gitignore example 2026-06-20 20:42:49 -07:00
profiles.md fix: make profile subprocess HOME policy explicit 2026-06-14 03:20:21 -07:00
security.md fix(approval): raise gateway approval timeout to 300s, honest stale-tap UX, offer Always on mixed prompts (#68597) 2026-07-21 05:41:41 -07:00
sessions.md docs(sessions): unify export docs under one overview section (#60554) 2026-07-07 16:29:27 -07:00
tui.md fix(docs): fix broken image and video in TUI docs (#43501) 2026-07-19 19:33:03 -04:00
windows-native.md docs(windows): correct native data dir to %LOCALAPPDATA%\hermes (#42856) 2026-06-09 14:11:20 -05:00
windows-wsl-quickstart.md fix(docs): update all install instructions everywhere 2026-06-04 21:07:45 -04:00