hermes - 💡(How to fix) Fix Support remote Hermes agent with local tool execution [1 participants]

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…
GitHub stats
NousResearch/hermes-agent#18715Fetched 2026-05-03 04:54:45
View on GitHub
Comments
0
Participants
1
Timeline
3
Reactions
0
Participants
Timeline (top)
labeled ×3

Root Cause

Running a separate local Hermes instance loses the remote instance's accumulated skills and memory.

Running everything on the remote Hermes host loses access to the local workspace, local services, local database, and local credentials.

This is especially important for development workflows.

Code Example

pwd

---

Remote brain, local hands.

---

remote_agent:
  url: "http://remote-hermes:8642"
  mode: split_runtime

tool_execution:
  default: local
  local_toolsets:
    - terminal
    - file
    - code_execution
    - browser
  remote_toolsets:
    - skills
    - memory
    - session_search

---

feat/remote-agent-local-tools
RAW_BUFFERClick to expand / collapse

Problem

I want to use a remote Hermes Agent instance while keeping tool execution on my local machine.

Example:

  • Machine A: local client / workspace machine
  • Machine B: remote Hermes Agent with my existing skills, memory, sessions, and model/provider config

Today, if Machine A points model.base_url to Machine B's Hermes OpenAI-compatible API server, tool calls run on Machine B because the API server creates its own AIAgent.

This is surprising because normal LLM providers return tool_calls to the client, and the client executes tools locally.

For example:

pwd

should run on Machine A, where my current workspace lives, not on Machine B.

Desired behavior

I want a split-runtime mode:

Remote brain, local hands.

Remote Hermes should provide:

  • skills
  • memory / session continuity
  • reasoning / model config

Local machine should execute workspace-local tools:

  • terminal
  • file tools
  • code execution
  • browser / local dev server interaction
  • local MCP servers

Why this matters

Running a separate local Hermes instance loses the remote instance's accumulated skills and memory.

Running everything on the remote Hermes host loses access to the local workspace, local services, local database, and local credentials.

This is especially important for development workflows.

Related issue

Related to #11014, but this issue focuses specifically on:

using a remote Hermes agent while executing selected tool calls on the local client.

Possible solution

Add an explicit split-runtime / local-tool-executor mode.

Example conceptual config:

remote_agent:
  url: "http://remote-hermes:8642"
  mode: split_runtime

tool_execution:
  default: local
  local_toolsets:
    - terminal
    - file
    - code_execution
    - browser
  remote_toolsets:
    - skills
    - memory
    - session_search

Expected flow:

  1. Local client connects to remote Hermes.
  2. Remote Hermes runs the agent loop and loads remote skills/memory.
  3. Remote Hermes emits tool calls.
  4. Local client executes allowed local tool calls.
  5. Tool results are returned to the remote Hermes agent loop.

Acceptance criteria

  • pwd runs on the local machine, not the remote Hermes host.
  • Remote Hermes can still use its existing skills and memory.
  • Skills created/updated during the session can be written to the remote/shared skill store.
  • Tool progress clearly shows where the tool is executed.
  • Existing API server behavior remains backward compatible.

Contribution

I am willing to help implement this feature if the maintainers agree with the direction.

Preferred branch name for my implementation work:

feat/remote-agent-local-tools

I can start with a smaller first PR that documents/warns about the current behavior, then follow up with a design PR for the split-runtime / local-tool-executor abstraction if maintainers agree.

extent analysis

TL;DR

Implement a split-runtime mode to execute tool calls locally while using a remote Hermes Agent instance.

Guidance

  • Introduce an explicit split_runtime mode in the configuration to distinguish between local and remote tool execution.
  • Define local_toolsets and remote_toolsets to specify which tools should be executed locally and remotely, respectively.
  • Modify the remote Hermes agent to emit tool calls and allow the local client to execute allowed local tool calls.
  • Ensure tool results are returned to the remote Hermes agent loop for further processing.

Example

remote_agent:
  url: "http://remote-hermes:8642"
  mode: split_runtime

tool_execution:
  default: local
  local_toolsets:
    - terminal
    - file
    - code_execution
    - browser
  remote_toolsets:
    - skills
    - memory
    - session_search

Notes

The proposed solution requires changes to the remote Hermes agent and the local client to support the split-runtime mode. The implementation should ensure backward compatibility with existing API server behavior.

Recommendation

Apply workaround by implementing the proposed split_runtime mode, as it allows for the desired behavior of executing tool calls locally while utilizing a remote Hermes Agent instance.

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 Support remote Hermes agent with local tool execution [1 participants]