Day 08 - 在專案裡搜尋:為 AI Agent 整合 ripgrep 工具
高見龍分享在專案中包裝 ripgrep 讓搜尋結果帶回完整上下文供模型使用的實作經驗。
• 為了讓 AI 助理 KeSi 具備在專案中搜尋檔案內容的能力,本篇放棄自行以 Python 撰寫比對邏輯,改為整合成熟且高效的 ripgrep (rg) 工具。
• 透過 子行程 (subprocess) 呼叫 rg,不僅能利用其預設自動略過 .gitignore 隱藏檔與二進位檔案的特性,還能大幅減少不必要的搜尋雜訊。
• 程式實作上採用 list 形式傳遞參數並維持 shell=False,有效防範 指令隱碼攻擊,並加上 -- 確保模型輸入的特殊字元不會被誤認為控制選項。
• 輸出結果刻意整理成 「檔名:行號:內容」 的三段式格式,並設定 最大 100 行限制 與 10 秒逾時機制,避免日誌過載與不必要的 Token 浪費。
• > 「搜尋是最標準已有成熟輪子的範例。」相較於複雜的 RAG(檢索增強生成),對於持續變動的小型專案,直接運用關鍵字搜尋已經相當足夠。
來源:高見龍
閱讀原文 ↗