AIエージェントでより安全なプロジェクト変更

エージェントがプロジェクトのリソースを変更する際、安全性とレビューのしやすさが重要となります。AIブランチは隔離された編集環境を提供し、変更は人間による確認の後でのみターゲットブランチに反映されます。

Oliver Kingsley

Oliver Kingsley

7 7月 2026

AIエージェントでより安全なプロジェクト変更

Apidog エンタープライズ

オンプレミスデプロイ

SSO & RBAC

SOC 2 準拠

Apidog Enterpriseを見る

これは、APIテストおよびAPIライフサイクル管理のためのコマンドラインツールであるApidog CLIをApidogがどのように開発したかを共有する10部構成のシリーズです。順番に読むことも、興味のある投稿に直接ジャンプすることもできます:

タイトル 焦点
1 当社は126のMCPツールを構築しました。しかし、それはAgentにとって最善のソリューションではありませんでした 問題の発見
2 なぜ当社は全く新しいApidog CLIを開発したのか アーキテクチャ開発
3 黄金律: CLIは事実を生成し、モデルは事実に基づいて行動する コア哲学
4 agentHints: CLIにAgentとの会話を教える 構造化出力
5 SKILL: 運用経験をコードとして出荷する 運用経験
6 数字は嘘をつかない: ツール呼び出しが30%減、トークンが25%減 定量的結果
7 PRDからテストループまで: Apidog CLIを使った完全なAgentワークフロー 実践チュートリアル
8 なぜCI/CDの互換性がAgentツールにとって不可欠なのか DevOpsの視点
9 AIブランチ: AI Agentによるより安全なプロジェクト変更 セキュリティレイヤー
10 Spec-Firstは昨日。Skill-Firstへようこそ。 ビジョンと未来

Agentがプロジェクトリソースを変更する場合、安全性とレビューの可能性が重要です。AIブランチは分離された編集環境を提供し、人間が確認した後でのみ変更がターゲットブランチに取り込まれます。


セキュリティの課題

AI AgentがAPI開発とテストに参加する場合、CLIコマンドを介してプロジェクトリソースを作成、更新、削除できます。

この力にはリスクが伴います。

リスク 起こりうる事態
予測不能な出力 Agentが予期しないコンテンツを書き込む
フィールドエラー 誤ったアサーション、不足しているパラメータ
スコープクリープ Agentがタスクを超えてリソースを変更する
レビュー履歴なし 変更が直接メインブランチに現れる
チームの混乱 共有コラボレーションブランチが突然変更される

メインブランチを危険にさらすことなく、Agentに実際のプロジェクトで作業させるにはどうすればよいでしょうか?


AIブランチ:安全層

AIブランチは、外部AIおよびCLI操作のために特別に設計された特殊な種類のスプリントブランチです。

AIブランチ

重要なコンセプト:

Apidog CLIから開始されるすべての編集操作は、デフォルトでAI / AI Agentによって開始されたものとして扱われます。

AIブランチは、AI Agentに分離された編集ブランチを提供します。変更は、人間がレビューしてマージするまでAIブランチに残ります。

AgentがCLI経由で変更を行う
        ↓
変更はAIブランチに保存される(分離)
        ↓
ユーザーが差分をレビューする
        ↓
ユーザーがリソースのスコープを確認する
        ↓
ターゲットブランチにマージする(直接またはマージリクエスト)

承認されるまで、メインブランチは変更されません。


AIブランチが必要な理由

AIによって開始される編集は予測できない場合があります。Apidog CLIは、エンドポイント、スキーマ、テストシナリオ、テストスイートなど、幅広い編集機能を提供します。

AIブランチは、これらのリスクの高いAIが開始する編集操作のために設計されています。

AI Agentが制御された範囲内でプロジェクトリソースを編集できるようにします。

AIブランチなし AIブランチあり
Agentが直接メインに書き込む Agentが分離されたブランチに書き込む
変更がすぐに現れる 変更はレビューを待つ
セーフティネットなし 人間の確認が必要
意図しない変更のリスク スコープは特定のリソースに限定される

AIブランチとは?

AIブランチは、特定の特性を持つ特別なスプリントブランチです。

主な特性

特性 説明
分離された編集 変更はAIブランチに保存され、メインブランチやソースブランチには影響しない
明確なソース クライアントで作成できない — CLI/MCPから来る必要があり、ソースブランチを記録する
人間の確認 変更はマージする前に確認されなければならない
数量制限なし 異なるタスクのために必要なだけAIブランチを作成できる
自動アーカイブ 差分がないブランチは24時間ごとに自動的にアーカイブされる

仕組み

