このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。
古い
difyctl が catalog_stale(The request was built from a catalog that is not this server's current catalog)で失敗するようになった場合、Dify サーバーはすでに 1.18.0 以降に移行しています。新しいビルドへの切り替え
1
新しいビルドのインストール
サーバーに合った
difyctl を インストール します。CI イメージ内など、ほかの場所にある古いビルドのコピーもすべて削除します。新しいビルドでサインインした後に古いビルドの auth logout を実行すると、新しいビルドの保存済みトークンが削除されることがあります。その場合は、もう一度サインインが必要です。1.17.x 以前のサーバー用に、古いビルドも引き続き必要になることがあります。たとえば、ステージング環境を先に移行し、本番環境はまだ移行していない場合です。そのときは、DIFYCTL_PREFIX で古いビルドを専用のフォルダにインストールし、専用の設定フォルダを指定して実行します。この設定フォルダは最初は空なので、そこで古いビルドでもう一度サインインします:2
再サインイン
difyctl describe account で、サインインできたことを確認します。サインインのオプションと、新しいビルドがトークンを保存する場所については、サインインの管理 を参照してください。CI ジョブでサインインする方法は、CI と自動化での difyctl の使用 を参照してください。3
古いセッションの終了
新しいビルドでサインインしても、サーバー上にある古いビルドのセッションは終了しません。このセッションは、既定では最大 14 日間有効です。共有マシンを使っている場合や設定フォルダをコピーした場合など、古いトークンがほかの人の手に渡っている可能性があるときは、すぐに終了させてください。そうでなければ、期限切れになるまでそのままにしてもかまいません。終了するには、セッションを一覧表示し、
difyctl on <your-machine-name> というラベルのセッションを削除します。新しいセッションのラベルは、マシン名だけです。削除時に確認は求められないため、実行前に ID をよく確認してください。4
difyctl スキルの再インストール
Claude Code や Codex などのコーディングエージェントが difyctl スキル経由で 古い
difyctl を使っている場合は、スキルを再インストールしてください。問題がなさそうに見えても、再インストールは必要です。古いビルドの skills install --yes は、検出したすべてのコーディングエージェントに difyctl スキルをインストールしていました。次のフォルダのうち、どれが存在するかを確認します:install skills が difyctl スキルを置き換えるのは、引数に指定したスキルフォルダだけです。引き続き使うコーディングエージェントごとに実行し、残りのスキルフォルダからは difyctl フォルダを削除します:skills install <dir> は、SKILL.md を <dir> の直下に書き込んでいました。コーディングエージェントのスキルフォルダを指定していた場合は、そこに残っている ~/.claude/skills/SKILL.md などのファイルを削除します。コーディングエージェントが difyctl を使うために必要なその他の準備については、コーディングエージェントのセットアップ を参照してください。古いコマンドの置き換え
ほとんどのコマンドは、ID などの値を位置引数ではなく、--app-id のような名前付きフラグで受け取るようになりました。
各コマンドで使えるフラグをすべて確認するには、difyctl help <command> を実行します。
残っているグローバルフラグは --verbose、--json、--help の 3 つだけです。-v、-y、-w などの短縮フラグは廃止されました。--verbose は、エラーにサーバーの生のレスポンスを追加するだけになりました。確認を求めるコマンドはないため、--yes は削除してください。
サインインとセッション
アプリ
アプリの種類がわからない場合は、
describe console_app で確認できます。
チャットボットの実行と、ファイルから入力を渡す Workflow アプリの実行は、次のように変わります:
人間の入力
人間の入力を待って停止した実行は、"paused" ではなく "status": "suspended" を返すようになりました。paused を確認しているスクリプトは更新してください。この結果の hints には、アクションごとの submit run form コマンドが含まれており、フォームトークンも入力済みです。
フォームを自分で送信する場合、resume app は submit run form に変わります:
resume app と違い、submit run form は実行を追跡しません。実行の続きを取得するには、返されたヒントの get run event を実行します。
DSL のエクスポートとインポート
エクスポートをファイルに保存するには、
.data を取り出します:
confirm console_app dsl_import --import-id <import-id> でインポートを完了します。
古いビルドは、インポート後に不足している統合も一覧表示していました。現在は、check console_app dependency を実行して確認します。
ワークスペースとメンバー
設定、difyctl スキル、ヘルプ、バージョン
スクリプトのその他の更新
JSON 形式での結果の読み取り
結果は常に JSON で出力されるようになり、-o は不明なフラグとしてエラーになります。スクリプトから -o json を削除してください。
-o name や -o yaml など、別の形式を指定していたスクリプトでは、jq などを使って JSON を自分で整形します。チャットボットの応答だけをテキストとして取り出すには、次のようにします:
DIFY_OUTPUT=json を設定するか --json を渡して、どこで実行してもエラーが JSON で出力されるようにします。設定しない場合、stderr に出力されるエラーは、パイプでは JSON、ターミナルではテキストになります。
新しい終了コードとエラーコードへの対応
終了コードの番号はそのままですが、次の 2 つの変更があります:- 6 は、
difyctlがサーバー上でコマンドを見つけられなかったことを表すようになりました。サーバーのコマンド一覧を取得できなかった場合と、入力した内容に一致するコマンドが一覧にない場合です。以前はバージョンの不一致を表していました。 - 64 は、
version --check-compatとともに廃止されました。
server_4xx_otherとserver_5xxはserver_errorに置き換え、あわせて返される HTTP ステータスを確認します。token_expiredとexpired_tokenは、終了コード 4 で終了するauth_expiredに置き換えます。version_skew、unsupported_endpoint、client_error、illegal_argument、config_schema_unsupportedの分岐は削除します。
input_invalid や catalog_unavailable など、新しいコードの意味については、結果、エラー、終了コード を参照してください。
スクリプトでのリトライ
新しいビルドは、失敗したリクエストをリトライしません。--http-retry も廃止されました。リトライを前提としていたスクリプトには、独自のリトライ処理を追加してください。どのコマンドなら安全にリトライできるかについては、失敗したコマンドのリトライ を参照してください。
環境変数の更新
スクリプトと CI の設定から、次の環境変数を削除します:DIFY_LIMIT:代わりに--limitを渡します。DIFYCTL_HTTP_RETRY:代替手段はありません。DIFYCTL_NO_COLOR:代わりにNO_COLORを使用します。DIFY_CACHE_DIR:キャッシュは設定フォルダに保存されるようになったため、DIFY_CONFIG_DIRだけで足ります。
DIFY_CONFIG_DIR と DIFY_WORKSPACE_ID は、これまでどおり使えます。
新しいビルドが読み取るすべての環境変数については、環境変数 を参照してください。