Two stale defaults are holding Hermes back.
A plain-English review of what should change, what should stay, and what still needs a decision.
The short version
Unset two stale pins
agent.max_turns: 90tools.tool_search.threshold_pct: 10
Unset them so Hermes inherits current and future defaults.
Leave the rest alone
- Compression policy
- Gateway and restart safety
- Clarify timeout
- Platform and provider choices
agent.max_turns
A finite setup-era cap. Complex tasks can be cut off before completion.
Unlimited by default. Hermes asks for wrap-up if a deliberate finite cap is reached.
The default evolved. Your pin did not.
Historical default
The interactive wizard still presents this as normal.
Raised limit
Upstream found 90 too restrictive for complex work.
Current default
Caps caused silent mid-task truncation, so unlimited became standard.
Benefit: fewer incomplete tasks. Downside: a genuine loop may consume more calls before another guardrail stops it.
Tool disclosure budget
More context can be consumed listing deferred MCP and plugin tools.
A tighter catalog budget leaves more room for the actual conversation and task.
Current, useful settings
Clarify timeout · 1 hour
Good for mobile users who step away before answering.
Gateway inactivity · 30 min
Progress keeps a turn alive; inactivity eventually frees it.
Restart drain · immediate
Avoids stale-lock and systemd restart crash loops.
Cron drain · 30 sec
Gives scheduled work a bounded chance to finish.
No stale blocker found
- Threshold: 0.50
- Target ratio: 0.20
- Protected recent messages: 20
- Protected opening messages: 3
5,000-message hygiene valve
You do not pin the obsolete 400-message limit, so the newer safety value flows through automatically.
Note: models below 512K context get an effective 0.75 compression-threshold floor. The wizard does not explain this clearly.
Delegation limits
Matches today’s default
Unset to inherit future tuning, or keep as a deliberate subagent cost cap.
Matches today’s default
Unset to inherit future throughput changes, or keep to cap concurrency and spend.
My recommendation: leave both alone in the first pass. They are not hurting current behaviour.
Keep the custom parts
Platform toolsets
Keep. They define what Telegram, CLI and other surfaces can access.
Security and providers
Keep. These are intentional safety and platform-specific choices.
Code execution limits
Keep for now. They are useful safety bounds and were not proven stale.
- Legacy
*_toolsnames remain supported aliases. - Honcho now arrives through the memory-provider plugin.
- No obsolete active toolset requires removal.
Approve two removals. Nothing else.
# remove max_turns: 90
tools:
tool_search:
# remove threshold_pct: 10
- Back up
config.yaml. - Remove only those two keys.
- Validate YAML and resolved defaults.
- Restart only after separate approval.
No changes have been made. This deck is a proposal only.