コーディングエージェント構成は使いまわせるのか? - Claude Code_Kiro_Github Copilotの横断を考える

>100 Views

June 23, 26

スライド概要

【AI駆動開発】AI自走環境整備・運用スペシャル #3 〜ハーネスエンジニアリングへの入り口〜で登壇した資料です!
各Coding Agentの比較を掲載しました。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

Coding Agent構成は使いまわせるのか? - Claude Code/Kiro/Github Copilotの横断を考 える 村田亜弥(alichan)

2.

今日話すこと 昨今のCoding Agentについて基本的に似通った機能が出てきており、使いまわしがききそう。標準化を 行えるか検討しプロジェクト構成を検討すればどの様なCoding Agentが使用されているPJでも画一的な パフォーマンスを出すことが可能なのでは。 1.Coding Agentの概要 ● ● ● AI駆動開発の普及 Coding Agentの汎用機能 Claude Code/Kiro/Github Copilotの思想比較 2.Claude Code/Kiro/GithubCopilotのプ ロジェクト構成 ● ● ● ● Claude Codeのプロジェ クト構成 Kiroのプロジェクト構成 Github Copilotのプロジ ェクト構成 プロジェクト構成比較 3.Claude Code/Kiro/GithubCopilotの設 定比較 ● ● ● ● ● ● Agents.mdの設定比較 Skillsの設定比較 Sub Agentsの設定比較 MCPの設定比較 Hooksの設定比較 Ignoreの設定比較

3.

AI駆動開発の普及 2022年のChatGPT発表を皮切りに対話型AIによるAI駆動開発が普及。その後、GitHub Copilotのような Coding Assistantが広まり、更にClaude Codeの様な自律的に開発を進めるCoding Agentが主流になって きている。 Conversational AI ● ● ● ● ChatGPT Gemini Claude Microsoft Copilot Coding Assistant ● ● ● ● GitHub Copilot Amazon Q Developer Codeium Google Gemini Code Assist Coding Agent ● ● ● ● ● Claude Code OpenAI Codex Kiro GitHub Copilot Cursor

4.

コーディングエージェントの汎用機能 各コーディングエージェントは使用方法/開発思想共に異なるが、共通する機能がいくつか存在する。有 名な機能としてAgents.md、Skills、Sub Agents、MCP、Hooks、Ignore等。 Agents.md セッション開始時、常に閲覧 される指示。PJ共通の規約を 記載する。 Skills 定型化されたタスクをこなす 際閲覧される固有の知識やワ ークフロー、指示。明示的に 起動したり、ユーザー指示に 応じて起動されたりする。 Sub Agents 特定タスクをこなす際独立実 行される固有の指示が指定さ れたエージェント。明示的に 起動したり、ユーザー指示に 応じて起動されたりする。 MCP MCPサーバーに接続できる機 能。GitやSlack等外部ツールに エージェントがアクセスして 操作する際に使用する。 Hooks エージェントに特定のタイミ ングで処理を実行させるシェ ルコマンド。必ずある処理を 実行させたい時に使用する。 Ignore セキュリティや情報のフォー カス観点からエージェントに 対して無視したいファイルを 指定できる機能。

5.

Claude Code/Kiro/Github Copilotの思想比較 各Coding Agentには異なる設計思想が存在する。Claude CodeはAgentic Coding、KiroはSpec Driven Development、Github CopilotはCopilotからのAgentic Codingへの拡張。 Agentic Coding Spec Driven Development From Copilot to Agentic Coding 自律的な開発を行えることを 打ち出しており、ユーザーの ざっくりとした指示からコー ドの読み取りから編集、コマ ンドの実行までほとんど全て のPJ工程を行わせる思想。 仕様駆動を打ち出しており、 ユーザーのざっくりとした指 示から仕様とそれを基準に実 装タスクを生成することで自 律的にPJ工程を行う思想。最 近はVibe Chat Modeもある。 もともと副操縦士として打ち 出されていたが、近年Agent ModeやCoding Agentが追加さ れており、自律的な開発支援 へ拡張している。GitHub連携 が強い。

