feat(agent): load global AGENTS.md - #1812
Conversation
|
Thanks for the thoughtful PR! We're going to pass on this one though — SOUL.md already serves as the global user-authored context file, and it's the right place for environment details, homelab setup, persistent instructions, etc. The current design intentionally keeps these two layers separate:
Adding a global ~/.hermes/AGENTS.md would blur that boundary and create confusion about where users should put global instructions. We'd rather keep the single clear answer: if it's global, put it in SOUL.md. |
|
Makes sense; but I didn't perceive this capability from the docs. It says
Basically a list of things internal or innate to the agent -- so I wouldn't have assumed it should contain things external to Hermes like the environment. |
What does this PR do?
Hermes currently loads global SOUL.md from HERMES_HOME, but there is no equivalent global, user-authored context file for non-personality instructions (eg. homelab environment), equivalent to TOOLS.md in OpenClaw. This change adds an optional HERMES_HOME/AGENTS.md layer to prompt assembly, loaded before project-local AGENTS.md files.
The intent is to complement SOUL.md with a static global instruction layer. It is not meant to replace Hermes memory, and it should not be treated as agent-managed state.
Type of Change
Note: I would almost see it as a bug fix, because users may mistakenly assume that ~/.hermes/AGENTS.md is always loaded.
Changes Made
Files changed: agent/prompt_builder.py, tests/agent/test_prompt_builder.py, website/docs/user-guide/features/context-files.md
How to Test
Checklist
Code
fix(scope):,feat(scope):, etc.)pytest tests/ -qand all tests passDocumentation & Housekeeping
docs/, docstrings) — or N/Acli-config.yaml.exampleif I added/changed config keys — or N/ACONTRIBUTING.mdorAGENTS.mdif I changed architecture or workflows — or N/AScreenshots / Logs