1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Copilot Coding Agentと勘違いしてハマった話(ガードレールが本体だった)

1
Last updated at Posted at 2026-02-21

この記事は、GitHub ActionsやCopilotをすでに触ったことがある人向けに、Agentic Workflowsの設計思想の違いを整理したものです。

はじめに

2026年2月、GitHubから「Agentic Workflows」がテクニカルプレビューとして発表されました。

「AIがリポジトリの作業を自動化してくれるらしい」と聞いて早速触ってみたところ、最初に盛大に勘違いしました。この記事では、その勘違いも含めて、実際に手を動かして学んだことをまとめます。

最初の勘違い:Coding Agent = Agentic Workflows?

VS CodeのCopilot Agent Modeに「GitHub Agentic Workflowsを体験したい」と伝えたところ、こんな流れを案内されました。

  1. リポジトリにPythonのTodoアプリを用意
  2. GitHub Issueを作成
  3. Copilot Coding AgentをIssueにアサイン
  4. 自動でPRが作成される
  5. GitHub Actionsでテストが走る

確かに便利でした。IssueにCopilotをアサインするだけで、テストコード付きのPRが自動生成されます。

ただ、これは「Copilot Coding Agent」であって、「Agentic Workflows」ではありませんでした。

公式記事を読み直して気づきました。全然別のものです。

Copilot Coding Agent(IssueにアサインしてPR自動生成)は以前からある機能です。
2026年2月に発表されたGitHub Agentic Workflows(gh-aw)は、それとは異なる仕組みです。

本物のGitHub Agentic Workflowsとは

一言でいうと

Markdownで「やってほしいこと」を書くだけで、AIエージェントがリポジトリの作業を継続的に自動化してくれる仕組みです。

GitHub Actionsとの違い

GitHub Actions(YAML) Agentic Workflows(Markdown)
記述方法 YAMLで「手順」を書く Markdownで「意図」を書く
実行者 定義されたステップを順番に実行 AIが意図を解釈して自律的に実行
判断力 なし(if/elseで分岐するだけ) AIが文脈を読んで判断
対応力 想定したパターンのみ 未知のパターンにもAIが対応
用途 ビルド・テスト・デプロイ 判断が必要な繰り返しタスク

ActionsとAgentic Workflowsは置き換えではなく共存するものです。 実際のリポジトリでも test.yml(Actions)と issue-triage.md(Agentic Workflows)が並んで動いていました。

Coding Agentとの違い

