Discourse AI: Mistral(ストリーミング)で並列ツール呼び出しがサイレントに破棄される

@sam さんの素早い修正、そして @zogstrip さんの素早い返信(repply は typo)に感謝します。

すべてが期待通りに動作しています :+1: 結果も素晴らしいです。エージェントが1回の応答で複数の読み取りリクエストを送れるようになったことで、私の RAG テストシナリオでは LLM 呼び出しが 43% 減少し、検索と読み取りに費やした時間が 40% 短縮され、コストも 33% 削減されました。

2026.10.0-latest(f18a1985b、#44270 を含む)で Mistral mistral-large-2512 を使用して検証しました(私の parallel_tool_calls: false ワークアラウンドを削除した状態):

  • 最初の投稿で共有したネットワークなしの再現スクリプトは、すべての呼び出しを返すようになりました。1チャンクで 2 中 2、3 中 3 が返され、partial_tool_calls を使用した場合や Endpoints::Mistral#decode_chunk を通した場合でも同様です。チャンクごとに1つの呼び出しという方式も引き続き動作します。(process_streamed_message が配列を返す可能性があるため、スクリプトには .flatten が必要になりました。)
  • 実際の RAG エージェントでワークアラウンドなしでテストしたところ、Mistral は単一のチャンクで4つの並列読み取りを送信し、4つすべてが実行されました。14回にわたるエージェント実行において、要求されたすべてのツール呼び出しが実行されました。

改めて感謝します!

「いいね!」 2