· 7 分で読める · 3,389 文字
AIエージェントの仕組みを新人エンジニア向けにゼロから解説する
「AIエージェント」という言葉を聞かない日はなくなりました。でも「ChatGPTと何が違うの?」と聞かれると、意外とスッキリ答えられない人も多いはず。この記事では、エンジニアとしてAIエージェントの仕組みを理解し、簡単なものを自分で作れるようになるところまでを目指します。
チャットAIとエージェントの決定的な違い
ChatGPTやClaudeに質問すると、答えが返ってきます。1回の会話で完結する、いわば「一問一答」のモデルです。
AIエージェントは違います。目的を与えると、自分で計画を立て、必要なツールを呼び出し、結果を確認し、次のアクションを決める。つまり「自分で考えて動く」仕組みです。
たとえば「来週の出張の新幹線を予約して」と頼んだとき——
- チャットAI:「〇〇駅から△△駅への新幹線は、以下の時刻があります…」と情報を返すだけ
- AIエージェント:カレンダーを確認→空き時間を特定→予約サイトにアクセス→座席を選んで予約→結果を報告
この「ループして自律的に動く」のがエージェントの本質です。2025年が「AIエージェント元年」と呼ばれ、2026年はそれが組織の業務フローに組み込まれ始めた年になっています。
エージェントを構成する4つの要素
AIエージェントは、どんなに複雑なものでも基本的に4つのパーツで成り立っています。
1. LLM(大規模言語モデル)— 脳
Claude、GPT-4、Geminiなど。判断と推論を担当します。エージェントの「賢さ」はここで決まります。
2. ツール — 手足
Web検索、ファイル操作、API呼び出し、データベースへのクエリなど。LLMだけでは「考える」ことしかできませんが、ツールがあれば「行動」できます。
3. メモリ — 記憶
会話の履歴や、途中で得た情報を保持する仕組み。短期メモリ(今のタスクの文脈)と長期メモリ(過去の経験)があります。
4. プランナー — 司令塔
目標を受け取り、サブタスクに分解し、実行順を決める。「まずWebを検索して、次にコードを書いて、最後にテストを走らせる」のような段取りを組むのがこの部分です。
最小限のAIエージェントを作ってみる
理屈はいいから手を動かしたい、という人向けに、Pythonで最小限のエージェントを書いてみましょう。Anthropic Claude APIを使った例です。
# 環境: Python 3.12 / anthropic 0.52.0
# pip install anthropic
import anthropic
import json
client = anthropic.Anthropic() # ANTHROPIC_API_KEY環境変数を設定
# ツールの定義(天気を取得する擬似ツール)
tools = [
{
"name": "get_weather",
"description": "指定した都市の天気を取得する",
"input_schema": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "都市名"}
},
"required": ["city"]
}
}
]
def get_weather(city):
# 実際にはAPIを呼ぶ。ここではダミーデータ
return {"city": city, "temp": "18°C", "condition": "晴れ"}
# エージェントループ
messages = [{"role": "user", "content": "東京と大阪の天気を比較して"}]
while True:
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
tools=tools,
messages=messages,
)
# ツール呼び出しがなければ完了
if response.stop_reason == "end_turn":
print(response.content[0].text)
break
# ツール呼び出しを処理
for block in response.content:
if block.type == "tool_use":
result = get_weather(block.input["city"])
messages.append({"role": "assistant", "content": response.content})
messages.append({
"role": "user",
"content": [{
"type": "tool_result",
"tool_use_id": block.id,
"content": json.dumps(result, ensure_ascii=False),
}]
})
このコードのポイントはwhile Trueループです。LLMが「もうツールを呼ぶ必要がない」と判断するまでループが続きます。これがエージェントの「自律性」の正体で、ループの中でLLMが次にやることを自分で決めています。
実務で使われているエージェントの例
「エージェントって結局、業務でどう使うの?」という疑問に答えます。
コーディングエージェント
Claude CodeやCursor Agentがこのカテゴリ。「この関数にテストを追加して」と頼むと、コードを読み、テストを書き、実行して、エラーがあれば修正するところまで自動でやります。
カスタマーサポートエージェント
ユーザーの質問を受けて、社内ナレッジベース(RAG)を検索し、回答を生成。解決できなければ人間のオペレーターにエスカレーションする判断も自動化されています。
データ分析エージェント
「先月の売上を地域別に分析して」と言えば、SQLを生成→実行→結果をグラフ化→考察を添えるところまで一気通貫で処理します。
エージェント開発で新人がハマりやすいポイント
無限ループに注意
エージェントは「自分で判断してループする」仕組みなので、終了条件が曖昧だとループが止まりません。最大ループ回数の制限は必ず入れましょう。
ツールの説明文が雑だとLLMが正しく呼べない
ツールのdescriptionはLLMが「いつこのツールを使うべきか」を判断する根拠です。「データを取得する」ではなく「指定されたユーザーIDに基づいて、ユーザーのプロフィール情報をJSON形式で返す」くらい具体的に書きましょう。
コストが予想外に膨らむ
1回のタスクでLLMが5〜10回APIを呼ぶのはザラです。開発中は安価なモデル(Claude Haikuなど)で動作確認し、本番で高性能モデルに切り替えるのが定石です。
よくある質問
RPAは「事前に定義されたルール通り」に動きます。画面のこのボタンを押して、このフィールドに入力して、という手順が固定。AIエージェントは「目標だけ与えて、手順はAIが考える」点が根本的に違います。想定外のエラーが出ても、エージェントは自分で対処を考えられます。
PythonかTypeScriptが主流です。ライブラリが充実しており、LangChainやAnthropic SDKなどエージェント構築用のツールがそろっています。まずはPythonで基礎を押さえ、Webサービスとして提供するならTypeScriptに移行する流れが多いです。
もちろん。上のコード例のように、50行程度で基本的なエージェントは動きます。APIキーさえあればローカルPCで開発でき、クラウドのセットアップは不要です。まずは「自分のメール下書きを自動で作るエージェント」あたりから始めると、実用性を感じながら学べます。
まとめ
- AIエージェントは「自分で考えてループして行動するAI」。チャットAIとの違いは自律性にある
- 構成要素はLLM(脳)、ツール(手足)、メモリ(記憶)、プランナー(司令塔)の4つ
- 最小限のエージェントはPython数十行で作れる。まずは手を動かしてみるのが近道
- 開発時は無限ループ防止・ツール説明の品質・コスト管理の3点に注意
参考: Anthropic公式 - Building Agentic Loops