hermes - 💡(How to fix) Fix feat(busy): add "smart" mode with LLM-based intent routing [1 pull requests]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Fix Action

Fixed

Code Example

display:
  busy_input_mode: smart
  smart_routing:
    model: "openrouter/auto"  # or any fast/cheap model
    fallback: "queue"         # fallback on timeout or ambiguous output
    timeout_ms: 2000

---

/busy smart  # Switch to smart mode (works in CLI and Telegram gateway)
RAW_BUFFERClick to expand / collapse

Feature Request: /busy smart Mode

Problem

Currently, display.busy_input_mode supports three static modes:

  • interrupt — always interrupt (default)
  • queue — always queue for next turn
  • steer — always inject mid-turn

Users must manually choose the right mode for each situation. In practice, the "right" action depends on the message content:

  • "Stop!" → should interrupt
  • "Also check X" → should queue
  • "Actually, use Y instead" → should steer
  • "Nevermind" → should ignore

Proposed Solution

Add a smart mode that uses a fast, cheap LLM to automatically decide the intent.

Configuration

display:
  busy_input_mode: smart
  smart_routing:
    model: "openrouter/auto"  # or any fast/cheap model
    fallback: "queue"         # fallback on timeout or ambiguous output
    timeout_ms: 2000

Router Logic

The router would:

  1. Take the new user message + minimal context (last 2 user/assistant messages, current tool)
  2. Run a fast classification (e.g. a small model or the main model with minimal tokens)
  3. Decide: interrupt, queue, steer, or ignore
  4. Fall back to queue on timeout or ambiguous output

Slash Command

/busy smart  # Switch to smart mode (works in CLI and Telegram gateway)

Alternatives Considered

ApproachProsCons
Keyword-based (#13072)Simple, no LLM neededFragile, doesn't handle nuanced intent
Static mode per sessionPredictableRequires manual switching, easy to forget
Always-steerResponsiveLoses ability to truly interrupt urgent stops
LLM-based (proposed)Handles nuanced intent, zero configSlight latency for classification

Benefits

  • Zero configuration for users
  • Adapts to message content automatically
  • Backward compatible (default remains interrupt)
  • Reduces need to remember /busy queue vs /busy steer vs /busy interrupt

Acceptance Criteria

  • /busy smart switches to LLM-based routing mode
  • Router classifies intent as: interrupt, queue, steer, ignore
  • Falls back to queue on timeout (>2s) or ambiguous output
  • Works in both CLI and Telegram gateway
  • Default mode remains interrupt (backward compatible)
  • Tests cover: stop intent, queue intent, steer intent, ignore intent, fallback

Related Issues

  • #11639 — micro interrupt router (similar concept, but more complex)
  • #13072 — CLI auto-queue with smart interrupt (keyword-based, not LLM-based)
  • #13403 — queue mode still interrupts process.wait()

Labels to apply: type/feature, comp/gateway, comp/agent

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - 💡(How to fix) Fix feat(busy): add "smart" mode with LLM-based intent routing [1 pull requests]