SSD Nodes Learn Hosting plans →
ガイド Matt Connor著者 Matt Connor ・更新日 2026-08-28

AIエージェントの学び方をゼロから6段階で解説

AIエージェントをゼロから学ぶ6段階の道筋です。概念、手書きのループ、ツール、メモリ、安全性まで、各段階で1つ作りながら身につけます。

6 段階で進む道筋

AI エージェントをゼロから学ぶには、概念、最初のループ、ツール、メモリ、ループ設計、安全性の 6 段階を順番に進めます。各段階で、自分の手を動かして 1 つのものを作ります。先に進みすぎると、必要だった部分をフレームワークが隠してしまうため、途中で行き詰まりやすくなります。

AI エージェントとは、ツールを呼び出せる言語モデルを中心としたループです。これが全体の主題です。それ以降は、ループに含めるもの、ツールが操作できる範囲、問題が起きたときにループを停止する方法の詳細です。ループを他の人に説明できれば、内容を理解できています。フレームワークの名前しか挙げられないなら、まだ理解できていません。

以下の計画は、作りながら学ぶことを前提にしています。各段階を読み、小さなものを作り、意図的に壊してから次へ進みます。読んだだけの段階は、まだ実践していない段階です。

ステージ 1 の前に実際に必要なもの

前提条件は、正直なところ短いものです。多くのコースページで示されているよりも少なくて済みます。

  • 50 行程度のスクリプトを書けるレベルで、Python または TypeScript を読み書きできること。
  • Linux シェルの操作に慣れていること。パッケージのインストール、ファイルの編集、ログの確認ができれば十分です。
  • ホスト型モデルの API key、またはローカルモデルを実行できるマシンがあること。

必要なのはこれだけです。機械学習の理論は必要ありません。モデルを自分でトレーニングした経験も不要です。エージェントの開発で勾配やトレーニングデータを扱うことはありません。グラフィックカードが必要になるのは、モデルを自分で実行する場合だけです。これは別のスキルであり、後から VPS で Ollama をホストして LLM をセルフホストする ことで身につけられます。

多くの人が過小評価しているのは、シェルに関する部分です。エージェントは、権限、パス、環境変数、またはひそかに終了するプロセスが原因で失敗します。PATH やファイルモードに関するスタックトレースを見てターミナルを閉じたくなるなら、まず週末を使って Linux の基礎を学んでください。後で 1 か月分の時間を節約できます。

ステージ 1: エージェントとは何か、何ではないか

ループを使わず、最初は API を 1 回呼び出します。プロンプトを送り、返答を表示し、レスポンス内のトークン数を確認します。これで、コストの単位とレイテンシの単位を理解できます。

次に、ツール使用を学びます。これは、この分野で本当に新しい唯一の考え方です。モデルには、関数名、説明、入力用の 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-here
import 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 エージェントを構築する で詳しく説明しています。

ステージ 3: エージェントにまだなかったツール

run_command ツールは動作します。しかし、実際のエージェントには、チケットシステム、データベース、リポジトリなど、サーバーの外部に接続するツールが必要です。サービスごと、エージェントごとに専用ラッパーを作成する方法は、規模を拡大できません。

Model Context Protocol (MCP) が、業界で採用された解決策です。MCP server は標準トランスポート経由で一連のツールを公開します。MCP に対応したエージェントであれば、専用の連携コードなしで利用できます。リファレンスの filesystem server は、次の 1 コマンドで起動します。

npx -y @modelcontextprotocol/server-filesystem /home/you/projects

Node のインストールが必要です。また、directory 引数で指定したパスだけが server の操作対象になります。これが、セキュリティモデルの要点です。境界を決めるのは model ではなく server です。client から接続すれば、エージェントが自分で実装していないファイルの読み取りと書き込みを利用できるようになります。これらを適切に実行する方法、service account の使用方法、トランスポートの選択肢については、AI coding agents 向けに VPS で MCP servers を実行するで説明しています。スクラッチ用ディレクトリではなく実データを参照する 2 つ目の server については、workout tracker の openGym を self hosting するで read only の server を起動します。これにより、エージェントに変更可能な対象を渡さず、自分のトレーニング履歴について質問する練習ができます。

