概要
TypeScript製のAIコーディングエージェント「OpenCode」のソースコードを解読し、二重ループ、Vercel AI SDKを用いたマルチプロバイダー対応、高度なコンテキスト管理、およびツール実行の設計を詳説した技術記事。
詳細内容
本記事は、GitHubスター数10万を超えるOSSのAIコーディングツール「OpenCode」の内部実装を詳細に分析した技術リポートである。主な特徴は、Vercel AI SDKを基盤としたマルチLLMプロバイダー対応と、外側のセッションループと内側のストリーミングループからなる「二重ループ」設計にある。
技術的ハイライトとして、以下の点が挙げられる:
1. **システムプロンプトの動的構築**: Claude、GPT-4o、Geminiなどモデルごとの特性に合わせたプロンプトの出し分けと、環境情報の自動注入。
2. **高度なツール設計**: `edit` ツールにおける9段階のフォールバック置換戦略(レーベンシュタイン距離等を使用)や、`bash` ツールでのAST解析によるセキュリティ制御。
3. **コンテキスト管理**: トランケーション、プルーニング、およびCompactionエージェントによる自動要約の3段階でトークン消費を制御する高度なロジック。
4. **サブエージェント構造**: `task` ツールを介して独立したセッションを持つサブエージェントを動的に生成し、複雑なタスクを委譲・並列実行する仕組み。
また、MCP(Model Context Protocol)による外部ツール統合のパイプラインについても言及されており、AIエージェントの実装レベルの設計を学びたい開発者にとって極めて価値の高い内容となっている。