機能提案:Chatflow/OpenClaw連携におけるOpenAI Tool Callback Protocol対応

課題のストーリー
Difyワークフロービルダーとして、DifyがOpenAIスタイルの外部ツールコールバックプロトコルをサポートし、ChatflowオーケストレーションとOpenClawローカル実行を組み合わせられるようにしたいと考えています。

これが重要な理由:

  1. より良い機能の組み合わせ:Chatflowがモデル/ツール戦略をオーケストレーションし、OpenClawがツールをローカルで実行できます。
  2. コスト効率:タスクのサイズと複雑さによって異なるLLMノードをルーティングし、不要なトークン使用量を削減します。
  3. 高い柔軟性:各LLMノードは、オプションでOpenClawに面するモデルエンドポイントとして機能できます。
  4. マルチターンおよび中断/再開された実行におけるツール呼び出し会話の信頼性の向上。

PR #32296で実装された内容

  • chat/advanced_chat APIにツール定義、tool_choice、tool_resultsのサポートを追加しました。
  • structured/openclaw_textツール呼び出しモードを追加しました。
  • SSEイベントを通じてツール呼び出しチャンクをストリーミングしました。
  • メッセージメモリにtool_callsを永続化し、再構築しました。
  • 保留中のツールコールバックに対するワークフローの一時停止/再開処理を追加しました。
  • LLMノードでの孤立したtool_callsの処理を修正し、TokenBufferMemoryのツールメッセージ解析を改善しました。
  • external_tool_callback_enabledやmax_tool_call_roundsなどのLLMノードレベルの制御を追加しました。

期待される成果

  • DifyがOpenAI互換の外部ツールコールバックフローのための堅牢なオーケストレーターとして機能できるようになります。
  • OpenClawのようなローカルツールエコシステムとの相互運用性が向上します。
  • マルチターン、一時停止、再開されたツール呼び出しシナリオで、より予測可能な動作が得られます。

追加のコンテキスト
PR: feat: Add Openai response tool call supper by JAVA-LW · Pull Request #32296 · langgenius/dify · GitHub

フィードバックを求めている点:

  1. APIの形状と互換性の期待
  2. ワークフローの一時停止/再開イベントの設計
  3. クラウドLLMとローカルツール実行を組み合わせるチームからの実世界のユースケース

機能はすでに実装されており、関連コードはすべてオープンソース化されています。実装効果を確認できます。

【openclawがDifyの自律オーケストレーションに加わり、ロブスターの各操作ステップを観察できます】 https://www.bilibili.com/video/BV1GHcSzLE8w/?share_source=copy_web&vd_source=10242135e343fb5da3e6cc7f3773926b

「いいね!」 1