このステージの教訓は、実際の作業は tool の設計にあるということです。説明が曖昧だと、model は推測します。4 万文字を返す tool は、context window を圧迫します。削除できる tool は、いずれ実際に削除を実行します。

ステージ 4: メモリ。ほとんどはファイルです

ここでベクトルデータベースを使いたくなります。ただし、少なくともまだ使わないでください。

エージェントは呼び出しの間でメモリを保持しません。毎回、会話全体を再送信します。そのため、長いセッションでは短いセッションよりも1ターンあたりのコストが高くなります。したがって、メモリは2つの問題に分かれます。1つ目は、現在コンテキストウィンドウに収まる内容です。これは、要約、古いツール出力の削除、プロンプトの安定した先頭部分のキャッシュによって管理します。これにより、その部分の料金を何分の1かに抑えられます。2つ目は、再起動後も残る内容です。これはストレージで解決します。

2つ目の問題では、エージェントが読み書きできる通常の markdown ファイルのほうが、ほぼすべての最初のプロジェクトでベクトルデータベースより適しています。ファイルを1つ用意し、形式を指定します。開始前にそのファイルを読み、何かを学んだら更新するよう指示します。これで利点の大部分を得られます。また、ファイルを開いて、エージェントが何を信じているかを確認できます。ノートがコンテキストウィンドウに収まらなくなったら、embeddings と retrieval を使います。それまでは使わないでください。

ステージ 5: ループが成果物になる

ここまでで、監視しながら動かせる agent を作れるようになりました。ステージ 5 では、監視しなくても動作する状態を目指します。

人手を介さずに実行する agent を安全に放置できるかどうかは、4 つの質問で決まります。何がトリガーとなるのか。何もない状態で実行されないようにするためです。どの境界内で動作するのか。ミスが小さな範囲に収まるようにするためです。結果をどのように検証するのか。自分の宿題を自分で採点する agent は、必ず合格にしてしまうためです。トークン数または実時間で、どのような予算が実行を停止させるのか。この 4 つを意図的に設計することが、ループエンジニアリングと、その定義が対象とする範囲で説明する規律です。

演習では、ステージ 2 の agent に 4〜5 ステップを必要とするタスクを与え、ハードな反復回数の上限を追加します。次に上限を外し、上限のないループがトークン料金に与える影響を確認します。大きな予算で誤って実行しないように、最初は小さな予算で 1 回だけ試してください。

ステージ 6: 安全性、Secret、コスト

このステージは省略できません。最後に置いているのは、動作するものを構築するまでリスクを実感できないためです。

agent は専用の非特権ユーザーとして実行します。root として実行してはならず、自分のアカウントも使いません。これにより、被害範囲をマシン全体ではなく 1 つのディレクトリに限定できます。認証情報は model からアクセスできない場所に置きます。context window に入った情報は、tool call を通じてそのまま引用して出力される可能性があるためです。対策として、AI agent から Secret を分離するで説明しているように、helper の背後で有効期間の短い token を使い、権限範囲を限定します。支出には上限を設定します。監視されていない loop は反復するたびに料金が発生するためです。適切な上限と batching の方法は、常時稼働 VPS で AI agent のコストを管理するで説明しています。

agent を自作の script ではなく harness 内で実行する場合、このステージの一部は code ではなく設定になります。導入する価値のある DeepSeek Harness pluginでは、budget cap、tool の権限ルール、injection のスキャンなど、同様の対策を扱っています。

コストについては、具体的な数字を 1 つ確認しておきます。2026 年 7 月現在、Claude Opus 5 の料金は input token 100 万個あたり $5、output token 100 万個あたり $25 です。会話履歴を再送信し続ける agent では、1 つのタスクだけで数十万 token を消費することがあります。Prompt caching と、定型処理に小規模な model を使うことは、prompt の微調整よりもこの計算結果を大きく変えます。

Prompt injection もここで扱います。agent が Web ページ、issue tracker、または inbox を読み取る場合、その文章を書いた人物は agent への命令も書いていることになります。通常、最初にこの入口を開く tool は Web search です。自分の SearXNG instance に agent を接続するでは、接続方法と、それによって生じる injection の対象範囲を並べて説明しています。対策は、より巧妙な system prompt ではありません。重要なのは境界です。repository を削除できない agent は、説得されても repository を削除できないためです。

