Dify 三昧:【リリース情報】Dify v1.17.1:機能強化と安定性の飛躍的向上

はじめに

Dify をご利用・ご検討中の皆さん、9月に入り、ここのところあいにくなお天気が続く中、いかがお過ごしでしょうか?
ディーネットのよろず請負人、深見です。

Dify の最新バージョン v1.17.1(2026年9月10日リリース)が公開されました。今回はいくつかの新機能に加えて、多数のバグ修正・改善が含まれるリリースとなっています。特に、バンドルされているWeaviateサーバーが大幅にバージョンアップされており、既存のセルフホスト環境では段階的な手動アップグレードが必要になる点にご注意ください。それでは詳しく見ていきましょう。


Dify v1.17.1 リリース情報

新機能 (New Features)

  1. データセットスコープの知識ベースAPIキー

    • これまでワークスペース全体にスコープされていた知識ベースのAPIキーが、特定の知識ベースにバインドできるようになりました。これにより、統合時に単一の知識ベースへのアクセスを許可しつつ、他の知識ベースへのアクセスを制限することが可能になります。
    • キー作成時にワークスペース全体か、特定の知識ベースにスコープするかを選択できます。
    • 既存のキーは引き続きワークスペース全体の振る舞いを持ちます。
    • 関連PR: #37569
  2. ワークフローノードとコメントのキーボード操作

    • ワークフローキャンバス上でのノード、複数ノード選択、コメントマーカー、ドラフトコメントの移動が、マウスだけでなく矢印キーで行えるようになりました。Shiftキーを押しながら操作すると、より大きく移動します。
    • これにより、キーボードのみでの操作性が向上し、ワークフロー作成の効率化が図れます。
    • 関連PR: #41967
  3. マーケットプレイスのクリエータープロフィールとホームページデザインのリニューアル

    • プラグイン作成者向けの公開プロフィールページ(/marketplace/creator/<handle>)が追加されました。作成者の作品一覧とパブリッシャーサイドバーが表示されます。
    • マーケットプレイスのホームページも刷新され、ヒーローセクション、バナーカルーセル、スティッキー検索、カタログタブ、タグ/言語フィルターが導入されました。モバイルレイアウトも改善されています。
    • 関連PR: #41538
  4. Markdownフォームフィールド名の長さ設定

    • Markdownフォームのフィールド名の長さ制限が、従来の128文字から設定可能になりました。MARKDOWN_FORM_FIELD_NAME_MAX_LENGTH (Docker) または NEXT_PUBLIC_MARKDOWN_FORM_FIELD_NAME_MAX_LENGTH (直接Webデプロイ) で設定できます。デフォルトは128文字です。
    • 関連PR: #41697

バグ修正 (Bug Fixes)

このリリースでは、特にナレッジベース、モデルプロバイダー、ワークフロー&トリガー、エージェント&チャット、Service API & OpenAPI、同時実行とデッドロック、スキル・プラグイン&トリガー、ワークスペース・アカウント&インポート、テキストと値のパースの正確性、アクセシビリティ、Webアプリ&UI、セキュリティ強化、パフォーマンスに関して、多数の重要なバグ修正が行われています。

特に注目すべきは以下の点です。

  • 知識ベース: ドキュメントの抽出に関する複数のバグが修正されました。CSVの型推論、Notionテーブルの列の欠落・増加、PDFのURLからのロードエラー、WebスクレーパーがPythonデータ構造を返す問題などが解決されています。影響を受けるドキュメントはアップグレード後に再インポートが必要です。
  • モデルプロバイダー: v1.15以前からのアップグレードにおけるモデル利用不可の問題が自動的に修正されるようになりました。
  • ワークフロー&トリガー: Human Inputフォームが完了してもスタックしたように見える問題、Iteration/Loopノード内でのHuman Input配置に関する問題、LoopのBooleanブレーク条件が一致しない問題などが修正されました。
  • エージェント&チャット: Chatflow Agent V2が会話間で記憶を失う問題、推論モデルからの返信が「思考中」と表示され続ける問題、Agent Appにアップロードされた画像がモデルに渡されない問題などが改善されました。
  • 同時実行とデッドロック: 知識ベースの同時検索でデッドロックが発生する可能性があった問題が修正されました。
  • アクセシビリティ: コンソールとWebアプリにおいて、マウスやスクリーンリーダーなしでの操作性向上のため、フォームコントロールのラベル、キーボード操作、フォーカスの復元、ページ構造、ボタンのセマンティクスなど、広範なアクセシビリティ改善が行われました。
  • セキュリティ強化: エージェントスキルがSSRFプライベートネットワークポリシーをバイパスする問題、プラグインが不適切なサイズを宣言してワーカーメモリを枯渇させる可能性のある問題などが修正されました。
  • パフォーマンス: エージェントのRedisイベントストリームが無制限に増大する問題が修正され、Web Appsサイドバーの再描画によるパフォーマンス低下も改善されました。

