AI Engineer Europe 2026 · 工作坊 · 2026-05-08 · 63 分
替 agent 配一組搜尋工具
Agentic Search for Context Engineering · Leonie Monigatti,Elastic
Leonie 用同一份大會議程資料,依序示範語意搜尋工具、ESQL 查詢工具加 agent skill、shell 工具與語意 grep,說明搜尋工具怎麼配才不會互相拖累。
概要
- context engineering 靠搜尋工具Leonie 的看法是,從各種 context 來源把資料送進 context window 的那條箭頭,真正的動力就是搜尋工具,所以半開玩笑地說,context engineering 大約有 80 是 agentic search。
- 三種常見失敗agent 根本不呼叫工具、呼叫了錯的工具、產生不對的搜尋參數。Leonie 建議先寫清楚工具的用途,不夠再補觸發條件與工具之間的先後關係,還不行就在 system prompt 裡再強調一次。
- 單一語意搜尋工具很脆弱換成查 GEPA 這種要比對關鍵字的問題,只回傳前三筆的語意搜尋就找錯了。讓 agent 自己寫 ESQL 查詢後,又因為把 SQL 的百分號當萬用字元而查無結果,後來靠 agent skill 補上語法說明才修好。
- shell 工具比想像中能打agent 用 grep 加一長串同義詞就能「偷吃步」做出類似語意搜尋的效果,但不算有效率;接上語意搜尋的命令列工具後,第一次呼叫就找到正確的場次。
- 低門檻加高上限專用工具讓 agent 輕鬆上手、少出錯,通用工具(shell 或查詢執行)讓它面對沒預期到的問題時還有路走。還不清楚使用者怎麼問時,先給通用工具,記錄行為,再補專用工具。
原話
▶ 01:56“context engineering is about 80 agentic search”
context engineering 有 80 是 agentic search;Leonie 自稱這是個人暴論
▶ 07:57“doing good search is incredibly difficult and that's why we have many different techniques to do search”
做好搜尋非常困難,所以才有那麼多不同的搜尋技術
▶ 33:56“we all know agents or LLMs are notoriously bad at counting things”
大家都知道 agent 或 LLM 數東西很不行
▶ 39:16“surprisingly good agents are with bash because they kind of can cheat at semantic search”
agent 用 bash 好得驚人,因為它們有點能在語意搜尋上作弊
▶ 46:02“you also want to give the agent a high ceiling”
你也要給 agent 一個高的上限
延伸
- 長期記憶該放在本地檔案還是資料庫,Leonie 說這是目前很大的爭論,這場沒有展開,留給 Q&A。
- Leonie 提到 Vercel 有一篇部落格測試「bash 是不是你唯一需要的工具」,比較只用 bash、只用檔案搜尋、只用資料庫工具與兩者並用的 agent。
- Leonie 自己測試 OpenClaw 時記錄了它的行為。三天後問它看到什麼模式,它建議替資料庫另做專用的搜尋工具,因為它一直只用 exec tool。
章節
點時碼直接跳到原片的那一段。
- 開場Leonie 在 Elasticsearch 背後的公司 Elastic 工作,平常多半在 Twitter 上談 retrieval,今天要談 agentic search 與 context engineering。
- 搜尋就是那條箭頭context curation 講的是 context 來源到 context window 的那條箭頭,Leonie 認為這條箭頭被低估了,背後做事的就是搜尋工具。
- 從 RAG 到 agentic RAG固定流程的 RAG 不管需不需要都會檢索,只檢索一次也處理不了多跳問題,所以改成讓 agent 自己決定要不要呼叫搜尋工具。
- context 來源與對應工具本地檔案、scratch pad、agent skills、資料庫、網路與長期記憶各有自己的搜尋工具,其中長期記憶該放哪裡仍有爭論。
- shell 工具與搜尋的難處shell 工具讓 agent 用命令列瀏覽檔案、操作資料庫甚至上網查,什麼都能做;但搜尋本來就難,要自己配一組工具。
- 三種失敗情況在 Elastic 協助各團隊做 agent 時,常見的是不呼叫工具、呼叫錯工具、產生錯誤的搜尋參數。
- 工具描述與參數複雜度工具描述從核心用途開始寫,必要時補觸發條件與工具關係,再不行就放進 system prompt;參數越多、越像完整查詢語言,agent 越容易寫錯。
- demo 設定資料是這場大會的議程,放在本地 Elasticsearch,先做語意搜尋工具;用 LangChain 搭配 GPT-5.4 nano,工具只回傳前三筆。
- 把 demo 弄壞問「哪些場次談法規限制」查得到;問 GEPA 這種要比關鍵字的問題,回來的場次卻都不相關。
- 讓 agent 寫 ESQL換成能執行完整 ESQL 查詢的通用工具,模型升到 GPT-5.4 mini,並在工具裡回傳錯誤訊息讓 agent 能自己修正;結果它用了百分號當萬用字元,查無結果。
- 用 agent skill 補語法寫一份短的 ESQL skill,說明字串與萬用字元的寫法,並在工具描述和 system prompt 都要求先載入 skill,之後查詢就寫對了。
- 讓查詢工具負責計算問「4 月 8 日有幾場」,agent 用篩選查詢直接回答 27 場;Leonie 認為把計數交給搜尋工具,比列出全部場次再讓 LLM 數更省 context。
- 檔案系統加 shell議程資料改存成一場一個檔案,換回 GPT-5.4 nano;先提醒 shell 工具有風險,建議放在沙盒裡,agent 先看資料夾結構再 grep。
- grep 偷吃步做語意搜尋問語意問題時,agent 連續換 compliance、GDPR、governance 等同義詞去 grep,最後也找到了,但 Leonie 認為不算有效率。
- 語意 grep 的命令列工具介紹 semtools、ColGrep 與 Elastic 這邊的 JinaGrep,示範教 agent 用它做語意搜尋、精確比對仍用 grep,第一次就找對。
- 實務建議不要找單一萬用工具;專用工具給低門檻,通用工具給高上限,不清楚使用者怎麼問時先給通用工具、記錄行為、再補專用介面。
- Q&A:模型強弱有聽眾問工具組合是否取決於模型;Leonie 說內部測試中較強的模型讓參數錯誤率大幅下降,但強模型也不保證不出錯。
- Q&A:簡單 RAG 與 agentic RAG有聽眾問延遲,要不要保留簡單 RAG 當快速路徑;Leonie 沒有現成答案,只說 RAG 在很多情境仍然有效,切換本身大概也要某種 agentic 判斷。
- Q&A:自動替換萬用字元有聽眾建議做個混合工具,自動把百分號換成星號;Leonie 說那樣做 demo 可行,但每遇到新錯誤就加一塊補丁,不是穩健的做法。
- Q&A:資料庫加 shell 並用有聽眾問能否兩種工具並用互相驗證;Leonie 引用 Vercel 一篇部落格的實驗:同時有 bash 與資料庫工具的混合 agent 準確度最高,印象中它是先查資料庫、再用 shell 工具驗證結果。
- Q&A:相關度門檻有聽眾問語意搜尋要不要設門檻;Leonie 認為現在的模型能自己濾掉不相關的結果,但長對話裡這些結果留著可能擾亂 agent。
- Q&A:sub-agent有聽眾問有沒有用 sub-agent 做搜尋;Leonie 說自己沒有經驗,只聽說 Claude Code 用 sub-agent 回答特定的冷門問題。
- Q&A:skill 何時卸載有聽眾問長對話裡累積多個完整 skill 該怎麼清;Leonie 的同事 Joe 補充,做法是把 skill 放在檔案儲存,需要才載入、之後再卸載,壓縮 context 時也一樣。
名詞
- agentic search
- 讓 agent 自己決定要不要搜尋、用哪個工具、搜幾次,取代固定的檢索流程
- context engineering
- 決定哪些 context 來源的資料要進 context window 的做法,Leonie 認為其中大半靠搜尋工具
- shell tool
- 讓 agent 在終端機執行命令的工具,各家叫法不同(Anthropic 稱 bash tool,OpenClaw 稱 exec tool)
- ESQL
- Elasticsearch 的管線式查詢語言,用來篩選、轉換與分析資料,Leonie 在 demo 裡讓 agent 直接寫 ESQL
- agent skill
- 用 Markdown 寫的說明,名稱與描述放進 system prompt,需要時才把內文載入 context window(progressive disclosure)
- LangChain
- 這場 demo 用的 agent 框架,內建 shell 工具與 skill 載入的範例程式
- low floor, high ceiling
- 搜尋工具的配置原則:專用工具讓 agent 易上手,通用工具保留處理意外問題的空間
- JinaGrep
- Leonie 說是 Elastic 自家 Jina 出的語意 grep 命令列工具,這場用來做語意搜尋,還有分類與重排序等模式
- ColGrep
- LightOn 做的語意 grep 工具,基於多向量嵌入
- semtools
- LlamaIndex 出的語意搜尋工具








