ホームへ戻る

GitHub Repo

Difyコミュニティが推論履歴の再送異常を報告、Agent Appがタグを模倣し架空のツール呼び出しを生成する可能性

10月28日のDifyコミュニティ報告によると、Agent Appは過去の推論をテキストタグで包んで再送し、複数ターンにわたるツール利用を妨げる可能性がある。公開コードからこのシリアライズ動作は確認できるが、ツール呼び出しの幻覚との因果関係は、独立した再現を待つ段階だ。

The original uploader was Ggia at Greek Wikipedia. · CC BY-SA 2.5 · Image source
zh-Hant

Difyのエージェント実行フローについて、デプロイ担当チームが追跡すべき互換性の問題が報告された。10月28日、ユーザーから、セルフホスト版1.18.0でdify-agent経由で動作する新しいAgent Appが、Tongyiプラグインとqwen3.8-maxの組み合わせで、前のターンの推論を通常のassistantメッセージに再度含めるとの報告があった。報告では、その後モデルが余分なタグを出力し、ツールから返されたことのないジョブIDを引用することもあるという。これらは現時点で、単一のデプロイ環境における観察にとどまる。コミュニティのissue

コードで直接確認できる技術的な問題は、履歴メッセージの変換層にある。_map_model_response_to_prompt_message()はThinkingPartを受け取ると、その内容を<think>…</think>で囲んでテキストに追加する。一方、本来のToolCallPartは別途、構造化されたツール呼び出しに変換される。このため、もともと独立した意味を持つ推論ブロックが、次のターンではモデルから見える通常のテキストになる。Difyのコード

この違いには、明確なインターフェース上の背景がある。Alibaba Cloudの公式ドキュメントは、qwen3.8-maxの過去の推論をreasoning_contentフィールド経由で返すよう求めており、推論をcontentに連結するとモデルの性能が低下する可能性があると明記している。preserve_thinkingは履歴に過去の推論を含めるかどうかを制御し、有効にすると入力トークンの課金も増える。そのため、フレームワークとプラグインはフィールドの意味を一貫して保つ必要がある。画面上のテキストを維持するだけでは、複数ターンにわたるエージェントの動作が一貫するとは限らない。公式APIドキュメント

確認時点でissueは未解決で、正式な修正も確認されていない。別のコントリビューターは、タグの再送と対応する開始タグのない終了タグがコード上で起こり得ることを確認した一方、本番環境でのツール呼び出しの幻覚は独立して再現できていないと明言している。今後、エンジニアリングチームは、履歴メッセージの往復テスト、ストリーミング時のタグ分割、ツール呼び出しと返却されたIDの対応関係を注視すべきだ。修正を評価する際は、タスク成功率とトークンコストを別々に測定し、タグが消えたことだけでエージェントの信頼性が回復したと判断しないようにしたい。調査と修正計画

出典

  1. Dify Issue #44964:Agent App replays reasoning as literal think tags
  2. Dify 代理模型介接與歷史訊息轉換程式碼
  3. Alibaba Cloud Model Studio:OpenAI compatible Chat API