自作CLIエージェントで学ぶ AIエージェント開発入門 — はじめに・目次
このページは教材の入口(ハブ)です。まずここを読んで、上から順に各章へ進んでください。
この教材は人気シリーズの第3弾です。第1弾 Twitterクローンで学ぶWeb開発入門 — はじめに・目次 は「そのデータは誰のもの?(データ分離)」、第2弾 ChatGPTクローンで学ぶ LLMアプリ開発入門 — はじめに・目次 は「記憶と守り」を背骨にしました。今回は——Claude Code のような「考えて、自分で手を動かす」CLIエージェントを、小さく作りながら学びます。
🤝 前作の続きです。 ChatGPTクローンで作ったのは “おしゃべりするAI”。今回はそのAIに 「手」を持たせて、自分で作業させます。じつは前作の第12章で「ツールを1回だけ呼ぶ」ところまで作りました。今回はそれを ぐるぐる回るループ にして、本物の道具(ファイルを読む・書く・コマンドを走らせる)を持たせ、安全に動かします。これが「エージェント」の正体です。
⚠️ 最初の心構え:まずは「それっぽく動く」でOK。精度は気にしない。 この教材で作るのは、Claude Code の挙動をなぞる小さな試作です。正直に言うと——本物の Claude Code のように“安定して・高性能に”動かすのは、ものすごく難しい。膨大な作り込み(コンテキストの渡し方、道具の設計、失敗の処理…)の上に成り立っています。 だから最初は、うまく動かない時があっても気にしないでください。まず目指すのは「お、自分のエージェントが勝手にファイルを読んで直した!」という“動く感動”。賢く・安定させるのは、一通り作れてから——その道しるべは、最終章の「ここから先へ」で渡します。
なぜ「CLIエージェント」なのか
いま、あなたはたぶん Claude Code / Cursor / Codex のような「AIに頼むと、コードを読んで・直して・コマンドまで走らせてくれる道具」をユーザーとして毎日さわっています。あれは魔法に見えますが、中身は意外と単純な部品の組み合わせです。
ターミナル(黒い画面)で動く小さなエージェントには、その勘どころがぎゅっと詰まっています。
- 「このテスト直して」と頼むと、自分でファイルを読む(道具を使う)
- 直したら、テストを走らせて結果を確かめる(結果を見て、また考える=ループ)
rmのような危ない操作の前に「実行していい?」と聞いてくる(許可・確認)CLAUDE.mdに書いたルールを守る(性格と規範)- 「いつもの手順」を覚えていて、同じ段取りでやってくれる(スキル)
これらを1つずつ自分で作ると、AIエージェントの仕組みが手ざわりで分かります。しかも、あなたはユーザーとして動きをすでに知っているので、説明がスッと入ります。
この教材の特徴(ふつうの入門書とどう違う?)
ふつうの本は「エージェントとは」「ReActとは」「プランニングとは」と、むずかしい言葉の説明から入ります。だから難しく感じます。
この教材は 逆向き に進みます。
すでに知っている Claude Code の動き → なぜそう動くのか → 自分で作るとこう書く
この教材を貫く2本の背骨
全体を、たった2つの問いが貫いています。各章はどちらか(または両方)に必ずつながります。
🔁 背骨①:AIは「考える」だけ。動くのは“あなたのコード”
LLM(AIの頭脳)は、文章を作ることしかできません。ファイルを読むのも、コマンドを走らせるのも、実際に手を動かすのはあなたが用意した道具(コード)です。エージェントとは、「考える → 道具を使う → 結果を見て、また考える」 という往復(ループ)をぐるぐる回す仕組みのこと。 この“能力”には2種類あります —— 🔧 道具(tools)=手(ファイルを読む・コマンドを走らせる等の低レベルな力)と、📜 スキル(skills)=よく使う手順の“型”(道具を組み合わせた段取りをまとめて持たせる)。道具→スキル→(付録Gの)MCPで後付け、と能力は広げていけます。
🛡 背骨②:手を持たせるほど危ない。どこで人間が確認する?
「コマンドを走らせる」道具は、便利だけど一番危険です。AIが暴走したり、悪い入力にだまされたりすると、ファイルを消したり、変な所へ送信したりしかねません。だから 何を許し、どこで人間に「やっていい?」と確認させ、どうやって取り消せるようにするか を設計します。あの「実行していい?」プロンプトは、飾りではなく安全の要です。
💡 2本の背骨に加えて、エージェントの“賢さ”を地味に大きく左右するのが、システムプロンプト(頭脳に最初に渡す性格・規範=Claude Code の
CLAUDE.md。第10章)と、コンテキスト(作業中にAIが一度に見ている情報=これまでのやりとり・読んだファイルの中身・道具の結果。第14章)の2つです。本書では要所でさらっと触れ、専用章で深掘りします。
各章の読み方(共通の型)
どの章も、同じ順番で書いてあります。「いつものパターン」で読めます。
- 📱 Claude Code ではこう見える … あなたが知っている動きから
- 🤔 なぜ?/やらないとどうなる … 考え方と、サボったときの失敗例
- 🛠 こう作る … 実際の作り方(コピペで動く最小コード・1行ずつ解説)
- ⚠️ ハマりどころ … よくある間違いと直し方
- 🤖 AIに頼むなら … Vibe coding(AIに作らせる)のコツ
各項目には、むずかしさの目印を付けます。
- 🟢 基礎:全員が読むところ
- 🔧 応用:もう少し深く知りたい人向け(読み飛ばしてもOK)
💡 本編は🟢基礎で一直線に進みます。難しい話(ストリーミングの中身・MCP・コスト管理の作り込みなど)は、本編では“紹介”にとどめ、くわしくは付録に置いています。
用意するもの
- パソコン(WindowsでもMacでもOK)
- Node.js(CLIを動かす土台。コードは TypeScript で例示)
- ターミナルに慣れている必要はありません。コマンドはコピペでOK
- LLMのAPIキー(Anthropic(Claude) を主に使います。取り方は付録A。OpenAIでも動きます=付録B)
- AIコーディングツール(Claude / Cursor / Codex など)
💡 今回は ブラウザの画面もデータベースもログインも要りません。前作(ChatGPTクローン)より構成はむしろシンプルで、エージェントは自分のパソコンの中(localhost)で動かします。難所は「画面づくり」ではなく、“考えて手を動かすループ”そのものです。 💡 本編のコードは Anthropic(Claude) を主に使います(Claude Code ベースなので自然です)。OpenAI(GPT)やローカルLLMへの切り替えは付録B で、呼び出しを1か所差し替えるだけ。エージェントの“仕組み”は、中の頭脳を差し替えても変わりません。 💡 本質は道具でなく考え方です。コード例はTypeScriptですが、「手元のLLMに『これをPythonで書き換えて』と頼めば他の言語でも通用する」と各章で添えます。
目次
✅=執筆ずみ(全章+付録、公開しました)。
第1部 エージェントってなに?
- 第0章 はじめに(このページ)
- 第1章 「おしゃべり」と「手を動かす」はどう違う? — エージェントの正体 ✅ — Claude Code の動きを分解。LLM(頭脳)+道具(手)+ループ
- 第2章 まずLLMと往復するだけのCLIを作る ✅ — 会話ループ+鍵の隠し方(道具はまだ無し)
第2部 道具(tools)を持たせる(背骨①ループ)
- 第3章 ツール使用 — AIに「道具メニュー」を渡す ✅ — 実行するのは“あなた”。+MCPにさらっと
- 第4章 エージェントループ — 使ったら結果を返して、また考えさせる ✅ —
stop_reasonで回す“心臓”+暴走防止の上限 - 第5章 道具をつくる① ファイルを読む・一覧する ✅ — 読み取り=安全な第一歩
- 第6章 道具をつくる② ファイルを書く・直す ✅ — はじめての“危険”(上書き)
- 第7章 道具をつくる③ コマンドを走らせる ✅ — 一番強くて一番危険
第3部 安全に動かす(背骨②安全)
- 第8章 「実行していい?」の正体 — 許可と人間の確認 ✅ — human-in-the-loop
- 第9章 サンドボックスと最小権限 — 取り消せる設計で守る ✅ — パス封じ込め・git で戻す
- 第10章 システムプロンプトで“性格と規範”を決める(CLAUDE.md) ✅ — しつけ=育ち
第4部 もっと賢く:スキルと段取り
- 第11章 スキル(skills) — よく使う手順を「型」にして持たせる ✅ — 道具とスキルの違い
- 第12章 複数ステップのタスク — 計画→実行→確認、失敗したらやり直す ✅
- 第13章 考えている様子を見せる — ストリーミング+道具呼び出しの表示 ✅
- 第14章 長い作業の記憶 — コンテキストが膨らむ問題・要約・コスト ✅ — 視野=コンテキスト
第5部 まとめ
- 第15章 スケールの物語(読み物) ✅ — 暴走・コスト・コンテキスト限界と、実在エージェントの工夫
付録(難所・手順はここに集約)
- 付録A APIキーの取り方(Anthropic / OpenAI) ✅
- 付録B 別のLLMで動かす(OpenAI・ローカルへの書き換え)=ポータビリティ ✅
- 付録C ツール定義(JSON Schema)の書き方ミニ辞典 ✅
- 付録D 用語ミニ辞典(ふりがな・言い換え付き) ✅
- 付録E 安全チェックリスト(道具を足す前に確認すること) ✅
- 付録F コスト管理(トークン・呼び出し回数・上限) ✅
- 付録G (応用)道具を後付けで足すしくみ=MCP の考え方 ✅
この教材の到達点
最後まで進むと、こんなものが作れて、仕組みも説明できるようになります。
- ターミナルで動く、自分専用の小さなコーディングエージェント(Claude Code のミニ版)
- 「このファイル直して」と頼むと、自分でファイルを読み・直し・コマンドを走らせる
- 危ない操作の前に 「実行していい?」と確認し、取り消せる安全設計
- スキルで「いつもの手順」を型にして、同じ段取りを再利用できる
- AIに作らせたエージェントのコードを読んで「ここが危ない/ここが安全」と判断できる目
関連ページ
- ChatGPTクローンで学ぶ LLMアプリ開発入門 — はじめに・目次 — 第2弾。LLMの呼び出し・ツールの1往復・鍵の守りはこちらが土台
- Twitterクローンで学ぶWeb開発入門 — はじめに・目次 — 第1弾。データ分離・認証・最小権限の基礎
- 第4回 Singularity Society BootCamp 企画ノート — この教材を作る背景(生成AI / Vibe coding 重視のブートキャンプ)