Dify 三昧:【リリース情報】 Dify 1.15.0 リリース!CLIツール、CoT可視化など新機能が満載

はじめに

Difyをご利用・ご検討中の皆さん、明日からは 7月になりますが、いかがお過ごしでしょうか?
ディーネットのよろず請負人、深見です。

先週は 6/25,26 と AWS Summit Japan 2026 で幕張メッセに出向いていました。
初日は午前は基調講演やセッションを聴き、午後は自社のブースに立っていました。
2日目は基調講演と各種セッション三昧となっておりました。
今年は AI 関連内容が色濃く出ていたかと思います。
※この度の「2026 Japan All AWS Certifications Engineers」で 3度目の選出いただきました。

さて、Dify 1.15.0 がリリースされました!今回のリリースでは、CLIツール「difyctl」の導入やCoT(Chain-of-Thought)の可視化、UI/UXの改善、セキュリティ強化など、多くの新機能と改善が含まれています。Difyをさらに活用するための重要なアップデートですので、詳しく見ていきましょう。

What’s Changed

UX & UIの強化

Dify 1.15.0 では、ユーザーインターフェースとユーザーエクスペリエンスが大幅に改善されました。

  • ランディング/オンボーディング体験の再設計: 初めてDifyを利用するユーザーがより簡単に始められるように、ランディングページとオンボーディングプロセスが全面的に再設計されました。
  • 高速なナビゲーション: 「どこへでも移動」パレットが改善され、検索入力のオートフォーカス機能が追加されたことで、Dify内の移動がより迅速になりました。
  • 安全な削除操作: アプリケーションを削除する前に、ワンクリックで確認を求める機能が追加され、誤操作による削除を防ぎます。
  • クリーンなワークフローエディタ: パネルの折りたたみ機能が追加され、ワークフローエディタが見やすくなりました。
  • 明確な通知: エラーメッセージがトースト通知で完全に表示されるようになり、通知の一貫性が向上しました。
  • アクセシビリティの向上: プラグイン権限のヒント表示、お問い合わせメニューの復元、スキップナビゲーションリンクの追加、キーボードフォーカスの改善により、アクセシビリティが向上しました。

新機能

今回のリリースで最も注目すべきは、以下の新機能です。

difyctl — コマンドラインからDifyを操作

  • コマンドラインクライアントの導入: difyctl(Dify CLI)はDifyのコマンドラインクライアントで、ターミナルから直接アプリやワークフローを実行できるようになりました。これにより、個人エージェント、スクリプト、CIパイプラインなどからWeb UIを開かずにDifyワークフローを呼び出すことが可能になります。
  • 簡単なインストール: macOS、Linux、Windowsなど、あらゆるプラットフォームに単一のコマンドでインストールできます。アクセストークンは不要で、バイナリはチェックサム検証付きのパブリックリリースとして提供されます。
  • 環境変数のスコープ: CLIツール実行時にスコープ付きの環境変数を渡せるようになり、difyctl/openapi/v1 APIの両方で、より明確で一貫性のあるエラーメッセージ(レートリミット処理を含む)が表示されるようになりました。

Workflow / Chatflow / CLI での CoT(Chain-of-Thought)表示

  • 推論のライブ表示: Chat FlowおよびWorkflowで、モデルの推論プロセスを専用のライブ「思考」パネルにストリーミング表示できるようになりました。これにより、最終的な回答はクリーンで読みやすいまま、推論の過程をリアルタイムで確認できます。推論はページのリフレッシュ後も保持され、CLIやワークフロー実行プレビューでも同じ推論が表示されます。

よりリッチなHuman-in-the-Loopフォーム

  • 多様な入力タイプ: ワークフローが人からの入力を一時停止して要求する際、フォームに自由形式のテキストだけでなく、ドロップダウン選択やファイル/複数ファイルのアップロードを含めることができるようになりました。これにより、ユーザーは構造化された選択肢や添付ファイルで回答できるようになります。

遅延が許容される長時間実行モデルのサポート

  • ポーリングメカニズム: 画像生成や動画生成など、応答に時間がかかる生成モデルをワークフローで利用できるようになりました。ノードがタイムアウトすることなく、最終結果を辛抱強く待機するポーリングメカニズムが導入されました。

より豊富なスプレッドシートからの知識抽出

  • Excel埋め込み画像の抽出: 知識インポート時にExcelファイルに埋め込まれた画像も抽出されるようになりました。これにより、図やスクリーンショット、グラフなどの画像に依存するスプレッドシートコンテンツが失われることがなくなります。

より深い可観測性

  • PhoenixトレースセッションIDのカスタム設定: PhoenixのトレースセッションIDを独自に設定できるようになり、アプリケーションのセッションとトレースを連携させやすくなりました。
  • RAG結果の理解: トレース内で文書取得ステップを追跡できるようになり、RAG(Retrieval-Augmented Generation)の結果がどのように生成されたかを理解しやすくなりました。

ワークフロー作成の洗練

  • スタートノードの改善: ワークフローの開始方法がより明確になるように、スタートノードが刷新されました。
  • スマートな出力ノード: ワークフローが返す内容をより細かく制御できるスマートな出力ノードが提供されます。
  • 分かりやすいエラーメッセージ: アプリやワークスペースIDが不正な場合でも、混乱を招くような失敗ではなく、より分かりやすいエラーメッセージが表示されるようになりました。

特定地域でのプラグインインストール高速化

  • PyPIミラーの自動検出: プラグインデーモンが起動時に地域を自動検出し、PyPIへのネットワーク接続が悪い地域では、近くのパッケージミラーを自動的に選択するようになりました。これにより、手動設定なしでプラグインのインストールが高速かつ信頼性が高くなります。必要に応じて特定のミラーを指定することも可能です。

セキュリティアップデート

  • パス・トラバーサル問題の修正: プラグインデーモンの転送におけるパス・トラバーサル問題(CVE-2026-41948 / GHSA-gvc6-fh3x-89xh)が修正されました。

バグ修正

多数のバグが修正され、安定性と信頼性が向上しています。主な修正点は以下の通りです。

  • HTTPタイムアウトの強化: Firecrawl, Jina, Watercrawl, Nacos, MarketplaceリクエストのHTTPアウトバウンドにバウンドされたタイムアウトが設定され、デフォルトのSSRFプロキシエグレスが強化されました。
  • LindormおよびTongyi関連のエラー修正: opensearch-py のアップデートによるLindormベクターストアのエラーや、Tongyiのクレデンシャル互換性に関する問題が修正されました。
  • OAuth認証情報の無効化: OAuthリフレッシュ後に認証情報キャッシュが無効化されるようになりました。
  • ワークフロー実行エラーハンドリングの改善: ワークフロー実行のエラーハンドリングが改善され、会話の事前検証によりハングアップが防止され、従来の停止がGraphEngineの実行を中断しないようになりました。
  • セッション管理のリファクタリング: DetachedInstanceError がセッション管理のリファクタリングによって解決され、デプロイメント状態のハイドレーションが安定化されました。
  • 会話変数記述長の検証: varchar(255) の切り捨てを防ぐため、会話変数の記述長の検証が修正されました。
  • Web UIおよびアクセシビリティの改善: 多数のWeb UIおよびアクセシビリティ/フォーカスリングの修正が行われました。

改善

  • セッション管理のリファクタリング: サービス全体でセッション管理がリファクタリングされ、依存性注入を通じて db.session を明示的に受け入れることで一貫性が向上しました。
  • 型付けの近代化: 不要な type: ignore/cast の削除、ABCからProtocolへの変換、isinstance チェーンの match-case への置き換えなど、型付けが近代化されました。
  • ワークフロー起動レイテンシの削減: Chatflowのワークフロー起動レイテンシが削減され、ワークフロー終了レイテンシが低減されたため、実行の停止がより迅速に反映されるようになりました。
  • 依存関係のアップグレード: CVE修正のためにBleach, PyJWT, starlette, storage groupなどの依存関係がアップグレードされました。

環境変数の変更

多数の環境変数が追加、削除、変更されました(19個追加、2個削除、1個変更)。以下はその一部抜粋です。アップグレードの際は、shared.env.exampleapi/.env.example などの .env ファイルを適切に更新してください。

追加された主な環境変数(抜粋)

  • DEVICE_FLOW_APPROVE_RATE_LIMIT_PER_HOUR
  • DIFY_ENV_NACOS_CONNECT_TIMEOUT, DIFY_ENV_NACOS_REQUEST_TIMEOUT
  • ENABLE_LEARN_APP
  • ENABLE_OAUTH_BEARER
  • MILVUS_SECURE, MILVUS_SERVER_NAME, MILVUS_SERVER_PEM_PATH
  • NEXT_PUBLIC_ENABLE_FEATURE_PREVIEW
  • OPENAPI_CORS_ALLOW_ORIGINS, OPENAPI_ENABLED, OPENAPI_KNOWN_CLIENT_IDS, OPENAPI_RATE_LIMIT_PER_TOKEN
  • PLUGIN_MODEL_PROVIDERS_CACHE_TTL
  • SERVER_CONSOLE_API_URL
  • SSRF_PROXY_ALLOW_PRIVATE_DOMAINS, SSRF_PROXY_ALLOW_PRIVATE_IPS, SSRF_SANDBOX_PROXY_HOST, SSRF_SANDBOX_PROXY_PORT
  • PIP_MIRROR_AUTO_DETECT (プラグインデーモン; デフォルト true) — 接続の悪い地域で近くのPyPIミラーを自動選択。
  • PIP_MIRROR_URL (プラグインデーモン; デフォルト empty) — 手動でPyPIミラーを指定。自動検出より優先されます。

上記は主なものの抜粋です。詳細・全量は公式リリースノートおよび .env.example の差分をご確認ください。

削除された主な環境変数

  • SSRF_REVERSE_PROXY_PORT, SSRF_SANDBOX_HOST

変更された環境変数

  • UV_CACHE_DIR: /tmp/.uv-cache/tmp/uv_cache

Docker Composeファイルの変更

  • docker/docker-compose.yaml (変更)
  • docker/docker-compose.middleware.yaml (変更)
  • docker/docker-compose.pytest.ports.yaml (追加)

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

このリリースには新しいデータベースマイグレーションが含まれています。コードの更新後には flask db upgrade (または uv run --project api flask db upgrade) を実行してください。

スキーマへの追加例

  • OAuthアクセストークン (ENABLE_OAUTH_BEARER)
  • 認証情報の可視性
  • Human Inputアップロードテーブルと会話リンケージ
  • カテゴリスコープのプラグイン自動アップグレード戦略 (add_plugin_auto_upgrade_category)
  • アプリのスター、推奨アプリのlearn-dify / クラウド限定フラグ
  • 正規化されたレガシーエンドユーザータイプ

アップグレードガイド

重要事項

  • このリリースには新しいデータベースマイグレーションが含まれています。アップグレードの一部として実行してください。
  • プラグインの自動アップグレードはプラグインカテゴリごとに設定されるようになりました。flask db upgrade を実行した後、既存のテナントの自動アップグレード設定を新しいカテゴリスコープモデルに移行するために、必ず flask backfill-plugin-auto-upgrade を実行する必要があります。このステップをスキップすると、以前ユーザーが設定したプラグインの自動アップグレード設定が適用されなくなる可能性があります。
  • 環境変数が変更されました (19個追加、2個削除、1個変更)。「環境変数の変更」セクションを確認し、.env ファイルを適切に更新してください。
  • Docker Composeの設定ファイルが変更されました。カスタムの docker-compose.yaml を維持している場合は、変更点を確認し、ローカルのカスタマイズを慎重に再適用してください。

Docker Composeデプロイメント

  1. カスタムファイルのバックアップ: カスタムの docker-compose YAMLenv ファイルをバックアップします。
    cd docker
    cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
    cp .env .env.$(date +%s).bak 2>/dev/null || true
  2. 最新コードの取得: 1.15.0 リリース用の最新コードを取得します。
    git fetch --tags
    git checkout 1.15.0
  3. サービスの停止: (docker ディレクトリ内で) サービスを停止します。
    docker compose down
  4. データのバックアップ:
    tar -cvf volumes-$(date +%s).tgz volumes
  5. 環境ファイルのレビューと更新: .env ファイルの変更点を確認し、ローカルのカスタマイズを再適用します。
  6. サービスのアップグレード:
    docker compose up -d
  7. カテゴリスコープのプラグイン自動アップグレード戦略のバックフィル (必須):
    docker compose exec api flask backfill-plugin-auto-upgrade

ソースコードデプロイメント

  1. APIサーバー、Worker、Webフロントエンドサーバーの停止
  2. 最新コードの取得: 1.15.0 リリース用の最新コードを取得します。
    git fetch --tags
    git checkout 1.15.0
  3. Python依存関係の更新:
    cd api
    uv sync
  4. データベースマイグレーションの実行:
    uv run flask db upgrade
  5. カテゴリスコープのプラグイン自動アップグレード戦略のバックフィル (必須):
    uv run flask backfill-plugin-auto-upgrade
  6. APIサーバー、Worker、Webフロントエンドサーバーの再起動

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

Full Change Listには非常に多くの変更が含まれていますが、特に重要なものをいくつかピックアップします。これらはDifyのアーキテクチャや機能の基盤となる部分への変更が多いです。

  • feat(dify-agent): add history layer and structural output layer (#36600): エージェントに履歴レイヤーと構造化出力レイヤーが追加され、エージェントの振る舞いがより洗練されました。
  • fix(security): reject path traversal sequences before plugin daemon forward (GHSA-gvc6-fh3x-89xh) (#35796): 前述のセキュリティアップデートに対応するPRです。プラグインデーモン転送前のパス・トラバーサルシーケンスを拒否するようになりました。
  • feat(cli): difyctl release pipeline + tokenless installers (#37036): difyctl のリリースパイプラインが構築され、トークンなしでのインストーラーが提供されるようになりました。
  • feat(api): support embedded Excel images in knowledge import (#37104): Excelファイルに埋め込まれた画像の知識インポートのサポートが追加されました。
  • feat(api): introduce select, file and file list form input types to Human Input node (#36322): Human Inputノードに選択、ファイル、ファイルリストのフォーム入力タイプが導入され、よりリッチなインタラクションが可能になりました。
  • feat(chatflow): stream LLM reasoning to a live thinking panel (#37460): チャットフローでLLMの推論をライブ思考パネルにストリーミング表示する機能が追加され、CoTの可視化を実現しました。

おわりに

このブログ記事が、Dify 1.15.0 の新機能とアップグレード手順を理解する一助となれば幸いです。
Dify の進化は目覚ましく、今回のリリースも開発者やユーザーにとって非常に価値のあるものとなっています。
ぜひ最新版にアップグレードして、新機能を体験してみてください!


参考リンク


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

返信を残す

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

CAPTCHA