改善 (Improvements)

  • バンドルされているWeaviateサーバーが1.27.0から1.39.2にアップグレードされました。既存のWeaviateをバンドル利用しているデプロイでは、段階的な手動アップグレードが必要です。
  • ORM層全体で明示的なデータベースセッションが導入され、DetachedInstanceErrorやセッションリークによる間欠的な障害が減少しました。
  • React 19.3、Next.js 16.3.3、Node.js 24 LTS、pnpm 12.3.4など、ランタイムとツールチェーンが更新されました。

環境変数 (Environment Variable Changes)

いくつかの新しい環境変数が追加され、デフォルト値が変更されたものがあります。

新規変数:

  • WEBSOCKET_MAX_HTTP_BUFFER_SIZE: コラボレーションWebSocketのフレーム上限。デフォルトは10MB。
  • WEAVIATE_GRPC_ENDPOINT: WeaviateのgRPCエンドポイント。デフォルトはgrpc://localhost:50051 (Dockerではgrpc://weaviate:50051)。
  • EXPOSE_WEAVIATE_GRPC_PORT: WeaviateのgRPCポートを公開。デフォルトは50051。
  • EXPOSE_LOCAL_SANDBOX_PORT: ローカルサンドボックスを公開。デフォルトは5004。
  • DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN: ローカルサンドボックスの認証トークン。デフォルトは空。
  • MARKDOWN_FORM_FIELD_NAME_MAX_LENGTH: Markdownフォームのフィールド名長さ制限。デフォルトは128。
  • NEXT_PUBLIC_ENABLE_AGENT_V2_IN_CHATFLOW: ChatflowアプリでのAgent V2ノードの機能フラグ。デフォルトはfalse
  • DIFY_AGENT_RUN_EVENT_STREAM_MAX_LENGTH: Agent実行イベントストリームあたりの最大エントリ数。デフォルトは5000。
  • DIFY_AGENT_STREAM_TEXT_DELTA_COALESCING_ENABLED: Agentの連続するテキストデルタをマージするかどうか。デフォルトはtrue
  • DIFY_AGENT_STREAM_TEXT_DELTA_FLUSH_INTERVAL_MS: デルタのマージウィンドウ。デフォルトは100ミリ秒。
  • DIFY_AGENT_STREAM_TEXT_DELTA_MAX_CHARS: デルタのマージサイズ上限。デフォルトは4096文字。

変更された変数 (デフォルト値):

  • DIFY_AGENT_RUN_RETENTION_SECONDS: 3日間 → 2時間。エージェントの実行レコードとイベントストリームの保持期間が短縮されました。3日以上検査する必要がある場合は、アップグレード前にenvファイルで明示的に設定してください。

Docker Compose の変更

  • docker-compose.yamldocker-compose-template.yamldocker-compose.middleware.yaml でWeaviateのイメージとレジストリが更新されました (semitechnologies/weaviate:1.27.0cr.weaviate.io/semitechnologies/weaviate:1.39.2)。これは既存データを使用している場合は直接の置き換えではなく、アップグレードガイドを参照してください。
  • docker-compose.middleware.yamllocal_sandbox サービスが追加されました。
  • イメージタグが1.17.1に更新されました。

データベースマイグレーション

このリリースには3つの新しいマイグレーションが含まれており、flask db upgradeによって自動的に適用されます。

  • add_normalized_email_to_accounts.py: accounts.normalized_emailカラムを追加し、Gmailアドレスなどを正規化します。
  • migrate_legacy_model_types.py: レガシーなモデルタイプを正規化します。v1.16.1およびv1.17.0で手動実行が必要だったflask data-migrate legacy-model-typesステップを置き換えるものです。
  • add_dataset_api_token_bindings.py: データセットスコープのAPIキーをサポートする dataset_api_token_bindings テーブルを作成します。

注意: マイグレーション 5578e028b2f2 は元に戻せません。アップグレード前にデータベースのバックアップを取ることを強く推奨します。


アップグレード手順

重要:バンドルされたWeaviateサーバーを使用している既存のデプロイでは、段階的な手動アップグレードが必要です。

Dify v1.17.1 では、バンドルされているWeaviateサーバーが1.27.0から1.39.2に大幅にバージョンアップされています。Weaviateはマイナーバージョンをスキップしたアップグレードをサポートしていません。既存のデータボリュームがある場合、12ものマイナーバージョンを一度にスキップすると、ベクトル検索がサイレントに、そして永続的に破損する可能性があります。

1.17.1を直接プルして再起動しないでください。

