はじめに
この記事ではAIエージェントとは何か、AIエージェント関連の技術(プロトコル、フレームワーク)についてザックリまとめたいと思います。
※利用方法や詳細な説明は割愛しておりますのでご了承ください。
AIエージェントの定義
Anthropicの定義によれば「長期間独立して動作し、様々なツールを使って複雑なタスクを遂行する完全自律的なシステム」と定義されています。
Anthropicは特にAIエージェントをワークフローと区別して定義しており、ワークフローは事前に定義されたコードやステップによるシステムで分岐や使うツールが決まっている"静的ルールベース"であるのに対し、エージェントはLLMが自ら判断して、処理やツールを制御します。
プロトコル
- MCP:AIエージェントとツールの連携
- A2A:AIエージェント間の連携
- ACP:エージェント同士の通信、連携を標準化。A2Aと目的は同じだがアーキテクチャが異なる。
フレームワーク
- LangChain:Model / Prompt / Indexing / Chain / Tool / Memory / Agent などの機能で構成される。ワークフロー指向。
- LangGraph:State Graph による制御。グラフ構造を用いて繰り返しや条件分岐を実現。Langchainの機能も利用可能。
- AutoGen(Microsoft):会話駆動のマルチエージェント。複数のエージェントが強調してタスクを実行する仕組みを簡単に構築できる。
- CrewAI:Role / Task / Processで区分され人間組織に近いモデル
- AutoGPT:自律実行型エージェント。計画、実行、評価をループすることで目的を達成するために自律実行する。
- Mastra:TypeScriptベースの開発フレームワークで、Web開発向けに特化。
- Stands Agents(AWS):モデル駆動型のアプローチを採用しており、数行のコードで簡単に構築可能。
※Anthropicの定義ではLangChainが一番ワークフロー寄りでAutoGPTがエージェント。
フレームワークの利用例
- LangChain → RAG
- LangGraph → 回答が不十分だった場合の再試行(例えばコーディングエラー)
- AutoGen → 対話型の分析ツール
- CrewAI → 役割分担型のタスク
- AutoGPT → 業務効率化、プログラミングなど
コーディングエージェント
GitHub Copilot
Cursor
Cline
Codex
Claude Code
Kiro
Antigravity
まとめ
AIエージェントで利用されている技術についてまとめました。少し中途半端になってしまいましたが、また時間があるときに更新したいと思います。
参考にした記事
https://www.anthropic.com/engineering/building-effective-agents
https://zenn.dev/dxclab/articles/bf1ee43f9b7a0c