a1240adbb9
- Generalized OpenAPI spec reference in client.py - Removed personal IP addresses and user IDs from README - Added MEM0_PREFETCH_LIMIT and MEM0_PREFETCH_SCORE_THRESHOLD to documentation - Updated example configurations with generic values
70 lines
2.0 KiB
Markdown
70 lines
2.0 KiB
Markdown
# AGENTS.md — Mem0 Local Hermes Plugin
|
|
|
|
## Structure
|
|
|
|
Single-file plugin: `__init__.py` contains the `Mem0LocalMemoryProvider` class. HTTP client in `client.py`. Manifest in `plugin.yaml`.
|
|
|
|
## Key Commands
|
|
|
|
```bash
|
|
# Install from repo
|
|
hermes plugins install ARIA/mem0-local-hermes-plugin
|
|
|
|
# Install from local path (development)
|
|
hermes plugins install /path/to/mem0-local-hermes-plugin
|
|
|
|
# Activate memory provider
|
|
hermes memory mem0-local
|
|
|
|
# Restart gateway after changes
|
|
hermes gateway restart
|
|
|
|
# Verify Mem0 server
|
|
curl http://localhost:8000/health
|
|
```
|
|
|
|
## Configuration
|
|
|
|
**Two-tier config (JSON overrides env):**
|
|
|
|
1. `~/.hermes/.env` — Primary config
|
|
2. `~/.hermes/mem0-local.json` — Optional overrides
|
|
|
|
**Required env vars:**
|
|
- `MEM0_BASE_URL` — Mem0 server URL (default: `http://localhost:8000`)
|
|
- `MEM0_USER_ID` — User identifier (default: `hermes-user`)
|
|
|
|
**Optional env vars:**
|
|
- `MEM0_AGENT_ID` — Agent identifier (default: `hermes`)
|
|
- `MEM0_PREFETCH_LIMIT` — Max memories to prefetch (default: `3`)
|
|
- `MEM0_PREFETCH_SCORE_THRESHOLD` — Min similarity % (default: `60`)
|
|
|
|
## Architecture
|
|
|
|
**Memory injection flow:**
|
|
1. `queue_prefetch()` — Spawns background thread on user message
|
|
2. `prefetch()` — Returns cached result next turn
|
|
3. `pre_llm_call` hook — Sync prefetch for immediate injection (fallback context)
|
|
4. `sync_turn()` — Non-blocking server-side fact extraction
|
|
|
|
**Circuit breaker:** 5 consecutive failures → 120s cooldown.
|
|
|
|
**Dual-context registration:**
|
|
- `register_memory_provider()` — When installed in `plugins/memory/`
|
|
- `register_tool()` + `pre_llm_call` hook — When installed in `~/.hermes/plugins/`
|
|
|
|
## Tools
|
|
|
|
| Tool | Purpose |
|
|
|------|---------|
|
|
| `mem0_profile` | Get all stored memories |
|
|
| `mem0_search` | Semantic search with optional reranking |
|
|
| `mem0_conclude` | Store fact verbatim |
|
|
| `mem0_delete` | Delete memory by ID |
|
|
|
|
## Dependencies
|
|
|
|
- `requests` (via `pip_dependencies` in `plugin.yaml`)
|
|
- Hermes gateway with memory provider support
|
|
- Self-hosted Mem0 server (Docker image: `mem0ai/mem0:latest`)
|