全部場數

055 · 五招工程解法終結 Agent 幻覺

講者以同一個旅遊訂房 agent 為例,示範五個把幻覺轉成工程問題的技巧,並說明如何搬上正式環境。

2026-07-1155:19Elizabeth Fuentes(AWS)Agent開發工具評估看原片

原標題:Stop AI Agent Hallucinations: 5 Techniques + Production Patterns - Elizabeth Fuentes, AWS

重點摘要

  • Semantic Tool Selection 省 tokenagent 工具一多,每次呼叫都要把全部工具說明塞進 context;示範用語意搜尋先篩出最相關的三個工具再送進去,單次呼叫的 token 從幾千降到不到 300。
  • GraphRAG 處理聚合類問題一般向量 RAG 只能撈出資料片段,遇到「所有飯店的平均評分」這種要跨全部資料計算的問題只能用片段猜答案;改把資料建成知識圖譜,讓 model 寫查詢語言直接對全部資料做運算,拿到的是算出來的結果。
  • Multi-agent validation 抓假成功單一 agent 呼叫工具失敗時,常自己把錯誤包裝成信心滿滿的成功回應;改用 executor、validator、critic 三個 agent 接力檢查,錯誤才不會被隱藏。
  • Neurosymbolic guardrails 把規則寫進程式碼規則只寫進 prompt,model 有時還是會忽略,因為 prompt 對 model 來說只是文字建議;改在工具真正執行前用程式攔截、檢查參數,規則寫進程式碼就無法被跳過。
  • Runtime steering 用軟性引導取代硬擋不是每個規則都該直接擋下重來,用可以動態更新規則的開源函式庫引導 agent,讓它超過限制時能自己找替代方案完成任務,而不是整個中斷讓使用者重試。
  • 正式環境落地靠 Amazon Bedrock AgentCore這幾招都能搬上 AgentCore,工具呼叫變成 Lambda function、guardrail 規則存進資料庫就能即時生效,還能接外部圖資料庫,省去自建維運。

時間軸

時碼點下去會跳到影片的那一段。

時碼段落重點
00:00開場五個技巧改的是架構不是 prompt,目的是省 token、擋幻覺、在執行前就攔下失敗。
02:26講者與框架Elizabeth Fuentes 是 AWS developer advocate,全程用自建的 Strands Agents 旅遊訂房 agent 示範。
03:11工具塞爆 context旅遊 agent 有 29 個工具,不管用不用得到,每次呼叫都要把全部工具說明送進 context,對話累積後更嚴重。
05:40語意篩選省 token先用語意搜尋篩出最相關的三個工具再送進 context,單次呼叫的 token 從約 3000 降到不到 300。
13:07換工具留記憶有對話歷史時不能只加工具不拿掉,得靠動態換掉舊工具,否則工具還是會愈疊愈多。
17:25AgentCore Gateway正式環境不用自己搭向量資料庫,AgentCore Gateway 註冊一次工具,就能自動幫你建索引找工具。
18:00一般 RAG 的極限向量搜尋只能撈出片段,遇到「全部飯店平均評分」這種要跨全部資料算的問題,model 只能用片段猜,還講得像真答案。
19:43改用 GraphRAG把資料建成知識圖譜,讓 model 寫查詢語言直接對整個資料集下查詢,拿到的是算出來的結果,不是用片段猜的。
23:10算出來 vs 猜出來同一題聚合問題,一般 RAG 只能靠檢索到的片段自己拼湊;GraphRAG 直接由查詢算出平均值,也能誠實答「沒有」而不是硬掰客套話。
28:57假成功回應單一 agent 呼叫工具失敗時,常自己把錯誤包裝成信心滿滿的成功回應,使用者以為訂房成功,其實沒有。
30:21Swarm 接力驗證改用 Strands 的 Swarm,讓 executor、validator、critic 三個 agent 依序接力,各自只認自己的角色,錯誤不會被吞掉。
35:56demo 抓出捏造對同一個不存在的訂單,單一 agent 直接回報成功;換成 swarm 後,validator 抓到錯誤、critic 駁回,使用者不會看到假訊息。
36:16prompt 會被忽略把限制寫進 prompt 或工具說明,model 有時還是照樣呼叫,因為 prompt 對 model 來說只是文字建議,不是一定要執行的邏輯。
36:51規則寫進程式碼改用 Strands 的 hook,在工具真正執行前攔截、檢查參數,規則寫在程式碼裡就沒辦法被跳過。
45:23硬擋 vs 軟引導不是每個規則都該直接擋下讓使用者重來,有些狀況更適合讓 agent 自己調整、找替代方案完成任務。
50:37自動拆房完成訂房人數超過單間上限時,用 runtime steering 引導 agent,agent 自己把訂單拆成兩間房,不必整個中斷讓使用者重來。
51:26落地 Bedrock AgentCore把這幾招搬上 Amazon Bedrock AgentCore,工具呼叫自動變 Lambda function,guardrail 規則存進資料庫就能即時生效。
53:55收尾五招總結語意篩選省 token、GraphRAG 換來算出來的答案、multi-agent validation 抓假成功、guardrails 把規則寫進程式碼、runtime steering 讓 agent 自我修正完成任務。

值得記的話

名詞與人物

Strands AgentsAWS 維護的開源 agent framework,這場所有 demo 都用它打造旅遊訂房 agent。
Semantic Tool Selection用語意搜尋先篩出跟這次查詢最相關的少數工具再送進 context,取代把全部工具說明都塞進去。
GraphRAG把資料建成知識圖譜,讓 model 寫 Cypher 查詢語言直接對整個資料集做運算,取代只撈片段的向量 RAG。
SwarmStrands 內建的 multi-agent 協作機制,能自動處理 agent 之間的交接,不用自己寫迴圈組裝。
Neurosymbolic guardrails把限制規則寫進程式碼,用 hook 在工具真正執行前攔截檢查,而不是只寫進 prompt 讓 model 自行遵守。
Amazon Bedrock AgentCoreAWS 的正式環境 agent 執行平台,這場示範把工具呼叫、guardrail 規則等元件搬上去落地生產。
agent control講者用來做 runtime steering 的開源函式庫,規則透過 API 註冊在本機伺服器上,改規則不必動 agent 的程式碼,也不用整個 harness 重新部署。

延伸

  • Amazon Bedrock AgentCore 內建的長期記憶與 CloudWatch 觀測功能,這場只提到有這功能,沒有進一步說明怎麼用。
  • 除了本機的 Neo4j,也可以換成 Neo4j AuraDB 這個外部圖資料庫服務,這場只提到有免費方案,沒有多做說明。
  • 講者提到可以用 Strands 搭配 Ollama 跑本機模型,省掉 embedding 的 token 花費,但沒有進一步示範。