debug-flow について
失敗した Power Automate の実行を調査し、根本原因の特定、修正案の提示、再テストを支援するスキルです。FlowAgent MCP ツールを使って分析し、診断に必要な範囲に記録データの取得を抑えます。
主な機能
- 01フローと直近の失敗実行を検索
- 02エラー分類と依存関係の追跡
- 03アクショントレースと範囲指定した記録内容の確認
- 04修正案の提示と実行の再テスト
活用シーン
- 01失敗またはタイムアウトしたフローの調査
- 02ループ内で失敗した反復の特定
- 03アクション単位の修正と検証
MCP 対応
FlowAgent MCP ツールを使って、Power Automate のフローを調査、診断、編集、再実行します。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ microsoft/ power-platform-skills --skill debug-flowインストール後、Claude Code で/debug-flowを入力して読み込まれたか確認します。
詳細
失敗したフロー実行をデバッグする
Power Automate の失敗したフロー実行のデバッグをユーザーに支援します。
ツール
このスキルでは、FlowAgent MCP ツールを使用します。クライアントによって、ツールには固有のプレフィックス(mcp__flowagent__<tool>(Claude Code)または
flowagent-<tool>(Copilot CLI))が付与されるため、以下ではプレフィックスを省略した名前で参照します
(例:get_run_actions)。CLI のみの操作、または MCP ツールがない場合は、CLI シェルコマンド(ローカルエンジンのビルドのみ)を使用してください。
| ツール | 目的 |
|---|---|
list_flows | 名前でフローを検索します(検索には name パラメーターを使用) |
get_run_history | フローの最近の実行履歴を取得します |
diagnose_run | 1 回の操作で、失敗したアクションを分類して修正方法を提示します |
get_run_details | 特定の実行の詳細を取得します |
get_run_actions | アクションレベルの実行トレースを取得します |
get_run_action_content | 1 つのアクションについて、記録された入力または出力を範囲を指定して取得します |
get_run_action_repetitions | ループの反復レベルの詳細を取得します(失敗した反復を特定するには、ループ内のアクションを指定します) |
get_flow | コンテキストとしてフロー定義を取得します |
get_operation_details | 正しいアクションの種類とパラメーターを確認します |
edit_flow | 1 つのアクションまたはパラメーターに対して、必要最小限の修正を適用します |
update_flow | 定義全体を置き換えます(大規模な書き換え) |
run_flow | 修正後に再実行します(結果を確認するには wait: true を指定) |
resubmit_run / cancel_run | 修正した実行を再送信する/停止状態の実行をキャンセルする |
手順
-
フローを特定して実行を確認する
$ARGUMENTSを解析して、フロー ID と任意の実行 ID を取得します。- フロー ID が指定されていない場合は、
nameパラメーターを指定してlist_flowsを呼び出し、検索します。候補が複数ある場合は、ユーザーに選んでもらいます。 - 実行 ID が指定されていない場合は、
get_run_historyを呼び出し、直近で失敗した実行を探します。 - 最近の実行を次の表にまとめて提示します:実行 ID | ステータス | 開始時刻 | エラー
-
diagnose_runで迅速にトリアージする- 対象の実行に対して
diagnose_runを呼び出します。失敗またはタイムアウトしたアクションがすでに分類され、それぞれに修正案が提示されます。これを分析の出発点にします。 - 詳細に分析する場合は、
get_run_actions(完全なトレース)とget_flow(定義のコンテキスト)も並行して取得します。失敗したループについては、ループ内のアクションに対してget_run_action_repetitionsを呼び出し、失敗した反復を特定します。 - 反復結果は
{ action, count, truncated, repetitions }です。countは返された件数であり、合計件数ではありません。truncatedが true の場合、返された一部の結果だけから該当する反復がないとは判断しないでください。 - 記録されたペイロードが必要な場合は、
includeSizes: trueを指定してget_run_actionsを使い、その後、アクション名とwhich: "inputs"または"outputs"を指定してget_run_action_contentを呼び出します。デフォルトのダウンロード上限は 256000 バイトです。上限を超える結果は、内容をそのまま出力せずに報告されます。診断に必要な内容だけを取得し、レポートに機密性の高いペイロードを再掲しないでください。
- 対象の実行に対して
-
失敗を分析する
- ステータスが
Succeeded以外のアクションを特定します。 runAfterの依存関係をたどり、根本原因と連鎖的な失敗を切り分けます。- 根本原因:すべての依存先が
Succeededだったにもかかわらず失敗したアクション - 連鎖的な失敗:依存先の失敗によりスキップされたアクション
- 根本原因:すべての依存先が
- 根本原因となるアクションについて、名前、種類、エラーコード、エラーメッセージを報告します。
- ステータスが
-
根本原因を分類する
- 接続エラー(
AuthorizationFailed、ConnectionNotFound、InvokerConnectionOverrideFailed):再認証するか、接続元を Embedded に修正するよう提案します。 - 式のエラー(
ExpressionEvaluationFailed、InvalidTemplate):式を示し、問題点を説明して、修正を提案します。 - API/外部エラー(401/403/404/429/500 以上):HTTP エラーを説明し、コネクタのステータスを確認します。
- パラメーターエラー(
WorkflowOperationParametersRuntimeMissingValue):必須パラメーターがないか空です。null ガードを追加します:@if(empty(...), 'default', ...) - タイムアウト(
ActionTimedOut):再試行ポリシーを設定するか、処理を分割するよう提案します。 - 型の不一致(
InvalidOpenApiConnectionOperationType):アクションの種類が間違っています。正しい種類を確認するためにget_operation_detailsを呼び出します。
- 接続エラー(
-
修正を提案する
- コードまたは式の変更を含む、具体的な修正方法を提示します。
- 定義の変更が必要な場合は、
edit_flowで対象を絞って(1 つのアクションまたはパラメーターだけ)変更することを提案します。大規模な書き換えの場合に限り、代わりにupdate_flowを使います。
-
再テストする
- 修正が機能することを確認するため、
wait: trueを指定してrun_flowを呼び出すか、元の実行のトリガー入力で再試行するためにresubmit_runを呼び出すことを提案します。 - 結果をアクションの詳細とともに報告します:Succeeded/Failed。
- 修正が機能することを確認するため、
出力形式
診断の概要
- フロー:[名前]([ID])
- 実行:[実行 ID] | [開始時刻] | ステータス:[ステータス]
失敗したアクション
| # | アクション | ステータス | エラーコード | エラーメッセージ |
|---|
根本原因
[分類]:[説明]
修正
[コードを含む段階的な修正手順]
コメント
Markdown 対応