6.

Claude Codeのプロジェクト構成 Claude Codeのプロジェクト構成は.claudeディレクトリに各機能の設定を格納する形で構成される。一 部MCP設定などPJルートに配置する設定もある。VSCode使用を想定して記載。 Agents.md Claude Codeの場合CLAUDE.mdに相当する。全てのセッションで常に閲覧され、PJ規約等を記載 する。 Skills skills配下にディレクトリを切り、SKILL.mdを配置することで作成できる。参照されるサンプルや scriptを入れて参照することも可能。定型タスクの実行に使用。 Sub Agents agents配下にmdファイルを配置することで作成できる。独自実行されるため、メインセッション とはコンテキスト分離が行われてタスク実行され終了後要約のみ返す。 MCP ルートディレクトリの.mcp.jsonで設定できる。GitやSlack等外部ツールにエージェントがアクセ スして操作する際に使用する。 Hooks settings.jsonのhooksで設定できる。エージェントがセッションを開始したりファイルを保存する 際に実行するコマンドを設定できる。エージェントの統制に使用できる。 Ignore Claude Codeに明示的なignore機能は無い。しかし、settings.jsonでpermissionsのdenyを使用して 対象ディレクトリやファイルの読み込みを阻止できる。

7.

Kiroのプロジェクト構成 Kiroのプロジェクト構成は.kiroディレクトリに各機能の設定を格納する形で構成される。SDD実行時に使 用されるspecsディレクトリが特徴的。Kiro IDE使用を想定して記載。 Agents.md Kiroの場合steering配下のファイルに相当する。常時 or 指定タイミングで読み込ませる製品/技術 スタック/PJ構成を記載するmdファイルが格納されている。Agents.mdのみ常時読み込まれる。 Skills skills配下にディレクトリを切り、SKILL.mdを配置することで作成できる。参照されるサンプルや scriptを入れて参照することも可能。定型タスクの実行に使用。 Sub Agents agents配下にmdファイルを配置することで作成できる。独自実行されるため、メインセッション とはコンテキスト分離が行われてタスク実行され終了後要約のみ返す。 MCP settingsディレクトリのmcp.jsonで設定できる。GitやSlack等外部ツールにエージェントがアクセ スして操作する際に使用する。 Hooks hooksディレクトリの.kiro.hookで設定できる。エージェントがセッションを開始したりファイル を保存する際に実行するコマンドを設定できる。エージェントの統制に使用できる。 Ignore PJルートディレクトリの.kiroignoreでIgnore設定ができる。Ignore対象ディレクトリやファイルの 読み込みを阻止できる。

8.

Github Copilotのプロジェクト構成 Github Copilotのプロジェクト構成は.githubディレクトリに各機能の設定を格納する形で構成される。 Agent Modeを使用することでコーディングエージェントとして使用可能。VSCode使用を想定して記載。 Agents.md Github Copilotの場合copilot-instructions.mdに相当する。全てのセッションで常に閲覧され、PJ規 約等を記載する。AGENTS.mdを使用することもできる。 Skills skills配下にディレクトリを切り、SKILL.mdを配置することで作成できる。参照されるサンプルや scriptを入れて参照することも可能。定型タスクの実行に使用。 Sub Agents agents配下にmdファイルを配置することで作成できる。独自実行されるため、メインセッション とはコンテキスト分離が行われてタスク実行され終了後要約のみ返す。 MCP .vscodeディレクトリのmcp.jsonで設定できる。GitやSlack等外部ツールにエージェントがアクセ スして操作する際に使用する。 Hooks hooksディレクトリのjsonファイルで設定できる。エージェントがセッションを開始したりファイ ルを保存する際に実行するコマンドを設定できる。エージェントの統制に使用できる。 Ignore Github Copilotに明示的なIgnore機能はない。copilot-instructions.mdのPJ規約として記載する等で 対応する必要あり。

9.

プロジェクト構成比較 - 1 プロジェクト機能を6観点から比較した結果、構成は似かよる傾向にあり内部プロンプトを使い回せばほ とんど同じコーディングエージェント環境を整えられそう。 Claude Code Sub Agents Github Copilot ./.claude/CLAUDE.md ./.kiro/steering/Agents.md ./.kiro/steering/product.md ./.kiro/steering/tech.md ./.kiro/steering/structure.md ./.github/copilotinstructions.md ./.claude/skills/[skillname]/SKILL.md ./.claude/skills/[skillname]/[他SKILL.md参照先] ./.kiro/skills/[skillname]/SKILL.md ./.kiro/skills/[skill-name]/[他 SKILL.md参照先] ./.copilot/skills/[skillname]/SKILL.md ./.copilot/skills/[skillname]/[他SKILL.md参照先] ./.claude/agents/[agentname].md ./.kiro/agents/[agentname].md ./.copilot/agents/[agentname].agent.md Agents.md Skills Kiro

10.

プロジェクト構成比較 - 2 プロジェクト機能を6観点から比較した結果、構成は似かよる傾向にあり内部プロンプトを使い回せばほ とんど同じコーディングエージェント環境を整えられそう。 Claude Code Kiro Github Copilot ./.mcp.json ./.kiro/settings/mcp.json ./.vscode/mcp.json ./.claude/settings.json ./.kiro/hooks/[hookname].kiro.hook ./.github/hooks/[hookname].json ./.claude/settings.json ./.kiroignore 無し MCP Hooks Ignore

11.

Agents.mdの設定比較 Agents.mdの設定比較について、どのコーディングエージェントも比較的自由に記載できる。 Claude Code ・CLAUDE.mdに記載 Kiro Github Copilot ・product/tech/structure.mdに 記載 ・任意でAgents.mdに記載 ・copilot-instructions.mdに記載

12.

Skillsの設定比較 Skillsの設定比較について、SKILL.md以外のディレクトリ構成はどのコーディングエージェントでも自由。 SKILL.mdの前書きの記載方法について若干違いがある。その後の記載方法は自由。 Claude Code Kiro Github Copilot ・name:任意 ・name:必須 ・name:必須 ディレクトリ名がデフォルトのskillの 名前 ディレクトリ名と一致させる必要のあ るskillの名前 ・description:必須 ・description:必須 ・description:必須 skillを使用するタイミングや内容説明 この情報を元に自動で使用される skillを使用するタイミングや内容説明 この情報を元に自動で使用される ・when_to_use:任意 ・license:任意 skillを使用するタイミングの追加情報 skillのライセンス名 ・user-invocable:任意 ・argument-hint:任意 ・compatibility:任意 オートコンプリートで表示される引数 のヒント skill使用に際したシステムの環境要件 ・disable-model-invocation:任意 ・model:任意 skillの作成者やバージョンなどのメタ データ …etc skillで使用されるLLM言語モデル …etc ・metadata:任意 skillの名前 skillを使用するタイミングや内容説明 この情報を元に自動で使用される ・argument-hint:任意 オートコンプリートで表示される引数のヒン ト skillの手動使用可否 skillの自動使用可否 ・context:任意 skillの読み込み方法の制御、デフォルトでは 親エージェントのコンテキストに追加 …etc

13.

Sub Agentsの設定比較 Sub Agentsの設定比較について、[agent-name].mdの前書きの記載方法について若干違いがある。その後 の記載方法は自由。 Claude Code Kiro Github Copilot ・name:必須 ・name:必須 ・name:任意 agentの名前 agentの名前 agentの名前 ・description:必須 ・description:任意 ・description:必須 agentを使用するタイミングや内容説 明 この情報を元に自動で使用される agentの説明 agentの説明 ・tools:任意 ・tools:任意 ・tools:任意 agentが使用できるツール agentが使用できるツール ・mode:任意 ・argument-hint:任意 agentで使用されるLLM言語モデル 入力欄に表示されるヒントテキスト ・includeMcpJson:任意 ・model:任意 MCPの使用可否 agentで使用されるLLM言語モデル ・includePowers:任意 ・user-invocable:任意 Kiro固有のPowersに含まれるMCPの 使用可否 …etc agentの手動使用可否 …etc agentが使用できるツール ・disallowedTools:任意 agentの使用を拒否するツール ・model:任意 agentで使用されるLLM言語モデル …etc

14.

MCPの設定比較 MCPの設定比較について、設定パラメーターについて若干違いがあるが、ほとんど設定項目は同じ。 Claude Code ・type:必須 リモートMCPサーバーへの接続タイプ ・url:リモートの場合必須 リモートMCPサーバーのURL ・headers:任意 リモートMCPサーバーに渡すヘッダー ・oauth:任意 認証のためのOAuth設定 ・command:ローカルの場合必須 ローカルMCPサーバーを動かすためのコマン ド ・args:任意 コマンドに渡す引数 ・env:任意 環境変数 …etc Kiro ・url:必須 リモートMCPサーバーのHTTPURL ・headers:任意 リモートMCPサーバーに渡すヘッダ ー ・command:必須 ローカルMCPサーバーを動かすため のコマンド ・args:必須 コマンドに渡す引数 ・env 環境変数 …etc Github Copilot ・type:必須 MCPサーバーへの接続タイプ(ローカル/リモ ート) ・url:リモートの場合必須 リモートMCPサーバーのURL ・headers:任意 リモートMCPサーバーに渡すヘッダー ・oauth:任意 認証のためのOAuth設定 ・command:ローカルの場合必須 ローカルMCPサーバーを動かすためのコマン ド ・args:任意 コマンドに渡す引数 ・env:任意 環境変数 …etc

15.

Hooksの設定比較 Hooksの設定比較について、設定パラメーターについて若干違いがある、構造も若干異なるが突き合わせ てドキュメント確認すれば比較的使いまわしやすい Claude Code Kiro Github Copilot ・event ・enabled ・type hookを起動するタイミング、SessionStart等 を指定 hookの使用可否 hookで実行することを指定、command等 ・matcher ・name ・command hookの名前 hookで実行するcommandを指定 hookを起動タイミングの更なるフィルタリン グ ・description …etc ・hooks ・version hookで実行することを指定、command等 …etc hookの説明 hookのバージョン ・when hookを使用するタイミング ・then hookで実行することを指定、command等 …etc

16.

Ignoreの設定比較 Ignoreの設定比較について、それぞれ異なる Claude Code Kiro Github Copilot ・.claude/settings.json に deny ルールを記載 ・プロジェクトのルートディレク トリに.kiroignoreを配置し、読み 取りを拒否したいファイルやディ レクトリのパスを記載 ・VSCodeのGithub CopilotのAgent Modeではサポートされていない

17.

まとめ プロジェクト構成についてある程度似通っており、設定内容もほとんど変わらないため使いまわしはき きそう。別Coding Agentの案件を何件も抱えているような会社では使用しやすそう。 ● PJで使用されているCoding Agentに合わせて使いまわしをしやすい構成には なってる ● 別Coding Agentの案件を何件も抱えているような会社では使用しやすそう ● 使いまわすということは各Coding Agentの思想をある程度無視するというこ となのでその点は要考慮 使いまわしはききそうだがPJ体力に応じてCoding Agentの特性を生かすか標準的な構成にするか決定す る必要がある

18.

参照 ・Claude Code Docs https://code.claude.com/docs/ja/overview ・Kiro https://kiro.dev/ ・Visual Studio Code https://code.visualstudio.com/docs/agents/overview