Development

Claude Code Agent Teamsを使ってGitHubのIssueを対応させてみる

By Yosuke | 2026年2月10日

株式会社tolvの宍戸陽介です。

最近、開発周りのAIの動きが速くなってきましたね。Codex appの登場や、Calude CodeのAgent Teamsなどマルチエージェントを使った機能が色々と出てきました。
今回は、Claude CodeのAgent Teamsを試してみようと思います。
また、Claude CodeからIssueを拾ってもらって、対応するようにします。

前提

今回は、CLIからGitHubにアクセスさせるため、ghコマンドを利用します。
事前にghコマンドをインストールしておきます。
試してはいないですが、GitHubのMCPでもうまくいくかもしれないです。

準備

Agent Teamsの有効化

Agent Teamsは、ディフォルトでは無効になっているので、有効化する必要があります。 ~/.claude/settings.jsonに下記を追加します。

    "env": {
        "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
    }

これで、Agent Teamsを使うことができます。
他にも、tmuxを使ってマルチペインで動作が見られる設定もできますが、今回は省略します。
未設定の場合、tmuxを使うかどうかは、自動で判断されるようです。

この辺りの設定は、公式に記載されています。

Claude Code セッションのチームを調整する - Claude Code Docs

複数の Claude Code インスタンスがチームとして連携して動作するように調整します。共有タスク、エージェント間メッセージング、一元管理を備えています。

code.claude.com

プロンプト

チームを作って対応してもらうようなプロンプトを作成します。
指示の中では、特にどのIssueを対応するかなどの指示は含めていません。この辺りは、優先度高のラベルがついているものとか、具体的なIssue番号などの指示でも良いかもしれません。
今回は、要件確認・実装者・テスターの3人を用意して、それぞれの役割を与えます。

  3人のチームメンバーでチームを作成し、レポジトリのGitHub IssueからIssue内容を確認してサイトを改修します。                                                                                               
  GitHubへのアクセスは、ghコマンドを利用してください。                                                                                                                                                   
  作業を行う場合は、`issue-{Issue番号}`でブランチを作成して対応してください。ブランチを作成する場合は、`main`ブランチを最新にして`main`ブランチから作成してください。                                    
  - 1人目は、GitHubのIssueを参照して、Issue内容を確認し、不明点があればユーザーに質問します。                                                                                                            
  - 2人目は、1人目が確認した内容を元に改修を実装します。3人目から不具合を指摘された場合は、修正をしてください。                                                                                          
  - 3人目は、2人目が回収した内容が、一人目が確認したIssueの要件を満たしているかテストします。テストに合格したら、プリクエストを作成します。不具合がある場合は2人目に報告し、修正させてください。   

実行

上記のプロンプトの指示を与えると、Claude Codeがチームを作成して改修作業に入ります。
今回は、私のレジュメサイトに「TOPの戻るボタン追加」のIssueを対応してもらいました。

⏺ チームを作成して、GitHub Issueベースの改修を進めます。まず、リポジトリの情報とIssueを確認します。

⏺ Bash(gh repo view --json nameWithOwner,url -q '.nameWithOwner + " " + .url')
  ⎿  y-shishido/resume https://github.com/y-shishido/resume

⏺ Bash(gh issue list --state open --json number,title,labels -q '.[] | "\(.number): \(.title)"')
  ⎿  1: TOPに戻るボタンの設置

⏺ リポジトリ y-shishido/resume にオープンなIssueが1件あります:

  - #1: TOPに戻るボタンの設置

  それでは、3人のチームを作成します。

⏺ チームが作成されました。次にタスクを作成し、チームメンバーを立ち上げます。

⏺ タスクの依存関係を設定します。

⏺ 依存関係を設定しました。次に3人のチームメンバーを起動します。

⏺ 2 agents launched (ctrl+o to expand)
   ├─ @analyst
   │  ⎿  Issue分析担当エージェント (shift+↑ to manage)
   └─ @developer
      ⎿  実装担当エージェント (shift+↑ to manage)

⏺ 3人のチームメンバーを起動しました!チーム構成:   
  ┌───────────┬─────────────────────┬────────────────────────────┐
  │ メンバー  │        役割         │         担当タスク         │                                                                                                                                           
  ├───────────┼─────────────────────┼────────────────────────────┤
  │ analyst   │ Issue要件確認・分析 │ タスク#1                   │                                                                                                                                           
  ├───────────┼─────────────────────┼────────────────────────────┤                                                                                                                                         
  │ developer │ 実装・修正          │ タスク#2(タスク#1完了後) │
  ├───────────┼─────────────────────┼────────────────────────────┤
  │ tester    │ テスト・PR作成      │ タスク#3(タスク#2完了後) │
  └───────────┴─────────────────────┴────────────────────────────┘
  ワークフロー:
  1. analyst → Issue #1「TOPに戻るボタンの設置」の要件を確認・整理
  2. developer → 要件に基づいて issue-1 ブランチで実装
  3. tester → 実装内容をテストし、合格ならPR作成

  各メンバーが自動で連携して作業を進めます。analystが不明点を発見した場合はあなたに質問が来ますので、お待ちください。

===================== 省略 =====================

@tester❯ テスト完了、PR #2を作成しました

⏺ testerがテストを完了し、PRが作成されました!すべてのタスクが完了です。

  チームメンバーをシャットダウンします。

