🤖
エージェンティックAI — 自律エージェントの基本構造
LLMがツールを使い、判断し、反復する構造
ChatGPTに質問すれば答えが来る。ここで終われればチャットボットだ。
エージェントは違う。「このバグを直して」と言えば、コードを読み、原因を分析し、修正案を作り、テストを回し、問題があればまた修正する。人間が途中で介入しなくても。
エージェントのコアループ
すべてのエージェントシステムは結局このループに帰結する:
- 観察(Observe): 現在の状態を把握(ファイル読み、エラーログ確認、検索等)
- 思考(Think): LLMが状況を分析し次の行動を決定
- 行動(Act): ツール呼び出し(コード修正、API呼び出し、ファイル生成等)
- 評価(Evaluate): 結果確認 → 目標達成の可否を判断
- 未達なら → 1に戻る
Claude Code、Cursor、Devinなどのコーディングエージェントは全てこのパターンだ。
エージェント vs ワークフロー
Anthropicが区別する概念:
ワークフロー: LLM呼び出しが事前定義されたコードパスで調整される。順序が固定。
エージェント: LLM自体がプロセスを主導し、ツール使用と次のステップを自律的に決定。
違いは「誰が制御権を持つか」。ワークフローは開発者が設計した流れをLLMが埋め、エージェントはLLMが流れ自体を決定する。
実装の核心
複雑なフレームワークは不要。whileループ + LLM API + ツール定義があれば基本エージェントが作れる。
while not done:
response = llm.chat(messages, tools)
if response.has_tool_call:
result = execute_tool(response.tool_call)
messages.append(result)
else:
done = True
Anthropicの公式ガイドも「できるだけシンプルに始めろ」と強調している。フレームワークは複雑性を追加するが、常に価値を追加するわけではない。
動作フロー
1
LLMにシステムプロンプト + 利用可能なツールリストを渡す
2
LLMが状況分析後、ツール呼び出しまたは最終応答を決定
3
ツール実行結果をメッセージ履歴に追加
4
目標達成まで反復(observe → think → act → evaluate)
ユースケース
Claude Code — コードベース探索→修正→テストを自律実行
カスタマーサポートエージェント — 注文照会→返金処理→確認メール送信まで自動
リサーチエージェント — 検索→要約→追加質問→総合レポート作成