Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/integrations/hermes.md
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,7 @@ This installs uteke as the agent's default memory provider — relevant memories
>
> The `--memory-provider` pattern remains supported for **pi**, **Claude Code**, and **Cursor**.
> See [Memory-Provider for Other Agents](#memory-provider-for-other-agents).
> The template source lives at [`extensions/hermes-memory-provider/`](../extensions/hermes-memory-provider/).
>
> Historical reference: Mode B made uteke Hermes's long-term memory backend via
> `uteke init --agent hermes --memory-provider` + `memory.provider: uteke` config.
Expand Down
67 changes: 52 additions & 15 deletions extensions/hermes-memory-provider/README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,42 @@
# Hermes memory-provider plugin (template)

These files are the source templates for the Hermes **memory-provider**
integration generated by:
> ⚠️ **DEPRECATED for Hermes (removed 2026-06-29).**
>
> This memory-provider plugin has been **removed** from Hermes Agent. It will
> **not** work with Hermes — the gateway runtime no longer initializes
> MemoryProvider plugins.
>
> **For Hermes, use Mode A + Mode C instead:**
> - **Mode A:** `uteke init --agent hermes` → manual `uteke(action=...)` calls
> via uteke-serve HTTP daemon.
> - **Mode C:** Shell hook on `pre_llm_call` → automatic recall injected into
> every turn. See [docs/integrations/hermes.md](../../docs/integrations/hermes.md)
> for the full guide.
>
> **This template remains for:** `pi`, `Claude Code`, and `Cursor` agents
> (which still support the `--memory-provider` pattern).

## Overview

These files are the source templates for the **memory-provider** integration
generated by:

```bash
uteke init --agent hermes --memory-provider
uteke init --agent pi --memory-provider # ✅ supported
uteke init --agent claude --memory-provider # ✅ supported
uteke init --agent cursor --memory-provider # ✅ supported
uteke init --agent hermes --memory-provider # ❌ deprecated for Hermes
```

Unlike the `uteke-tool` plugin (which exposes manual `uteke(action=...)`
calls over an HTTP daemon), the memory-provider plugin makes uteke the
agent's **default long-term memory**:
The memory-provider plugin makes uteke the agent's **default long-term
memory**:

- **Automatic recall** — relevant memories are prefetched and injected into
the system prompt before every turn (no explicit tool call needed).
- **Automatic extraction** — on session end / pre-compress, the transcript
is distilled into atomic facts via uteke's opt-in `import --extract`.
- **No daemon** — talks to the `uteke` binary directly via subprocess.
- **Automatic recall** — relevant memories are prefetched and injected into the
system prompt before every turn (no explicit tool call needed).
- **Automatic extraction** — on session end / pre-compress, the transcript is
distilled into atomic facts via uteke's opt-in `import --extract`.
- **No daemon** — talks to the `uteke` binary directly via subprocess, or
optionally to `uteke-serve` via HTTP (see `__init__.py.tmpl` config).

## Files

Expand All @@ -24,14 +45,30 @@
| `__init__.py.tmpl` | `__init__.py` | MemoryProvider implementation + `register()` |
| `plugin.yaml.tmpl` | `plugin.yaml` | Hermes plugin manifest (declares hooks) |

## Activate
## Activate (non-Hermes agents only)

After generating, set uteke as the memory provider in Hermes config:
After generating, set uteke as the memory provider in your agent config:

```yaml
# ~/.hermes/config.yaml
# Example for pi / Claude Code / Cursor
memory:
provider: uteke
```

See `docs/integrations/hermes.md` for the full guide.
## Transport modes

The template supports two transport modes:

| Mode | Config | How |
|------|--------|-----|
| **Subprocess** (default) | `UTEKE_BIN` or PATH lookup | Shells out to `uteke` binary directly |
| **HTTP** (optional) | `UTEKE_SERVER_URL` env var | Calls `uteke-serve` HTTP API — no binary needed |

Use HTTP mode when:
- The `uteke` binary is not available on PATH or hangs on your system
- `uteke-serve` is already running as a daemon
- You want container-based access (e.g., `http://uteke:8767`)

Check failure

Code scanning / CodeCora

[sec-hardcoded-url] Rule: sec-hardcoded-url Error

Insecure HTTP URL detected (not https). Use HTTPS for all external connections.

## See also

- [docs/integrations/hermes.md](../../docs/integrations/hermes.md) — full Hermes integration guide (Mode A + Mode C)
Loading