3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【入門】AIエージェントとは?仕組みから作り方まで徹底解説

3
Posted at

はじめに

「AIエージェント」 が2026年のテック業界で最もホットなキーワードになっています。

でも「AIエージェントって何?ChatGPTと何が違うの?」と思っている方も多いのではないでしょうか。

この記事では、AIエージェントの仕組み、従来のAIとの違い、そして実際の作り方まで、初心者にもわかるように解説します。

AIエージェントとは

一言で言うと

「自分で考えて、自分で行動して、目標を達成するAI」 です。

従来のAIチャットとの違い

従来のAIチャット:
  人間: 「明日の天気は?」
  AI:   「東京は晴れ、最高気温15℃です」
  → 聞かれたことに答えるだけ

AIエージェント:
  人間: 「明日の外出に合わせて準備して」
  AI:   1. 天気を調べる → 晴れだが風が強い
        2. カレンダーを確認 → 14時に屋外ミーティング
        3. 服装を提案 → 防風ジャケット推奨
        4. 交通手段を確認 → 電車が遅延気味、早めに出発推奨
        5. リマインダーを設定
  → 自分で考えて複数のアクションを実行

3つの特徴

特徴 説明
自律性 指示がなくても自分で次のアクションを決める
ツール使用 外部のAPI、DB、ファイルシステム等を操作できる
目標指向 与えられたゴールに向かって行動し続ける

AIエージェントの仕組み

基本的なループ

┌─────────────────────────────────────┐
│                                     │
│  ① 入力を受け取る                    │
│         ↓                           │
│  ② 状況を分析する(LLMが思考)        │
│         ↓                           │
│  ③ 次のアクションを決める             │
│         ↓                           │
│  ④ ツールを実行する                   │
│         ↓                           │
│  ⑤ 結果を観察する                    │
│         ↓                           │
│  ⑥ 目標達成? → No → ②に戻る        │
│              → Yes → 結果を返す      │
│                                     │
└─────────────────────────────────────┘

これを ReAct(Reasoning + Acting)ループ と呼びます。

構成要素

AIエージェント = LLM(脳)+ ツール(手足)+ メモリ(記憶)+ プランニング(計画力)
要素 役割
LLM 思考・判断 Claude, GPT-4o
ツール 外部との接続 API呼び出し、ファイル操作、検索
メモリ 文脈の保持 会話履歴、作業状態
プランニング 計画の立案 タスク分解、優先順位付け

身近なAIエージェントの例

Claude Code

人間: 「ログイン機能を実装して」

Claude Code(エージェント)の動き:
1. プロジェクト構造を探索
2. 既存の認証コードを確認
3. 実装計画を立てる
4. ファイルを作成・編集
5. テストを実行
6. エラーがあれば修正
7. 完了を報告

GitHub Copilot Agent(Actions)

Issue: 「ダークモードのCSS変数が一部適用されていない」

AIエージェントの動き:
1. Issueを読んで問題を理解
2. 関連するCSSファイルを検索
3. 未適用の変数を特定
4. 修正コードを作成
5. PRを自動作成

AIエージェントを作ってみよう

シンプルなエージェントの実装(Python)

最もシンプルなAIエージェントを、PythonとClaude APIで作ってみましょう。

Step 1:基本構造

import anthropic
import json

client = anthropic.Anthropic()

# エージェントが使えるツールの定義
tools = [
    {
        "name": "get_weather",
        "description": "指定した都市の天気を取得する",
        "input_schema": {
            "type": "object",
            "properties": {
                "city": {
                    "type": "string",
                    "description": "都市名(例: 東京)"
                }
            },
            "required": ["city"]
        }
    },
    {
        "name": "search_web",
        "description": "Webで情報を検索する",
        "input_schema": {
            "type": "object",
            "properties": {
                "query": {
                    "type": "string",
                    "description": "検索クエリ"
                }
            },
            "required": ["query"]
        }
    }
]

Step 2:ツールの実装

def execute_tool(tool_name, tool_input):
    """ツールを実行して結果を返す"""
    if tool_name == "get_weather":
        # 実際にはAPIを呼ぶ。ここではダミー
        city = tool_input["city"]
        return f"{city}の天気: 晴れ、最高気温15℃、風速5m/s"

    elif tool_name == "search_web":
        query = tool_input["query"]
        return f"検索結果: '{query}' に関する情報が見つかりました"

    else:
        return f"不明なツール: {tool_name}"

