hermes - 💡(How to fix) Fix [Feature] Suppress <available_skills> system_prompt injection for scripted/oneshot use [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…

Discovered while optimizing moltbook's hermes_insights token bill. After landing chat --ignore-rules for moltbook (saving ~12M tokens/day for memory+profile+SOUL strip), the remaining single largest source of per-call overhead is the skills index. See konsisumer/moltbook#9 for the cost breakdown.

Related upstream issue: #26633 (-z --ignore-rules is silently a no-op).

Root Cause

Discovered while optimizing moltbook's hermes_insights token bill. After landing chat --ignore-rules for moltbook (saving ~12M tokens/day for memory+profile+SOUL strip), the remaining single largest source of per-call overhead is the skills index. See konsisumer/moltbook#9 for the cost breakdown.

Related upstream issue: #26633 (-z --ignore-rules is silently a no-op).

Fix Action

Fixed

RAW_BUFFERClick to expand / collapse

Use case

Scripted high-frequency Hermes callers (e.g. moltbook heartbeat at 480 runs/day, autocontrib workers) only need text generation — no tool use, no skill loading, no agent autonomy. The current default behavior injects the full <available_skills> block (~14k chars / ~3.5k input tokens per call) into the system_prompt regardless of whether the caller can/will use those skills.

For one moltbook deployment at ~25 LLM calls per heartbeat × 480 heartbeats/day, this is ~42M input tokens/day of pure overhead.

Current state

The <available_skills> block is unconditionally injected in _build_system_prompt_parts (run_agent.py:5730+). Existing flags do not suppress it:

Flag/CombinationSystem prompt size<available_skills> stripped?
(default)26,625 chars
--ignore-rules (on chat)22,417 chars
--ignore-user-config26,625 chars
-t "" (empty toolsets)26,625 chars
--skills none26,625 chars

--ignore-rules strips memory + user_profile + SOUL (~4k chars), but leaves the skills block intact (~14k chars).

Proposed solution

Either:

Option A — Extend --ignore-rules to also strip <available_skills>. The help text already says "preloaded skills", which arguably covers the index block too:

"Skip auto-injection of AGENTS.md, SOUL.md, .cursorrules, memory, and preloaded skills"

Option B — Add a new dedicated flag, e.g. --no-skills-index, that strips just the <available_skills> block. Keeps existing flag semantics intact.

Option C — Make it a config knob: skills.inject_index: bool (default true).

A is least disruptive for users who expect --ignore-rules to remove all skill-related context. B is most explicit. C is most flexible.

Acceptance criteria

  • A documented mechanism to suppress the <available_skills> system_prompt block for a single invocation exists.
  • When the mechanism is active, <available_skills> is fully absent from the session's system_prompt.
  • Skill tools (the actual skill_view, skills_list etc. function-calling tools) may stay registered — model just won't have the index to know what to load. Caller-controlled.
  • Works on both hermes chat and hermes -z (related: #26633 about -z not honoring --ignore-rules at all).

Context

Discovered while optimizing moltbook's hermes_insights token bill. After landing chat --ignore-rules for moltbook (saving ~12M tokens/day for memory+profile+SOUL strip), the remaining single largest source of per-call overhead is the skills index. See konsisumer/moltbook#9 for the cost breakdown.

Related upstream issue: #26633 (-z --ignore-rules is silently a no-op).

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