Copilot Coding Agent Agentic Workflows
トリガー Issueに手動でアサイン スケジュール・イベントで自動トリガー
目的 単発のコーディングタスク 継続的なリポジトリ自動化
出力 PR作成 コメント、ラベル、Issue作成、PRなど多様
定義方法 Issue本文に指示 .github/workflows/*.md で定義

実際にやってみた

セットアップ

# gh-aw CLIをインストール
gh extension install github/gh-aw

# リポジトリを初期化
gh aw init

# ワークフローのテンプレートを作成
gh aw new issue-triage

ワークフローを書く

.github/workflows/issue-triage.md を作成しました。

---
on:
  issues:
    types: [opened, reopened]

permissions:
  contents: read
  issues: read

safe-outputs:
  add-comment:
    max: 1
  add-labels:

tools:
  github:
---

# Issue Triage

新しいIssueが作成されたとき、自動的にトリアージを行います。

## やること

1. Issueのタイトルと本文を読み、内容を理解する
2. 以下のラベルから適切なものを付与する:
   - `bug` - バグ報告
   - `enhancement` - 機能追加リクエスト
   - `question` - 質問
   - `documentation` - ドキュメント関連
3. Issueにコメントを追加する:
   - Issueの内容を簡潔に要約する
   - 該当しそうなソースコードのファイルがあれば言及する
   - 対応の優先度(高・中・低)を提案する

## ルール

- 日本語で応答すること
- コメントは丁寧で簡潔に
- 不明な場合は `question` ラベルを付けて確認を求めること

ポイントは YAML(フロントマター)とMarkdown(意図)の2層構造 です。

  • フロントマター: いつ実行するか、何を読めるか、何をしていいか
  • Markdown本文: AIに何をしてほしいか(自然言語)

コンパイルしてpush

# Markdownからロックファイル(.lock.yml)を生成
gh aw compile

# リポジトリにpush
git add -A && git commit -m "feat: Issueトリアージを追加" && git push

結果

Issueを作成すると、自動で以下が実行されました。

作成したIssue: 「listコマンドの出力に日時を表示してほしい」

AIが自動でやったこと:

  • enhancement ラベルを付与(機能追加リクエストと正しく判別)
  • ✅ 日本語でコメントを自動投稿
  • ✅ 関連するソースコード(todo.py)の具体的な行番号まで特定
  • ✅ 実装の方向性を提案
  • ✅ 優先度を「中」と判定

自然言語で「こうしてほしい」と書いただけで、AIがリポジトリの文脈を理解して判断した結果です。

ガードレール:一番重要な設計思想

触ってみて最も印象に残ったのがガードレールの厳しさでした。

AIに曖昧な意図を渡せるからこそ、想定外の行動を防ぐ仕組みが必須になります。Agentic Workflowsは3層のガードレールでこれを実現しています。

1. permissions(入力の制限)

何を「読める」かを制限します。

permissions:
  contents: read    # コードは読めるが書けない
  issues: read      # Issueは読めるが閉じられない

2. safe-outputs(出力の制限)

何を「やれる」かを明示的に許可します。

safe-outputs:
  add-comment:      # コメント追加は1つまで
    max: 1
  add-labels:       # ラベル付与はOK
  # create-pull-request ← 書いてないからPRは作れない

実体験: 最初 issues: write と書いたところ、コンパイル時にエラーで弾かれました。

strict mode: write permission 'issues: write' is not allowed for security reasons.
Use 'safe-outputs.add-comment', 'safe-outputs.add-labels' to perform write operations safely.

「writeで何でもできる権限」ではなく「コメント追加だけ許可」のように、出力を個別に制限する設計になっています。

3. サンドボックス実行

  • ネットワーク分離
  • PRは自動マージされない(人間が必ずレビュー)

なぜガードレールが重要か

AIがやりかねないこと ガードレール
全Issueを勝手に閉じる safe-outputs にclose-issueがない → 不可
コードを直接変更 permissions: contents: read → 読み取りのみ
外部APIにデータ送信 ネットワーク分離

曖昧さを許容しつつ、被害範囲を限定する — これがCI/CDとは異なる、Agentic特有の設計思想です。

つまずいたポイント

1. Copilot Coding AgentとAgentic Workflowsの混同

最初にCopilot Agent Modeから案内された流れが「Actions + Coding Agent」の組み合わせで、本来のAgentic Workflows(gh-aw)とは別物でした。AIアシスタント自身もこの違いを正確に区別できていなかった点は、なかなか興味深いところです。

2. シークレット設定が必要

gh aw initgh aw compile → pushしただけでは動きません。AIエンジン用のトークン設定が別途必要でした。

# Fine-grained PATを作成(個人アカウントで、Copilot Requests権限付き)
# ※ Resource ownerは個人アカウント。Orgではない
gh aw secrets set COPILOT_GITHUB_TOKEN --value "<PAT>"

3. PAT作成のUI上の罠

Fine-grained PATの作成画面で「Copilot Requests」権限を表示させるには条件があります。

  • Resource owner を個人アカウントにする(Organizationでは表示されない)
  • Repository access を「Public Repositories」にする(表示条件)

Copilotライセンスが個人単位で付与されるための仕様です。

6つの活用パターン

公式が示している活用例です。

  1. 継続的トリアージ — Issueの自動分類・ラベル付け(今回試したもの)
  2. 継続的ドキュメント作成 — コード変更に合わせてREADMEを自動更新
  3. 継続的コード簡素化 — リファクタリング改善点を特定してPR作成
  4. 継続的テスト改善 — テストカバレッジを評価しテストを自動追加
  5. 継続的品質維持 — CIの失敗を調査し修正を提案
  6. 継続的レポーティング — リポジトリの健全性レポートを定期作成

まとめ

学んだこと 詳細
Agentic Workflows ≠ Coding Agent 別物。Markdownで意図を書いて継続的に自動化する仕組み
Actionsの置き換えではない CI/CDはActions、判断が必要なタスクはAgentic Workflows
ガードレールが設計の核 permissions + safe-outputs + サンドボックスの3層防御
セットアップのハマりどころ シークレット設定、PAT作成のUI上の制約

GitHub Agentic Workflowsは現在テクニカルプレビュー中です。「朝リポジトリを開いたらIssueがトリアージされていて、CIの失敗が説明されていて、ドキュメントが最新になっている」——そういう世界が見えてきます。

Enterpriseで使うなら、次の論点は「誰がAgentic Workflowを作ってよいか」「どこまで許可するか」の運用設計になりそうです。

参考リンク

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?