The Burn router is not currently wired into live Hermes Agent by default. It is a standalone Rust/Burn classifier that can become an optional pre-router in front of Hermes prompt/tool construction.
- Live Hermes still builds tool schemas through
toolsets.py/model_tools.py. - No production hook in
run_agent.py,model_tools.py, orconfig.yamlcalls this router yet. - The router is safe to run as an advisory sidecar because it returns a route hint, not an autonomous action.
Add an opt-in config block:
routing:
burn_router:
enabled: false
binary: /path/to/hermes-burn-tool-router/target/release/hermes-burn-tool-router
model: /path/to/hermes-burn-tool-router/tool_router.safetensors
confidence_threshold: 0.72
fallback: full_surfaceThen, before tool schema construction:
message
→ Burn router predicts category + confidence
→ if confidence >= threshold, map category to enabled_toolsets
→ build reduced tool schema for first LLM pass
→ if the model asks for unavailable tools or confidence is low, fall back to full surface
Hard-gating is risky. Misrouting a user request can hide the correct tool from the main LLM. The sane first production mode is:
- Observe-only: log router category/confidence next to actual tool calls.
- Hint mode: bias/reorder toolsets while still keeping fallback available.
- Narrow mode: only for very high-confidence categories and short obvious requests.
cargo build --release
scripts/route_hint.py "search X for trending Base coins"Example output:
{
"category": "x_search",
"confidence": 0.98,
"enabled_toolsets": ["x_search"],
"mode": "narrow"
}- Collect real Hermes session text → actual tool call labels from local session DB.
- Train on real labels instead of only synthetic patterns.
- Add top-k category output for ambiguous tasks.
- Add regression tests for high-risk confusions:
search filesvsweb searchrun /modelvs shellrunsend messagevs ask clarificationx_searchvs generic web research
- Keep fallback-full-surface as default until real-world false-negative rate is measured.