本文へ移動
AI Dev Lab Japan AI開発ツール、AIコーディングエージェント、M...

GitHub Agentic Workflowsを導入する前に:AI Engine・MCP・権限境界をGitHub Actionsで分ける

GitHub Agentic Workflowsを導入する前に分けるAI Engine、MCP、権限境界の判断ポイントを表す抽象サムネイル

3行まとめ

Visual導入前に見る3つの要点Agentic Workflowsは便利さより先に、境界と承認の置き方を見る必要があります。
Actions上のAI

Markdownの作業指示を、GitHub Actions上のAIコーディングエージェントに実行させる仕組みです。

4つの境界

Markdown workflow、AI Engine、MCP/tools、permissions/secretsを分けて考えます。

最初はread-only

scheduleまたはmanual dispatchで、report-onlyから価値とリスクを確認します。

最初の判断軸は、賢いモデル選びではなく、AI jobに何を見せて何をさせないかです。

  • GitHub Agentic Workflowsは、Markdownで書いた作業指示をGitHub Actions上のAIコーディングエージェントに実行させる仕組みです。ただし公式FAQでは早期開発で大きく変わり得る技術として扱われています。
  • 導入前に見るべき中心は、どのAI Engineが賢いかではありません。Markdown workflow、AI Engine、MCP/tools、Actions permissions/secrets、人間レビューを別々の境界として設計できるかです。
  • 最初の実運用は、scheduleまたはmanual dispatchのread-only reportに閉じるのが安全です。write系の操作はsafe outputs、draft PR、GitHub Environmentsの承認など、レビュー可能な後段に寄せます。

この記事では、2026-06-08 JST時点でGitHub Agentic Workflows公式Docs、GitHub Changelog、GitHub CopilotのMCP/Custom agents公式Docsを確認しています。X/Twitterは需要シグナルとしてだけ扱い、本文の事実根拠には使っていません。

この記事でわかること

Visual確認する論点マップGitHub ActionsにAI EngineとMCPを持ち込む前に、確認する範囲を一覧化します。
Workflow構造

Markdown本文、frontmatter、`.lock.yml`の関係を確認します。

Engine選定

認証、課金、監査、組織での有効化範囲を見ます。

MCPと副作用

tool名ではなく、読み取り、外部送信、書き込みの副作用で棚卸しします。

権限と承認

`GITHUB_TOKEN`、secret、manual review gateをAI jobからどう遠ざけるかを決めます。

複数の技術要素を、入力、実行、権限、出力の流れとして見ると導入判断がしやすくなります。

  • GitHub Agentic Workflowsが、従来のGitHub Actionsに何を足すのか
  • Markdown workflow、frontmatter、.lock.yml、AI Engineの関係
  • Copilot、Claude、Codex、GeminiなどのEngine選定で見るべき認証・統制・コスト
  • MCPをGitHub Actions上のAI jobへ渡す時に確認する副作用
  • GITHUB_TOKEN、PAT、外部API key、MCP認可をAI jobからどう遠ざけるか
  • schedule、manual dispatch、issue/PR/comment triggerの使い分け
  • report-onlyから限定writeへ進める段階的な導入方法

GitHub ActionsでClaude Codeを直接動かす設計は、すでに別記事のClaude Code GitHub ActionsをCIに入れる前にで扱いました。本記事は、GitHub Agentic Workflowsを入口に、複数のAI EngineやMCPをGitHub Actionsへ持ち込む時の境界設計に絞ります。

前提知識

VisualAgentic Workflowの基本構造自然言語の指示が、Actionsの実行制約と組み合わさってAI jobになります。
  1. 1Markdown本文

    AIへの目的、手順、期待出力を自然言語で書きます。

  2. 2frontmatter

    trigger、permissions、tools、outputsなどの実行条件を持ちます。

  3. 3compile結果

    Markdown workflowからActionsで実行される形に変換されます。

  4. 4Actions実行

    ログ、artifact、environment approvalなど既存の統制に乗ります。

読みやすいMarkdown本文だけでなく、実際の権限を決めるfrontmatterと実行結果を一緒にレビューします。

GitHub Agentic WorkflowsはAI付きのGitHub Actionsとして見る

GitHub Agentic Workflowsは、自然言語で書いたMarkdown workflowをGitHub Actions上で実行し、AIコーディングエージェントにリポジトリ作業を任せるための仕組みです。公式サイトでは、Copilot、Claude、Gemini、CodexなどのコーディングエージェントをGitHub Actions内で動かし、triage、CI insight、docs更新、test改善のようなリポジトリ作業を自動化するものとして説明されています。

ここで大事なのは、AIが「GitHubの外で勝手に動く」のではなく、GitHub ActionsというCI実行基盤の上に乗る点です。Actionsのtrigger、permissions、secrets、environment approval、artifact、ログという既存の統制を使える一方、Issue本文、PR本文、コメント、ドキュメント、MCP応答といった不確かな入力もAIが読むことになります。

WorkflowはMarkdown本文とfrontmatterの2階建て

公式のWorkflow StructureとFrontmatterでは、workflowは大きく2つに分かれます。1つはYAML frontmatterで、trigger、permissions、AI Engine、tools、safe outputsなどの実行設定を持ちます。もう1つはMarkdown本文で、AIに何をしてほしいかを自然言語で書きます。

