Skip to content

fatflowers/evermemclaw

Repository files navigation

@evermemos/openclaw-evermemos

EverMemOS memory plugin for OpenClaw.

This plugin provides:

  • Auto-Recall: retrieve relevant long-term memories before each agent turn and inject them via prependContext.
  • Auto-Capture: capture conversation turns after each run and store them in EverMemOS.
  • Explicit memory tools: search, store, and profile access from the agent.
  • CLI and slash commands for setup/status/search/wipe workflows.

Install

openclaw plugins install @evermemos/openclaw-evermemos

Set memory slot:

plugins:
  slots:
    memory: openclaw-evermemos

Quick Config

plugins:
  entries:
    openclaw-evermemos:
      enabled: true
      config:
        baseUrl: http://localhost:1995
        userId: your-user-id
        recallEnabled: true
        captureEnabled: true

Configuration

Field Type Default Notes
baseUrl string http://localhost:1995 EverMemOS server base URL
apiKey string? undefined Reserved for hosted mode
userId string default-user Memory scope identifier
recallEnabled boolean true Enable auto-recall hook
recallMaxResults number 6 Max injected memory count
retrieveMethod hybrid | embedding | bm25 | agentic | rrf hybrid embedding->vector, bm25->keyword mapping
memoryTypes string[] ["episodic_memory", "profile"] Memory types to search
includeProfile boolean true Include profile in context
profileFrequency number 10 Inject full profile every N turns
captureEnabled boolean true Enable auto-capture hook
captureStrategy last_turn | all | user_only last_turn Turn selection strategy
asyncMode boolean true Capture in fire-and-forget mode
debug boolean false Extra debug logs
queryPrefix string? undefined Optional recall query prefix
tags string[] [] Optional tags used in capture
timeoutMs number 5000 HTTP timeout for all API calls

Hook Behavior

Auto-Recall

Hooks: before_prompt_build and before_agent_start (compatibility).

Flow:

  1. Extract latest user message from current run context.
  2. Search EverMemOS (/api/v1/memories/search).
  3. Format memory block into:
<evermemos_context>...</evermemos_context>
  1. Return { prependContext }.

Failure behavior: logs warning and continues without memory injection.

Auto-Capture

Hook: agent_end.

Flow:

  1. Extract turns from run messages.
  2. Filter by captureStrategy.
  3. Store selected turns via /api/v1/memories.

Failure behavior: never breaks user response path.

Agent Tools

  • evermemos_memory_search
    • Query long-term memory.
  • evermemos_memory_store
    • Explicitly store memory content.
  • evermemos_memory_profile
    • Get profile memory.
    • Update action currently returns TODO fallback until stable profile write schema is finalized.

CLI Commands

openclaw evermemos setup
openclaw evermemos status
openclaw evermemos search "<query>" --limit 6
openclaw evermemos wipe --yes

Slash Commands

/memory search <query>
/memory store <content>
/memory profile

EverMemOS API Used

  • GET /health
  • POST /api/v1/memories
  • GET /api/v1/memories/search
  • DELETE /api/v1/memories (for CLI wipe)

Development

npm install
npm run typecheck

One-Click Acceptance Script

Use the provided script on a real machine with OpenClaw + EverMemOS running:

./scripts/e2e-acceptance.sh

Optional environment overrides:

EVERMEMOS_BASE_URL=http://localhost:1995 \
EVERMEMOS_USER_ID=your-user-id \
OPENCLAW_CONFIG_PATH=/path/to/openclaw.yml \
REPORT_PATH=./TEST_REPORT_E2E.md \
./scripts/e2e-acceptance.sh

The script validates checklist items and outputs a Markdown report file.

Notes

  • Local-first defaults are intentional (localhost:1995).
  • Memory slot is exclusive in OpenClaw (kind: "memory").
  • If EverMemOS is down, plugin degrades gracefully (no hard failure).

About

EverMemOS memory plugin for OpenClaw

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors