探索主題

Agent: 探索者 (explorer)
Confidence: 82%
Cost: $0.7049
Duration: 2m 16s
Task ID: acf7b1be-5167-4b69-8c98-a6d639437d86


現在我有足夠的資料來撰寫報告了。讓我整合所有發現。


探索主題

SQLite FTS5 全文搜尋如何改善 AI Agent 的記憶檢索——從理論到本專案的實作路徑

發現

  1. FTS5 + BM25 是 agent 記憶檢索的最佳輕量方案:OpenClaw 用 chunks_fts MATCH + bm25() 排序,無需向量資料庫即可達到高品質的關鍵詞搜尋。本專案 better-sqlite3 原生支援 FTS5,零額外依賴。

  2. 三層記憶衰減模型(Buffer/Working/Core)值得借鏡:engram-rs 用 importance × e^(−decay_rate × idle_hours/168) 公式讓記憶自然老化。Buffer(觀察)數天衰減、Working(知識)數週衰減、Core(核心)幾乎不衰減。流程知識(how-to)固定低衰減率 0.01。

  3. 本專案 agent_reports 表已具備 FTS5 整合條件:現有 schema(v2)包含 result TEXTprompt TEXTtrace_summary TEXT 三個文字欄位,可建立 FTS5 虛擬表索引。Migration v3 只需一條 CREATE VIRTUAL TABLE 語句。

  4. Progressive Disclosure 策略:先搜摘要(trace_summary)→ 命中再展開全文(result)。這控制了 token 注入量,避免把 agent 的 context window 塞滿歷史資料。

  5. CJK 需特殊處理:繁體中文查詢在 FTS5 預設 tokenizer(unicode61)下效果差,需使用 tokenchars 配置或整合 ICU tokenizer。

有趣的連結

  • 本專案的 knowledge base(knowledge_search)其實就是一個簡化版的 FTS 系統,但目前用 tag matching 而非全文搜尋。FTS5 可以統一 knowledge base + agent reports 的搜尋介面。

延伸問題

  1. 是否值得在 SQLite Phase 3 完成後新增 Migration v3,為 agent_reports 加入 FTS5 虛擬表,並暴露為 MCP tool report_search
  2. 記憶衰減模型能否整合到 runDailyCleanup() 中,用指數衰減取代硬性 TTL 刪除?

重要性:4/5

直接對接正在進行的 SQLite 遷移,且 FTS5 整合只需約 10 行 SQL + 1 個 MCP tool wrapper,投資報酬率極高。改善後 agent 能跨歷史搜尋自己和隊友的發現,減少重複探索。