どの学習計画に従うべきか

6 つを少しずつ試すのではなく、1 つのカリキュラムを選んで最後まで終えます。Microsoft ai-agents-for-beginners リポジトリは、無料で利用できる教材の中で最も充実しています。2026 年 7 月時点で 70,000 個を超えるスターを獲得している全 18 レッスンのコースで、前述の段階にも無理なく対応します。トレンドのエージェントリポジトリをまとめた記事は、どのようなものが存在するかを知るには役立ちます。しかし、シラバスとしてはあまり役立ちません。スター順の一覧は、学習順ではなく人気順に並んでいるためです。

実際のプロジェクトで練習する場合は、コーディングエージェントを最初の対象にするのが最適です。フィードバックがすぐに得られ、ツールも分かりやすく、間違えても簡単に元に戻せます。VPS でコーディング AI エージェントを実行するでは、最初から最後までの手順を説明しています。ゼロから構築するよりも動作するシステムを学びたい場合は、最高のセルフホスト AI エージェントの比較で、複数のプロジェクトが同じループをどのように異なる方法で実装しているかを確認できます。

どのくらい時間がかかりますか?

すでにプログラミングをしている人であれば、ステージ 1 と 2 は 1 晩で終わります。ステージ 3 は週末 1 回分です。その大半はプロトコルではなく、ツールの説明に費やします。ステージ 4 と 5 は、実際に数週間使いながら進めます。エージェントが何を忘れるかは、忘れる様子を観察して初めて分かるためです。ステージ 6 は、完全に終わることがありません。新しい機能を追加するたびに、再び見直しが必要になるためです。

毎晩継続して 2 か月取り組めば、多くの人は動作し、範囲が限定され、実用的なエージェントを作れます。1 年かかる人は、たいてい、作るより読み続けていた人です。

FAQ

AI エージェントを構築するために、機械学習の知識は必要ですか?

いいえ。エージェントの構築とは、API 経由でモデルを呼び出し、モデルからのツール要求を実際の関数に接続することです。これは一般的なアプリケーション開発です。トレーニング、勾配、データセットを扱う必要はありません。エージェントが機能するかどうかを左右するのは、ツールのスキーマ設計、エラー処理、Linux の権限に関する知識です。機械学習理論が必要になるのは、モデルの fine-tune に進む場合だけです。これは前提となる知識も異なる、別の作業です。

LangChain や CrewAI のようなフレームワークから始めるべきですか?

最初に raw loop を1つ自分で書き、その後でフレームワークを導入してください。フレームワークは stage 2 の30行の処理を設定オブジェクトに置き換えます。何が置き換えられたのかを理解していれば便利ですが、理解する前は仕組みが分かりにくくなります。エージェントが想定どおりに動かない場合は、メッセージリストとツールの結果を直接確認して原因を考える必要があります。これらを見たことがなければ、原因の特定はさらに難しくなります。自分で1つのループを実装した後なら、フレームワークによって仕組みを隠すのではなく、作業時間を短縮できます。

AI エージェントの学習には、どれくらい費用がかかりますか?

上限を設定すれば、多くの人が想定するより少額で済みます。これら6つの stage では、ホスト型 API key と小規模な VPS があれば十分です。本当のリスクは時間単価ではありません。ユーザーが眠っている間も、上限のないループが反復ごとに課金を続けることです。初日から API アカウントに厳格な支出上限を設定し、作成するすべてのループに反復回数の上限を追加し、定型的な処理にはより安価なモデルを使用してください。モデルをローカルで実行すれば token の料金はなくなりますが、代わりにハードウェアが必要になります。

AI エージェントとチャットボットの違いは何ですか?

チャットボットは1回だけ回答します。エージェントは、モデルがツールを要求し、コードがツールを実行し、その結果をモデルに返し、モデルが次の処理を判断するサイクルを繰り返します。この反復によって、エージェントは複数の手順でタスクを完了できます。同時に、チャットボットには不要な境界もエージェントには必要になります。チャットボットの誤答は、誤った段落です。エージェントの誤答は、誤った段落に加えて、その判断に基づいて実行した処理も含みます。

#ai-agents#learning#curriculum#mcp#self-hosting