Step 3:エージェントループ

def run_agent(user_message):
    """エージェントのメインループ"""
    messages = [{"role": "user", "content": user_message}]

    while True:
        # LLMに問い合わせ
        response = client.messages.create(
            model="claude-sonnet-4-5-20250929",
            max_tokens=4096,
            tools=tools,
            messages=messages,
        )

        # テキスト応答があれば表示
        for block in response.content:
            if block.type == "text":
                print(f"AI: {block.text}")

        # ツール使用がなければ終了
        if response.stop_reason == "end_turn":
            break

        # ツール使用を処理
        if response.stop_reason == "tool_use":
            # AI の応答をメッセージ履歴に追加
            messages.append({"role": "assistant", "content": response.content})

            tool_results = []
            for block in response.content:
                if block.type == "tool_use":
                    print(f"[ツール実行] {block.name}({block.input})")
                    result = execute_tool(block.name, block.input)
                    print(f"[結果] {result}")
                    tool_results.append({
                        "type": "tool_result",
                        "tool_use_id": block.id,
                        "content": result,
                    })

            # ツール結果をメッセージに追加
            messages.append({"role": "user", "content": tool_results})

    return messages

Step 4:実行

run_agent("明日東京で外出する予定です。天気を調べて準備すべきことを教えて")

出力例

[ツール実行] get_weather({"city": "東京"})
[結果] 東京の天気: 晴れ、最高気温15℃、風速5m/s

AI: 明日の東京の天気を確認しました。

晴れですが、風が少し強めです。以下の準備をおすすめします:

1. 服装: 薄手のジャケットやウィンドブレーカー
2. 紫外線対策: 日焼け止め、サングラス
3. 気温: 朝晩は冷えるので、重ね着がおすすめ
4. 風対策: 帽子は飛ばされやすいので注意

AIが自分でツールを呼び出し、結果を使って回答を作成しています。 これがエージェントの基本です。

エージェント開発のフレームワーク

主要フレームワーク

フレームワーク 特徴 言語
Claude Agent SDK Anthropic公式。Claude Codeと同じ基盤 Python / TypeScript
LangChain 最も有名。豊富なツール連携 Python / TypeScript
LangGraph LangChainの上に構築。複雑なワークフロー Python
CrewAI 複数エージェントの協調 Python
AutoGen Microsoft製。マルチエージェント Python

初心者におすすめ

まず始めるなら → Claude Agent SDK or LangChain
複雑なワークフロー → LangGraph
マルチエージェント → CrewAI

マルチエージェントシステム

1体 vs 複数のエージェント

シングルエージェント:
  1体のAIが全てのタスクをこなす

マルチエージェント:
  複数のAIが役割分担して協力する

マルチエージェントの例

リーダーエージェント: タスクを分解して各エージェントに割り振る
├── コーディングエージェント: コードを書く
├── レビューエージェント: コードをレビューする
├── テストエージェント: テストを書いて実行する
└── ドキュメントエージェント: ドキュメントを更新する

Claude Codeの Agent Teams 機能がまさにこのマルチエージェント構成です。

AIエージェント開発のポイント

1. ツールの設計が重要

✅ ツールの説明を明確に書く(AIはこれを読んで判断する)
✅ 入出力の型を明確に定義する
✅ エラーハンドリングを入れる
❌ 1つのツールに機能を詰め込みすぎない

2. 安全性の確保

✅ 実行前に人間の承認を求める仕組み
✅ 実行できるアクションの制限
✅ ログの記録
❌ 重要な操作を無制限に許可しない

3. コスト管理

✅ ループ回数の上限を設定
✅ トークン使用量を監視
✅ 不要なツール呼び出しを減らす

まとめ

ポイント 内容
AIエージェントとは 自律的に思考・行動して目標を達成するAI
仕組み LLM + ツール + メモリ + プランニング
従来のAIとの違い 「答える」から「行動する」へ
作り方 ツール定義 + エージェントループ
注目フレームワーク Claude Agent SDK, LangChain, LangGraph

AIエージェントは 2026年最大のテクノロジートレンド です。基本的な仕組みを理解しておくだけで、今後のキャリアに大きなアドバンテージになります。


著者: @kotaro_ai_lab
AI駆動開発やテック情報を毎日発信しています。フォローお気軽にどうぞ!

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?