問題描述
在以下兩種情境下,memory-lancedb-pro 的 auto-recall 功能容易出現 timeout 錯誤:
- 首次啟動 OpenClaw Gateway:啟動時 retriever.test() 或 auto-recall 經常 timeout
- 多進程 session 同時執行:當有多個 session 並發運行時,auto-recall 容易超時
錯誤訊息範例
[plugins] memory-lancedb-pro: startup checks failed: Error: retriever.test() timed out after 8000ms
[plugins] memory-lancedb-pro: auto-recall timed out after 60000ms
capture failed: ENOENT: no such file or directory, lstat '.memory-write.lock'
環境資訊
- memory-lancedb-pro 版本:1.1.0-beta.10
- OpenClaw 版本:v2026.4.x
- Node 環境:Windows
根因分析
經過調查,問題出在 schema 限制。
目前的 openclaw.plugin.json 中,autoRecallTimeoutMs 的 schema 限制為:
"autoRecallTimeoutMs": {
"type": "integer",
"minimum": 500,
"maximum": 60000, // ← 這裡限制最大為 60 秒
"default": 5000,
"description": "Timeout for the entire auto-recall pipeline..."
}
問題:
- 預設值只有 5 秒(default: 5000)
- 即使使用者想要增加 timeout,schema 的 maximum 限制為 60000ms(60 秒)
- 在首次啟動或多進程並發的場景下,60 秒不夠用
緩解措施(需要官方修改)
建議修改 openclaw.plugin.json
將 schema 的 maximum 從 60000 調整為更大的值:
"autoRecallTimeoutMs": {
"type": "integer",
"minimum": 500,
"maximum": 300000, // 從 60000 改為 300000(300 秒)
"default": 120000, // 預設值也建議從 5000 改為 120000(120 秒)
"description": "Timeout for the entire auto-recall pipeline..."
}
調整理由
| 設定 |
原始值 |
建議值 |
理由 |
| maximum |
60000 (60秒) |
300000 (300秒) |
允許使用者在需要時設定更長 timeout |
| default |
5000 (5秒) |
120000 (120秒) |
首次啟動和多進程場景需要更長的 timeout |
為什麼這樣調整可以解決問題
- 首次啟動:首次載入 LanceDB 資料和建立連線需要更長時間
- 多進程並發:當有多個 session 同時執行時,lock 競爭和資源排程會拉長處理時間
- 增加緩衝:120 秒的預設值提供足夠緩衝應對常見情境,而 300 秒的上限允許特殊情況進一步調整
期望行為
- schema 的 maximum 應該允許至少 180-300 秒的 timeout
- default 值應該足夠應對首次啟動和多進程場景(建議 120 秒)
- timeout 應該是可配置的,並提供足夠的彈性
問題描述
在以下兩種情境下,memory-lancedb-pro 的 auto-recall 功能容易出現 timeout 錯誤:
錯誤訊息範例
環境資訊
根因分析
經過調查,問題出在 schema 限制。
目前的
openclaw.plugin.json中,autoRecallTimeoutMs的 schema 限制為:問題:
緩解措施(需要官方修改)
建議修改 openclaw.plugin.json
將 schema 的 maximum 從 60000 調整為更大的值:
調整理由
為什麼這樣調整可以解決問題
期望行為