AIエージェントの学び方をゼロから6段階で解説
AIエージェントをゼロから学ぶ6段階の道筋です。概念、手書きのループ、ツール、メモリ、設計、安全性を学び、各段階で1つずつ実際に構築します。
6段階の学習経路
AIエージェントをゼロから学ぶには、概念、最初のループ、ツール、メモリ、ループ設計、安全性の6段階を順番に進めます。各段階では、自分の手で1つのものを構築します。先に進みすぎると、多くの場合そこで行き詰まります。フレームワークによって、本来確認する必要があった部分が隠されるためです。
AIエージェントとは、ツールを呼び出せる言語モデルを中心としたループです。これが、このテーマのすべてです。それ以降は、ループに何を含めるか、ツールが何にアクセスできるか、問題が発生したときにループをどう停止するかという詳細です。ループを他の人に説明できれば、内容を理解できています。フレームワークの名前しか挙げられないなら、まだ理解できていません。
以下の計画は、構築しながら学ぶことを前提としています。各段階を読み、小さなものを構築し、意図的に壊してから次に進みます。読んだだけの段階は、まだ実践していない段階です。
stage 1 の前に実際に必要なこと
前提条件は簡潔です。多くのコースページが示す内容よりも少なくて済みます。
- 50行程度のスクリプトを書けるレベルで、Python または TypeScript の読み書きができる。
- Linux shell の操作に慣れている。パッケージのインストール、ファイルの編集、ログの確認ができる。
- ホスト型モデル用の API key、またはローカルモデルを実行できるマシンがある。
必要なのは以上です。機械学習の理論は必要ありません。モデルをトレーニングした経験も必要ありません。エージェントの開発で勾配やトレーニングデータを扱うことはありません。グラフィックカードが必要になるのは、モデルを自分で実行する場合だけです。これは別のスキルであり、後から VPSでOllamaをホストしてLLMをセルフホストする方法 で習得できます。
多くの人が過小評価するのは、shell に関する部分です。エージェントは、権限、パス、環境変数、静かに終了するプロセスが原因で失敗します。PATH に関する stack trace やファイルモードの表示でターミナルを閉じたくなる場合は、先に週末を使って Linux の基礎を学んでください。後で1か月分の時間を節約できます。
Stage 1: エージェントとは何か、何ではないか
まず、ループなしで1回だけAPIを呼び出します。プロンプトを送信し、返答を表示し、レスポンス内のトークン数を確認します。これで、コストの単位とレイテンシの単位を理解できます。
次に、ツールの使用方法を学びます。これは、この分野全体で本当に新しい唯一の考え方です。関数を名前、説明、入力用のJSON(JavaScript object notation)スキーマとしてモデルに定義します。モデルは何も実行しません。構造化されたリクエストを返します。つまり、指定された引数でrun_commandを呼び出すよう要求します。コードが関数を実行し、その出力をメッセージとして送り返し、再びモデルに問い合わせます。モデルはテキストを読み、テキストを書くプランナーです。関数を実行するのはコードです。
チャットボットは1回の返答で終了します。エージェントは、モデルがツールを要求しなくなるまで、そのやり取りを繰り返します。この繰り返しが両者の違いのすべてであり、障害モードが異なる理由でもあります。チャットボットは1回だけ誤った回答をします。エージェントは、誰かが気付くまで、誤った回答に基づく操作を何度も実行します。
Stage 2: ループを一度、自分で記述する
フレームワークから始めないでください。Pythonを約30行記述し、処理の構成を自分で決めてください。
sudo apt update && sudo apt install -y python3-venv
python3 -m venv ~/agent
source ~/agent/bin/activate
pip install anthropic
export ANTHROPIC_API_KEY=your-key-hereimport subprocess
import anthropic
client = anthropic.Anthropic()
tools = [{
"name": "run_command",
"description": "Run a read only shell command and return its output.",
"input_schema": {
"type": "object",
"properties": {"command": {"type": "string"}},
"required": ["command"],
},
}]
messages = [{"role": "user", "content": "How much disk space is free here?"}]
while True:
response = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
tools=tools,
messages=messages,
)
if response.stop_reason != "tool_use":
break
messages.append({"role": "assistant", "content": response.content})
results = []
for block in response.content:
if block.type == "tool_use":
done = subprocess.run(
block.input["command"], shell=True,
capture_output=True, text=True, timeout=10,
)
results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": done.stdout or done.stderr,
})
messages.append({"role": "user", "content": results})
print(next(b.text for b in response.content if b.type == "text"))python3 agent.pyで実行します。正常に実行されると、ファイルシステムと空き容量を示す段落が1つ出力されます。これは、モデルがdf -hを要求し、コードがそれを実行し、2回目の処理でその表が文章に変換されたためです。何も出力されない場合は、テキストブロックが返る前にループが終了しています。ループ内にprint(response.stop_reason)を追加し、値が変化することを確認してください。
次に、意図的に壊してみます。tool_use_id行を削除してエラーを確認してください。一致するidのないツール結果はAPIに拒否されるためです。これは初心者に最も多いバグです。2つのコマンドが必要な質問を入力し、ループが2回実行されることを確認してください。実行不可能な質問を入力し、処理が諦めるか、無限に実行され続けるかを確認してください。
この例には1つ注意点があります。shell=Trueを使ってモデルの出力をそのままshellに渡しています。再構築できる検証用マシンでは許容されますが、それ以外の環境では不適切です。Stage 6でこの問題を修正します。ループの基礎概念については、VPS上で独自のAIエージェントを構築するで詳しく説明しています。
Stage 3: エージェントがまだ持っていなかったツール
run_command ツールは動作します。しかし、実際のエージェントには、外部のシステムに接続するツールが必要です。チケットシステム、データベース、リポジトリなどです。サービスごと、エージェントごとに専用のラッパーを作成する方法は、規模を拡大できません。
Model Context Protocol (MCP) が、業界で採用された解決策です。MCP server は標準トランスポート経由で一連のツールを公開します。MCP に対応したエージェントなら、専用の連携コードなしで利用できます。リファレンスの filesystem server は、1つのコマンドで起動できます。
npx -y @modelcontextprotocol/server-filesystem /home/you/projectsこのコマンドには Node のインストールが必要です。また、server がアクセスできるのは、ディレクトリ引数で指定したパスだけです。これがセキュリティモデルの要点です。境界を決めるのは model ではなく server です。client を接続すると、エージェントは、コードを自分で記述しなくてもファイルの読み取りと書き込みを実行できます。これらを service account の下で適切に実行し、transport の選択肢を説明する方法については、AI coding agent 用の VPS で MCP server を実行するで解説しています。
この段階の教訓は、ツール設計こそが本当の作業だということです。説明が曖昧だと、model は推測します。40000文字を返すツールは、context window を汚染します。削除できるツールは、最終的に何かを削除します。
ステージ 4: メモリ。その大半は単なるファイルです
ここでベクトルデータベースを使い始める初心者は多いですが、少なくともまだ必要ありません。
エージェントは呼び出しの間でメモリを保持しません。毎回、会話全体を再送します。そのため、長いセッションでは短いセッションよりも1ターンあたりのコストが高くなります。したがって、メモリには2つの問題があります。1つ目は、現在コンテキストウィンドウに収まる内容です。これは、要約、古いツール出力の削除、プロンプトの安定した先頭部分のキャッシュによって管理します。これにより、その部分にかかる料金を一部に抑えられます。2つ目は、再起動後も残る内容です。これはストレージの問題です。
2つ目の問題では、エージェントが読み書きできる通常の markdown ファイルのほうが、ほぼすべての最初のプロジェクトでベクトルデータベースより適しています。ファイルを1つ用意し、形式を指定します。開始前にそのファイルを読み、何かを学んだら更新するよう指示します。これで利点の大部分を得られ、ファイルを開いてエージェントが何を信じているか確認できます。メモがコンテキストウィンドウに収まらなくなったら、埋め込みと検索を導入してください。それまでは必要ありません。
Stage 5: ループが製品になる
ここまでで、監視しながら動作する agent を作れるようになりました。Stage 5 では、監視しなくても動作するようにします。
放置しても安全な agent かどうかは、4つの問いで決まります。何をトリガーにするか。何もない状態で実行されることを防ぎます。どの境界内で動作させるか。ミスが小さく収まります。結果をどのように検証するか。自分の宿題を自分で採点する agent は、必ず合格にするためです。トークン数または wall clock time で、どの予算が agent を停止させるか。これら4つを意図的に設計することが、loop engineering と、その定義が対象とする範囲で説明する規律です。
演習では、Stage 2 の agent に4つまたは5つの手順が必要なタスクを与え、厳格な反復回数の上限を追加します。次に上限を削除し、上限のないループがトークン料金に与える影響を確認します。大きな予算で誤って実行しないように、まず少額の予算で1回だけ行ってください。
ステージ 6: 安全性、シークレット、コスト
このステージは省略できません。最後に置くのは、動作するものを構築するまでリスクを実感できないためです。
エージェントは専用の非特権ユーザーとして実行してください。root として実行したり、自分のアカウントで実行したりしないでください。これにより、被害範囲をマシン全体ではなくディレクトリに限定できます。認証情報はモデルの到達範囲外に置いてください。コンテキストウィンドウにあるものは、ツール呼び出しを通じてそのまま引用される可能性があるためです。対策は、AI エージェントからシークレットを分離するで説明しているように、helper の背後で有効期間を短くしたトークンを使うことです。支出には厳しい上限を設定してください。監視する人がいない状態でループを実行すると、反復のたびに課金されるためです。適切な状態を維持するための上限設定とバッチ処理については、常時稼働 VPS での AI エージェントのコスト管理で説明しています。
コストについては、具体的な数字を1つ挙げます。2026年7月時点で、Claude Opus 5 は入力トークン100万件あたり $5、出力トークン100万件あたり $25 を課金します。増え続ける会話を再送する会話量の多いエージェントでは、1つのタスクで数十万トークンを処理することがあります。Prompt caching と、定型処理に小さなモデルを使うことは、prompt の調整よりもこの計算結果を大きく変えます。
Prompt injection もここで扱うべきです。エージェントが Web ページ、issue tracker、または inbox を読み取る場合、そのテキストを書いた人は、エージェントへの命令も書いていることになります。対策は、より巧妙な system prompt ではありません。境界を設けることです。リポジトリを削除できないエージェントは、削除するよう説得されることもありません。
どの学習マップに従うべきですか?
1つのカリキュラムを選び、6つを少しずつ試すのではなく、最後まで完了してください。Microsoft ai-agents-for-beginners リポジトリは、無料で利用できるものの中で最も完全な内容です。18レッスンで構成され、2026年7月時点で70,000スターを超えており、前述の段階にも無理なく対応します。トレンドのエージェントリポジトリをまとめた一覧は、どのようなものが存在するかを知るには役立ちます。一方、学習カリキュラムとしてはあまり役立ちません。スター順の一覧は、教育上の順序ではなく人気順だからです。
実際のプロジェクトで練習したい場合は、コーディングエージェントを最初の対象にするのが最適です。フィードバックがすぐに得られ、ツールも明確で、ミスを簡単に元に戻せます。VPSでコーディングAIエージェントを実行するでは、その手順を最初から最後まで説明しています。ゼロから構築するよりも動作するシステムを学びたい場合は、セルフホスト型AIエージェントの比較で、複数のプロジェクトが同じループをどのように異なる方法で実装しているかを確認できます。
どのくらい時間がかかりますか?
すでにプログラミングができる人なら、ステージ1と2は1晩で終わります。ステージ3は週末を1回使います。その大半は、プロトコルではなくツールの説明に費やします。ステージ4と5は、実際に使いながら数週間かかります。エージェントが何を忘れるかは、エージェントが忘れる様子を観察して初めて分かるためです。ステージ6は完全に終わることがありません。新しい機能を追加するたびに、再び取り組む必要があるためです。
2か月間、継続して夜に取り組めば、多くの人は動作範囲を限定した、実用的なエージェントを作れます。1年かかる人は、通常、作るよりも読み続けていた人です。
FAQ
AIエージェントを構築するために、機械学習の知識は必要ですか?
いいえ。エージェントの構築では、API経由でモデルを呼び出し、モデルのツール要求を実際の関数に接続します。これは通常のアプリケーションプログラミングです。トレーニング、勾配、データセットを扱うことはありません。エージェントが動作するかどうかを左右するのは、ツールのスキーマ設計、エラー処理、Linuxの権限です。機械学習理論が必要になるのは、モデルのファインチューニングまで進む場合だけです。これは前提条件が異なる別の作業です。
LangChainやCrewAIなどのフレームワークから始めるべきですか?
まず、フレームワークを使わずに1つのループを作成してから、フレームワークを導入してください。フレームワークは、stage 2の30行を設定オブジェクトに置き換えます。何を置き換えたのかを理解していれば便利ですが、理解する前は分かりにくくなります。エージェントが誤動作した場合は、メッセージリストとツールの結果を直接確認して原因を考える必要があります。これらを見たことがなければ、原因の特定はさらに難しくなります。自分で1つのループを作成した後なら、フレームワークは仕組みを隠すのではなく、作業時間を短縮します。
AIエージェントの学習には、どのくらいの費用がかかりますか?
上限を設定すれば、多くの人が考えるより少なくて済みます。ホスト型APIキーと小規模なVPSがあれば、これら6つのstageをすべて実行できます。本当のリスクは時間単価ではありません。実行中に無制限のループが各反復で課金され続けることです。初日にAPIアカウントへ厳格な支出上限を設定し、作成するすべてのループに反復回数の上限を追加してください。通常の処理には、より安価なモデルを使用してください。モデルをローカルで実行するとトークン料金はなくなりますが、代わりにハードウェアが必要になります。
AIエージェントとチャットボットの違いは何ですか?
チャットボットは1回だけ回答します。エージェントは、モデルがツールを要求し、コードがそのツールを実行し、結果をモデルへ返し、モデルが次の処理を決めるサイクルを繰り返します。この繰り返しにより、エージェントは複数の手順でタスクを完了できます。同時に、チャットボットには不要な境界条件がエージェントに必要になる理由でもあります。チャットボットの誤答は、誤った段落です。エージェントの誤答は、誤った段落に加えて、その内容に基づいて実行した処理も含みます。