ホームへ戻る

GitHub Repo

Open WebUI、Tool Searchの修正案を提出 不正な呼び出しで後続のツール利用が止まる問題に対応

Open WebUIコミュニティは11月7日、Tool Searchが不正な形式のツール呼び出しを応答の中断と誤認し、後続のツール利用を取り消す問題への修正案を提出した。提案はまだマージされておらず、報告された問題は開発ブランチに関するもので、正式リリースへの影響範囲は確認されていない。

Tyr · CC BY-SA 2.0 · Image source
zh-Hant

Open WebUIコミュニティは11月7日、Tool Searchのエラー処理を変更するPR #33872を提出した。モデルが不正な形式のツール呼び出しを送った場合、エラーを返しつつ、再試行できる状態を保つべきだとしている。確認時点で提案は未解決のままで、正式リリースで修正済みとはいえない。修正提案

問題報告によると、Tool Searchを有効にした状態でcall_toolが空または欠落したcallsリストを受け取った場合、バッチ項目にparamsがない場合、あるいはパラメーターが有効なJSONオブジェクトでない場合、システムはエラーを返す。しかし、その後モデルプロバイダーに送るリクエストではツールリストが空になり、ツール選択がnoneに設定される。そのため、パラメーターに誤りがあるとモデルが認識しても、同じ応答内で呼び出しを修正できない。報告では、この問題はバッチ呼び出しを追加した後の開発ブランチで発生するとしている。問題と再現手順

この処理経路は、大規模なツール群の利用方法に関係する。公式ドキュメントによると、Tool Searchは大きなツール定義の読み込みを遅らせ、まずモデルがsearch_toolsで完全な仕様を見つけ、その後call_toolで実行する仕組みだ。これにより、各リクエストに含めるツールの説明を減らし、プロンプトのプレフィックスを安定させられる。この機能は現在も実験的で、デフォルトでは無効になっており、Native Modeでのみ利用できる。ツールの仕組み

提案の作者によると、不正な形式の呼び出しと、モデル応答が実際に未完了である場合とで、同じエラーフィールドが使われている。停止条件はそのフィールドに値があるかどうかだけを見て、ツールの利用を終了してしまう。修正案では、未完了の応答だけが停止を引き起こすようにし、それ以外のエラーはモデルに返して処理させる。技術的には、エージェントのエラー回復ループを維持できるため、パラメーターの誤りを一度起こしても修正の機会が残り、検索結果がないまま回答する事態を避けられる。作者の説明

今後、エンジニアリングチームはレビューとマージの状況に加え、回帰テストが単一呼び出し、バッチ呼び出しのエラー、実際に途中で切れた応答を網羅するかを確認する必要がある。公開情報には再現手順と修正理由が示されているが、各モデルバックエンドでのエンドツーエンドの挙動を確認するには不十分であり、公開済みの全バージョンが影響を受けると推定することもできない。

出典

  1. Open WebUI PR #33872:修正格式錯誤呼叫後的工具停止行為
  2. Open WebUI Issue #33871:重現步驟與開發分支影響
  3. Open WebUI 官方工具文件:Tool Search