AIエージェントを学びたいと考えたとき、多くの人が最初に悩むのは「何から始めればいいのか」という点です。
特に最近は、さまざまなフレームワークやSDKが登場しており、どれを使えばよいのか迷ってしまうことも少なくありません。
しかし、いきなりフレームワークやSDKに触れると、内部で何が起きているのか分からないまま使うことになり、本質が見えにくくなります。
その結果、「動かせるけれど理解できていない」という状態に陥りやすくなります。
そこで本記事では、できるだけシンプルな構成に絞り、ローカルLLMを使ってAIエージェントの基本を一から理解する方法を解説します。
外部サービスに依存せず、手元の環境だけで動かすことで、費用を抑えて仕組みをしっかり把握できるようになります。
本記事は、AIエージェントを段階的に学ぶシリーズの第1週です。
まずは「チャット」と「JSON出力」を通して、AIがどのように判断し、情報を整理するのかという基礎を体験していきます。
実際に手を動かしながら進めることで、「AIが判断するとはどういうことか」を体感できる内容になっています。
AIエージェントとは
AIエージェントとは、ユーザーの指示をもとに自ら判断し、必要な処理を段階的に実行して目的を達成する仕組みです。

単なるチャットとは異なり、タスクの整理や優先度の判断、ツールの利用などを組み合わせて動作します。本記事では、ローカルLLMを用いて、この「判断する仕組み」の基礎を学びます。
たとえば、「ToDoを整理して」といった指示に対して、タスクを分類し、優先度を判断し、必要であれば保存処理を行うといった一連の流れを自動で実行します。
AIエージェントは、主に次のような要素で構成されます。
- 入力を理解する(ユーザーの意図を解釈する)
- 次に何をするか判断する
- 必要に応じてツールを使う
- 結果をもとに処理を続ける
本記事では、この中でもまず「判断する仕組み」に焦点を当て、ローカルLLMを使ってその基礎を学んでいきます。
AIエージェント学習ロードマップ(全体像)
| 週 | 内容 |
|---|---|
| 第1週 | ローカルLLMでチャット + JSON出力 |
| 第2週 | ローカル関数を呼ぶツールエージェント |
| 第3週 | ループ型エージェント |
| 第4週 | 2エージェント構成(司令塔 + 実行役) |
第1週のゴール
この週では、AIエージェントの基本となる考え方を、実際に手を動かしながら学びます。
まずは次の3つができるようになることを目標にします。
- ローカルLLMを使ってチャットを動かせる
- AIの出力をJSON形式で扱えるようになる
- AIがどのように「判断しているのか」をイメージできるようになる
なぜJSON出力が重要なのか?
自然言語の問題点
通常のAIは、次のように自然な文章で回答します。
明日までに請求書を送るタスクですね。優先度は高そうです。
一見すると分かりやすいですが、このままではエージェントとしては扱いにくいという問題があります。
なぜなら、このような自然言語はプログラムでそのまま処理することができないためです。
例えば、
- どの部分がタスクなのか
- 優先度が「高」なのかどうか
といった情報を、プログラム側で正確に判断することが難しくなります。
JSONにするメリット
そこで、AIの出力を次のようなJSON形式に変換します。
{
"task": "請求書を送る",
"priority": "high"
}このように構造化することで、次のようなことが可能になります。
- 条件分岐ができる(例:priorityがhighなら優先処理)
- ツールや関数にそのまま渡せる
- データとして保存・再利用できる
つまり、 自然言語を「プログラムで扱えるデータ」に変換するということです。
この「構造化された出力」を扱えるようになることが、AIエージェントを作るための最初のステップになります。
作業環境
今回の前提環境は以下の通りです。
- OS:Windows 11
- エディタ:Visual Studio Code
- ターミナル:Git Bash
- ローカルLLM実行環境:Ollama
- ローカルLLM:qwen3
Ollama上でqwen3モデルを実行します。
ステップ1:Ollamaのインストール
まず、ローカルLLM実行環境である
Ollama をインストールします。
公式サイトからWindows版をダウンロードし、インストールしてください。
ステップ2:作業フォルダを作成する
まずは、今回の作業用フォルダを作成します。
はじめに、Git Bashをインストールします。
次に、VSCodeで新しいターミナルを開き、Git Bashを選択しておきます。
Git Bashで以下を実行し、今回の作業用フォルダを作成します。
#Git Bash画面
MINGW64 /c/Users/Owner
$ cd ~ #ホームディレクトリへ移動
$ mkdir -p work/agent_week1 #作業フォルダの作成
$ cd work/agent_week1 #作業フォルダへ移動
MINGW64 ~/work/agent_week1
$ ステップ3:Ollamaの動作確認とモデル準備
次に、Ollama が使える状態か確認します。
ターミナル(Git Bash)で以下を実行します。
ollama --versionバージョンが表示されればOKです。
続いて、学習用に使うローカルLLM準備します。
ollama run qwen3初回はモデルのダウンロードが行われます。
起動後に簡単な入力を試して、動作確認できれば準備完了です。
ロードされたモデル(Qwen3-32B / 72B、Qwen3-8B / 14B)の詳細は、下記コマンドで確認できます。
/show infoステップ4:Pythonの確認とインストール
今回の作業ではPythonを使用します。
まずは、Pythonがインストールされているか確認します。
Git Bashで以下を実行してください。
python --versionバージョンが表示されれば、そのまま次のステップに進めます。
Pythonがインストールされていない場合
上記コマンドでエラーが出る場合は、Pythonがインストールされていません。
その場合は、以下の公式サイトからダウンロードしてインストールしてください。
インストール時の注意点
インストール画面で必ず次にチェックを入れてください。
Add Python to PATH
インストール後の確認
インストールが完了したら、再度Git Bashを開き直し、以下を実行します。
python --version正しく表示されれば準備完了です。
ステップ5:Python仮想環境を作る
Pythonで作業を行う際は、プロジェクトごとに環境を分けておくと安全です。
これにより、他のプロジェクトとの依存関係の衝突を防ぐことができます。
仮想環境とは、他のプロジェクトと分離された「専用のPython実行環境」のことです。
今回は、仮想環境(venv)を使って専用の環境を作成します。
以下のコマンドを実行してください。
python -m venv .venvこれにより、.venvというフォルダが作成され、その中にこのプロジェクト専用のPython環境が用意されます。
Git Bash(MINGW64)で仮想環境(.venv)を有効化するには、以下のコマンドを実行します。
source .venv/Scripts/activateコマンド実行後、プロンプトの先頭に (.venv) と表示されます。
仮想環境は、以下のコマンドで終了できます。
deactivateステップ6:Ollama操作用ライブラリをインストールする
次に、PythonからOllamaを操作するためのライブラリをインストールします。
./.venv/Scripts/python.exe -m pip install -U ollama※仮想環境のPythonを指定して実行します。
ステップ7:まずはチャットを動かしてみる
ここでは、PythonからOllamaを呼び出し、ローカルLLMと簡単なチャットができることを確認します。
まずはエージェントを作るのではなく、「PythonのコードからAIにメッセージを送り、返答を受け取る」というAIと会話するための最小コードを実行します。
コード(chat.py)の作成
VSCodeまたはnanoを使って、Pythonファイルを作成し保存します。
from ollama import chat
response = chat(
model="qwen3",
messages=[
{"role": "system", "content": "あなたは簡潔なアシスタントです。"},
{"role": "user", "content": "AIエージェントとは何ですか?"}
],
)
print(response["message"]["content"])messages :AIに渡す会話の内容。(役割付きのメッセージの配列)system:AIに対する基本ルールを設定user:実際にAIへ送る質問response:モデル名やメッセージ本体などを含む辞書形式のデータが返却されます。print(response["message"]["content"]):返却されたデータの中からAIの返答本文だけを取り出して表示
参考:GitHub – ollama/ollama-python: Ollama Python library · GitHub
コードの実行
Git Bashで次のコマンドを実行します。
./.venv/Scripts/python.exe chat.py正常に動けば、AIからの返答がターミナルに表示されます。
実行例
(.venv)
MINGW64 ~/work/agent_week1
$ ./.venv/Scripts/python.exe chat.py
AIエージェントとは、環境を感知し、目標達成のために行動を起こす自律的なシステムです。
- **特徴**:
- 自動で環境を観測・判断・行動する。
- 人間の介入を必要とせず、目的を達成するための最適な選択をします。
- 学習能力を持つ場合もあり(例:機械学習を用いた適応)。
- **種類**:
- **反応型**:即時的な刺激に応じて行動(例:自動車の衝突回避)。
- **計画型**:将来の状況を予測して行動(例:ロボットの最適経路選定)。
- **学習型**:経験から知識を蓄積し、改善(例:推薦システム)。
- **応用例**:
- 自動運転車、スマートホーム、チャットボット、産業ロボットなど。
要約すると、AIエージェントは「目的を達成するための自律的行動を取るシステム」です。ステップ8:JSON出力にする
ここが今回の核心です。
前のステップでは、PythonからローカルLLMに質問し、自然な文章で返答を受け取るところまで確認しました。
ただし、AIエージェントを作るうえでは、自然な文章だけでは不十分です。
なぜなら、文章のままではプログラムが扱いにくく、次の処理につなげにくいからです。
そこでこのステップでは、AIの出力をJSON形式にそろえて返させます。
次のコードは、AIの返答をプログラムで使える形に整えるコードです。
コード(json_output.py)の作成
VSCodeまたはnanoを使って、Pythonファイルを作成し保存します。
from ollama import chat
schema = {
"type": "object",
"properties": {
"task": {"type": "string"},
"priority": {
"type": "string",
"enum": ["low", "medium", "high"]
}
},
"required": ["task", "priority"]
}
response = chat(
model="qwen3",
messages=[
{
"role": "user",
"content": "明日までに請求書を送るタスクを整理して"
}
],
format=schema,
)
print(response["message"]["content"])このコードでは、AIの返答をJSON形式で出力しています。
schema:返却するデータ形式を指定
type: “object”:データ全体が1つのオブジェクトであることを指定properties :オブジェクト中の項目を定義(task:内容、priority:優先度)
コードの実行
Git Bashで次のコマンドを実行します。
./.venv/Scripts/python.exe json_output.py正常に動けば、AIからの返答がターミナルに表示されます。
実行例
{ "task": "明日までに請求書を送るタスクを整理する", "priority": "high" }第1週のまとめ
この週では、AIエージェントの基礎となる考え方を学びました。
特に重要なのは、次の3つです。
1. ローカルLLMでチャットできる
自分のPC上でAIを動かし、Pythonのコードから直接やり取りできるようになりました。
これにより、クラウドサービスに依存せずにAIを活用する基本が理解できます。
2. JSONで出力を制御できる
AIの返答を文章ではなくJSON形式で受け取ることで、
そのままプログラムで扱えるデータとして利用できるようになりました。
3. AIは「判断役」として使える
AIは単に文章を生成するだけでなく、
入力された内容をもとに「何をするべきか」を判断する役割も担えます。
第1週では、AIに「考えさせる」ための準備を学びました。
しかし、現時点ではまだAIは答えを返すだけの状態です。
次のステップでは、AIが自ら判断して実際に処理を実行する方法を学びます。
たとえば、
- 「タスクを追加する」と判断する
- 実際にプログラムの関数を呼び出す
- 処理結果をもとに次の行動を決める
といった、よりエージェントらしい動きができるようになります。
第2週では「ツール(関数)を呼び出すエージェント」を実装します。