既存のデータを持つバンドル版Weaviateを使用している場合は、以下の手順に従って、Weaviateの各マイナーリリースを順番に、最新のパッチバージョンでステップ実行し、それぞれの段階で正常に停止してください。

Weaviateサーバーのアップグレードパスのランブックに従ってください。
公式リリースノートには具体的なランブックへのリンクが明記されています:Weaviate Server Upgrade Path

以下の条件に当てはまる場合のみ、この手動アップグレードが必要です。
grep -E '^VECTOR_STORE=' docker/.env を実行し、バンドルされたWeaviateを使用しているか確認してください。

  • 新規デプロイ、外部Weaviateサーバー、または他のベクトルストアを使用している場合は影響を受けません。

アップグレードの概要:

  1. DifyのRequestサービスとWorkerサービスを停止し、Weaviateのアップグレードが完了するまで停止したままにします。
  2. Weaviateのボリュームをバックアップします。
  3. 1.27 → 1.28 → ... → 1.38 → 1.39.2 のように、全ての13段階を順番にステップ実行し、各段階後に検証を行います。
  4. 一時的なイメージ編集を元に戻し、通常のアップグレード手順に進みます。

既知の失敗モード:

  • ハードキルによるベクトルリコールの永続的な破壊: docker killdocker rm -f、OOMキル、またはDockerの猶予期間を超える停止は、WeaviateのHNSWインデックスを破損させる可能性があります。必ず docker compose stop -t -1 weaviate で停止してください。
  • 再起動後のクエリ失敗: 再起動後数秒間は、/v1/objects が404、GraphQLが422エラーを返すことがあります。これは一時的なもので、Weaviateが完全に起動するまで待つか、実際のコレクションクエリが成功するまでポーリングしてください。

コレクションのレイアウトは変更されないため、再インデックスは不要です。

レガシーモデルタイプの自動マイグレーション

v1.16.1およびv1.17.0のアップグレードガイドに記載されていた手動でのflask data-migrate legacy-model-typesステップは不要になりました。マイグレーション 5578e028b2f2flask db upgrade の一部として同じ正規化を実行します。

  • すでに手動コマンドを実行している場合、このマイグレーションはそれらの行に対して何もしません。
  • v1.15.0より前のバージョンからアップグレードした場合で、まだ手動コマンドを実行していない場合、このリリースで影響を受ける行が修正されます。
  • アップグレード後、モデルプロバイダーがモデルをリスト表示し、以前失敗していたモデルがロードおよび呼び出し可能であることを確認してください。
  • データベースのバックアップを必ず行ってください。このマイグレーションは元に戻せません。

Docker Compose を使用したアップグレード (推奨)

Weaviateのアップグレードが該当する場合は、先に完了させてください。

cd docker
docker compose down
git fetch --tags
git checkout 1.17.1
docker compose pull
docker compose up -d

データベースマイグレーションは起動時に自動的に実行されます。

重要: スタックを起動する前に、上記の環境変数の変更をレビューし、特に DIFY_AGENT_RUN_RETENTION_SECONDS のデフォルト値が2時間に変更されている点に注意して、ローカルのカスタマイズを再適用してください。

ソースコードからのアップグレード

git fetch --tags
git checkout 1.17.1
cd api
uv sync
uv run flask db upgrade

Webフロントエンドを再ビルドして再起動し、その後APIサーバーとWorkerを再起動してください。WebビルドにはNode.js 24 LTSとpnpm 12.3.4が必要になりました。

アップグレード後の検証

  • 知識ベースに対してテスト検索を実行し、ベクトルインデックスが正常であることを確認します。
  • モデルプロバイダーがモデルをリスト表示していることを確認します。
  • エディターで大きなワークフローを開き、再接続ループが発生しないことを確認します。
  • 以前のバージョンで取り込まれたCSV、Excel、Notion、またはWebスクレイピングされたドキュメントは、このリリースでの抽出修正が既にインデックスされたテキストには適用されないため、再インポートしてください。

Full Change List (重要なものをピックアップ)