操作 発生場所
AIがエンドポイントを作成する AIブランチ内
AIがテストシナリオを更新する AIブランチ内
チームが変更をレビューする クライアントまたはCLIプレビュー内
ユーザーがマージを承認する ユーザーのアクションであり、AIではない
変更がターゲットブランチに入る 確認後

ユーザーによる通常のクライアント内編集は、引き続きプロジェクトメンバーの権限とブランチ保護ルールに従います。


ユースケース

AIブランチは、ブランチの分離と人間の確認を維持しながら、AIがプロジェクトの保守に参加する必要がある場合に適しています。

シナリオ AIブランチがどのように役立つか
コードからAPIドラフトを生成する AIがAIブランチでエンドポイントを作成し、ユーザーはマージ前に確認する
APIリソースを一括で整理する AIがコラボレーションブランチに影響を与えることなく、フォルダ、説明、モデルを調整する
自動テストドラフトを生成する AIがAIブランチでテストシナリオ/ケースを作成し、テスターがレビューする
APIドキュメントのギャップを埋める AIがバグレポートまたは実装に基づいて不足しているフィールドを補完する
CI/CDでバッチ書き込みを行う 自動化されたワークフローがAIブランチに書き込み、ユーザーのマージを待つ

基本的なワークフロー

典型的なAIブランチのワークフロー:

┌─────────────────────────────────────────────────────────────────┐
│                     AIブランチワークフロー                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  ステップ 1: AIブランチを作成する                                        │
│  ┌───────────────────────────────────────────┐                  │
│  │ apidog branch create --type ai             │                  │
│  │ --name "ai/20260312-from-main-feature"     │                  │
│  │ --from main                                │                  │
│  └───────────────────────────────────────────┘                  │
│                    ↓                                             │
│  ステップ 2: リソースをインポートまたは作成する                              │
│  ┌───────────────────────────────────────────┐                  │
│  │ apidog branch pick-to (既存をインポート)    │                  │
│  │ または                                         │                  │
│  │ apidog endpoint create (新規作成)        │                  │
│  └───────────────────────────────────────────┘                  │
│                    ↓                                             │
│  ステップ 3: AIがリソースを変更する                                   │
│  ┌───────────────────────────────────────────┐                  │
│  │ AgentがCLIを使用してエンドポイント、       │                  │
│  │ スキーマ、テストシナリオなどを更新する。             │                  │
│  │ (--branch パラメータでAIブランチを指定)  │                  │
│  └───────────────────────────────────────────┘                  │
│                    ↓                                             │
│  ステップ 4: ユーザーが差分をレビューする                                │
│  ┌───────────────────────────────────────────┐                  │
│  │ apidog merge-request preview              │                  │
│  │ または                                         │                  │
│  │ Apidogクライアントで表示                     │                  │
│  └───────────────────────────────────────────┘                  │
│                    ↓                                             │
│  ステップ 5: ターゲットブランチにマージする                                  │
│  ┌───────────────────────────────────────────┐                  │
│  │ 直接マージ(保護されていないブランチ)         │                  │
│  │ または                                         │                  │
│  │ マージリクエスト(保護されたブランチ)          │                  │
│  └───────────────────────────────────────────┘                  │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

AIブランチの作成

branch create --type aiを使用します:

apidog branch create \
  --project 123456 \
  --type ai \
  --name "ai/20260312-from-main-userRegister" \
  --from main

命名推奨: ai/YYYYMMDD-from-sourceBranch-featureOrModule

コマンド 目的
branch create --type ai AIブランチを作成する
branch list --type ai プロジェクト内のAIブランチを表示する
branch list --type all すべてのブランチタイプを表示する
branch get --type ai AIブランチの詳細を表示する

AIブランチでのリソースの編集

CLIがプロジェクトリソースを書き込む際、--branchパラメータを使用してAIブランチに書き込みます:

リソース コマンド例
HTTPエンドポイント apidog endpoint create --project <id> --branch <aiBranchName> --file ./endpoint.json
データモデル apidog schema update <schemaId> --project <id> --branch <aiBranchName> --file ./schema.json
テストシナリオ apidog test-scenario update <scenarioId> --project <id> --branch <aiBranchName> --file ./scenario.json
テストスイート apidog test-suite create --project <id> --branch <aiBranchName> --file ./suite.json

推奨ワークフロー:

# 1. スキーマを取得
apidog cli-schema get endpoint-create

# 2. 書き込み前に検証
apidog cli-schema validate endpoint-create --file ./endpoint.json

# 3. AIブランチに書き込み (メインではない)
apidog endpoint create \
  --project 123456 \
  --branch "ai/20260312-from-main-userRegister" \
  --file ./endpoint.json

既存のリソースのインポート

既存のリソースを変更するには、まずソースブランチからインポートします:

apidog branch pick-to \
  --project 123456 \
  --from main \
  --to "ai/20260312-from-main-userRegister" \
  --endpoint-ids 1001,1002

