最小エージェントを作る考え方
最後のレッスンです。結論から言うと、最小のエージェントは、これまで学んだ部品をひとつのループにまとめるだけで作れます。Anthropic も、まずは最小構成で始め、性能が明確に良くなるときだけ複雑さを足すよう勧めています。
ループの擬似コード
中心はレッスン4の ReAct ループです。擬似コードで書くと、驚くほど短くなります。
messages = [system_prompt, user_goal]
for step in 1..MAX_STEPS:
response = call_model(messages, tools) # モデルに次の一手を尋ねる
if response.is_final: # 終了判定
return response.text
tool_name, args = response.tool_call # ツール選択
result = run_tool(tool_name, args) # 実行
messages.append(response) # 思考・行動を履歴に追記
messages.append(observation(result)) # 観察を履歴に追記
return "上限に達しました" # 停止条件
やっていることは「モデル呼び出し → ツール選択 → 実行 → 観察を履歴に追記 → 終了判定」の繰り返しだけです。
3つの準備物
- ツール定義(レッスン3): 名前・説明・引数スキーマを用意する。説明文は、モデルが「いつ使うか」を判断できるよう具体的に書くのがコツです。
- システムプロンプト(レッスン2): 役割・守るべきルール・出力の作法を書く。Anthropic のドキュメントは、ツールを使ってほしいときは「まず調べてから答えて」のような一文が有効だとしています。
- 停止条件と上限(レッスン9): 最大ステップ数や、完了の合図を決めておく。安全装置はここで効きます。
まず小さく、計測して足す
いきなり多数のツールやマルチエージェントを盛り込まないことが肝心です。
- 小さく作る: 1〜2個のツールと単一ループから始める。
- 計測する: 代表的なタスクで成功率・コスト・ステップ数を測る(レッスン9の eval とトレース観測)。
- 必要なら足す: ボトルネックが見えたときだけ、計画・メモリ/RAG・追加ツール・マルチエージェントを検討する。
この「小さく作って計測して足す」反復こそ、つまずきにくい近道です。
まとめ
最小エージェントは短いループ+ツール定義+システムプロンプト+停止条件で作れます。まず小さく作り、計測しながら必要なものだけ足していきましょう。レッスン1〜10、おつかれさまでした。ここからは出典の一次情報や実際の実装にあたって、手を動かして深めてみてください。