返回首頁

GitHub Repo

LangChain 社群回報動態工具路由異常,混合呼叫可能讓代理提前結束

10 月 25 日的 LangChain 社群回報指出,動態註冊工具與直接回傳工具同批執行時,代理可能略過後續模型處理。回報附有不需外部 API 的對照程式,但根因與正式修復仍待維護者確認。

Dirck van Baburen · Public domain · Image source
zh-Hant

LangChain 社群於 10 月 25 日提出問題回報:create_agent 若在同一輪呼叫直接回傳工具,以及透過 middleware 動態註冊的一般工具,兩個工具雖然都執行成功,代理卻可能直接結束,沒有讓模型繼續整理結果。回報者表示,在 LangChain 1.4.7 與指定主分支提交均觀察到此行為,並揭露調查過程有 AI 協助。問題回報

官方文件規定,return_direct=True 可讓工具輸出直接成為回傳結果,省去額外模型呼叫;但同批包含一般工具時,應將所有工具結果送回模型。只有該批工具全部設定為直接回傳,代理才應停止。文件也支援依權限、驗證狀態或對話階段動態調整工具,因此這兩項功能的交互行為會影響代理流程的完整性。工具執行與動態選擇文件

回報的最小案例使用預設腳本回覆的假模型,同時要求一個直接回答工具與一個仍需分析的查詢工具。兩者預先註冊時,模型被呼叫兩次;改由 middleware 在執行期間加入查詢工具後,模型只被呼叫一次,最後留下尚待分析的工具輸出,過程沒有拋出例外。這個對照不需模型供應商、憑證或網路推論,可協助排除生成隨機性。重現程式與輸出

回報者將疑點指向 _make_tools_to_model_edge:若判斷直接回傳時只檢查靜態工具表,動態工具可能被漏算。這仍是待確認的根因。對工程團隊而言,此案例提示「工具成功」不等於「代理完成任務」;整合測試應檢查混合呼叫後是否回到模型,以及最終回答是否處理全部結果。預先註冊工具在該案例中可恢復預期行為,但不代表所有部署都適用。查核時議題仍開放,尚無關聯修補 PR;後續應追蹤維護者確認、同步與非同步回歸測試及修復版本。議題狀態

來源

  1. create_agent ends mixed batches early when a non-direct tool is registered at runtime
  2. Tools — Return directly from a tool and Dynamic tool selection