4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dify 1.5.0:実用的なリアルタイムワークフローデバッグ

Posted at

著者:Evan Chen(プロダクトマネージャー) & Jing Yan(テクニカルライター)

Dify 1.5.0では、ノード出力の保存と変数のリアルタイム追跡により、ワークフローデバッグの推測作業を排除し、精度を向上させます。 開発者は再実行や手動入力なしで各ステップを瞬時にテストでき、効率的に開発を進められます。

AIアプリ構築は複雑な論理連鎖を扱うプロセスです。

標準ワークフローは 「知識検索→ツール呼出→複数LLM推論→テンプレート統合」 という強力な仕組みですが、デバッグが課題です。出力不具合時、問題箇所(RAGの不適切文書取得・ツールの誤データ・LLM推論ズレ等)の特定が困難で、ワークフローはブラックボックス化されます。

入力送信後の結果待ちという従来方式では、不具合発生時にログ調査とワークフロー再実行が強制され、推測ベースの非効率なプロセスで時間とAPIコストを浪費します。開発者に必要なのはログ調査ではなく透明性と制御であり、Dify 1.5.0はワークフロー構築/デバッグを再設計し、AI開発をリアルタイム反復作業へ転換します。

旧バージョンの制約

これまでのDifyは、単一ステップの実行を提供しており、各ノードを個別にテストすることができました。しかし、このアプローチには明確な限界がありました:

  • 結果の保存がない:ノードの出力は前回実行時に消えてしまい、毎回の実行で新たに始める必要がありました。
  • 手動での変数入力:デバッグ時に全ての変数を手動で入力しなければならず、再利用ができませんでした。
  • 限定的な視界:各ノードごとにログをチェックしなければならず、全体のデータ把握が困難でした。
  • 高コストな再実行:問題発見のために全体のワークフローを再スタートさせ、既に高価なAPIコールが発生します。

Dify v1.5.0による根本的解決:真のWYSIWYG開発環境

最後の実行追跡とステップのコントロール

  • 最終実行の追跡:各ノードは最後に成功した実行を自動保存し、入力、出力、メタデータを記録します。これにより各ノードが実行中の動作の証拠を提供します。
  • 変数の引き渡し:変数検査パネルが必要なデータを保持していれば、ノードを直接実行できます。システムは依存関係を自動取得し、実行後に検査パネルを更新します。Jupyte Notebookの個別セル実行のように、ノードを選んで実行するだけで全データ関係が処理されます。

変数検査パネル

キャンバスの下に配置された変数検査パネルでは、全ての変数とその内容がリアルタイムで表示されます。ノードの入力や出力を一つずつ確認する必要がなく、全体の状況を把握できます。

変数の値を直接編集することで、下流ノードへの影響をテストできることが大きなポイントです。

これらの改善により、ワークフローの開発が透明になり、各ノードの状態が記録され、デバッグセッションで問題に明確に焦点を当てることが可能となります。複雑なAIアプリの開発が、よりスムーズに行えるようになります。

実例:AI投資リサーチアシスタントの構築

この新しいアプローチを具体的な例で見てみましょう。以下のワークフローを考えます:
開始 → 知識検索がデータベースから財務報告書を引き出し、Exaウェブスクレイパーがインターネットデータを取得(並行) → テンプレートノードが内容を統合 → LLMがすべてを処理 → 最終出力

6.png

典型的な問題発生シナリオ

知識検索の出力形式に慣れていないため、テンプレートノードが正確にデータを統合できず、その結果LLMが重要な財務データを欠いた状態で出力を生成します。

7.png

従来の方法

出力が不十分な場合、開発者は以下の手順を踏む必要がありました。

  1. 問題を見つける:実行履歴を掘り下げ、各ノードを確認し、最終的にテンプレートノードが知識ベースの内容を含んでいないことを確認します(機能しているにもかかわらず)。

  2. 修正してテスト:編集モードに戻り、テンプレートコードを修正後の選択肢:

    • 知識検索・ウェブスクレイピングを含むワークフロー全体の再実行
    • LLMノードデバッグ時の修正済みテンプレート出力の手動入力
  3. 繰り返し行う:もし結果に満足できない場合は、全サイクルを再度始めなければなりません。

これは時間がかかり、特に繰り返しデバッグセッションにおいては無駄なAPIコストがかかります。

v1.5.0による新たな効率的な方法

  1. フルワークフローを実行:一度実行ボタンを押すと、各ノードの結果が自動的に変数検査パネルに保存され、全ての出力が明確に表示されます。

  2. 問題の特定:変数検査パネルから、Exaウェブ検索は正常に機能したが、テンプレートノード出力が知識ベースの内容を欠いていることがすぐに分かります。

    8.png

  3. 正確に修正:テンプレートノードのコードを修正し、知識ベースデータが正しく統合されるようにします。

    9.png

  4. ステップでテスト

    • テンプレートノードを単独で実行:それが自動的に上流データを取得し、出力を更新します。
      10.png
    • LLMノードを単独で実行:それが自動的に修正後のテンプレート出力を入力として使用します。結果を瞬時に確認でき、上流の再実行は不要です。
      11.png
  5. 継続して最適化:もしLLMの出力にまだ修正が必要なら、プロンプトデザインを調整してそのノードを再実行します。各変更は数秒で確認できます。

それぞれの違い

  • 古いプロセス:問題発見 → 履歴調査 → 手動入力 → デバッグ → 再設定 → 再実行 → 確認(繰り返し)

  • 新しいプロセス:問題発見 → 変数検査パネル確認 → ノード修正/変数編集 → 単一ステップ実行 → 即時確認

以前は数十分かかっていたものが、今では短時間で完了するようになりました。また、効率化は一目瞭然です。

まとめ

Dify 1.5.0の核心的なアップグレードが、複雑なAI開発に確実性と可視性をもたらすことを期待しています。リアルタイムの対話と透明な状態管理により、開発者はアイデアを迅速に検証し、問題を正確に特定し、自信を持って本番向けのAIアプリケーションを構築できるようになります。

参考

Dify関連リソース: 公式サイト | GitHub | ドキュメント | X(旧Twitter) | Discord | Linkedin | Youtube

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?