Azure Cloud Adoption Framework (CAF) の組織論で定義されているチーム構造を「AI エージェント」として実装し、GitHub Copilot CLI を使ってエージェント同士が協調する仕組みを作ってみます!
はじめに
Azure CAF(Cloud Adoption Framework)には、クラウド導入を成功させるための組織体制に関するガイドがあります。戦略チーム、ガバナンスチーム、プラットフォームチーム、運用チーム、セキュリティチームなど、それぞれの役割と責任が明確に定義されています。
この記事では、これらの組織体制を「実際の人」ではなく 「AI エージェント」 で実装するという発想に基づき、GitHub Copilot CLI のカスタムエージェント機能を使ってエージェントを作成する検証を行います。さらに、作成したエージェントの品質を評価する 「人事評価エージェント」 も作成し、エージェントの改善サイクルを回してみます。
想定読者
- Azure CAF の組織体制に興味がある方
- GitHub Copilot CLI のカスタムエージェント機能を試してみたい方
- AI エージェントを活用したクラウド運用の自動化に関心がある方
- IaC(Infrastructure as Code)のワークフローを改善したい方
この記事のゴール
- Azure CAF の組織論に基づいたエージェントの設計と作成
- 人事評価エージェントによる改善サイクルの実施
- エージェント間の協調動作の確認
背景
Azure CAF の組織論とは
Azure Cloud Adoption Framework (CAF) は、Microsoft が提供するクラウド導入のベストプラクティス集です。技術的なガイダンスだけでなく、クラウド導入を成功させるための組織体制についても詳細に記載されています。
CAF の 組織の連携を管理する セクションでは、クラウド導入の規模と成熟度に応じて必要となるチーム構造が定義されています。
CAF の組織成熟度モデル
CAF では、組織構造は以下の成熟度モデルを通過する傾向があると述べています。
| 段階 | 構造 | 概要 |
|---|---|---|
| 1 | クラウド導入チームのみ | 最小構成。技術的な導入を推進するチームのみ |
| 2 | MVP のベストプラクティス | 導入チーム + ガバナンスチームの 2 チーム体制 |
| 3 | 中央 IT チーム | 既存の IT チームがクラウド責任を統合 |
| 4 | 戦略的連携 | ビジネス利害関係者を巻き込むクラウド戦略チームを追加 |
| 5 | 運用の整合性 | 安定した運用のためのクラウド運用チームを追加 |
| 6 | クラウドセンターオブエクセレンス (CCoE) | 最も成熟した段階。セルフサービスと民主化を重視 |
CAF で定義されているクラウド機能/チーム
今回エージェントとして実装する対象は、CAF で定義されている以下の 6 つのクラウド機能(チーム)です。
| チーム | 英名 | 主な役割 |
|---|---|---|
| クラウド戦略チーム | Cloud Strategy | ビジネス目標とクラウド導入投資の価値最大化。ビジネス成果の定義、優先順位付け、導入計画の承認 |
| クラウドガバナンスチーム | Cloud Governance | リスク管理、ポリシー策定、コンプライアンス監視。ガードレールの確立と維持 |
| クラウドプラットフォームチーム | Cloud Platform | Azure 基盤の設計・構築・運用。IaC テンプレート管理、Landing Zone の整備 |
| クラウド運用チーム | Cloud Operations | 監視、インシデント対応、パフォーマンス最適化。SLA/SLO の管理 |
| クラウドセキュリティチーム | Cloud Security | セキュリティポリシーの策定、脅威検出、インシデント対応。ゼロトラストの推進 |
| クラウドセンターオブエクセレンス (CCoE) | Cloud Center of Excellence | ベストプラクティスの統合、セルフサービス化推進。各チーム間の調整と標準化 |
なぜエージェントで実装するのか
CAF の組織論は素晴らしいガイドですが、実際にこれだけの専門チームを揃えるのは大変です。特に小規模な組織やスタートアップでは、一人で複数の役割を兼務していることが珍しくありません。
そこで、各チームの役割と責任を AI エージェントとして実装することで、以下のメリットが期待できます。
- 専門知識の補完: 各チームの専門知識をエージェントが提供
- 一貫性の確保: CAF のベストプラクティスに基づいた一貫したレビューとフィードバック
- スケーラビリティ: 組織の規模に関係なく、全チームの機能を利用可能
- 学習と改善: 人事評価エージェントによる継続的な品質向上
graph TB
subgraph "従来のアプローチ"
H1[人間] --> R1[戦略]
H1 --> R2[ガバナンス]
H1 --> R3[プラットフォーム]
H1 --> R4[運用]
H1 --> R5[セキュリティ]
end
subgraph "エージェント活用アプローチ"
H2[人間] --> A1[戦略エージェント]
H2 --> A2[ガバナンスエージェント]
H2 --> A3[プラットフォームエージェント]
H2 --> A4[運用エージェント]
H2 --> A5[セキュリティエージェント]
A6[CCoE エージェント] --> A1
A6 --> A2
A6 --> A3
A6 --> A4
A6 --> A5
A7[人事評価エージェント] -.->|評価・改善| A1
A7 -.->|評価・改善| A2
A7 -.->|評価・改善| A3
A7 -.->|評価・改善| A4
A7 -.->|評価・改善| A5
A7 -.->|評価・改善| A6
end
classDef human fill:#f6d,stroke:#333,color:#333;
classDef role fill:#ddd,stroke:#333,color:#333;
classDef agent fill:#6cf,stroke:#333,color:#fff;
classDef ccoe fill:#fc6,stroke:#333,color:#333;
classDef hr fill:#cfc,stroke:#333,color:#333;
class H1,H2 human;
class R1,R2,R3,R4,R5 role;
class A1,A2,A3,A4,A5 agent;
class A6 ccoe;
class A7 hr;
ざっくり手順
- GitHub Copilot CLI のセットアップ
- CAF 組織論に基づいたエージェントの設計
.agent.mdファイルの作成(6 つの CAF エージェント + 人事評価エージェント)- MCP サーバーの追加設定
- 人事評価エージェントによる評価の実施
- 改善サイクルの実行(評価 → フィードバック → 修正 → 再評価)
GitHub Copilot CLI のセットアップ
GitHub Copilot CLI とは
GitHub Copilot CLI は、ターミナルから直接 GitHub Copilot を利用できるコマンドラインツールです。VS Code や JetBrains などのエディタを開かずに、ターミナル上でコード生成、質問応答、エージェントの起動ができます。
カスタムエージェント機能を使うことで、.agent.md ファイルに定義した専門的な AI エージェントをコマンドラインから呼び出すことができます。
インストール方法
Windows 環境では WinGet を使って簡単にインストールできます。
|
|
その他の OS やインストール方法については、GitHub Copilot CLI の公式サイトを参照してください。
更新方法
Copilot CLI を最新バージョンに更新するには、以下のコマンドを実行します。
|
|
認証方法
インストール後、GitHub アカウントで認証を行います。
|
|
基本的なコマンド紹介
GitHub Copilot CLI の主なコマンドは以下のとおりです。詳細は GitHub Copilot CLI command reference を参照してください。
| コマンド / 構文 | 説明 |
|---|---|
copilot |
対話モードで Copilot CLI を起動 |
copilot -p "プロンプト" |
ワンショットモードで実行(1 回のやり取りで完了) |
/help |
ヘルプを表示 |
/model |
使用するモデルを変更 |
/plan |
実装計画を作成してからコーディングを開始 |
/agent <名前> |
指定したカスタムエージェントを起動 |
/delegate |
Copilot Coding Agent にタスクを委任(無人実行) |
/fleet |
並列サブエージェントでタスクを分割・同時実行 |
/mcp |
MCP サーバーの管理・設定 |
/resume |
中断したセッションを再開 |
/diff |
現在の差分を表示 |
/review |
コードレビューエージェントを実行 |
@ファイル名 |
特定のファイルをコンテキストに含める |
!コマンド |
シェルコマンドを直接実行 |
Shift + Tab |
通常 / plan / autopilot モードを切り替え |
例えば、対話モードで Copilot CLI を起動してからエージェントを呼び出す場合は以下のようになります。
|
|
エージェントの設計
作成するエージェントの一覧
CAF の組織論に基づき、以下の 7 つのエージェントを作成します。6 つの CAF チームに対応するエージェントと、それらを評価する人事評価エージェントです。
| エージェント名 | ファイル名 | 役割 | 対応する CAF チーム |
|---|---|---|---|
| Cloud Strategy Agent | cloud-strategy.agent.md |
ビジネス目標の整理、投資判断の支援 | クラウド戦略チーム |
| Cloud Governance Agent | cloud-governance.agent.md |
ポリシー策定、コンプライアンス監視 | クラウドガバナンスチーム |
| Cloud Platform Agent | cloud-platform.agent.md |
Azure 基盤設計、IaC テンプレート作成 | クラウドプラットフォームチーム |
| Cloud Operations Agent | cloud-operations.agent.md |
監視設計、インシデント対応手順作成 | クラウド運用チーム |
| Cloud Security Agent | cloud-security.agent.md |
セキュリティポリシー、脅威モデリング | クラウドセキュリティチーム |
| CCoE Agent | ccoe.agent.md |
ベストプラクティス統合、各エージェント間の調整 | CCoE |
| HR Evaluation Agent | hr-evaluation.agent.md |
他エージェントの品質評価と改善提案 | (独自) |
エージェント間の関係
エージェント間の関係を Mermaid 図で示します。CCoE エージェントが全体の調整役を務め、人事評価エージェントがすべてのエージェントの品質を評価します。
graph TB
User[ユーザー]
subgraph "CAF エージェントチーム"
Strategy[Cloud Strategy Agent<br/>ビジネス目標・投資判断]
Governance[Cloud Governance Agent<br/>ポリシー・コンプライアンス]
Platform[Cloud Platform Agent<br/>基盤設計・IaC]
Operations[Cloud Operations Agent<br/>監視・運用]
Security[Cloud Security Agent<br/>セキュリティ・脅威対策]
end
CCoE[CCoE Agent<br/>統合・調整・標準化]
HR[HR Evaluation Agent<br/>品質評価・改善提案]
User -->|要件定義| Strategy
Strategy -->|ビジネス要件| CCoE
CCoE -->|ガバナンス要件| Governance
CCoE -->|基盤要件| Platform
CCoE -->|運用要件| Operations
CCoE -->|セキュリティ要件| Security
Governance -->|ポリシー| Platform
Security -->|セキュリティ基準| Platform
Platform -->|インフラ情報| Operations
Operations -->|運用ログ| Security
HR -.->|評価| Strategy
HR -.->|評価| Governance
HR -.->|評価| Platform
HR -.->|評価| Operations
HR -.->|評価| Security
HR -.->|評価| CCoE
classDef user fill:#f6d,stroke:#333,color:#333;
classDef strategy fill:#69f,stroke:#333,color:#fff;
classDef governance fill:#f96,stroke:#333,color:#fff;
classDef platform fill:#6c6,stroke:#333,color:#fff;
classDef operations fill:#c6f,stroke:#333,color:#fff;
classDef security fill:#f66,stroke:#333,color:#fff;
classDef ccoe fill:#fc6,stroke:#333,color:#333;
classDef hr fill:#6ff,stroke:#333,color:#333;
class User user;
class Strategy strategy;
class Governance governance;
class Platform platform;
class Operations operations;
class Security security;
class CCoE ccoe;
class HR hr;
人事評価エージェントの設計方針
人事評価エージェントは、他のエージェントの .agent.md ファイルを読み取り、以下の観点で評価を行います。
| 評価観点 | 説明 | 評価基準の例 |
|---|---|---|
| CAF 準拠度 | CAF のガイダンスにどの程度準拠しているか | CAF の推奨事項がカバーされているか |
| 役割の明確さ | エージェントの役割と責任が明確に定義されているか | 曖昧な記述がないか、具体的なタスクが列挙されているか |
| 実用性 | 実際のワークフローで有用な指示になっているか | 具体的なコマンドや手順が含まれているか |
| 他エージェントとの連携 | 他のエージェントとの協調が考慮されているか | 入出力のインターフェースが明確か |
| セキュリティ考慮 | セキュリティのベストプラクティスが含まれているか | 最小権限の原則、暗号化の指示があるか |
GitHub Copilot CLI でのエージェント作成
.agent.md ファイルの構造
カスタムエージェントは .agent.md ファイルで定義します。ファイルは YAML フロントマター(メタデータ)と Markdown 本文(エージェントへの指示)で構成されます。
|
|
YAML フロントマターで指定できる主なフィールドは以下のとおりです。
| フィールド | 説明 | 例 |
|---|---|---|
name |
エージェントの一意な識別名 | cloud-governance |
description |
エージェントの短い説明 | "CAF に基づくガバナンスエージェント" |
tools |
エージェントが使用できるツール | read, edit, shell, search |
model |
使用する AI モデル(省略可) | gpt-4o |
作成手順
それでは、実際にエージェントを作成していきます。今回の検証で作成したリポジトリは NakayamaKento/caf-agents で公開しています。
1. リポジトリの作成とクローン
まず、エージェント用のリポジトリを作成します。
|
|
2. ディレクトリ構造の作成
エージェントファイルを配置するディレクトリを作成します。
|
|
3. 各エージェントの .agent.md ファイル作成
GitHub Copilot CLI を使ってエージェントファイルを作成します。まず対話モードで Copilot CLI を起動し、各エージェントの作成を指示していきます。
|
|
以下は、各エージェントを作成する際のプロンプト例です。対話モードのプロンプトにそのまま貼り付けて使用できます。
クラウド戦略エージェントの作成プロンプト
|
|
クラウドガバナンスエージェントの作成プロンプト
|
|
クラウドプラットフォームエージェントの作成プロンプト
|
|
クラウド運用エージェントの作成プロンプト
|
|
クラウドセキュリティエージェントの作成プロンプト
|
|
CCoE エージェントの作成プロンプト
|
|
人事評価エージェントの作成プロンプト
|
|
代表的なエージェントの .agent.md ファイル例
ここでは、代表的なエージェントとして クラウドガバナンスエージェント の .agent.md ファイルの内容を具体的に紹介します。
cloud-governance.agent.md
cloud-strategy.agent.md
クラウド戦略エージェントの .agent.md ファイルも紹介します。このエージェントはビジネス目標の整理、クラウド導入投資の価値最大化、優先順位付けを担当します。
MCP の追加
MCP(Model Context Protocol)とは
MCP(Model Context Protocol) は、AI モデルが外部ツールやデータソースと連携するための標準プロトコルです。GitHub Copilot CLI のカスタムエージェントに MCP サーバーを設定することで、エージェントが Azure リソースの情報取得やデプロイなどの操作を直接実行できるようになります。
.agent.md への MCP サーバーの設定方法
.agent.md の YAML フロントマターに mcp-servers フィールドを追加することで、MCP サーバーを設定できます。
|
|
Azure 関連の MCP サーバーの例
エージェントの機能を拡張するために利用できる MCP サーバーの例を紹介します。
| MCP サーバー | 説明 | 主な用途 |
|---|---|---|
@azure/mcp-server |
Azure リソースの管理 | リソースの一覧取得、作成、更新 |
@azure/mcp-server-azure-devops |
Azure DevOps 連携 | パイプライン実行、リポジトリ管理 |
| Microsoft Docs MCP Server | Microsoft Learn ドキュメントの検索・取得 | CAF ガイダンスや Azure サービスのドキュメント参照 |
| GitHub MCP Server | GitHub リソースの管理 | Issue 管理、PR 作成、コードレビュー |
例えば、クラウドプラットフォームエージェントに Azure MCP サーバーを追加すると、以下のような操作が可能になります。
|
|
各エージェントへの MCP サーバー追加
MCP サーバーの設定も Copilot CLI に任せることができます。対話モードで以下のようなプロンプトを実行すると、各エージェントの役割に応じた MCP サーバーを自動で追加してくれます。
|
|
Copilot が mcp-servers を配列形式(- name: azure のようなリスト)で生成してしまうことがあります。mcp-servers はオブジェクト形式でなければならないため、以下のようなエラーが出た場合は修正が必要です。
mcp-servers: Expected object, received array
誤った形式(配列):
|
|
正しい形式(オブジェクト):
|
|
エラーが出た場合は、Copilot CLI の対話モードで「mcp-servers の形式をオブジェクト形式に修正してください」と指示すれば修正してくれます。
az login で事前に認証しておく必要があります。エージェントの改善サイクル
ここからが本記事の核心部分です。作成したエージェントを人事評価エージェントで評価し、改善サイクルを回していきます。
改善サイクルの全体像
改善サイクルは「評価 → 改善 → 再評価」を繰り返すシンプルな流れです。/delegate コマンドを使えば、この一連の流れを 無人で自動実行 できます。
sequenceDiagram
participant U as ユーザー
participant CLI as Copilot CLI
participant CA as Copilot Coding Agent
U->>CLI: /delegate で改善サイクルを委任
CLI->>CA: タスクをバックグラウンドで実行
loop 改善サイクル(無人実行)
CA->>CA: 全エージェントの .agent.md を読み込み
CA->>CA: 5 つの観点でスコアリング
CA->>CA: スコア < 20/25 のエージェントを改善
CA->>CA: 改善後に再評価
end
CA->>CA: 全エージェントが基準を満たしたら終了
CA->>U: EVALUATION_REPORT.md と PR を作成
U->>U: 結果をレビュー
/delegate で改善サイクルを実行する
以下のコマンド 1 つで、全エージェントの評価・改善・再評価を無人で実行できます。
|
|
実行すると、Copilot Coding Agent がバックグラウンドでブランチを作成し、エージェントファイルの改善と評価レポートの作成を行い、最終的にプルリクエストを作成してくれます。
手動で改善サイクルを回す場合
/delegate ではなく、対話的に改善サイクルを回したい場合は、以下の手順で実施できます。
※実際は無人で回したので、ここから先は作業イメージです。
|
|
Step 1: 全エージェントを評価
|
|
Step 2: 改善を適用
|
|
Step 3: 再評価
|
|
Step 2〜3 を全エージェントが 20/25 以上になるまで繰り返します。
終了基準
改善サイクルは以下の基準を満たしたら終了とします。
| 基準 | 閾値 | 説明 |
|---|---|---|
| 最低スコア | 全エージェントが 20/25 以上 | 各観点で致命的な欠陥がないことを確認 |
| 平均スコア | チーム平均が 22/25 以上 | 全体として高い品質を維持 |
| 改善幅 | 前回比 +1 点以下の改善 | 改善の収束を確認 |
| 一貫性 | 用語・フォーマットの統一率 90% 以上 | エージェント間の統一性を確認 |
まとめ
得られた知見
Azure CAF の組織論に基づいたエージェントを GitHub Copilot CLI で作成する検証を通じて、以下の知見が得られました。
-
CAF の組織論はエージェント設計の優れたフレームワーク: CAF で定義されているチーム構造、役割、責任分担(RACI)は、AI エージェントの設計にそのまま活用できます。特に、各チームの責任範囲が明確に定義されているため、エージェント間の役割の重複や抜け漏れを防ぎやすいです。
-
人事評価エージェントによる品質管理は効果的: エージェントの品質を定量的に評価し、具体的な改善提案を生成する仕組みは、エージェントの品質を継続的に向上させるのに有効でした。特に、複数のエージェント間の一貫性チェックは手動では見落としやすい項目です。
-
/delegateによる無人改善サイクルは強力: GitHub Copilot CLI の/delegateコマンドを使うことで、評価→改善→再評価のサイクルをバックグラウンドで自動実行できます。これにより、人間は改善結果のレビューに集中できます。 -
MCP サーバーとの組み合わせで実用性が大幅に向上: Azure MCP サーバーを追加することで、エージェントが実際の Azure 環境の情報を取得しながらタスクを実行できるようになり、より実用的な提案が可能になります。
今後の展望
この記事で作成したエージェントチームを使って、次のステップとして以下を予定しています。
- Azure Landing Zone の Bicep/Terraform 作成: プラットフォームエージェントが主導し、ガバナンス・セキュリティエージェントがレビューする形で、Landing Zone の IaC を作成
- Azure Policy セットの自動生成: ガバナンスエージェントが CAF に準拠した Azure Policy セットを自動生成
- 監視・アラート設計の自動化: 運用エージェントが Azure Monitor のアラートルールやダッシュボードを設計
- セキュリティベースラインの自動適用: セキュリティエージェントが Microsoft Defender for Cloud の設定を提案
注意点
- エージェントは人間の判断を代替するものではありません: エージェントが生成した提案は、必ず人間がレビューしてから適用してください。特にポリシーの適用やインフラの変更は、影響範囲を十分に確認する必要があります。
- CAF は継続的に更新されます: CAF のガイダンスは定期的に更新されるため、エージェントの
.agent.mdファイルも定期的に見直す必要があります。 - MCP サーバーの認証管理に注意: MCP サーバーを利用する場合、認証情報の管理には十分注意してください。特に CI/CD 環境での利用には、適切なシークレット管理が必要です。
参考
- NakayamaKento/caf-agents - GitHub(本記事で作成したエージェントのリポジトリ)
- 組織の連携を管理する - Cloud Adoption Framework | Microsoft Learn
- チーム構造を成熟させる - Cloud Adoption Framework | Microsoft Learn
- クラウド ガバナンス チームを結成する - Cloud Adoption Framework | Microsoft Learn
- GitHub Copilot in the CLI - GitHub Docs
- Creating and using custom agents for GitHub Copilot CLI - GitHub Docs
- GitHub Copilot CLI: Use custom agents and delegate to Copilot coding agent - GitHub Blog
- Model Context Protocol