AIエージェント入門|ローカルLLMで学ぶチャットとJSON出力【第1週】

スポンサーリンク
この記事は約11分で読めます。

AIエージェントを学びたいと考えたとき、多くの人が最初に悩むのは「何から始めればいいのか」という点です。
特に最近は、さまざまなフレームワークやSDKが登場しており、どれを使えばよいのか迷ってしまうことも少なくありません。

しかし、いきなりフレームワークやSDKに触れると、内部で何が起きているのか分からないまま使うことになり、本質が見えにくくなります。
その結果、「動かせるけれど理解できていない」という状態に陥りやすくなります。

そこで本記事では、できるだけシンプルな構成に絞り、ローカルLLMを使ってAIエージェントの基本を一から理解する方法を解説します。
外部サービスに依存せず、手元の環境だけで動かすことで、費用を抑えて仕組みをしっかり把握できるようになります。

本記事は、AIエージェントを段階的に学ぶシリーズの第1週です。
まずは「チャット」と「JSON出力」を通して、AIがどのように判断し、情報を整理するのかという基礎を体験していきます。

実際に手を動かしながら進めることで、「AIが判断するとはどういうことか」を体感できる内容になっています。

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形式に変換します。

このように構造化することで、次のようなことが可能になります。

  • 条件分岐ができる(例: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で以下を実行し、今回の作業用フォルダを作成します。

ステップ3:Ollamaの動作確認とモデル準備

次に、Ollama が使える状態か確認します。

ターミナル(Git Bash)で以下を実行します。

バージョンが表示されればOKです。

続いて、学習用に使うローカルLLM準備します。

初回はモデルのダウンロードが行われます。
起動後に簡単な入力を試して、動作確認できれば準備完了です。

ロードされたモデル(Qwen3-32B / 72B、Qwen3-8B / 14B)の詳細は、下記コマンドで確認できます。

ステップ4:Pythonの確認とインストール

今回の作業ではPythonを使用します。
まずは、Pythonがインストールされているか確認します。

Git Bashで以下を実行してください。

バージョンが表示されれば、そのまま次のステップに進めます。

Pythonがインストールされていない場合

上記コマンドでエラーが出る場合は、Pythonがインストールされていません。
その場合は、以下の公式サイトからダウンロードしてインストールしてください。

Download Python | Python.org

インストール時の注意点

インストール画面で必ず次にチェックを入れてください。

Add Python to PATH

インストール後の確認

インストールが完了したら、再度Git Bashを開き直し、以下を実行します。

正しく表示されれば準備完了です。

ステップ5:Python仮想環境を作る

Pythonで作業を行う際は、プロジェクトごとに環境を分けておくと安全です。
これにより、他のプロジェクトとの依存関係の衝突を防ぐことができます。

仮想環境とは、他のプロジェクトと分離された「専用のPython実行環境」のことです。

今回は、仮想環境(venv)を使って専用の環境を作成します。

以下のコマンドを実行してください。

これにより、.venvというフォルダが作成され、その中にこのプロジェクト専用のPython環境が用意されます。

Git Bash(MINGW64)で仮想環境(.venv)を有効化するには、以下のコマンドを実行します。

コマンド実行後、プロンプトの先頭に (.venv) と表示されます。

仮想環境は、以下のコマンドで終了できます。

ステップ6:Ollama操作用ライブラリをインストールする

次に、PythonからOllamaを操作するためのライブラリをインストールします。

※仮想環境のPythonを指定して実行します。

ステップ7:まずはチャットを動かしてみる

ここでは、PythonからOllamaを呼び出し、ローカルLLMと簡単なチャットができることを確認します。
まずはエージェントを作るのではなく、「PythonのコードからAIにメッセージを送り、返答を受け取る」というAIと会話するための最小コードを実行します。

コード(chat.py)の作成

VSCodeまたはnanoを使って、Pythonファイルを作成し保存します。

messages :AIに渡す会話の内容。(役割付きのメッセージの配列
system:AIに対する基本ルールを設定
user:実際にAIへ送る質問
response:モデル名やメッセージ本体などを含む辞書形式のデータが返却されます。
print(response["message"]["content"]):返却されたデータの中からAIの返答本文だけを取り出して表示
参考GitHub – ollama/ollama-python: Ollama Python library · GitHub

コードの実行

Git Bashで次のコマンドを実行します。

正常に動けば、AIからの返答がターミナルに表示されます。

実行例

ステップ8:JSON出力にする

ここが今回の核心です。
前のステップでは、PythonからローカルLLMに質問し、自然な文章で返答を受け取るところまで確認しました。

ただし、AIエージェントを作るうえでは、自然な文章だけでは不十分です。
なぜなら、文章のままではプログラムが扱いにくく、次の処理につなげにくいからです。

そこでこのステップでは、AIの出力をJSON形式にそろえて返させます。
次のコードは、AIの返答をプログラムで使える形に整えるコードです。

コード(json_output.py)の作成

VSCodeまたはnanoを使って、Pythonファイルを作成し保存します。

このコードでは、AIの返答をJSON形式で出力しています。

schema:返却するデータ形式を指定
type: “object”:データ全体が1つのオブジェクトであることを指定
properties :オブジェクト中の項目を定義(task:内容、priority:優先度)

コードの実行

Git Bashで次のコマンドを実行します。

正常に動けば、AIからの返答がターミナルに表示されます。

実行例

第1週のまとめ

この週では、AIエージェントの基礎となる考え方を学びました。
特に重要なのは、次の3つです。

1. ローカルLLMでチャットできる

自分のPC上でAIを動かし、Pythonのコードから直接やり取りできるようになりました。
これにより、クラウドサービスに依存せずにAIを活用する基本が理解できます。

2. JSONで出力を制御できる

AIの返答を文章ではなくJSON形式で受け取ることで、
そのままプログラムで扱えるデータとして利用できるようになりました。

3. AIは「判断役」として使える

AIは単に文章を生成するだけでなく、
入力された内容をもとに「何をするべきか」を判断する役割も担えます。


第1週では、AIに「考えさせる」ための準備を学びました。
しかし、現時点ではまだAIは答えを返すだけの状態です。

次のステップでは、AIが自ら判断して実際に処理を実行する方法を学びます。

たとえば、

  • 「タスクを追加する」と判断する
  • 実際にプログラムの関数を呼び出す
  • 処理結果をもとに次の行動を決める

といった、よりエージェントらしい動きができるようになります。

第2週では「ツール(関数)を呼び出すエージェント」を実装します。