hermes-source-development

Patch Hermes Agent source, run its test suite, and submit PRs to NousResearch/hermes-agent.

1|Updated Mar 15, 2025
One-click install
npx skills add https://github.com/adikpb/dotfiles --skill hermes-source-development-adikpb
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: hermes-source-development
Source: https://github.com/adikpb/dotfiles/tree/main/.hermes/skills/hermes-source-development
Command: npx skills add https://github.com/adikpb/dotfiles --skill hermes-source-development-adikpb

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Contributing to the Hermes Agent codebase requires navigating undocumented policies (the max-tokens-knob ban), a one-pass sweeper bot, per-file test isolation requirements, and a plugin loader with silent failure modes. This Skill encodes the verified patterns so patches, tests, and PRs land correctly the first time. ## Core Features & Use Cases - Source Patching Patterns: Apply the config-driven pattern for temperature/timeout settings and the output-cap removal pattern for hardcoded max_tokens values, with a verified table of known call sites in vision_tools.py and browser_tool.py. - Test Suite Execution: Run the canonical 8-file, 261-test vision regression set via scripts/run_tests.sh with per-file subprocess isolation, avoiding the false failures caused by in-process pytest runs. - PR Workflow & Sweeper Protocol: Follow the repo's PR template exactly, handle keep_open follow-up loops, prove pre-existing failures on clean main worktrees, and cross-link re-scoped PRs after sweeper closures. - Plugin Development & Diagnosis: Build and debug Hermes plugins using verified maps of the plugin surface, load-path pitfalls (silent import failures, symlink dev-loop), approval-gate internals, and credential-pool model-scoped exhaustion fixes. - Use Case: A hardcoded max_tokens cap truncates vision tool output. Use this Skill to remove the cap per project policy, extend the cited regression tests, run the isolated suite, and submit a template-compliant PR that survives the sweeper review. ## Quick Start Ask the agent to patch the hardcoded max_tokens in Hermes vision_tools.py, run the vision test suite, and open a PR to NousResearch/hermes-agent following the repo template.

Frequently Asked Questions about hermes-source-development

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix truncated vision tool output in Hermes Agent?▼

Remove the hardcoded max_tokens line from the call_kwargs dict in tools/vision_tools.py or tools/browser_tool.py rather than adding a config option. The centralized aux client already omits max_tokens, letting providers use the model's maximum output.

How do I run the Hermes Agent test suite correctly?▼

Always use scripts/run_tests.sh, which spawns each test file in a fresh subprocess for CI parity. Running multiple files in one pytest process leaks state between files and produces false failures that do not occur in CI.

Why is a Hermes tool missing from my session?▼

Missing tools are almost always caused by the toolset filter excluding them, a check_fn rejecting them, or a stale check_fn cache serving a False result within its 30-second TTL. Check platform_toolsets.cli in config.yaml and the agent.log for check_fn warnings.

Can I add a max_tokens config option to Hermes Agent?▼

No. The max-tokens-knob policy prohibits user-facing max_tokens configuration, and PRs adding one are closed as not_planned. The sanctioned fix is removing the hardcoded cap so the provider uses the model's maximum output.

Why does my Hermes plugin not load even though tests pass?▼

The directory loader imports the plugin as a synthetic hermes_plugins.<slug> package without adding its directory to sys.path, so top-level absolute self-imports fail silently at runtime. Use relative imports inside the package and a lazy import inside register().

What happens after the hermes-sweeper bot reviews my PR?▼

Each PR receives exactly one sweeper review, ever; pushing commits does not trigger a re-review. A keep_open verdict is a to-do list: implement its cited test suggestions, reply with a coverage table, and wait for a human maintainer to merge.