# NousResearch/hermes-agent · Memory provider tools missing from agent execution path

## Open now

- Nothing open on GitHub.

These issues and fixes concern a bug where a holographic/memory plugin registers successfully but its tools are not routed into the sequential agent execution loop. The work focuses on correcting that routing path.

## TL;DR

- 3 member(s): 0 open issue(s), 1 closed issue(s), 0 open PR(s), 1 merged PR(s), 1 PR(s) closed without merging.
- A fix was merged to main in PR #4803. Verify it addresses your case.
- **Recommended:** read PR #4803 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `unresolved`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.67`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Closed / duplicate issues

- #4781: Holographic memory plugin registers but tools not injected into agent loop

## Prior & competing PRs

- **#4803: fix: route memory provider tools in sequential execution path**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`
  - files: `run_agent.py`
  - fix hunks:
  - `run_agent.py`

    ```diff
    @@ -6009,6 +6009,30 @@ def _execute_tool_calls_sequential(self, assistant_message, messages: list, effe
                             spinner.stop(cute_msg)
                         elif self.quiet_mode:
                             self._vprint(f"  {cute_msg}")
    +            elif self._memory_manager and self._memory_manager.has_tool(function_name):
    +                # Memory provider tools (hindsight_retain, honcho_search, etc.)
    +                # These are not in the tool registry — route through MemoryManager.
    +                spinner = None
    +                if self.quiet_mode and not self.tool_progress_callback:
    +                    face = random.choice(KawaiiSpinner.KAWAII_WAITING)
    +                    emoji = _get_tool_emoji(function_name)
    +                    preview = _build_tool_preview(function_name, function_args) or function_name
    +                    spinner = KawaiiSpinner(f"{face} {emoji} {preview}", spinner_type='dots', print_fn=self._print_fn)
    +                    spinner.start()
    +                _mem_result = None
    +                try:
    +                    function_result = self._memory_manager.handle_tool_call(function_name, function_args)
    +                    _mem_result = function_result
    +                except Exception as tool_error:
    +                    function_result = json.dumps({"error": f"Memory tool '{function_name}' failed: {tool_error}"})
    +                    logger.error("memory_manager.handle_tool_call raised for %s: %s", function_name, tool_error, exc_info=True)
    +                finally:
    +                    tool_duration = time.time() - tool_start_time
    +                    cute_msg = _get_cute_tool_message_impl(function_name, function_args, tool_duration, result=_mem_result)
    +                    if spinner:
    +                        spinner.stop(cute_msg)
    +                    elif self.quiet_mode:
    +                        self._vprint(f"  {cute_msg}")
                 elif self.quiet_mode:
                     spinner = None
                     if not self.tool_progress_callback:
    ```
- **#4785: fix(agent): route memory provider tools in sequential execution path**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `#4803`

## Fix status

- Merged to main in PR #4803 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-04-03`. This confirmation is old and may be out of date (a revert/reopen would not have invalidated it here); re-verify.
- Subsystem: `agent`
