普通のChat AIに「旅行前に何を準備すればいい?」と聞けば、チェックリストを返してくれます。
一方、「条件に合う便を三つ探し、ルールを比較して、候補を旅行メモへ追加して」と依頼すると、完成までに複数のActionが必要です。
ここがAI Agentを理解する入口です。
一回のModel ResponseだけではAgentではない
言語モデルは一回のCallで文章を生成できます。
Agentでは、そのModelをより大きな処理のLoopへ入れます。
- 現在の状態を確認する
- 次のActionを決める
- 必要ならToolを呼ぶ
- Tool Resultを読む
- Stateを更新する
- 続行か停止かを決める
この繰り返しをAgent Loopと呼ぶことがあります。
Toolが文章をActionへ変える
モデルが勝手にあなたのCalendar、Database、GitHubへアクセスできるわけではありません。
開発者が、
- Database Search
- File Read
- Calculator
- API Call
- Calendar Event作成
- Message送信
- Sandbox内でCode実行
など、使ってよいToolを定義します。
モデルはToolの説明と現在のContextを見て、どれを使うか判断します。
そのため、現代のTool Callingでは、必ずしもToolごとにモデルを再学習する必要はありません。Tool Schemaを実行時Contextとして渡せるモデルもあります。
AgentにはStateが必要
Toolを実行した後、「何をしたか」を次のStepへ渡す必要があります。
Stateには、Goal、過去のAction、Tool Output、Error、途中結果などが含まれます。
Stateがなければ、毎回ゼロから新しい会話を始めるようなものです。
Planは長ければ良いわけではない
最初に長いPlanを作るAgentもあれば、毎回「次の一手」だけを決めるAgentもあります。
環境が途中で変われば長いPlanは古くなります。一方、完全にReactiveだと無駄なCallが増えることがあります。
実用では、大きなGoalと短いFeedback Loopを組み合わせることがよくあります。
Agentの失敗はChatより影響が大きい
Chatbotの誤答なら、読んで直せます。
Agentが間違えると、Fileを書き換える、料金を使う、誰かへMessageを送る、といった実Actionにつながる可能性があります。
そのため、
- Tool Permissionを狭くする
- 重要Actionは人間確認を入れる
- Step数を制限する
- Cost / Time Budgetを設ける
- Logを残す
- Tool Outputを検証する
といった設計が重要です。
第019回の料金も重要で、一つのUser Taskから複数回Model APIが呼ばれる場合があります。
Agent = 完全自動ではない
重要操作の前に毎回人間へ確認するAgentでも、十分Agentです。
Autonomyの強さは設計上の選択です。
今日の一文
AI Agentとは、ModelをLoopの中で使い、Goalに向かってActionを選び、Toolを実行し、Stateを更新するシステムです。
次は、多くのAI検索やRAGで使われるEmbeddingとVector Databaseへ進みます。
コメント
質問、感想、補足したいことがあれば、ここに残せます。
まだコメントはありません。1Fになってみませんか。