Skip to content

[Bug] constraints_path config option is dead config - loading logic not implemented #18744

@ruoxi001

Description

@ruoxi001

Summary

The constraints_path configuration option in config.yaml is a dead config — the loading logic is never implemented, so user-specified constraint files are completely ignored.

Evidence

1. Config option exists

# ~/.hermes/config.yaml (line 605)
constraints_path: ~/.hermes/constraints.yaml

2. No code reads this config

# Search entire codebase (excluding venv/tests)
$ find ~/.hermes/hermes-agent -name "*.py" -type f     ! -path "*/venv/*" ! -path "*/__pycache__/*" ! -path "*/tests/*"     -exec grep -l "constraints_path" {} \; 2>/dev/null

# Result: EMPTY — no file references constraints_path

3. System prompt builder ignores constraints

In run_agent.py:_build_system_prompt() (lines 4807-5000), the layers are:

  1. Agent identity (SOUL.md)
  2. User/gateway system prompt
  3. Persistent memory
  4. Skills guidance
  5. Context files (AGENTS.md, .cursorrules)
  6. Current date/time
  7. Platform hints

Constraints file is never mentioned anywhere in the prompt assembly.

4. Subagents also skip constraints

# delegate_tool.py:1046
skip_context_files=True,  # All context files including constraints are skipped

Impact

  • Users write constraint files expecting agent behavior customization
  • Files are silently ignored — no warning, no error, no documentation note
  • Wasted user effort configuring something that doesn't work
  • Can cause confusion when agent behavior doesn't match expected constraints

Expected Behavior

Either:

  1. Implement loading: Read constraints_path and inject content into system prompt
  2. Remove config option: Delete the dead config line to avoid confusion
  3. Document limitation: Add clear warning that constraints_path is not yet implemented

Environment

  • Hermes Agent: v0.12.0 (2026.4.30)
  • Python: 3.11.15
  • Platform: Ubuntu (Linux)

Additional Context

This was discovered during deep investigation into why constraint files weren't being followed. The SOUL.md and memory systems work correctly, but constraints.yaml is completely non-functional despite having a config entry.

Related: Subagents (delegate_task) intentionally skip all context files (skip_context_files=True), so even if constraints were loaded for main agent, children wouldn't inherit them automatically.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low — cosmetic, nice to havearea/configConfig system, migrations, profilescomp/agentCore agent loop, run_agent.py, prompt buildersweeper:implemented-on-mainSweeper: behavior already present on current maintype/bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions