Opencode Docsから学ぶAIエージェント設計の7つのビルディングブロック
Opencodeのオープンソースドキュメントがエージェントアーキテクチャの入門教材になる理由。すべての開発者が理解すべき7つの中核コンセプトを解説します。
OpencodeがClaude Codeに次いで、開発者の間で注目を集めています。韓国ではOh-my-opencodeのおかげで急速に普及しており、世界中の開発者コミュニティが関心を寄せています。
しかし、このツールの本当の価値はコーディング支援だけではありません。オープンソースなので、エージェントがどのように設計されているか、ツールの登録からサブエージェントのオーケストレーションまで、直接確認できるのです。オープンソースプロジェクトはコミュニティの開発者からの貢献を受けるため、ドキュメントにはエージェントアーキテクチャに関する最新の知見が反映されています。
OpencodeドキュメントのConfigureセクションは、エージェント設計の入門教科書として読めます。そこから浮かび上がる7つのビルディングブロックと、それぞれが重要な理由を紹介します。
Tools:エージェントが世界と対話する方法
Toolsはエージェントができることを定義します。各ツールは個別の機能 - ファイルの読み取り、書き込み、ターミナルコマンドの実行、Web検索など - であり、呼び出し可能な関数として登録されます。
- 提供するツールのセットがエージェントの能力の境界を決定します
- ツールは言語モデルと外部環境の間のインターフェースです
- 私の経験では、ツールを多く与えすぎると逆効果になります。実行よりもどのツールを使うかの判断に時間を費やすようになります
設計原則はシンプルです。ツールのないエージェントはただのチャットボット。適切なツールを持つエージェントが自律的なワーカーになります。
Rules(AGENTS.md):エージェントの行動指針
AGENTS.mdは、プロジェクト固有のコンテキストと制約をエージェントに伝えるファイル形式です。人間ではなくAIのために書かれたREADMEと考えてください。
- 「テストなしにコードを変更しない」「このフォルダ構造に従う」といった指示を含めます
- AGENTS.md標準はすでに6万以上のオープンソースプロジェクトで採用されています
- ルールは基盤モデルを変更せずに、エージェントの意思決定を形成します
ルールがなければ、エージェントは汎用的な学習内容をプロジェクトにそのまま適用します。ルールがあれば、プロジェクトの慣例、制約、好みを反映します。その違いは大きいです。
Agents(サブエージェント):分割して征服する
複雑なタスクは、単一の汎用エージェントではなく、複数の専門エージェントに分割して処理するのが効果的です。
- Build、Plan、Review、Debugなど役割別のエージェントを定義できます
- メインエージェントが計画を立て、サブエージェントが個々のステップを実行します
- 各サブエージェントは集中したコンテキストで動作し、長い単一セッションで発生するノイズやドリフトを削減します
これはマイクロサービスの原則をAIワークフローに適用したものと同じです。専門化が品質を向上させ、分離がコンテキスト汚染を防ぎます。
MCP(Model Context Protocol):外部接続の標準
Model Context ProtocolはAnthropicが作成したオープンプロトコルで、エージェントが外部データソースやサービスに接続する方法を標準化します。
- データベース、ファイルシステム、APIなどの統合に一貫したインターフェースを提供します
- サービスごとにカスタムアダプターを書く代わりに、MCPがエージェントに統一された外部アクセス方法を提供します
- MCPレイヤー上に多様なサービスアプリケーションのエコシステムが成長すると予想されます
MCPは実質的な相互運用性の問題を解決します。以前は、各エージェントフレームワークが外部ツールへの接続方法を独自に開発していました。MCPはそれらの接続をポータブルかつコンポーザブルにします。
LSP(Language Server Protocol):コード理解の基盤
Language Server Protocolは元々IDE向けに設計されましたが、コードベースをナビゲートする必要があるAIエージェントにとっても同様に価値があることがわかりました。
- LSPは定義へのジャンプ、参照の検索、自動補完、診断機能を提供します
- OpencodeでのLSP統合はまだ実験的ですが、コードナビゲーションの精度が大幅に向上します
- 純粋なテキスト検索に頼る代わりに、エージェントがLSPを使ってコード構造を意味的に理解できます
関数呼び出しを定義まで追跡し、すべての参照を見つけ、型の階層を理解するエージェントは、文字列のパターンマッチングだけを行うエージェントとは根本的に異なるレベルで動作します。
A2AとACP:エージェント間通信の標準
異なるフレームワークで構築されたエージェントが協力するには、共有プロトコルが必要です。このギャップを埋めるために2つの標準が登場しています。
- A2A(Agent-to-Agent):Googleが作成しLinux Foundationに寄贈しました。エージェントが互いを発見し、能力を交渉し、メッセージを交換する方法を定義します
- ACP(Agent Communication Protocol):BeeAIチームが構築し、最近A2Aの取り組みに合流しました
どちらも初期段階ですが、異なるベンダーやフレームワークのエージェントがシームレスに協力するマルチエージェントシステムの基盤を代表しています。例えるなら、Webにおけるhttp - すべてを相互運用可能にする共有トランスポートレイヤーです。
Skills:再利用可能な能力パッケージ
Agent Skillsはツール、ルール、プロンプトを1つのインストール可能なユニットにバンドルします。Anthropicが最初に導入したこのフォーマットは、現在標準化されています。
- エージェントはコードレビュー、TDDワークフロー、セキュリティ分析など特定の能力が必要な時にスキルをロードします
- スキルはプロジェクトやチーム間で共有可能で、再利用可能なエージェント動作のエコシステムを作ります
- これはドキュメントを消費することからスキルを消費することへの転換を意味します。やり方を読む代わりに、能力をインストールする時代です
スキルはエージェントにとって、パッケージがアプリケーションにとってのものと同じです。専門知識をモジュール化し、配布可能にします。
まとめ
効果的なAIエージェントを構築するのは、利用可能なすべてのツールを知ることではありません。アーキテクチャを理解することです。エージェントがどう考え、外の世界とどう接続し、互いにどう協力するかという構造を理解することです。
この7つのビルディングブロック - Tools、Rules、サブエージェント、MCP、LSP、A2A/ACP、Skills - がエージェント設計の構造的語彙を形成します。それぞれが固有の関心事に対応し、合わせて良く設計されたエージェントシステムの姿を定義します。
Opencodeはオープンソースであるため、ドキュメントは開発者コミュニティの貢献とともに進化します。エージェントアーキテクチャを本気で理解したいなら、Opencode docsを読む価値があります。
ニュースレターに登録
最新のプロジェクト、記事、AIとWeb開発の実験に関する情報をお届けします。