3秒でわかる
言語モデルが道具を選びながら複数の手順を自分で進める仕組み。一度の応答では終わらない作業を、人の指示なしに完了させるために使います。
30秒図解
もう少し詳しく
どういうものか
AI エージェントは、言語モデルに道具を渡し、目的を達成するまで「次に何をするか」を自分で決めさせる仕組みです。単発の応答との違いは繰り返しがある点にあります。モデルが使う道具を選び、実行結果を受け取り、その結果を見て次の一手を決める、という輪を、終わりの条件を満たすまで回します。
現在よく使われる構成は、考えと行動を交互に出させる進め方、モデルに道具の呼び出しを構造化された形で出させる仕組み、そして道具の接続方法を共通化した MCP の組み合わせです。
なぜ必要か
「先週のエラーログを調べて原因をまとめて」という依頼は、一度の応答では終わりません。ログを検索し、件数を数え、該当のコードを読み、必要なら別の期間も調べる、という段取りが要ります。手順を人が毎回指示すると、人が待つ時間のほうが長くなります。エージェントは、この段取り自体をモデルに任せます。
具体例
道具の定義と、その結果を返す輪の骨格です。
tools = [{
"name": "search_logs",
"description": "期間を指定してエラーログを検索する",
"input_schema": {
"type": "object",
"properties": {"since": {"type": "string"}},
},
}]
messages = [{"role": "user", "content": "先週のエラーを調べて"}]
while True:
reply = model.create(messages=messages, tools=tools)
if reply.stop_reason != "tool_use":
break
result = run_tool(reply.tool_name, reply.tool_input)
messages += [reply.as_message(), {"role": "user", "content": result}]つまずきやすいところ
道具の説明文が曖昧だと、モデルは正しい道具を選べません。名前と説明は、人間の新人に渡す手順書のつもりで、いつ使うか、何を渡すか、何が返るかを書き切る必要があります。エージェントがうまく動かない原因の多くは、モデルの能力ではなく道具の説明にあります。
繰り返しの上限を決めないのも危険です。同じ道具を延々と呼び続け、費用だけが積み上がることがあります。回数の上限と、途中経過を確認できる記録を最初から用意してください。
ファイル削除や外部への送信のように、取り返しのつかない操作は、実行前に人の承認を挟む設計が必要です。