今回のリリースでは、非常に多くの変更が含まれています。主要な変更点を以下にピックアップします。

  • fix(api): align Service API OpenAPI contract by @hyoban in #41248: Service APIのOpenAPI契約をランタイムの振る舞いに合わせて調整。
  • fix(auth): normalize Gmail registration emails by @linw1995 in #41249: Gmailアドレスの正規化により、重複アカウント登録を防止。
  • fix(api): migrate legacy model types during upgrade by @laipz8200 in #41326: レガシーモデルタイプの自動マイグレーション。
  • fix(api): raise Socket.IO max_http_buffer_size for large workflows by @leilei3167 in #41347: 大規模ワークフローでのWebSocketバッファサイズ上限を拡張。
  • perf(web): virtualize the Web Apps sidebar list again by @BenjaminX in #41397: Webアプリサイドバーの仮想化を再導入し、パフォーマンス改善。
  • fix: improve accessibility across the apps list by @iamjoel in #41393: アプリリスト全体のアクセシビリティ改善。
  • feat: allow knowledge base API keys to be scoped to a single dataset by @ForeignKeyCN in #37569: データセットスコープの知識ベースAPIキー機能の追加。
  • perf(web): load Zendesk on support intent by @lyzno1 in #41653: Zendesk SDKのロードをサポートアクション発生時まで遅延させ、パフォーマンス改善。
  • fix(dify-agent): harden E2B binding lifecycle by @zhaohao1004 in #41623: E2Bバックエージェントのバインディングライフサイクルを強化。
  • fix(ssrf): apply private allowlist to agent_ssrf_proxy by @kabishou11 in #41870: エージェントSSRFプロキシにプライベートIP許可リストを適用し、セキュリティ強化。
  • feat(web): make markdown form field name length configurable by @WTW0313 in #41697: Markdownフォームフィールド名の長さ設定可能化。
  • fix(agent): persist Chatflow Agent V2 memory by conversation_id by @kabishou11 in #41871: Chatflow Agent V2が会話間で記憶を保持するように修正。
  • fix(api): fix tencent summary vector deadlock by @FFXN in #41916: Tencent VectorDBでのサマリー生成におけるデッドロックを修正。
  • fix(rag): preserve CSV cell text during knowledge import by @Souravrajvi0 in #41922: 知識ベースインポート時のCSVセルテキストの正確な保持。
  • feat: support keyboard movement for workflow nodes and comments by @iamjoel in #41967: ワークフローノードとコメントのキーボード移動サポート。
  • fix(api): allow PDF extraction from URLs without an upload file by @Harsh23Kashyap in #41950: アップロードファイルなしでURLからのPDF抽出を許可。
  • fix: deduplicate repeated GET request error notifications by @iamjoel in #42035: 重複するGETリクエストエラー通知を非表示に。
  • fix: join all rich_text/title segments in Notion database extraction by @Harsh23Kashyap in #42050: Notionデータベース抽出におけるリッチテキスト/タイトルセグメントの結合問題修正。
  • chore(release): Upgrade self-hosted Weaviate to 1.39 by @dudanogueira in https://github.com/langgenius/dify/pull/38214: バンドルWeaviateサーバーの1.39へのアップグレード。
  • fix(agent): pin chatflow participant versions across config updates by @zyssyz123 in https://github.com/langgenius/dify/pull/42105: Chatflowの参加者バージョンを構成更新間で固定。
  • fix(api): restore Human Input completion events by @QuantumGhost in https://github.com/langgenius/dify/pull/42082: Human Input完了イベントの復元。
  • chore(web): upgrade React to 19.3 and adopt browser-only rendering by @lyzno1 in https://github.com/langgenius/dify/pull/42093: React 19.3へのアップグレードとブラウザ専用レンダリングの採用。

Dify v1.17.1 は、ユーザーエクスペリエンスと開発効率を大幅に向上させる重要なリリースです。データセットごとのAPIキー設定によるセキュリティと柔軟性の向上、ワークフローのキーボード操作対応による生産性アップ、マーケットプレイスのリニューアルによる発見性の強化など、待望の新機能が多数追加されました。これらの新機能は、開発者やコンテンツクリエーターにとって非常に有用なものとなるでしょう。

同時に、ナレッジベースの抽出バグ修正、エージェントの記憶保持改善、アクセシビリティの大幅な向上、そしてパフォーマンス最適化など、Difyの安定性と信頼性を高めるための広範な改善とバグ修正も行われています。特に、Weaviateのメジャーバージョンアップを含むため、既存の自己ホスト型ユーザーはアップグレード手順に十分注意し、アップグレードガイドを熟読し、必ずバックアップを取ってから実施することを強く推奨します。

このバージョンアップは、Difyがより堅牢で使いやすいプラットフォームへと進化し続けていることを示しており、今後のAIアプリケーション開発を加速させるでしょう。


終わりに

以上、Dify v1.17.1 のリリース情報をお届けしました。

今回のリリースは新機能もありますが、実務上のポイントは特にバンドルWeaviateサーバーの大幅アップグレードと、一部「元に戻せない」設計になっているデータベースマイグレーションです。既存のセルフホスト環境でアップグレードを行う際は、必ず事前にバックアップを取り、アップグレードガイドの手順に沿って進めてください。

次回も Dify の最新情報をお届けしていきますので、引き続き「Dify 三昧」をよろしくお願いいたします。


参考リンク


本記事は Dify v1.17.1 のリリースノートを基に作成されています。最新情報は公式サイトおよび GitHub リポジトリをご確認ください。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA