Difyを使ってスクレイピングや長時間のポーリング処理を行う際、「ループ回数が100回までしか設定できない」「処理が途中でタイムアウトしてしまう」という壁にぶつかったことはありませんか?
デフォルト設定ではリソース保護のために制限がかけられていますが、セルフホスト(Docker)版であれば、設定ファイルを書き換えることでこれらの上限を解放することが可能です。
この記事では、Difyのループブロックの最大回数と、ワークフローの最大実行時間を変更する手順を解説します。
変更すべき4つの環境変数
設定を変更するには、Difyをインストールしたディレクトリ内の docker/.env ファイルを編集します。
変更が必要な項目は以下の4つです。ループ回数だけでなく、全体の実行時間やステップ数の上限もあわせて引き上げるのがポイントです。
| 環境変数 | 説明 | デフォルト | 変更後の目安 |
|---|---|---|---|
| APP_MAX_EXECUTION_TIME | アプリ全体の最大実行時間(秒) | 1200 (20分) | 36000 (10時間) |
| LOOP_NODE_MAX_COUNT | ループノードの最大回数 | 100 | 100000 |
| WORKFLOW_MAX_EXECUTION_STEPS | ワークフローの最大ステップ数 | 500 | 100000 |
| WORKFLOW_MAX_EXECUTION_TIME | ワークフローの最大実行時間(秒) | 1200 (20分) | 36000 (10時間) |
具体的な編集手順
エディタで .env ファイルを開き、該当箇所を書き換えます。
1. 実行時間の上限変更
「OTLP Collector Configuration」セクション付近にある APP_MAX_EXECUTION_TIME を探して変更します。
# 変更前
APP_MAX_EXECUTION_TIME=1200
変更後(例:10時間に設定)
APP_MAX_EXECUTION_TIME=36000
2. ループ回数とステップ数の上限変更
「Others Configuration」セクションにある以下の3つを変更します。
特に WORKFLOW_MAX_EXECUTION_STEPS は、ループ処理によってステップ数が膨大になるため、忘れずに増やしておきましょう。
# 変更前
WORKFLOW_MAX_EXECUTION_STEPS=500
WORKFLOW_MAX_EXECUTION_TIME=1200
LOOP_NODE_MAX_COUNT=100
変更後
WORKFLOW_MAX_EXECUTION_STEPS=100000
WORKFLOW_MAX_EXECUTION_TIME=36000
LOOP_NODE_MAX_COUNT=100000
※ファイルの編集後は、設定を反映させるためにDockerコンテナの再起動(docker compose down → docker compose up -d)を行ってください。
設定変更後の確認
再起動後、Difyの編集画面を開いてみましょう。
現在のUI仕様上、ループブロックの設定数値が3桁までしか綺麗に表示されない場合がありますが、内部的には設定した数値(例:100000)が反映されており、入力も可能です。

注意点:プレビュー時のエラーについて
設定変更後、ワークフローの「プレビュー」実行時に以下のエラーが発生して止まるケースが報告されています。

これは環境依存で発生する可能性があり、原因は調査中ですが、プレビューではなく「公開」後のアプリ実行では問題なく動作する場合もあります。頻発する場合は、マシンスペック(メモリ等)の確認も推奨します。
まとめ
今回はDifyのループ回数と実行時間の制限を解除する方法を紹介しました。
大量のデータを処理するバッチ処理や、長時間の待機が必要なエージェントを作成する場合、この設定は必須になります。Difyのポテンシャルを最大限に引き出すために、ぜひ環境に合わせて調整してみてください。
【推奨】業務システム化に有効なアイテム
生成AIを学ぶ



システム化のパートナー



VPSサーバの選定





コメント