OpenViking openviking-memory

OpenViking long-term memory plugin guide. Once installed, the plugin automatically remembers important facts from conversations and recalls relevant context before responding.

install
source · Clone the upstream repo
git clone https://github.com/volcengine/OpenViking
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/volcengine/OpenViking "$T" && mkdir -p ~/.claude/skills && cp -r "$T/examples/openclaw-plugin/skills/install-openviking-memory" ~/.claude/skills/volcengine-openviking-openviking-memory && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/volcengine/OpenViking "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/examples/openclaw-plugin/skills/install-openviking-memory" ~/.openclaw/skills/volcengine-openviking-openviking-memory && rm -rf "$T"
manifest: examples/openclaw-plugin/skills/install-openviking-memory/SKILL.md
source content

OpenViking Memory Guide

How It Works

  • Auto-Capture: At
    afterTurn
    (end of one user turn run), automatically extracts memories from user/assistant messages
    • semantic
      mode: captures all qualifying user text, relying on OpenViking's extraction pipeline to filter
    • keyword
      mode: only captures text matching trigger words (e.g. "remember", "preference", etc.)
  • Auto-Recall: At
    before_prompt_build
    , automatically searches for relevant memories and injects them into context

Available Tools

memory_recall — Search Memories

Searches long-term memories in OpenViking, returns relevant results.

ParameterRequiredDescription
query
YesSearch query text
limit
NoMaximum number of results (defaults to plugin config)
scoreThreshold
NoMinimum relevance score 0-1 (defaults to plugin config)
targetUri
NoSearch scope URI (defaults to plugin config)

Example: User asks "What programming language did I say I like?"

memory_store — Manual Store

Writes text to an OpenViking session and runs memory extraction.

ParameterRequiredDescription
text
YesInformation text to store
role
NoSession role (default
user
)
sessionId
NoExisting OpenViking session ID

Example: User says "Remember my email is xxx@example.com"

memory_forget — Delete Memories

Delete by exact URI, or search and delete.

ParameterRequiredDescription
uri
NoExact memory URI (direct delete)
query
NoSearch query (find then delete)
targetUri
NoSearch scope URI
limit
NoSearch limit (default 5)
scoreThreshold
NoMinimum relevance score

Example: User says "Forget my phone number"

Configuration

FieldDefaultDescription
mode
remote
local
(start local server) or
remote
(connect to remote)
baseUrl
http://127.0.0.1:1933
OpenViking server URL (remote mode)
apiKey
OpenViking API Key (optional)
agentId
default
Identifies this agent to OpenViking
configPath
~/.openviking/ov.conf
Config file path (local mode)
port
1933
Local server port (local mode)
targetUri
viking://user/memories
Default search scope
autoCapture
true
Automatically capture memories
captureMode
semantic
Capture mode:
semantic
/
keyword
captureMaxLength
24000
Maximum text length per capture
autoRecall
true
Automatically recall and inject context
recallLimit
6
Maximum memories injected during auto-recall
recallScoreThreshold
0.01
Minimum relevance score for recall

Daily Operations

# Start (local mode: source env first)
source ~/.openclaw/openviking.env && openclaw gateway

# Start (remote mode: no env needed)
openclaw gateway

# Check status
openclaw status
openclaw config get plugins.slots.contextEngine

# Disable memory
openclaw config set plugins.slots.contextEngine legacy

# Enable memory
openclaw config set plugins.slots.contextEngine openviking

Restart the gateway after changing the slot.

Multi-Instance Support

If you have multiple OpenClaw instances, use

--workdir
to target a specific one:

# Install script
curl -fsSL ... | bash -s -- --workdir ~/.openclaw-openclaw-second

# Setup helper
npx ./examples/openclaw-plugin/setup-helper --workdir ~/.openclaw-openclaw-second

# Manual config (prefix openclaw commands)
OPENCLAW_STATE_DIR=~/.openclaw-openclaw-second openclaw config set ...

Troubleshooting

SymptomCauseFix
extracted 0 memories
Wrong API Key or model nameCheck
api_key
and
model
in
ov.conf
port occupied
Port used by another processChange port:
openclaw config set plugins.entries.openviking.config.port 1934
Plugin not loadedEnv file not sourced or slot not configuredCheck
openclaw status
output
Inaccurate recallrecallScoreThreshold too lowIncrease threshold or adjust recallLimit