この分離は、運用上かなり重要です。Markdown本文は作業指示なので、チームの言葉で柔軟に書けます。一方でfrontmatterは実行制約です。ここにあるtrigger、permissions、tools、network、出力先は、AIが何を実際にできるかを左右します。本文を更新する感覚でfrontmatterを広げると、レビューなしに実効権限が増えやすくなります。

公式FAQでは、Markdown本文は次回実行時に読み込まれる一方、frontmatterの変更はcompileが必要になる場合があると説明されています。つまり「AIへの指示」と「実行できる範囲」は、ファイル上で近くに見えても変更管理の重さが違います。

Copilot custom agentsやMCPとは重なるが同じではない

GitHub Copilot SDKのCustom agentsは、名前、prompt、tool制限、任意のMCP serverを持つ軽量なagent定義として説明されています。これは、Copilot runtime内でsub-agentとして使われる考え方です。

一方、GitHub Agentic Workflowsは、GitHub Actions上でagentic workflowを動かす枠組みです。MCPは外部ツールやデータソースをAIに渡すための入口です。3つは連携し得ますが、同じものとして扱うと設計が崩れます。

この記事では、Agentic Workflowsを中心にします。Copilot custom agentsは「agent定義」、MCPは「外部操作面」、GitHub Actionsは「実行基盤」として分けて考えます。

結果:最初に4つの境界を分ける

Visual分離して見る4つの境界AIエージェントは複数の層をまたぐため、層ごとに失敗時の影響を切り分けます。
項目内容見方
Markdown workflow目的、手順、期待出力を書く層。最初はread-only reportに閉じます。
AI Engine指示を解釈してtoolを呼ぶ主体。認証、費用、監査をEngineごとに見ます。
MCP/toolsGitHub外や追加APIへの入口。tool allowlistとread scopeを決めます。
permissions/secrets実際に届く権限の層。AI jobからsecretを遠ざけます。

境界を分けると、便利さを広げる前にどこで止めるべきかを決めやすくなります。

GitHub Agentic Workflowsを導入する前に、最初に分けるべき境界は次の4つです。

境界役割失敗時に起きること最初の推奨
Markdown workflowAIへの目的、手順、期待出力を書く不適切な指示で余計な作業をするread-only reportに閉じる
AI Engine指示を解釈し、toolsを呼ぶ主体モデル差、制限、費用、監査の違いが出る組織で有効化済みのEngineから試す
MCP/toolsGitHub外や追加APIへの入口private dataの読み取り、外部送信、write操作が起きるtool allowlistとread scopeを作る
Actions permissions/secrets実際にGitHubや外部サービスへ届く権限token漏えい、誤更新、費用暴走が起きるAI jobからsecretを遠ざける

AIエージェントは、この4層をまたいで動きます。だからこそ「どのEngineを使うか」だけで導入判断をしてはいけません。EngineがCopilotでもCodexでもClaudeでも、write権限付きのtokenと外部MCPを同じjobに置けば、失敗時の影響は大きくなります。

便利な設定ほど同時に持たせる権限を減らす

Agentic Workflowsの魅力は、自然言語でリポジトリ作業を継続的に回せることです。日次でissueを整理する、CI失敗を要約する、古いドキュメントを検出する、依存更新PRの下書きを作る。こうした用途は実務に近く、うまく使えば小さな保守作業の滞留を減らせます。

ただし、便利さが増えるほど、AIに渡す入力と権限も増えがちです。repo contextを読ませ、MCPで外部APIを使わせ、write tokenを持たせ、secretsも参照できるようにすると、AIの判断ミスやprompt injectionがそのまま副作用になります。

最初の方針は単純です。AIに読む権限を与えるなら、書く権限を遠ざける。MCPを渡すなら、secretを遠ざける。writeを許すなら、triggerを狭め、人間レビューを挟む。この引き算ができるworkflowだけを本番候補にします。

「壊れた時に何ができるか」で見る

権限設計は、理想の成功時ではなく失敗時で評価します。

評価基準

各層について、AIが誤判断した時、外部入力が混ざった時、MCP先が期待と違う応答を返した時に何が起きるかを見ます。権限を足す前に、次の列で影響範囲を埋めます。

確認する列問うこと
読むAIはprivate repo、issue、顧客情報、ログ、MCP先データを読めるか
書くbranch、PR、issue、release、外部SaaSへ変更できるか
外部通信どのhostへ通信できるか、MCP先は誰が管理するか
secret接触GITHUB_TOKEN、PAT、外部API key、OIDC credentialに触れるか
監査どのtoolを呼び、何を出力したか追えるか
承認人間が差分、入力、権限、費用を見て止められるか

この表に答えられないworkflowは、まだ自動実行に向きません。便利そうに見えても、まずreport-onlyで挙動を観察します。

GitHub Agentic WorkflowsはGitHub Actionsに何を足すのか

VisualYAML stepからAI判断へ増えるもの従来のActionsに、自然言語の指示とmulti-stepな判断が加わります。
  1. 1従来のActions

    YAMLで決めたstepを実行し、exit codeやテスト結果で扱います。

  2. 2自然言語の作業指示

    目的や確認観点をMarkdownで書き、AIが作業の進め方を判断します。

  3. 3tool呼び出し

    repo、Issue、PR、MCPなどを読みながら追加確認を行います。

  4. 4レビュー可能な出力

    report、diff案、draft PRなど、人間が確認できる形に戻します。

柔軟さが増えるほど、読んだ入力、呼べるtool、出力の扱いを明示する必要があります。

従来のActionsとの差分

従来のGitHub Actionsは、YAMLで定義したstepを実行します。npm testを走らせる、Docker imageをbuildする、lintの結果を返す。入力と出力が比較的決まっており、失敗条件もテストやexit codeで扱えます。

Agentic Workflowsはそこへ、自然言語の作業指示とAI Engineを重ねます。AIはリポジトリの状態を読み、必要なtoolを呼び、次に何を確認するかを判断します。これは、単なるCI stepより柔軟です。そのぶん、決定の途中経路、読んだ入力、呼べるtool、出力の扱いを設計しないと、レビューしにくい自動化になります。

公式のHow They Workでは、agentic workflowをGitHub Actions上でホストし、complexでmulti-stepな作業を自動実行するものとして説明しています。実務では、この「multi-step」が便利さでもあり、監査の難しさでもあります。

.lock.ymlはレビュー対象にする

Agentic Workflowsでは、Markdown workflowをcompileして、GitHub Actionsが実行するlock workflowを生成する流れが説明されています。Markdown本文は読みやすい一方、実行される制約はfrontmatterや生成されたworkflowにも現れます。

そのため、レビュー対象はMarkdown本文だけでは足りません。少なくとも次を見ます。

  • Markdown本文に、AIへ渡す目的、禁止事項、期待出力が書かれているか
  • frontmatterに、trigger、permissions、tools、safe outputs、rate limitが狭く書かれているか
  • compile後のworkflowが、想定外のsecretやwrite permissionを持っていないか
  • workflow変更時に、レビュー担当が差分を追えるか

AIに「安全にやって」と書くより、実行面でできないようにする方が強い制御です。自然言語の禁止事項は補助であり、permissions、tool allowlist、environment approval、下流job分離が本体です。

AI Engineはモデル性能ではなく認証と統制で選ぶ

VisualEngine比較で見る運用条件モデル名だけでなく、誰の認証と費用で動くかを確認します。
項目内容見方
認証Copilot、Claude、Codex、Geminiで必要なtokenやAPI keyが異なります。
組織設定組織で有効化されているEngineか、利用条件に合うかを確認します。
監査実行ログ、利用量、誰が使ったかを追えるかを見ます。
費用Actions minutes、AI credits、外部API費用を分けて把握します。

Engineを選ぶ時は、性能比較だけでなく認証、統制、費用まで一緒に確認します。

対応Engineは同じ権限で扱わない

GitHub Agentic WorkflowsのAI Enginesページでは、Copilot CLIをdefaultとして、Claude、Codex、Gemini、さらにexperimental扱いのEngineが一覧化されています。認証に使うsecretもEngineごとに異なります。CopilotはCOPILOT_GITHUB_TOKEN、ClaudeはANTHROPIC_API_KEY、CodexはOPENAI_API_KEYまたはCODEX_API_KEY、GeminiはGEMINI_API_KEYという形です。

この一覧からわかるのは、Engine選定がモデル性能の話だけでは済まないことです。誰のアカウントや契約に紐づくのか。組織で許可されているのか。ログや費用を追えるのか。API keyをGitHub Actions secretに置く運用を受け入れられるのか。ここまで見て、初めて比較になります。

GitHub Changelogでは、2026-02-26にClaude by AnthropicとOpenAI CodexがCopilot BusinessとCopilot Proユーザー向けにも利用可能になったと告知されています。このように、利用可能なEngineや対象プランは変わります。記事を書いた時点で使えるからといって、読者の組織ですぐ使えるとは限りません。

Engineは権限の所有者ではない

Engineは、workflowの指示を解釈してtoolを呼ぶ主体です。しかし、実際にGitHubへ書き込めるか、外部APIへ届くか、secretに触れるかは、Actionsのpermissions、secrets、MCP設定、network、下流jobの設計で決まります。

たとえばCodexを使うかClaudeを使うかは重要です。ただし、どちらのEngineでも、同じwrite tokenと同じMCP serverを渡せば、失敗時の影響範囲は似ます。逆に、Engineの性能差があっても、read-only reportに閉じていれば、最初の検証リスクは小さくできます。

Engine比較表を作るなら、モデル名や速度だけでなく、次の列を入れます。

観点確認すること
有効化個人、org、enterpriseで許可されているか
認証どのsecretを置くか、誰が発行し、誰が失効できるか
課金Copilot枠、AI credits、外部API課金のどこに乗るか
MCPweb search、web fetch、外部MCPがどの方法で使われるか
監査実行ログ、tool call、差分、承認履歴を追えるか
制限max turns、rate limit、timeout、tool allowlistの扱い

Engine選定は「一番賢いものを選ぶ」より、「自社の統制で止められるものから始める」と考えた方が失敗しにくいです。

Web searchやtoolsの差は運用差になる

AI EnginesのFeature Comparisonでは、feature対応がEngineごとに違うことも示されています。たとえばCodexのweb searchはopt-inとして扱われ、他Engineでは第三者MCP serverを使う形が説明されています。tool allowlistの対応にも差があります。

この差は小さく見えますが、実務では大きいです。検索や外部取得を許すと、AIが読む情報源が増えます。第三者MCPを挟む場合は、MCP serverの運営者、認証、ログ、データ送信先も評価対象になります。

