-
Notifications
You must be signed in to change notification settings - Fork 1.5k
[Bug]: OpenClaw memory_recall tool returns 404 — API path mismatch with OpenViking 0.3.2 #1189
Description
Bug type
Behavior bug — OpenClaw plugin compatibility issue with OpenViking 0.3.2
Summary
The OpenClaw openviking plugin's memory_recall tool calls POST /api/v1/memory/recall, which does not exist in OpenViking 0.3.2. The correct endpoint is POST /api/v1/search/search.
Meanwhile, the context engine (auto-recall via before_prompt_build) within the same plugin uses the correct /api/v1/search/search path and works fine — it successfully injects relevant-memories into every message. This means two code paths within the same OpenClaw plugin are targeting different API routes.
Steps to reproduce
- Install OpenClaw 2026.4.1 with OpenViking 0.3.2 (
pip install openviking) - Enable the openviking plugin in
openclaw.json:"openviking": { "enabled": true, "config": { "mode": "local", "configPath": "/home/user/.openviking/ov.conf", "port": 1933 } }
- Store a memory via
memory_storetool → succeeds (data written to session) - Wait for extraction to complete → memory appears in
relevant-memoriesheader ✅ - Use
memory_recalltool to search for the same memory → returns "No relevant memories found" ❌
Expected behavior
memory_recall should return matching memories from OpenViking, consistent with the auto-recall context engine results.
Actual behavior
memory_recall always returns empty. OpenViking access log shows:
"POST /api/v1/memory/recall HTTP/1.1" 404
OpenViking 0.3.2 API surface (from /openapi.json) has no /api/v1/memory/* routes. The search endpoints are:
POST /api/v1/search/search← correct endpointPOST /api/v1/search/findPOST /api/v1/search/grepPOST /api/v1/search/glob
Evidence
Manual curl to the correct endpoint returns results:
curl -s http://127.0.0.1:1933/api/v1/search/search \
-X POST -H "Content-Type: application/json" \
-d '{"query":"咖啡","limit":5}'
# → returns matching memory with score 0.64The context engine's auto-recall works correctly every time, proving data exists and is searchable.
Root cause
The OpenClaw openviking plugin (bundled in OpenClaw dist) has two separate code paths:
- Context engine (
before_prompt_build/ auto-recall) → calls/api/v1/search/search✅ memory_recalltool → calls/api/v1/memory/recall❌ (404)
The plugin source is maintained at examples/openclaw-plugin in this repo. The tool path appears to target an API spec that does not match OpenViking 0.3.2.
Environment
- OpenViking: 0.3.2 (latest on PyPI as of 2026-04-02)
- OpenClaw: 2026.4.1 (da64a97)
- OS: Linux (Kali, kernel 6.18.12)
- Python: 3.13
Additional notes
memory_storeandmemory_forgettools may have similar path issues (not fully tested,memory_storedid write to sessions but committed 0 memories initially)- VLM extraction pipeline also has issues — 智谱 glm-4.5-flash 429 rate limiting causes summary generation failures (separate issue)
- OpenClaw plugin maintainers per OpenViking Maintainer Map / 模块找人地图与贡献入口 #1082: @Mijamind719 @wlff123
Metadata
Metadata
Assignees
Labels
Type
Projects
Status