hermes - 💡(How to fix) Fix HERMES_AGENT_HELP_GUIDANCE is unconditionally hardcoded into system prompt with no way to disable it

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…

The HERMES_AGENT_HELP_GUIDANCE string is unconditionally injected into the system prompt on every platform, in every session, with no configuration option to disable it. Users cannot remove it via config, environment variable, or any other mechanism.

Error Message

  • Can cause the agent to attempt calling skill_view(name='hermes-agent') in contexts where the tool doesn't exist, producing confusing error messages

Root Cause

The HERMES_AGENT_HELP_GUIDANCE string is unconditionally injected into the system prompt on every platform, in every session, with no configuration option to disable it. Users cannot remove it via config, environment variable, or any other mechanism.

Fix Action

Fix / Workaround

  1. No user-facing toggle — There is no config.yaml option, no environment variable, and no CLI flag to disable this injection. The only way to remove it is to patch the source code, which is overwritten on update.

Code Example

HERMES_AGENT_HELP_GUIDANCE = (
    "If the user asks about configuring, setting up, or using Hermes Agent "
    "itself, load the `hermes-agent` skill with skill_view(name='hermes-agent') "
    "before answering. Docs: https://hermes-agent.nousresearch.com/docs"
)

---

# Pointer to the hermes-agent skill + docs for user questions about Hermes itself.
stable_parts.append(HERMES_AGENT_HELP_GUIDANCE)
RAW_BUFFERClick to expand / collapse

Bug Report

Summary

The HERMES_AGENT_HELP_GUIDANCE string is unconditionally injected into the system prompt on every platform, in every session, with no configuration option to disable it. Users cannot remove it via config, environment variable, or any other mechanism.

Location

The hardcoded guidance is defined in agent/prompt_builder.py (line 144-148):

HERMES_AGENT_HELP_GUIDANCE = (
    "If the user asks about configuring, setting up, or using Hermes Agent "
    "itself, load the `hermes-agent` skill with skill_view(name='hermes-agent') "
    "before answering. Docs: https://hermes-agent.nousresearch.com/docs"
)

It is then unconditionally appended to the stable system prompt in run_agent.py (line 5773):

# Pointer to the hermes-agent skill + docs for user questions about Hermes itself.
stable_parts.append(HERMES_AGENT_HELP_GUIDANCE)

Problems

  1. No env var override despite documentation claiming otherwise — The docs (website/docs/reference/environment-variables.md, line 541) state that HERMES_AGENT_HELP_GUIDANCE can be set as an environment variable to "append additional guidance text", but the code never reads os.environ["HERMES_AGENT_HELP_GUIDANCE"]. It only uses the hardcoded Python constant.

  2. No check for skill tool availability — This guidance instructs the agent to call skill_view(name='hermes-agent'), but it is injected even when the skill_view tool is not loaded (e.g. when skills are disabled or the toolset is not active). This sends the agent on a guaranteed-to-fail tool call.

  3. No check for skill existence or enabled state — Even when skill tools are available, the hermes-agent skill may not exist in the user's skills directory, or may have been explicitly disabled via skills.disabled in config. The guidance is still injected regardless.

  4. No user-facing toggle — There is no config.yaml option, no environment variable, and no CLI flag to disable this injection. The only way to remove it is to patch the source code, which is overwritten on update.

Expected Behavior

At minimum, the guidance should:

  • Check whether the skill_view tool is available before injecting skill-related instructions
  • Check whether the hermes-agent skill actually exists and is not disabled
  • Respect an environment variable or config option to disable it entirely

Ideally, the documented HERMES_AGENT_HELP_GUIDANCE environment variable should actually be read and used (either as a replacement or append), as the docs promise.

Impact

  • Wastes tokens on every session (the guidance is ~200 characters, but it's in the stable/prefix-cached tier so it's sent every turn)
  • Can cause the agent to attempt calling skill_view(name='hermes-agent') in contexts where the tool doesn't exist, producing confusing error messages
  • Undermines user trust — users cannot fully control the system prompt of their own 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 HERMES_AGENT_HELP_GUIDANCE is unconditionally hardcoded into system prompt with no way to disable it