これにより、AIが正しい基本バージョンで作業することが保証されます。


マージ前の変更のレビュー

マージする前に、差分をプレビューします:

apidog merge-request preview \
  --project 123456 \
  --from "ai/20260312-from-main-userRegister" \
  --to main

または、Apidogクライアントで完全な差分を表示します。

コマンド 目的
merge-request preview 候補となる変更をスキャンする
branch get --type ai AIブランチ情報を表示する

AIブランチのマージ

レビュー後、変更をマージします:

直接マージ(保護されていないブランチ)

apidog branch merge \
  --project 123456 \
  --from "ai/20260312-from-main-userRegister" \
  --to main \
  --endpoint-ids 1001,1002

マージリクエスト(保護されたブランチ)

apidog merge-request create \
  --project 123456 \
  --from "ai/20260312-from-main-userRegister" \
  --to main \
  --reviewer-ids 20001,20002 \
  --endpoint-ids 1001,1002
コマンド 目的
branch merge 保護されていないブランチに直接マージする
merge-request create レビューのためのマージリクエストを作成する
merge-request approve マージリクエストを承認する
merge-request reject マージリクエストを拒否する

重要:マージコマンドは、明示的に指定されたリソースリストのみを処理します。マージする前に、依存関係(ディレクトリ、モデル、レスポンスコンポーネント、テスト)を確認してください。


アーカイブと削除

変更がマージされた後、または不要になった場合:

# アーカイブ
apidog branch archive "ai/20260312-from-main-userRegister" \
  --project 123456 --type ai

# 削除 (アーカイブ後)
apidog branch delete "ai/20260312-from-main-userRegister" \
  --project 123456 --type ai

外部AIの編集権限

デフォルトでは、CLIはAIブランチに書き込みます。これにより、AIが生成した変更はユーザーの確認があるまで分離されたままになります。

メインブランチの直接編集を有効にするには:

プロジェクト設定 → 機能設定 → AI機能設定 → 外部AI編集権限
権限 許可されること
メインブランチ直接編集 CLIがメインに直接書き込む(AIブランチをバイパス)
標準スプリントブランチ直接編集 CLIがスプリントブランチに直接書き込む
一般ブランチ直接編集 CLIが一般ブランチに直接書き込む
AIブランチ直接編集 CLIがAIブランチに書き込む(通常は有効のまま)

推奨:AIブランチの分離を有効にしておきます。自動化ワークフローが明確に必要とする場合にのみ、直接編集を有効にしてください。


ベストプラクティス

プラクティス 理由
タスクごとに1つのAIブランチ 明確なスコープ:ユーザー登録API、オーダーモジュール文書、支払いテスト
編集前にインポート 既存のリソースにはpick-toを使用 — ソースの混乱を避ける
書き込み前に検証 cli-schema validateを使用してAIブランチに書き込む前にエラーを捕捉する
マージ前にプレビュー merge-request previewまたはクライアントの差分ビューを使用する
明確なマージスコープ エンドポイント、モデル、ディレクトリ、テストを一緒に確認する
人間のレビューを維持 API定義、テストスクリプトはマージ前にレビューされるべき
迅速にアーカイブ マージまたは破棄後、ブランチリストをきれいに保つ

CLI + SKILLワークフローにおけるAIブランチ

AIブランチはCLI + SKILLと自然に統合されます:

ステージ CLI + SKILL + AIブランチ
読み取り 任意のブランチからendpoint get
生成 AgentがJSONを作成する
検証 ローカルでcli-schema validate
書き込み AIブランチにendpoint create --branch <aiBranchName>
レビュー merge-request preview
マージ ユーザーが確認後、branch merge
検証 マージされたリソースに対してapidog run

すべての書き込みはAIブランチ → 人間によるレビュー → マージを経由します。


セキュリティの概要

保護
cli-schema validate 書き込み前に構造上のエラーを捕捉する
agentHints Agentを安全な次のステップに導く
AIブランチ メインブランチから変更を隔離する
人間によるレビュー マージ前にコンテンツを確認する
マージスコープ ユーザーがマージするリソースを選択する

これらの層が連携して、Agent主導のプロジェクト変更のためのより安全なループを形成します。


次は何?

AIブランチが安全層を提供することで、すべての要素が揃いました:

次はビジョンの番です。

パート10「Spec-Firstは昨日。Skill-Firstへようこそ。」では、API開発がAI Agentと共にどのように進化するか、そしてチームが次に何をすべきかについて概説します。


主要なポイント


Apidogをダウンロードして、1つのワークスペースでAPIの設計モックテストドキュメント化を行いましょう。コマンドラインAPIテスト、CI自動化、AI Agentワークフローに関するApidog CLIの詳細をご覧ください。

button

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる