🤖

エージェンティックAI — 自律エージェントの基本構造

LLMがツールを使い、判断し、反復する構造

ChatGPTに質問すれば答えが来る。ここで終われればチャットボットだ。

エージェントは違う。「このバグを直して」と言えば、コードを読み、原因を分析し、修正案を作り、テストを回し、問題があればまた修正する。人間が途中で介入しなくても。

エージェントのコアループ

すべてのエージェントシステムは結局このループに帰結する:

  1. 観察(Observe): 現在の状態を把握(ファイル読み、エラーログ確認、検索等)
  2. 思考(Think): LLMが状況を分析し次の行動を決定
  3. 行動(Act): ツール呼び出し(コード修正、API呼び出し、ファイル生成等)
  4. 評価(Evaluate): 結果確認 → 目標達成の可否を判断
  5. 未達なら → 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 — コードベース探索→修正→テストを自律実行 カスタマーサポートエージェント — 注文照会→返金処理→確認メール送信まで自動 リサーチエージェント — 検索→要約→追加質問→総合レポート作成