docs/en/agent-integrations/03-openclaw.md
Use OpenViking as the long-term memory backend for OpenClaw. After installation, OpenClaw will automatically remember important facts from conversations and recall relevant context before replying.
This plugin is registered as the openviking context engine — it owns long-term memory retrieval, session archiving, archive summaries, and memory extraction across the OpenClaw lifecycle.
Source: examples/openclaw-plugin
| Component | Required Version |
|---|---|
| Node.js | >= 22 |
| OpenClaw | >= 2026.4.8 |
The plugin connects to an existing OpenViking server. Make sure you have one reachable over HTTP — see the Deployment Guide. Quick check:
node -v
openclaw --version
Upgrading from the legacy
memory-openvikingplugin? It's not compatible with the newopenvikingplugin. Run the cleanup script first:bashcurl -fsSL https://raw.githubusercontent.com/volcengine/OpenViking/main/examples/openclaw-plugin/upgrade_scripts/cleanup-memory-openviking.sh -o cleanup-memory-openviking.sh bash cleanup-memory-openviking.sh
openclaw plugins install clawhub:@openviking/openclaw-plugin
openclaw openviking setup --base-url http://your-server:1933 --api-key sk-xxx --json
openclaw gateway restart
openclaw openviking status --json
The setup wizard writes configuration to $OPENCLAW_STATE_DIR/openclaw.json (default: ~/.openclaw/openclaw.json) and activates the context-engine slot.
If ClawHub is unavailable (rate-limited, offline, or auth issues), use the ov-install backup path:
npm install -g openclaw-openviking-setup-helper
ov-install
Common variants:
# Target a specific OpenClaw data directory
ov-install --workdir ~/.openclaw-second
# Pin to a specific plugin release
ov-install --base-url http://your-server:1933 --plugin-version=0.2.9
To upgrade later:
npm install -g openclaw-openviking-setup-helper@latest && ov-install --base-url http://your-server:1933
ov-install parameters| Parameter | Meaning |
|---|---|
--workdir PATH | Target OpenClaw data directory (default ~/.openclaw) |
--plugin-version=VER | Plugin version: npm version (e.g. 2026.5.8), npm dist-tag (e.g. dev), or Git ref (e.g. v0.3.16, main). Default: npm latest |
--plugin-source=npm|github | Plugin download source (default npm) |
--plugin-package=NAME | npm plugin package name (default @openviking/openclaw-plugin) |
--github-repo owner/repo | Use a different GitHub repo for plugin files (default volcengine/OpenViking) |
--current-version | Print the currently installed plugin version and exit |
--update | Upgrade only the plugin to the requested --plugin-version |
--rollback | Roll back the last plugin upgrade |
--uninstall | Uninstall the plugin |
--base-url URL | OpenViking server URL |
--api-key KEY | OpenViking API key |
--agent-prefix PREFIX | Agent prefix for memory namespace isolation |
--account-id ID | Multi-tenant account ID (root-key deployments only) |
--user-id ID | Multi-tenant user ID (root-key deployments only) |
--force-slot | Force-replace the contextEngine slot if another plugin owns it |
--allow-offline | Save config even if the OpenViking server is unreachable |
The plugin configuration lives under plugins.entries.openviking.config. Setup usually writes this for you — manual edits are only needed if you change servers later.
openclaw config get plugins.entries.openviking.config
| Parameter | Default | Meaning |
|---|---|---|
baseUrl | http://127.0.0.1:1933 | Remote OpenViking HTTP endpoint |
apiKey | empty | Optional OpenViking API key |
agent_prefix | default | Agent prefix used by this OpenClaw instance on the server |
Common settings:
openclaw config set plugins.entries.openviking.config.baseUrl http://your-server:1933
openclaw config set plugins.entries.openviking.config.apiKey your-api-key
openclaw config set plugins.entries.openviking.config.agent_prefix your-prefix
For a one-shot health check covering plugin registration, server connectivity, and version compatibility, run:
openclaw openviking status
For automation, append --json to openclaw openviking status to get a machine-readable result. openclaw openviking setup also supports --json when used with --base-url.
Or check the underlying signals manually. The plugin owns the contextEngine slot:
openclaw config get plugins.slots.contextEngine
If the output is openviking, the plugin is active.
Follow OpenClaw logs for the registration message:
openclaw logs --follow
# expect: openviking: registered context-engine
OpenViking server log (default location):
cat ~/.openviking/data/log/openviking.log
Currently-installed plugin version:
ov-install --current-version
For an end-to-end sanity check (Gateway → OpenViking pipeline), run:
python examples/openclaw-plugin/health_check_tools/ov-healthcheck.py
This script injects a real conversation through Gateway and verifies from the OpenViking side that the session was captured, committed, archived, and had memories extracted. See HEALTHCHECK.md for details.
curl -fsSL https://raw.githubusercontent.com/volcengine/OpenViking/main/examples/openclaw-plugin/upgrade_scripts/uninstall-openclaw-plugin.sh -o uninstall-openviking.sh
bash uninstall-openviking.sh
For a non-default OpenClaw state directory, append --workdir ~/.openclaw-second.