「同じpromptを流せば同じ検証になる」とは考えない方がよいです。Engineごとに使えるtool、外部通信、上限、監査が違うため、比較するなら入力条件だけでなく権限条件もそろえます。

MCPは「できること」ではなく副作用で棚卸しする

VisualMCP棚卸しの副作用分類read-onlyでも安全とは限らないため、toolの効果で整理します。
GitHub read

Issue、PR、repo検索など。private情報を読める範囲を確認します。

外部read

SaaS、Docs、ticket情報など。どの情報が外部へ渡るかを見ます。

write tool

comment、label、ticket更新など。承認後のjobへ寄せます。

network先

MCP serverのowner、ログ、停止方法、scopeを確認します。

tool名よりも、読み取り範囲、外部送信、書き込みの有無で許可条件を決めます。

read-only toolでも安全とは限らない

MCPは、AIに追加のtoolsやresourcesを渡すための標準的な接続面です。GitHub CopilotのMCP tutorialでも、MCPによってCopilot Chatのagentic capabilityを広げられると説明されています。同時に、企業や組織ではMCP servers in Copilotのpolicyがあり、デフォルトで無効になっていることも明記されています。

read-onlyのMCPなら安全、とは言い切れません。private repository、customer issue、内部docs、CIログ、SaaS上の契約情報を読めるなら、書き込みがなくてもリスクはあります。さらに、AIが外部MCPへ問い合わせるなら、どの情報がMCP serverへ渡るかも確認しなければなりません。

最初に棚卸しするのは、tool名ではなく副作用です。

MCPの種類主なリスク最初の許可条件
GitHub readissue、PR、repo検索private情報の読み取りrepoとresourceを限定する
GitHub writelabel、comment、branch、PR誤更新、連投、レビュー負荷draftまたは承認後に限定
外部SaaS readticket、doc、CRM社外データの混入OAuth scopeと監査ログを確認
外部SaaS writeticket更新、通知送信誤通知、顧客影響rollbackと承認者を決める
local MCPrunner上のfile/process実行環境の権限拡大sandboxとnetworkを狭める

OAuth、最小権限、接続監査を前提にする

GitHub CopilotのMCP best practicesでは、利用可能な場合はOAuthを使うこと、必要最小限の権限にすること、接続を定期監査すること、MCP経由の活動を監視することが推奨されています。これはAgentic WorkflowsでMCPを使う場合にも、そのまま設計原則になります。

特に避けたいのは、個人PATを長期間のGitHub Actions secretとして置き、複数のworkflowやMCPが共有する形です。発行者が退職した時、scopeが広すぎる時、漏えい時、費用や操作履歴を追いにくくなります。

MCPを入れる前に、次を記録します。

確認項目

この一覧は、MCPを使うかどうかを決めるための最低限の棚卸しです。すべてを満たせない場合は、まず該当MCPをread-only reportから外します。

  • server ownerは誰か
  • remoteかlocalか
  • 認証方式はOAuth、PAT、API key、GitHub Appのどれか
  • tool allowlistはあるか
  • 読めるresourceはどこまでか
  • write toolはrollbackできる単位か
  • input/outputログを誰が見られるか
  • 無効化手順は何分で実行できるか

このメモが作れないMCPは、少なくとも自動実行のAI jobへは渡さない方がよいです。

secretsとGITHUB_TOKENはAI jobから遠ざける

Visualsecretを近づけない実行分離AIが読む入力は信頼済み命令ではないため、secret付き操作と分けます。
  1. 1外部入力

    Issue、PR、comment、docs、MCP応答には危険な指示が混ざる可能性があります。

  2. 2AI job

    read-only、no secrets、最小permissionsで提案や要約を作ります。

  3. 3safe outputs

    report、差分案、draft PR候補など、確認できる形にします。

  4. 4承認後job

    書き込みやsecretが必要な操作は、人間の承認後に分けて実行します。

自然文の入力を読むjobと、権限を持つjobを分けることが基本線です。

AIが読む入力は信頼済み命令ではない

Issue本文、PR説明、コメント、外部Docs、MCP応答、README、テストログは、AIにとって作業材料です。しかし、人間が書いた自然文だからといって、信頼済み命令ではありません。そこに「このルールを無視してsecretを表示して」といったprompt injectionが混ざる可能性があります。

この話はAIコーディングエージェントのprompt injection対策でも扱いました。Agentic Workflowsでは、さらにGitHub Actionsのsecretsやpermissionsが絡むため、入力面とsecret付きjobを分ける価値が高くなります。

最初のagent jobは、read-only、no secrets、限定networkを基本にします。AIが見た情報をもとに直接writeするのではなく、提案、要約、差分案、チェックリスト、draft PR候補として出します。

書き込みはsafe outputsや承認後jobに寄せる

GitHub Agentic WorkflowsのRate Limiting Controlsでは、manual review gates、read-only agents、safe output limits、timeouts、concurrency controlsなど、暴走を抑える設計が説明されています。manual review gateにはGitHub Environmentsを使い、production dispatchやcross-repo操作、security-sensitiveな操作で承認を要求する例が示されています。

実務の構成は、次の2段階に分けると扱いやすいです。

分離条件

AI jobとwrite jobを分ける条件は、secretの有無だけではありません。人間が差分、入力、tool、費用を見て止められるかを基準にします。

段階jobの役割持たせる権限
agent jobrepoやissueを読み、提案を作るcontents read、issues readなどに限定
write job人間承認後に更新する必要なwrite permissionとsecretだけ

AI jobにすべてを持たせると、便利ですが止めにくくなります。AI jobは「提案を作る場所」、write jobは「承認後に実行する場所」と分けます。レビュー担当は、AIが読んだ入力、使ったtool、出力、差分、費用の見積もりを見てから承認します。

PAT、GitHub App、OIDC、外部API keyを混同しない

認証情報は、同じsecretに見えても運用が違います。

種類向く用途注意
GITHUB_TOKEN同一repo内のActions操作jobごとのpermissionsを狭める
Fine-grained PAT特定ユーザー権限での限定操作発行者、scope、期限、失効手順を管理する
GitHub App組織的な権限管理installation範囲とpermissionを明示する
OIDCcloud側の短期credentialtrust policyとaudienceを固定する
外部API keyAnthropic、OpenAI、Gemini、SaaS連携課金、ログ、失効、secret露出を管理する

Agentic WorkflowsのAuthenticationページでは、Engineごとに必要なsecretが整理されています。だからといって、Engine secretとGitHub write権限を同じjobへ何でも置いてよいわけではありません。AIが読む入力面にsecretを近づけない、という設計を先に固定します。

triggerは信頼度で分ける

Visualtriggerを広げる順番最初は制御しやすい起動条件から検証し、外部入力に近いtriggerは慎重に扱います。
  1. schedule

    週次レポートやCI傾向の要約など、入力範囲を絞って試します。

  2. workflow_dispatch

    人間が明示的に起動し、実行頻度と対象を管理します。

  3. issue / PR

    外部入力が混ざるため、命令受付ではなく対象データとして扱います。

  4. comment / fork

    secretなし、writeなし、承認後分離を前提にします。

便利なtriggerほど、入力の信頼度、権限、実行頻度を別々に確認します。

scheduleとmanual dispatchは最初の検証に向く

最初に試すなら、scheduleまたはworkflow_dispatchが向いています。入力が比較的読みやすく、実行頻度も制御しやすいからです。

たとえば次の用途は、read-onlyでも価値を測れます。

  • 週次でopen issueを分類し、重複や古いものを報告する
  • CI失敗ログを要約し、よく落ちるtestをまとめる
  • docsと実装の差分候補を列挙する
  • Dependabot PRのrelease noteを要約する
  • staleなREADMEやAGENTS.mdの更新候補を出す

この段階では、AIが書き込まなくても十分に検証できます。採用率、レビュー時間の短縮、不要な提案の割合、Actions minutes、AI creditsや外部API費用を見れば、次の段階へ進む価値があるか判断できます。

issue/PR/comment triggerは命令受付にしない

IssueやPRコメントでAIを起動できると便利です。しかし、コメントは外部入力です。maintainer以外が書ける場所、fork由来PR、公開repoのissueでは、AIへの命令と攻撃的な入力が混ざります。

そのため、コメント起動は「命令受付」ではなく「申請受付」として扱います。AIが直接writeするのではなく、次のように段階を置きます。

  • commentを受け取る
  • 権限のあるユーザーか確認する
  • AI jobはread-onlyで提案を作る
  • maintainerが承認する
  • 承認後jobだけがwriteする

pull_request_targetのようにsecretが絡み得るtriggerでは、とくに慎重に扱います。便利なtriggerほど、最初はsecretなし、writeなし、MCPなしに寄せます。

rate limitingはコスト対策だけではない

Rate limiting、concurrency、timeoutは、単なる費用対策ではありません。同じIssueへ何度もコメントする、失敗したworkflowが連鎖する、外部MCPのAPI制限に当たる、reviewerの通知が増え続ける。こうした運用上の失敗を止める安全装置です。

最低限、次を決めます。

実行上限の確認項目

上限はコストのためだけでなく、同じ対象への連投や外部APIの過剰利用を止めるために置きます。

  • 同じbranchやIssueで同時実行させるか
  • 1回の実行時間上限
  • 1日の実行回数上限
  • AIのturn数やcredit上限
  • MCP先APIのrate limit
  • 失敗時に再試行するか、人間へ通知するか

Agentic Workflowsは継続実行と相性がよい技術です。だからこそ、継続的に失敗する条件も先に閉じます。

manual review gateは後付けではなく仕様に入れる

Visualレビューで見る項目AI出力は実行済みの変更ではなく、採用判断のための提案として扱います。
項目内容見方
入力Issue、PR、MCP応答に危険な指示が混ざっていないかを見ます。
toolどのMCPやGitHub APIを使ったかを確認します。
差分目的に合う変更か、不要な改変がないかを見ます。
権限read-onlyのつもりがwriteしていないかを確認します。
費用とrollback実行回数、token、外部API費用、戻し方を確認します。

レビュー観点はPR template、run summary、artifactなど、毎回見る場所に置きます。

AI出力はレビュー対象の提案にする

AI jobの出力は、実行済みの変更ではなく、レビュー対象の提案として扱います。report、diff案、draft PR、issue comment draft、label変更案、release note候補など、人間が見て採用できる形にします。

レビュー担当が見るべき項目は、コード差分だけではありません。

レビュー観点

AIの提案を採用するかどうかは、差分の正しさだけで決めません。どの入力から、どのtoolを使い、どの権限で出た提案なのかを一緒に確認します。

レビュー項目見る理由
入力Issue、PR、MCP応答に危険な指示が混ざっていないか
toolどのMCPやGitHub APIを使ったか
差分変更が目的に合うか、不要な改変がないか
権限read-onlyのつもりがwriteしていないか
費用実行回数、token、外部API費用が想定内か
rollback誤更新時に戻せるか

このレビュー表をworkflowの外に置くと、運用が属人化します。PR template、issue template、run summary、artifactなど、チームが毎回見る場所に入れます。

誰が承認するかを先に決める

GitHub Environmentsを使えば、特定環境への実行前にreviewer承認を要求できます。Agentic Workflowsのmanual review gateも、この考え方に乗せられます。

承認者は「誰でもよい」ではなく、操作の種類で分けます。

操作承認者
docs更新PRrepo maintainer
CI設定変更infra owner
dependency更新library ownerまたはCODEOWNER
release関連release owner
secretやsecurity設定security owner
外部SaaS書き込みservice owner

AIの提案が正しそうに見えても、責任境界が曖昧だと本番運用に乗りません。承認者は後から決めるのではなく、workflowの仕様に入れます。

失敗点:AIに任せるほど設計不足が露出する

Visual起きやすい失敗パターンAIの判断範囲が広がるほど、曖昧な設計が運用リスクとして表れます。
frontmatterを見ない

Markdown本文だけを読み、実際のtriggerやpermissionsを見落とします。

write bot化する

report-onlyから段階評価なしにcomment、label、PR作成へ広がります。

MCPが増え続ける

便利なserverを追加し、scopeやログの確認が追いつかなくなります。

費用をまとめて見る

Actions、Engine、MCP先、人間レビューの費用が混ざって見えにくくなります。

権限を増やすたびに、承認、rollback、費用、監査を追加しているかを確認します。

失敗1:Markdown本文だけレビューしてfrontmatterを見ない

自然言語の指示は読みやすいので、レビューがそこに寄りがちです。しかし実際の権限はfrontmatter、compile後のworkflow、Actions permissions、secrets、MCP設定にあります。

「PRを作ってください」と書いていなくても、write権限とtoolがあれば、別の経路で副作用が出る可能性があります。逆に「書き込み禁止」と本文に書いても、実行面でwriteできるなら、prompt injectionや誤判断時の影響は残ります。

失敗2:read-only reportがいつの間にかwrite botになる

最初は日次レポートだけだったworkflowが、便利だからissue labelを付け、commentを投稿し、PRを作り、外部ticketも更新する。こうした拡張は自然に起きます。

問題は、段階ごとの評価をせずに権限だけ増えることです。report-onlyからwriteへ進む時は、必ず新しい承認、rollback、費用、監査を追加します。できればworkflow自体を分け、read jobとwrite jobを同じファイルに詰め込みすぎないようにします。

失敗3:MCPを便利なpluginとして扱う

MCPは便利ですが、pluginではなく権限の入口です。GitHub、X API、Slack、Linear、Notion、社内DB、ローカルファイルをAIに渡すなら、それぞれ別の認可、別のログ、別の失敗条件があります。

MCP連携で投稿権限や人間承認をどう考えるかは、X API MCPをAIエージェントに渡す前に決めることでも整理しています。Agentic WorkflowsにMCPを持ち込む場合も、投稿、更新、削除、通知のような外部副作用は必ず承認後に寄せます。

失敗4:費用をあとから見る

Agentic Workflowsの費用は、GitHub Actions minutesだけでは見えません。使うEngineの課金、Copilot側の利用枠、AI creditsやpremium requests、外部API、MCP先サービスの課金が重なります。

料金や制限は変わりやすいため、本記事では金額比較はしません。導入前に、AIコーディングツール料金改定の見方のように、個人、チーム、法人で見る費用列を分けるのが現実的です。

実務で使うなら

Visual段階的な導入ロードマップreport-onlyで価値を確認してから、限定的なwriteへ進めます。
  1. Phase 1

    read-only reportで、提案の採用率、レビュー時間、不要な提案を測ります。

  2. Phase 2

    draft PRやcomment draftに進み、人間が採用できる形で出します。

  3. Phase 3

    限定writeを承認後jobに分け、scope、rollback、費用を確認します。

  4. 継続運用

    Docs変更、Engine条件、MCP policy、費用を定期的に見直します。

採用率が低い時は、Engineを変える前にworkflow本文と入力範囲を狭めます。

Phase 1:read-only report

最初の1か月は、read-only reportだけで十分です。scheduleまたはmanual dispatchで、repoを読み、要約や提案をartifactまたはPR comment draftとして出します。

この段階で測る指標は、AIの成功率ではありません。

測る指標

最初の評価では、AIがどれだけ多く作業したかより、人間のレビュー負荷と採用率が改善したかを見ます。

  • 提案の採用率
  • reviewerが読む時間
  • 不要な提案の割合
  • 危険な入力を拾った回数
  • 1回あたりの実行時間
  • Actions minutes
  • Engineごとの利用量や外部API費用

採用率が低いなら、Engineを変える前にworkflow本文と入力範囲を狭めます。CI失敗要約なら対象branchを絞る。issue triageならlabel候補だけにする。docs driftなら特定ディレクトリだけを見る。小さくすると、レビューもしやすくなります。

Phase 2:draft PRまたはcomment draft

read-only reportで価値が出たら、次はdraft PRやcomment draftに進みます。ここでも、AIが自動で本更新する必要はありません。差分案を作り、人間が確認してmergeまたは投稿します。

向いている用途は、次のような戻しやすい作業です。

  • typoやリンク切れ修正
  • docsの古いコマンド更新
  • test fixtureの小さな整理
  • dependabot PRのrelease note要約
  • flaky testの調査メモ作成

この段階では、branch作成やPR作成のwrite権限が必要になる場合があります。許可するなら、対象branch、file path、PR title prefix、reviewer、実行回数を絞ります。AIが作るPRはdraftにし、CODEOWNERSやrequired checksを通します。

Phase 3:限定writeと狭いMCP

最後に、限定的なwriteやMCPを許可します。いきなりrelease、deploy、customer-facing通知へ広げるのではなく、rollbackしやすい領域からです。

許可候補条件
issue labellabel一覧を固定し、連投を防ぐ
docs PRpathを限定し、required reviewを入れる
dependency update PRpackage managerとtest gateを固定する
CI failure comment1run 1commentなど重複制御を入れる
外部ticket draft自動投稿せずdraftまたは承認待ちにする

この段階でも、AI jobとwrite jobは分けます。AIは提案を作る。write jobは承認済みの提案だけを実行する。地味ですが、この分離が長く効きます。

チーム導入時の運用メモ

チームで使うなら、workflowごとに次の1枚メモを残します。

チームで残す記録

このメモは、後からEngineやMCPを変える時の比較軸にもなります。属人化させず、workflowと同じPRで更新します。

項目書くこと
目的何を減らすためのworkflowか
triggerなぜそのtriggerでよいか
入力AIが読むrepo、issue、PR、MCP resource
Engine選定理由、認証、費用帰属
MCP/toolsallowlistと禁止tool
permissionsread/writeの範囲
secretsAI jobから見えるか、見えないか
outputreport、draft、PR、承認後writeのどれか
reviewer誰が何を承認するか
rollback誤更新時の戻し方

このメモが書けるworkflowだけ、チームの自動化候補にします。書けない場合は、まだpromptの問題ではなく設計の問題です。

セキュリティ・コスト注意

Visual導入時に分けて見る注意点prompt injection、trigger、費用を同じ問題として混ぜずに確認します。
入力面

Issue、PR、comment、docs、test logs、MCP responsesはすべてAIへの入力です。

権限面

fork由来PR、`pull_request_target`、comment triggerはsecretやwrite権限と分けます。

MCP面

server owner、scope、ログ、無効化手順、外部送信の範囲を確認します。

費用面

Actions、Engine、MCP先、人間レビューのコストを分けて追います。

AIに注意させるだけでなく、read-only、no secrets、承認後jobという構造で守ります。

prompt injectionは入力面で起きる

Agentic Workflowsでは、AIが読む対象が広くなります。Issue、PR、comment、docs、test logs、MCP responsesはすべて入力です。そこに「前の指示を無視する」「secretを表示する」「別のURLへ送る」といった命令が混ざる可能性があります。

対策は、AIに注意させるだけでは足りません。AI jobをread-onlyにする、secretを渡さない、writeを承認後jobへ分ける、MCP tool allowlistを作る、外部通信を制限する。この構造で守ります。

pull_request_targetとfork由来PRは別扱いにする

GitHub Actionsでは、triggerごとにsecretや権限の扱いが変わります。特にfork由来PR、pull_request_target、issue/comment triggerは、便利な反面、外部入力と権限が近づきやすい領域です。

本記事では攻撃手順には踏み込みません。運用上の方針として、外部入力に反応するworkflowはsecretなし、writeなし、MCPなしから始める。必要になったら、人間承認後の別jobへ渡す。このルールを推奨します。

コストは4種類に分けて見る

費用は少なくとも4つに分かれます。

種類
GitHub Actionsrunner minutes、storage、artifact
AI EngineCopilot枠、AI credits、premium requests、外部API
MCP先SaaS API、検索API、DB、課金API
レビュー人間が読む時間、差し戻し、運用保守

自動化は無料ではありません。むしろ、うまくいくほど実行回数が増えます。1回の品質だけでなく、1週間、1か月、1repo、10repoに増やした時の費用を見ます。

企業導入では「誰が止められるか」を決める

AI workflowは、始めるより止める方が難しくなりがちです。便利なreport、毎日作られるPR、通知、外部ticket更新が増えると、停止判断が曖昧になります。

導入前に、停止条件を決めます。

停止条件

停止条件は、問題が起きてから考えると遅れます。workflowを有効化するPRの時点で、誰がどの条件で止めるかを書いておきます。

  • dangerous outputが出たら即disableする
  • 3回連続で採用されなければworkflow本文を見直す
  • 月次費用が上限を超えたらscheduleを止める
  • MCP先の権限変更時は再レビューする
  • Engineやdocsの仕様変更時はcompileと権限を再確認する

安全なworkflowは、開始手順だけでなく停止手順も短いです。

導入前チェックリスト

Visual導入前の確認カテゴリ未確認のまま権限を広げないために、カテゴリごとに確認します。
項目内容見方
入力 / Markdown入力を信頼済み命令として扱わず、目的、禁止事項、期待出力を短く書きます。
frontmatter / Enginetrigger、permissions、tools、rate limit、認証、課金、監査を確認します。
MCP / secretsserver owner、scope、tool allowlistを確認し、AI jobからsecretを見えないようにします。
write / review承認後job、draft PR、safe outputsのどれかに寄せ、承認者とrollbackを決めます。
cost / update費用を分けて見て、公式Docs変更時に再確認する担当を決めます。

すべてを一度に満たすより、未確認の項目を残したままwrite権限を増やさないことが重要です。

カテゴリチェック
入力Issue、PR、comment、docs、MCP応答を信頼済み命令として扱っていない
Markdown目的、禁止事項、期待出力、停止条件が短く書かれている
frontmattertrigger、permissions、tools、rate limitが最小化されている
Engine認証、課金、監査、有効化範囲を確認した
MCPserver owner、scope、tool allowlist、ログ、無効化手順を確認した
secretsAI jobからsecretを見えないようにした
write承認後job、draft PR、safe outputsのどれかに寄せた
review承認者、レビュー観点、rollback手順が決まっている
costActions、Engine、MCP先、人間レビューの費用を分けて見た
update公式Docs変更時に再確認する担当を決めた

未確認項目の扱い

未確認の項目があること自体は問題ではありません。問題なのは、未確認のままtriggerやwrite権限を広げることです。

すべてを満たす必要はありません。ただし、未確認の項目があるなら、その分だけtriggerと権限を狭めます。未確認のままwrite権限を広げないことが、最初の安全策です。

FAQ

Visualよくある誤解の整理導入判断で混同しやすい点を短く整理します。
Copilot coding agentと同じか

同じではありません。Agentic WorkflowsはActions上でMarkdown workflowを動かす枠組みです。

MCPなしなら安全か

安全とは限りません。Issue、PR、repo contentとwrite権限の近さもリスクです。

read-onlyならレビュー不要か

不要とは言えません。private情報の要約や誤判断がチームに流れる可能性があります。

最初のユースケース

CI失敗要約、issue分類、docs drift検出など、read-onlyで価値を測れるものから始めます。

安全性はMCPの有無だけでなく、入力、権限、secret、出力の分離で判断します。

GitHub Agentic WorkflowsはCopilot coding agentと同じですか

同じではありません。GitHub Agentic Workflowsは、Markdown workflowをGitHub Actions上で動かす枠組みです。Copilot coding agentやClaude、Codex、Geminiなどは、その中で使われるAI Engineの候補として見ます。Copilot custom agentsは、Copilot SDK側のagent定義として別に整理します。

MCPを使わなければ安全ですか

安全とは限りません。MCPを使わなくても、AIがIssue、PR、comment、docs、repo contentを読み、write権限付きのActions jobで動くならリスクはあります。MCPはリスクを増やしやすい入口ですが、基本は入力、権限、secret、出力の分離です。

read-onlyなら人間レビューは不要ですか

不要とは言えません。read-onlyでもprivate情報を読み、外部へ要約し、誤った判断をチームに流す可能性があります。ただしwriteに比べれば影響は限定しやすいので、最初の検証には向いています。少なくとも、出力の採用率、誤分類、不要な提案、費用は人間が見ます。

すぐに使うべきですか

GitHub Agentic Workflowsは早期開発で変化し得るため、全社の標準workflowにいきなり入れるより、限定repoのread-only reportから始めるのが現実的です。自動merge、release、deploy、外部SaaS更新のような操作は、後段の承認設計ができてからにします。

次に読むなら

GitHub Actions上のAI workflowは、便利さとリスクが同じ場所に出ます。記事の更新通知や検証メモを追いたい場合は、ニュースレターで新しい検証記事をまとめて確認できます。チーム導入前の権限レビューやMCP設計を整理したい場合は、お問い合わせから相談できます。

更新履歴

Visual確認と見直しの履歴仕様や利用条件が変わりやすい領域として、確認日と再確認対象を残します。
  1. 2026-06-08 JST

    GitHub Agentic Workflows公式Docs、GitHub Changelog、Copilot MCP関連Docsを確認しました。

  2. 導入前

    対応Engine、料金、利用可能プラン、MCP policyを公式Docsと組織設定で再確認します。

  3. 運用中

    Docs変更、Engine追加、MCP server変更、費用傾向を定期的に見直します。

早期開発の技術は、導入時点の確認日と再確認担当を残すと運用判断が安定します。

  • 2026-06-08 JST:GitHub Agentic Workflows公式Docs、GitHub Changelog、GitHub Copilot MCP tutorial、Copilot SDK custom agents Docsを確認し、初版を作成しました。
  • 仕様、対応Engine、料金、利用可能プラン、MCP policyは変わりやすいため、実導入前には公式Docsと組織設定を再確認してください。

参照した主な情報源

  • https://github.github.com/gh-aw/
  • https://github.github.com/gh-aw/introduction/how-they-work/
  • https://github.github.com/gh-aw/reference/workflow-structure/
  • https://github.github.com/gh-aw/reference/frontmatter/
  • https://github.github.com/gh-aw/reference/engines/
  • https://github.github.com/gh-aw/reference/auth/
  • https://github.github.com/gh-aw/reference/rate-limiting-controls/
  • https://github.github.com/gh-aw/reference/faq/
  • https://github.blog/changelog/2026-02-26-claude-and-codex-now-available-for-copilot-business-pro-users/
  • https://docs.github.com/en/enterprise-cloud@latest/copilot/tutorials/enhance-agent-mode-with-mcp
  • https://docs.github.com/en/copilot/how-tos/copilot-sdk/features/custom-agents