このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。
作業をコーディングエージェントに任せるには、difyctl スキルでエージェントをセットアップ し、このページを渡してください。
アプリの検索#
difyctl get console_app を実行すると、アプリが一覧表示されます。一覧に表示されるのはサービス API アクセスがオンになっているアプリだけで、実行できるのもそれらのアプリだけです。
ほかのコマンドでは、アプリの id を --app-id として渡します。mode はアプリの種類を表し、アプリを実行するコマンドはこれによって決まります:
mode | アプリの種類 | 実行に使うコマンド |
|---|---|---|
workflow | Workflow | run console_app workflow |
advanced-chat | Chatflow | run console_app advanced_chat |
chat | チャットボット | run console_app chat |
agent-chat | レガシー Agent | run console_app chat |
completion | テキストジェネレーター | run console_app completion |
新しい Agent で構築したアプリは、difyctl では一覧表示も実行もできません。代わりに サービス API から呼び出してください。
アプリの入力の確認#
difyctl describe console_app を実行すると、アプリの変数について、名前、型、必須かどうかが表示されます。
Workflow アプリの実行#
アプリの変数は、変数名をキーとする JSON にまとめ、difyctl run console_app workflow の --inputs で渡します。回答は結果の outputs に、出力ノードの変数をキーとして入ります。
必須変数の名前を間違えると、topic is required in input form などのエラーで実行が失敗します。任意変数の名前を間違えた場合は、エラーにならず、その変数が省かれるだけです。変数名は describe console_app で確認してください。
メッセージの送信またはテキストの生成#
アプリの検索 で確認したアプリの種類に対応する run console_app コマンドを使います。メッセージは --query で、変数があれば --inputs で渡します。テキストジェネレーターアプリが受け取るのは、通常 --inputs だけです。応答は結果の text.answer に入ります。
会話の継続#
結果の conversation_id を、--conversation-id で次の実行に渡します。
必須の変数は、メッセージを送るたびに渡し直してください。これらの変数を付けずに送ったメッセージは失敗します。
ファイルの送信#
どの実行コマンドでも、--files でファイル変数ごとにローカルファイルのパスを指定できます。ファイルリスト変数には、パスのリストを渡します。Web 上のファイルは、代わりに --inputs で渡します。各ファイル変数は、--files と --inputs のどちらか一方だけで渡してください。
時間のかかる実行の追跡#
実行の進行をその場で確認するには、--stream を付けます。イベントが発生するたびに、1 行に 1 つの JSON オブジェクトとして出力されます。Workflow アプリの実行では、最後のイベント workflow_finished の data.outputs に結果が入ります。必要なイベントだけを出力するには、--only でイベント名を 1 つずつ指定します。
実行の停止#
実行を後で停止できるようにするには、--stream を付けて開始します。停止するには、最初のイベントにある task_id を difyctl stop run に渡します:
Workflow アプリまたは Chatflow アプリの実行を停止すると、ストリームは data.status が stopped の workflow_finished イベントで終わります。ストリーミング中のコマンドは、終了コード 1 で終了します。スクリプトで実行の停止を確認するには、終了コードではなく data.status を確認してください。
stop run に渡すのは task_id です。どのイベントにも含まれる workflow_run_id ではありません。誤った ID を渡しても {"result": "success"} と出力されますが、実行は止まらずに続きます。
人間の入力フォームへの回答#
difyctl からフォームに回答できるのは、人間の入力ノードが Webアプリ でフォームを配信する場合だけです。
フォームで一時停止した実行は、status が suspended の結果を返します。結果には、アクションボタンごとにヒントが 1 つずつ含まれます。選んだアクションのヒントにある inputs の各 null を回答に置き換えて、そのヒントを実行 します。
または、回答する前にフォームのフィールドを確認したい場合は、いずれかのヒントから form_token を取得して describe run form を実行します。その後、submit run form で回答します。
どちらの方法でも、再開した実行は get run event で追跡します。フラグ名は --task-id ですが、ここには一時停止した結果の run_id を指定します。--include-state-snapshot は省略しないでください。省略すると、コマンドが最大 5 分間何も出力しないことがあります。
実行が失敗した原因の調査#
Workflow アプリまたは Chatflow アプリの実行では、失敗した結果の run_id から調べ始めます。または、difyctl get run で失敗した実行を一覧表示します。次に、describe run で実行を、get run node でそのノードを確認します。
--triggered-from app-run は省略しないでください。省略すると、ドラフトのテスト実行しか一覧に表示されません。
トラブルシューティング#
| メッセージ | 対処方法 |
|---|---|
invalid run input(入力に誤りがない場合) | アプリが一度も公開されていない可能性がある。公開してから、もう一度実行する。 |
どのコマンドでも起こりうるエラーについては、「結果、エラー、終了コード」の トラブルシューティング を参照してください。