3行まとめ
Markdownの作業指示を、GitHub Actions上のAIコーディングエージェントに実行させる仕組みです。
Markdown workflow、AI Engine、MCP/tools、permissions/secretsを分けて考えます。
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は需要シグナルとしてだけ扱い、本文の事実根拠には使っていません。
この記事でわかること
Markdown本文、frontmatter、`.lock.yml`の関係を確認します。
認証、課金、監査、組織での有効化範囲を見ます。
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へ持ち込む時の境界設計に絞ります。
前提知識
- 1Markdown本文
AIへの目的、手順、期待出力を自然言語で書きます。
- 2frontmatter
trigger、permissions、tools、outputsなどの実行条件を持ちます。
- 3compile結果
Markdown workflowからActionsで実行される形に変換されます。
- 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つの境界を分ける
境界を分けると、便利さを広げる前にどこで止めるべきかを決めやすくなります。
GitHub Agentic Workflowsを導入する前に、最初に分けるべき境界は次の4つです。
| 境界 | 役割 | 失敗時に起きること | 最初の推奨 |
|---|---|---|---|
| Markdown workflow | AIへの目的、手順、期待出力を書く | 不適切な指示で余計な作業をする | read-only reportに閉じる |
| AI Engine | 指示を解釈し、toolsを呼ぶ主体 | モデル差、制限、費用、監査の違いが出る | 組織で有効化済みのEngineから試す |
| MCP/tools | GitHub外や追加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に何を足すのか
- 1従来のActions
YAMLで決めたstepを実行し、exit codeやテスト結果で扱います。
- 2自然言語の作業指示
目的や確認観点をMarkdownで書き、AIが作業の進め方を判断します。
- 3tool呼び出し
repo、Issue、PR、MCPなどを読みながら追加確認を行います。
- 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はモデル性能ではなく認証と統制で選ぶ
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課金のどこに乗るか |
| MCP | web 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は「できること」ではなく副作用で棚卸しする
Issue、PR、repo検索など。private情報を読める範囲を確認します。
SaaS、Docs、ticket情報など。どの情報が外部へ渡るかを見ます。
comment、label、ticket更新など。承認後のjobへ寄せます。
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 read | issue、PR、repo検索 | private情報の読み取り | repoとresourceを限定する |
| GitHub write | label、comment、branch、PR | 誤更新、連投、レビュー負荷 | draftまたは承認後に限定 |
| 外部SaaS read | ticket、doc、CRM | 社外データの混入 | OAuth scopeと監査ログを確認 |
| 外部SaaS write | ticket更新、通知送信 | 誤通知、顧客影響 | rollbackと承認者を決める |
| local MCP | runner上の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から遠ざける
- 1外部入力
Issue、PR、comment、docs、MCP応答には危険な指示が混ざる可能性があります。
- 2AI job
read-only、no secrets、最小permissionsで提案や要約を作ります。
- 3safe outputs
report、差分案、draft PR候補など、確認できる形にします。
- 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 job | repoや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を明示する |
| OIDC | cloud側の短期credential | trust policyとaudienceを固定する |
| 外部API key | Anthropic、OpenAI、Gemini、SaaS連携 | 課金、ログ、失効、secret露出を管理する |
Agentic WorkflowsのAuthenticationページでは、Engineごとに必要なsecretが整理されています。だからといって、Engine secretとGitHub write権限を同じjobへ何でも置いてよいわけではありません。AIが読む入力面にsecretを近づけない、という設計を先に固定します。
triggerは信頼度で分ける
- schedule
週次レポートやCI傾向の要約など、入力範囲を絞って試します。
- workflow_dispatch
人間が明示的に起動し、実行頻度と対象を管理します。
- issue / PR
外部入力が混ざるため、命令受付ではなく対象データとして扱います。
- 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は後付けではなく仕様に入れる
レビュー観点は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更新PR | repo maintainer |
| CI設定変更 | infra owner |
| dependency更新 | library ownerまたはCODEOWNER |
| release関連 | release owner |
| secretやsecurity設定 | security owner |
| 外部SaaS書き込み | service owner |
AIの提案が正しそうに見えても、責任境界が曖昧だと本番運用に乗りません。承認者は後から決めるのではなく、workflowの仕様に入れます。
失敗点:AIに任せるほど設計不足が露出する
Markdown本文だけを読み、実際のtriggerやpermissionsを見落とします。
report-onlyから段階評価なしにcomment、label、PR作成へ広がります。
便利な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コーディングツール料金改定の見方のように、個人、チーム、法人で見る費用列を分けるのが現実的です。
実務で使うなら
- Phase 1
read-only reportで、提案の採用率、レビュー時間、不要な提案を測ります。
- Phase 2
draft PRやcomment draftに進み、人間が採用できる形で出します。
- Phase 3
限定writeを承認後jobに分け、scope、rollback、費用を確認します。
- 継続運用
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 label | label一覧を固定し、連投を防ぐ |
| docs PR | pathを限定し、required reviewを入れる |
| dependency update PR | package managerとtest gateを固定する |
| CI failure comment | 1run 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/tools | allowlistと禁止tool |
| permissions | read/writeの範囲 |
| secrets | AI jobから見えるか、見えないか |
| output | report、draft、PR、承認後writeのどれか |
| reviewer | 誰が何を承認するか |
| rollback | 誤更新時の戻し方 |
このメモが書けるworkflowだけ、チームの自動化候補にします。書けない場合は、まだpromptの問題ではなく設計の問題です。
セキュリティ・コスト注意
Issue、PR、comment、docs、test logs、MCP responsesはすべてAIへの入力です。
fork由来PR、`pull_request_target`、comment triggerはsecretやwrite権限と分けます。
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 Actions | runner minutes、storage、artifact |
| AI Engine | Copilot枠、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は、開始手順だけでなく停止手順も短いです。
導入前チェックリスト
すべてを一度に満たすより、未確認の項目を残したままwrite権限を増やさないことが重要です。
| カテゴリ | チェック |
|---|---|
| 入力 | Issue、PR、comment、docs、MCP応答を信頼済み命令として扱っていない |
| Markdown | 目的、禁止事項、期待出力、停止条件が短く書かれている |
| frontmatter | trigger、permissions、tools、rate limitが最小化されている |
| Engine | 認証、課金、監査、有効化範囲を確認した |
| MCP | server owner、scope、tool allowlist、ログ、無効化手順を確認した |
| secrets | AI jobからsecretを見えないようにした |
| write | 承認後job、draft PR、safe outputsのどれかに寄せた |
| review | 承認者、レビュー観点、rollback手順が決まっている |
| cost | Actions、Engine、MCP先、人間レビューの費用を分けて見た |
| update | 公式Docs変更時に再確認する担当を決めた |
未確認項目の扱い
未確認の項目があること自体は問題ではありません。問題なのは、未確認のままtriggerやwrite権限を広げることです。
すべてを満たす必要はありません。ただし、未確認の項目があるなら、その分だけtriggerと権限を狭めます。未確認のままwrite権限を広げないことが、最初の安全策です。
FAQ
同じではありません。Agentic WorkflowsはActions上でMarkdown workflowを動かす枠組みです。
安全とは限りません。Issue、PR、repo contentとwrite権限の近さもリスクです。
不要とは言えません。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設計を整理したい場合は、お問い合わせから相談できます。
更新履歴
- 2026-06-08 JST
GitHub Agentic Workflows公式Docs、GitHub Changelog、Copilot MCP関連Docsを確認しました。
- 導入前
対応Engine、料金、利用可能プラン、MCP policyを公式Docsと組織設定で再確認します。
- 運用中
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