⏺ 全タスクが完了しました。チームメンバーのシャットダウン応答を待っています。

  作業完了サマリー
  ┌─────────────────────────┬───────────┬─────────┐
  │        ステップ         │   担当    │  状態   │
  ├─────────────────────────┼───────────┼─────────┤
  │ Issue #1 要件確認・分析 │ analyst   │ ✅ 完了 │
  ├─────────────────────────┼───────────┼─────────┤
  │ Issue #1 実装           │ developer │ ✅ 完了 │
  ├─────────────────────────┼───────────┼─────────┤
  │ Issue #1 テスト・PR作成 │ tester    │ ✅ 完了 │
  └─────────────────────────┴───────────┴─────────┘
  成果物

  - ブランチ: issue-1(mainから作成)
  - PR: https://github.com/y-shishido/resume/pull/2
  - 対応Issue: #1「TOPに戻るボタンの設置」

  テスト結果(全項目PASS)

  1. 右下に固定表示
  2. 角丸の四角形
  3. 上矢印アイコン
  4. 画面上部でボタン非表示
  5. スムーススクロール
  6. ダークモード対応
  7. 印刷時非表示
  8. アクセシビリティ対応

  PRに Closes #1 が含まれているため、マージするとIssue #1が自動的にクローズされます。PRをご確認の上、問題なければマージしてください。
作成されたプルリクエスト
作成されたプルリクエスト

実行ログを一部抜粋していますが、Claude CodeがGitHubからIssueを取得した後に、チームを作成して改修作業に入り、テスターが動作を確認後にプルリクを作成して、チームが自動的に解散となります。
tmuxを利用しなかったので、なんとなく並行稼働がわかりにくいのと、それぞれが、要件 → 実装 → テストなので同時に動くことがないのですが、各エージェントがエージェント間で連携して作業を進めています。

プルリクコメントの対応

今回作成したプルリクで、一部改修して欲しい内容があったので、プルリクに対してコメントを記載しました。
もう少し上手いやり方があるかもですが、チーム自体は、解散させてしまったため、似たようなプロンプトを再作成して対応させました。

  3人のチームメンバーでチームを作成し、レポジトリのGitHubのプルリクエスト`#2`のコメントを確認して、改修を行ってください。                                                                                
  - 1人目は、プルリクエストのコメントを参照して、指摘内容を確認し、不明点があればユーザーに質問します。                                                                                                  
  - 2人目は、1人目が確認した内容を元に改修を実装します。3人目から不具合を指摘された場合は、修正をしてください。                                                                                          
  - 3人目は、2人目が回収した内容が、一人目が確認したコメントの要件を満たしているかテストします。テストに合格したら、プリクエストを更新します。不具合がある場合は2人目に報告し、修正させてください。      
  ユーザーの指示があるまで、チームは解散しないでください。     

最初のプロンプトでは、自動でチームを解散させてしまったため、今回は指示があるまで解散をさせないようにしました。

Issueの繰り返し

下記プロンプトの指示で、プルリクを作成した後に次のIssueの対応を行うようになります。
PRを作成したら、1人目に完了報告をして、1人目が次のIssueを確認して他のエージェントに指示を出します。

3人のチームメンバーでチームを作成し、レポジトリのGitHub IssueからIssue内容を確認してサイトを改修します。
GitHubへのアクセスは、ghコマンドを利用してください。
作業を行う場合は、`issue-{Issue番号}`でブランチを作成して対応してください。ブランチを作成する場合は、`main`ブランチを最新にして`main`ブランチから作成してください。
- 1人目は、GitHubのIssueを参照して、Issue内容を確認し、不明点があればユーザーに質問します。
- 2人目は、1人目が確認した内容を元に改修を実装します。3人目から不具合を指摘された場合は、修正をしてください。
- 3人目は、2人目が改修した内容が、一人目が確認したIssueの要件を満たしているかテストします。テストに合格したら、プリクエストを作成します。不具合がある場合は2人目に報告し、修正させてください。
プルリクエストの作成が完了したら、1人目にプルリクエスト完了報告をしてください。1人目は3人目から完了報告を受け取ったら、次のIssueの対応を開始してください。
ユーザーの指摘事項は作成されたプルリクエストに対して、コメントを追加して指摘します。ユーザーの指示があるまで、チームは解散しないでください。

まとめ

今回は、Agent Teamsを使って、GitHub Issueの対応を行ってみました。
以前は、エージェント間の連携をさせるのに、プロンプトで指示の流れなどを書いていましたが、チーム作成の指示を与えるだけで、エージェント間の連携が取れるのは便利だと思いました。
GitHub側のIssueに要件をしっかり記載すれば、そこを参照してもらえば良いので、AIに渡す要件がGitHubにまとまり、より実際の開発に近い状況が作れるのではないかと思います。

ただし、結構なトークンを消費するため、Proプランだとほとんどの事ができずに、レートリミットに達してしまうと思います。
この辺りを考えると、Maxプランへのアップグレードなどが視野に入ってきますが、個人的には手軽に使える機能ではないかなと思います。
もちろん、Maxプランの費用対効果(投資効果)が高いのは理解していますが...

また、Codex Appとは違って、Git Worktreeを使うわけではないので、多くのエージェントを立ち上げた場合、コンフリクトや上書きが発生してしまうようです。
この辺りは、もしかしたらプロンプトの指示などで、Worktreeを使わせるなどができるかもしれません。

おまけ

tmuxを使って、Agent Teamsを使ってみました。
やはり、それぞれエージェントが立ち上がって見れると、画面が映えますね。

tmuxを使った、Agent Teamsの画面
tmuxを使った、Agent Teamsの画面

tolv

ものづくりを通して、いい人と出会っていく

Contact

Phone: 092-985-2930

Address: 福岡県糟屋郡粕屋町長者原東2-1-28

© 2021 - 2026 tolv. All rights reserved.