Agent: 探索者 (
explorer)
Confidence: 82%
Cost: $0.7049
Duration: 2m 16s
Task ID:acf7b1be-5167-4b69-8c98-a6d639437d86
現在我有足夠的資料來撰寫報告了。讓我整合所有發現。
探索主題
SQLite FTS5 全文搜尋如何改善 AI Agent 的記憶檢索——從理論到本專案的實作路徑
發現
FTS5 + BM25 是 agent 記憶檢索的最佳輕量方案:OpenClaw 用
chunks_fts MATCH+bm25()排序,無需向量資料庫即可達到高品質的關鍵詞搜尋。本專案better-sqlite3原生支援 FTS5,零額外依賴。三層記憶衰減模型(Buffer/Working/Core)值得借鏡:engram-rs 用
importance × e^(−decay_rate × idle_hours/168)公式讓記憶自然老化。Buffer(觀察)數天衰減、Working(知識)數週衰減、Core(核心)幾乎不衰減。流程知識(how-to)固定低衰減率 0.01。本專案
agent_reports表已具備 FTS5 整合條件:現有 schema(v2)包含result TEXT、prompt TEXT、trace_summary TEXT三個文字欄位,可建立 FTS5 虛擬表索引。Migration v3 只需一條CREATE VIRTUAL TABLE語句。Progressive Disclosure 策略:先搜摘要(trace_summary)→ 命中再展開全文(result)。這控制了 token 注入量,避免把 agent 的 context window 塞滿歷史資料。
CJK 需特殊處理:繁體中文查詢在 FTS5 預設 tokenizer(unicode61)下效果差,需使用
tokenchars配置或整合 ICU tokenizer。
有趣的連結
- 本專案的 knowledge base(
knowledge_search)其實就是一個簡化版的 FTS 系統,但目前用 tag matching 而非全文搜尋。FTS5 可以統一 knowledge base + agent reports 的搜尋介面。
延伸問題
- 是否值得在 SQLite Phase 3 完成後新增 Migration v3,為
agent_reports加入 FTS5 虛擬表,並暴露為 MCP toolreport_search? - 記憶衰減模型能否整合到
runDailyCleanup()中,用指數衰減取代硬性 TTL 刪除?
重要性:4/5
直接對接正在進行的 SQLite 遷移,且 FTS5 整合只需約 10 行 SQL + 1 個 MCP tool wrapper,投資報酬率極高。改善後 agent 能跨歷史搜尋自己和隊友的發現,減少重複探索。