OkayStudy
JA English 한국어 日本語 中文 हिन्दी বাংলা اردو Español Português Français Deutsch Русский العربية Bahasa Indonesia Tiếng Việt ไทย Türkçe

通知を有効にする方法

このブラウザーまたはアドレスでは通知を利用できません。対応ブラウザーで安全な接続のSONUBサイトを開いてください。

通知がブロックされている場合は、ブラウザーの設定で許可してください。

  1. アドレスバー横のサイト設定、またはブラウザーのサイト設定を開き、このサイトの通知を許可に変更してください。
  2. 端末の設定でブラウザーの通知を許可し、おやすみモードや集中モードを確認してください。
  3. SONUBに戻ってページを再読み込みし、ベルから通知を有効にしてください。

iPhoneやiPadではSONUBをホーム画面に追加し、そこから開いて通知を許可してください。

教材

AIコース

ツールの上手な使い方から、を作ってスマホで動かすところまで、4 段階のチャプターで学びます。目次からチャプターを選んで始めましょう。

開いた道具箱に三つの仕切りがあります。チャットのふきだし、小さなロボットアームがついたノートパソコン、フォルダーを運ぶロボットがのったクリップボードです。道具箱は三つのブロックの上にのっています。ターミナルの画面、枝分かれする木、やさしい顔のヘビです。そのそばには、キーと南京錠が小さな金庫に入っています。
第1章 · 初級 · はじめに

始める前に: あなたのAIツール箱

目標

このコースで使うツールと、それぞれの用途、必要なアカウント、や個人情報を安全に守る方法がわかります。

このコースでは、まずAIを理解し、次にAIツールを使い、最後にを自分で作ります。出てくるツールは3種類です。

  • チャットアシスタント — のように、会話で答えます。
  • — やのように、パソコンのファイルを読んで書き換えます。
  • ツール — のように、何段階もの作業を代わりにこなします。

、、はこれらすべての土台なので、一緒に学びます。無料アカウントで足りる章もあれば、有料プランが必要な章もあります。どちらかは授業の進め方ガイドに書いてあります。いつでもSONUBの練習で代わりについてこられます。

やさしく理解しよう

こんなふうに考えてみよう
このコースは、道具箱をいっぱいにしていくことだと考えてみましょう。チャットのお手伝いは、質問したり文章を書いたりする道具です。コーディングエージェントは、あなたのパソコンのファイルを直す道具です。タスクエージェントは、いくつもの手順がある仕事をやりとげる道具です。シェル・Git・Python は、道具をのせる作業台です。そして、どの道具箱にも小さな金庫が必要です。パスワードやキーはそこにしまい、チャットには決して貼りつけません。
例

クラブのホームページがほしいとします。チャットのお手伝いにアイデアや文章をたのみ、コーディングエージェントにプロジェクトフォルダーの中でページを作ってもらいます。動くができるたびに Git で保存し、公開します。同じ手順が、あとの章で道具ひとつずつくり返し出てきます。

よくある間違い
何かを動かすために「今回だけ」と やパスワードをチャットに貼りつけること。キーは環境変数か、しない に入れます。もれてしまったキーは、すぐに新しいものに替えましょう。
開いた道具箱に三つの仕切りがあります。チャットのふきだし、小さなロボットアームがついたノートパソコン、フォルダーを運ぶロボットがのったクリップボードです。道具箱は三つのブロックの上にのっています。ターミナルの画面、枝分かれする木、やさしい顔のヘビです。そのそばには、キーと南京錠が小さな金庫に入っています。
三種類の AI ツールは、三つの基本(シェル・Git・Python)の上に立っています。キーとパスワードは金庫にしまい、チャットには決して入れません。
もう少し詳しく

どんなツールよりも大切な習慣が2つあります。1つ目は、結果を確かめることです。AIの答え、画像、の変更は、自分で読んで、試して、情報源と比べるまでは下書きにすぎません。2つ目は、秘密を守ることです。パスワード、APIキー、他の人の個人情報を、チャットや、人と共有するファイルに決して貼り付けないでください。APIキー(がAIサービスを使うときに見せる)は、環境変数か .env ファイル(自分のパソコンだけに置く)に置き、Gitに決して保存(コミット)してはいけません。Gitは13章で学びます。

自分の言葉で説明

このコースに出てくる3種類のAIツールを自分の言葉で説明し、それぞれ例を1つ挙げましょう。

説明と比べる

チャットアシスタントは会話で答えます(ChatGPT)。コーディングエージェントはプロジェクトの中でファイルを読んで書き換え、コマンドを実行します(Codex、Claude Code)。エージェントツールは複数のファイルやアプリにまたがる何段階もの作業をこなします(Claude Cowork)。3つとも、自分で確かめる必要がある下書きを作ります。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

コースの全体図を紹介する(5分) → ツールの種類ごとに例を1つずつ見せる(10分) → 生徒がアカウントとコース用フォルダを用意する(15分) → 安全のルールと質問(10分)。授業時間に合わせて各パートを伸ばしたり縮めたりしてください。

画面で見せること

  1. このコースを開いて章の一覧を一緒に見ましょう。はじめに → AIのしくみ → AIツールを使う → 開発の基本 → 作って公開する → AIエージェント → 働き続けるエージェント → 自分でを作る → 自分のをどこでも動かす → 最終プロジェクトの順です。
  2. チャットアシスタントに短い質問を1つしてから、コーディングエージェントがファイルの1行を書き換えるところを見せましょう。「話す」と「行動する」の違いが生徒に伝わります。
  3. APIキーをどこに置くべきか(環境変数か.envファイル)と、の1行でそれをGitに入れないようにする方法を見せましょう。

生徒の活動

  1. すでに使えるツール(ChatGPT、Codex、、)と、まだ登録が必要なツールを書き出しましょう。
  2. 自分のパソコンに ai-course という空のフォルダを作りましょう。あとの章で使います。

達成の目安

3種類のAIツールをそれぞれ例を1つ挙げて言えて、2つの安全の習慣を言えれば達成です。

生徒がつまずいたら

  • 有料プランがないとき: デモを見ながらついていき、SONUBのブラウザ練習を使いましょう。概念の章はすべてアカウントなしでできます。
  • 学校や会社のパソコンでインストールが禁止されているとき: ツールのWeb版と、SONUBのシェルとPythonの練習を使いましょう。

クラスへの問いかけ

  • チャットアシスタントに質問することと、コーディングエージェントにファイルを書き換えさせることは、どう違うでしょうか?
  • APIキーはどこに保存すべきで、どこには決して出てきてはいけないでしょうか?

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第2章 · 初級 · AIのしくみ

AIの用語: 毎日耳にする10の言葉

目標

、、、、ー、、、、、といった日常の用語を、それぞれやさしい1文で説明できるようになります。

モデルは、からパターンを学んだです。(LLM)は、ものすごい量の文章からパターンを学び、次に来る文章のかけらを予測します。この章の言葉:

  • プロンプト — あなたが入力するもの
  • トークン — モデルが読む単位で、単語の小さなかけら
  • コンテキストウィンドウ — モデルが一度に見られるトークンの量で、それまでの会話も含まれる
  • パラメーター(ともいう) — モデルの中にある数で、学習によって調整される
  • 学習 — 時間もお金もかかる長い学びの段階
  • 推論 — できあがったモデルを使ってあなたに答えること

やさしく理解しよう

こんなふうに考えてみよう
レストランを思い浮かべてください。モデルは料理人、プロンプトは注文票、トークンは材料を小さく切った一切れです。コンテキストウィンドウは料理人の作業台の広さ、パラメータは料理人が身につけた腕前です。学習は料理学校に通う時間、推論は今まさにあなたの料理を作っている時間です。ハルシネーションは見た目はおいしそうでも注文とちがう料理、API は受け渡し窓口、エージェントは材料の買い出しまで自分で行く料理人です。
例

「明日のソウルの天気は?」と入力すると、モデルはそれをトークンとして読みます。検索の道具がないは明日の天気を知ることができないので、もっともらしい予報を作ってしまうことがあります(ハルシネーション)。検索の道具を持つエージェントは、先に天気サイトを調べてから答えます。

よくある間違い
「パラメータが多いほど、いつも正しい答えになる。」大きさはモデルの力の一部にすぎません。結果の良さは、と確認の仕方でも決まります。
もう少し詳しく

もう少し覚えておきたい言葉:

  • ハルシネーション — 自信たっぷりなのに間違っていたり、作り話だったりする答え。だからいつも確かめます。
  • API — 自分のプログラムからプロンプトを送って答えを受け取るための入り口。ふつうは秘密のが必要です。
  • チャットボットとエージェント — チャットボットは答えるだけですが、エージェントは行動もできます。目標に向かって一歩ずつ、ファイルを読み、コマンドを実行し、ツールを使います。
  • オープンなモデルと — のモデルや、重みが公開されたモデル()はダウンロードして自分のパソコンで動かせます。クローズドなモデルはその会社のアプリかAPIでしか使えません。

自分の言葉で説明

コンテキストウィンドウとは何か、なぜ大切なのかを友だちに説明しましょう。

説明と比べる

コンテキストウィンドウは、モデルが一度に見られる文章の量(トークン数)です。プロンプト、ファイル、それまでの会話が入ります。その外に出てしまったものはモデルにはもう見えないので、長い会話では最初のほうの細かい内容が抜け落ちることがあります。大切なことをもう一度プロンプトに入れれば解決します。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

生徒が聞いたことのあるAI用語を尋ねる(5分) → 用語をペアで説明する: プロンプト/トークン、学習/推論、チャットボット/エージェント(15分) → 言葉の組み合わせゲーム(10分) → 自分で確認する(10分)。

画面で見せること

  1. のページか、SONUBのトークンの章に文を1つ入力し、トークンの数をみんなで数えましょう。
  2. チャットボットに、知りようのないこと(架空の人物)を質問してハルシネーションを見せ、それを確かめる方法を見せましょう。
  3. 「このファイルの名前はどうやって変えるの?」に答えるだけのチャットボットと、実際に名前を変えてしまうエージェントを比べましょう。

生徒の活動

  1. 自分だけの単語カードを作りましょう。10の言葉それぞれに、1文の意味と例を1つ書きます。
  2. とても地域的なことや、とても新しいことをチャットボットに聞いてハルシネーションを1つ見つけ、どうやって確かめたかを書きましょう。

達成の目安

10の言葉を自分の言葉で説明でき、学習と推論の違い、チャットボットとエージェントの違いを言えれば達成です。

生徒がつまずいたら

  • 学習と推論を混同するとき: 学習は試験勉強、推論は試験を受けること、とたとえましょう。
  • トークンがわかりにくいとき: 長い言葉や珍しい言葉はいくつものトークンになり、よく使う言葉は1つのトークンになることを見せましょう。

クラスへの問いかけ

  • とても長い会話の中で、モデルが最初に言ったことを「忘れて」しまうことがあるのはなぜでしょうか?
  • チャットボットに質問することと、エージェントに作業を任せることは、どう違うでしょうか?
出典と参考資料
第3章 · 初級 · AIのしくみ

AI・機械学習・言語モデル

目標

広い分野と個別のの種類を区別します。

は、予測・認識・計画・生成などを行うシステムを作る分野です。人が書いた規則を使うものもあります。はからパターンを学び、深層は多層のを使います。

やさしく理解しよう

こんなふうに考えてみよう
「乗り物」を考えてみましょう。乗り物はいちばん大きなグループ(人工知能)です。自動車は乗り物の一種(機械学習)、電気自動車は自動車の一種()、そしてある一つの電気自動車の車種がのようなものです。名前が後になるほど、範囲がせまくなります。
例

人が書いたルールで判断する(たとえば「無料」や「当選」が入ったメールを迷惑メールとして分けるルール)は、学習しない人工知能です。例のメールから学ぶ迷惑メールフィルターは機械学習です。写真の中のネコを見つけるのは、たいていディープラーニングです。質問に答えるは LLM の上に作られています。

よくある間違い
「人工知能 = 。」ChatGPT はで作られた製品の一つです。、、道案内も人工知能です。
4つの円が入れ子になっている。いちばん外の円にはロボットのアイコン、その次の円には点が打たれたグラフ、その次の円には何層にも重なったノードのネットワーク、いちばん内側の円には吹き出しが2つある。
人工知能がいちばん大きな円です。機械学習、ディープラーニング、言語モデルが、それぞれ前の円の中に入っています。
もう少し詳しく

大規模言語モデル(LLM)はAIの一種です。文章を生成する多くのLLMは、利用できるから次のを予測します。・分類・は別の仕組みでも動きます。流暢な文章は、生きている証拠にも正しさの証拠にもなりません。

自分の言葉で説明

すべてのAIは次の単語を生成しますか。反例を挙げましょう。

説明と比べる

いいえ。迷惑メールフィルターは「迷惑メール」か「迷惑メールではない」かを選び、規則ベースのプログラムは決められた条件に従うだけです。どちらも次の単語を生成しません。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

生徒がAIを何だと思っているか聞く(5分) → 例をルール、機械学習、言語モデルに分ける(10分) → 章を読んで話し合う(15分) → セルフチェック(10分)。

画面で見せること

  1. 3つの例を並べて見せましょう。ルールで作った迷惑メールフィルター、顔を見分けるよう学習した写真アプリ、文章を生成するチャットアシスタントです。
  2. 3つの円をにして描きましょう。人工知能の中に機械学習、その中にディープラーニングがあり、言語モデルはいちばん内側の円に入ります。

生徒の活動

  1. 自分が使っているアプリを5つ書き出し、それぞれがルール、機械学習、言語モデルのどれかを理由とともに書きましょう。

達成の目安

言葉を生成しないAIシステムを正しい反例として挙げられれば達成です。

生徒がつまずいたら

  • AIはすべてChatGPTだと思っているとき: ルールで作った迷惑メールフィルターやおすすめ機能を、別の種類のAIとして見せましょう。

クラスへの問いかけ

  • 「20 °Cを下回ったら暖房をつける」というルールに従うサーモスタットは人工知能でしょうか? なぜそう思いますか?
出典と参考資料
第4章 · 初級 · AIのしくみ

プロンプトを書いて確かめる

目標

目的・必要な・条件・確認方法を示します。

はの出力を導く入力です。「分数を説明して」と「初心者にピザで2分の1を説明し、答えを言わずに問題を一つ出して」を比べましょう。後者は対象・例・活動を指定しています。

やさしく理解しよう

こんなふうに考えてみよう
プロンプトは、タクシーの運転手に行き先を伝えるのと同じです。「街の中心までお願いします」なら、近くのどこかに着きます。「市役所駅の 3 番出口に、10 時までにお願いします」なら、行きたい場所にぴったり着きます。行き先がはっきりしているほど、運転手が推測することは少なくなります。
例
  • あいまい:「分数について教えて。」
  • はっきり:「9 歳の子に、ピザを使って 2 分の 1 を短い 3 つの文で説明して。そのあと、答えなしの練習問題を 1 つ出して。」

2 つ目のプロンプトは、読む人・例・長さ・やることを決めています。

よくある間違い
「『あなたは専門家です』と書けば、専門家レベルの答えになる。」役割で話し方は変わりますが、知識が増えるわけではありません。事実はやはり自分で確かめる必要があります。
もう少し詳しく

役割は口調を導きますが、専門性やを保証しません。必要なら出典を求め、主張を裏付けるか確認しましょう。同じ例で二つのプロンプトを比べます。必要な情報だけ共有し、明確な質問でもモデルの限界は残ると覚えましょう。

自分の言葉で説明

「あなたは専門家です」と書けば答えを信頼できますか。

説明と比べる

いいえ。表現は変えられても、根拠の確認やテストは必要です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

あいまいな頼み方と正確な頼み方を比べる(10分) → プロンプトを1つ一緒に改善する(10分) → 生徒がプロンプトを書いて試す(20分) → 答えの確かめ方を話し合う(10分)。

画面で見せること

  1. 「分数を説明して」と聞いたあと、章にある正確な頼み方で聞き直し、2つの答えの対象、例、活動を比べましょう。
  2. プロンプトに「あなたは専門家です」と加えても、答えに間違いが含まれることがあると見せましょう。

生徒の活動

  1. 今学んでいるテーマでプロンプトを書きましょう。対象、例を1つ、答えの確かめ方を入れます。

達成の目安

生徒のプロンプトに、やること、文脈、条件、確認方法がそろっていれば達成です。

生徒がつまずいたら

  • 答えがまだあいまいなとき: ほしい出力の例と長さの制限を加えましょう。

クラスへの問いかけ

  • プロンプトのどの部分が答えをいちばん大きく変えましたか?
出典と参考資料
第5章 · 初級 · AIのしくみ

プロンプトエンジニアリング: うまくいくプロンプトの6つの部分

目標

役割、目的、背景、例、条件、を入れたを書き、一から書き直すのではなく一歩ずつ改善できるようになります。

とは、が必要な結果を出せるように指示を書くことです。よいプロンプトには、ふつう6つの部分があります。

  • 役割 — モデルが誰として振る舞うか
  • 目的 — 何がほしいか
  • 背景 — 必要な事実、ファイル、読む人
  • 例 — よい答えのサンプルを1つか2つ
  • 条件 — 長さ、レベル、避けること
  • 出力の形式 — リスト、表、、ファイル

たくさん伝えるほど、モデルが推測することは減ります。

やさしく理解しよう

こんなふうに考えてみよう
よいプロンプトは、料理人に渡すレシピカードのように働きます。だれが作るのか(役割)、どんな料理がほしいのか(目標)、冷蔵庫に何があるのか()、できあがりの写真(例)、避けること(制約)、どう盛りつけるのか(出力形式)を書きます。6 つがそろえば、料理人はほとんど推測しなくてすみます。
例
  • 役割:「あなたは小学校の理科の先生です。」
  • 目標:「水の循環を説明してください。」
  • 文脈:「読むのは 8 歳の子どもたちです。」
  • 例:「こんなふうに:『太陽が海をあたためると…』」
  • 制約:「5 つの文で、むずかしい言葉は使わないで。」
  • 出力形式:「番号つきのリストで。」
よくある間違い
一度で完ぺきなプロンプトを書こうとすること。まず一つ書いてみて、答えを読み、足りなかったことだけを足していきましょう。
仮面、的、フォルダー、星の見本、止まれマークのついた定規、表のアイコンが描かれた 6 つのパズルのピースが、レシピカードにはまっていく。ロボットの料理人ができあがったカードを受け取り、きれいなお皿を出す。横には、はてなマークだけが書かれたくしゃくしゃのメモが置かれている。
役割・目標・文脈・例・制約・出力形式が、レシピカードのように組み合わさります。あいまいなメモだけでは、料理人は推測するしかありません。
もう少し詳しく

プロンプトは下書きのように扱いましょう。答えを読み、足りないところや間違いを見つけて、まさにそれをプロンプトに書き足します。「もっとやさしい言葉で」「選択肢を3つ出して」「出典を示して」のようにです。

  • 難しい作業では、先に計画を立ててから答えるようにモデルに頼みましょう。
  • または、作業をいくつかの小さなプロンプトに分けましょう。
  • では、ずっと使う部分(ルール、コマンド、スタイル)をCLAUDE.mdやAGENTS.mdのようなプロジェクトのファイルに書いておきます。そうすれば毎回くり返さずにすみます。

自分の言葉で説明

「ホームページを作って」を、6つの部分が入ったプロンプトに書き直しましょう。

説明と比べる

たとえば「あなたはWebデザイナーです(役割)。私のパン屋さんの1ページのホームページを作ってください(目的)。ソウルでパンとケーキを売っていて、お客さんは家族連れです(背景)。このサンプルのような雰囲気にしてください: …(例)。とだけを使い、スマホ優先で、セクションは4つまでにしてください(条件)。ファイル1つで出してください(形式)。」6つの部分がすべて入っていれば、どんなプロンプトでも正解です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

弱いプロンプトとその答えを見せる(5分) → 6つの部分で作り直す(15分) → 生徒がプロンプトを3回かけて改善する(15分) → 結果を比べる(5分)。

画面で見せること

  1. 「気候について書いて」と頼んだあと、同じ依頼に役割、読む人、長さ、形式を加えて頼み、2つの答えを比べましょう。
  2. プロンプトに答えの例を1つ加え、結果の文体がその例に合わせて変わることを見せましょう。
  3. 同じプロンプトで、結果を表で、次にJSONで出すように頼みましょう。

生徒の活動

  1. 自分の実際の用事(勉強の計画、要約、メール)について、6つの部分がすべて入ったプロンプトを書きましょう。
  2. 2回改善しましょう。毎回、答えの間違いをもとに直す点を1つ加え、3つのをすべて残しておきます。

達成の目安

最後のプロンプトに6つの部分があり、それぞれの問題を解決した変更を指し示せれば達成です。

生徒がつまずいたら

  • 答えが長すぎる、または一般的すぎるとき: 読む人、長さの制限、形式を加えましょう。
  • モデルがルールを無視するとき: ルールを最後に移し、一度だけはっきり書き、答える前にそのルールを確認するよう頼みましょう。

クラスへの問いかけ

  • 答えの文体が違うとき、6つの部分のうちどれがいちばん役に立つでしょうか?
  • ずっと使うルールを毎回のプロンプトではなくCLAUDE.mdやAGENTS.mdに書くのはなぜでしょうか?
出典と参考資料
第6章 · 初級 · AIのしくみ

テキスト・トークン・ID

目標

文字列の断片()と、その断片につけた番号()を区別します。

は文章をトークンという断片に分け、に対応させます。単語・単語の一部・文字・などが単位になり、空白や句読点も関係します。同じ文章でも方式によってトークン数が変わります。

やさしく理解しよう

こんなふうに考えてみよう
トークナイザーは、長い紙テープのような文章を大きさのちがう切れ端に切り、一つ一つに番号札をつける機械のようなものです。は文字を見ません。並んだ番号札だけを見ています。
例

英語の単語 “unbelievable” は “un”、“believ”、“able” のように切られることがあります。スペースや句点が、それだけで 1 つのトークンになることもあります。同じ文でもトークナイザーがちがえばトークンの数が変わり、同じ意味でも日本語は英語より多くのトークンが必要になることがよくあります。

よくある間違い
「トークンの数 = 単語の数(または文字の数)。」どちらでもありません。だから同じ内容でも、言語によって料金がちがったり、が早くいっぱいになったりします。
紙テープが切る機械に入り、長さのちがう切れ端になって出てくる。切れ端にはそれぞれ色つきの丸い札がついていて、一列に並んでいる。
文章は大きさのちがうトークンに切られ、トークンごとに ID 番号がつきます。モデルはその番号で仕事をします。
もう少し詳しく

実習では本番のトークナイザーではなく、簡単な単語分割を使います。IDは名札です。ID 8にID 4の2倍の意味があるわけではありません。コンテキストウィンドウにはトークン数の上限があり、アプリが資料を選択・要約・除外することがあります。

自分の言葉で説明

IDが隣り合うトークンは、意味も近いでしょうか。

説明と比べる

いいえ。IDは語彙を識別する番号で、その差は意味の距離ではありません。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

トークンとは何か(10分) → 同じ文のトークンをいろいろな方法で数える(10分) → 生徒が自分の文をトークンに分ける(20分) → セルフチェック(10分)。

画面で見せること

  1. 「unbelievable!」を文字ごと、単語ごと、そして un + believ + able + ! のような単語のかけらに分け、それぞれいくつになるか数えましょう。
  2. IDはただの名札だと見せましょう。IDが隣り合う2つのトークンでも、意味はまったく違うことがあります。

生徒の活動

  1. 文を1つ書いて文字ごとと単語ごとに分け、それぞれのかけらの横に作ったIDを書きましょう。

達成の目安

同じ文章でもトークンの数が変わることがある理由を説明できれば達成です。

生徒がつまずいたら

  • トークンと単語を混同しているとき: 長い単語が複数のトークンに分かれる例、句読点がそれだけで1つのトークンになりうる例、そしてスペースがふつうは次の単語とくっついて1つのトークンになる例を見せましょう。

クラスへの問いかけ

  • サービスは、なぜ利用量を単語ではなくトークンで数えることが多いのでしょうか?
出典と参考資料
第7章 · 初級 · AIのしくみ

ベクトルと埋め込み

目標

・・済みを区別します。

IDは名札、は数値の並びです。ワンホットは語彙の一か所だけを1、残りを0にし、意味の近さを表しません。埋め込みは学習したベクトルです。と学習目標に応じて、関連する用法が近くに配置されることがあります。

やさしく理解しよう

こんなふうに考えてみよう
埋め込みは、すべての言葉に大きな地図の上の場所をあたえることです。似た使われ方をする言葉は近くに、ちがう使われ方をする言葉は遠くに置かれます。紙の地図は座標が 2 つですが、は数百から数千の数字を使います。
例

「ネコ」と「イヌ」は近くに、「ネコ」と「車」は遠くにあります。だから「ドッグフード」で検索しても、言葉がちがう「子犬のごはん」の文書を見つけられるのです。

よくある間違い
「近ければ意味が同じ、またはその文は正しい。」近いというのは、の中で似た使われ方をしていたということだけです。「暑い」と「寒い」は同じような文によく出てくるので、近くなることがあります。
やわらかなマス目の地図の上に、動物どうし、果物どうし、乗り物どうしが集まったピンのグループが 3 つある。グループの間には長い点線があり、動物のグループの上には虫めがねがある。
似た使われ方をするものどうしが、地図の上で近くに置かれます。距離が表すのは使われ方の近さで、正しさではありません。
もう少し詳しく

現代の()はでの中のほかのの情報を混ぜ込むため(33章で学びます)、同じトークンでも文によって表現が変わります。は真実や同義を保証しません。有名な王 − 男性 + 女性の例は一部の単語埋め込みでの結果で、普遍的な等式ではありません。検索では互換性のあるで質問と文書を比較します。

自分の言葉で説明

埋め込みが近ければ、二つの文が同じ真実を述べている証拠になりますか。

説明と比べる

いいえ。同じ話題でも反対の主張かもしれません。実際の内容を読んで確認します。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

IDからベクトルへ(10分) → ワンホットベクトルと学習済み埋め込みを比べる(10分) → 生徒が単語を2の地図に置く(20分) → セルフチェック(10分)。

画面で見せること

  1. 5語の語彙で「cat(ネコ)」のワンホットベクトルを書き、それでは似ている度合いがまったくわからないことを見せましょう。
  2. ネコとイヌが近く、車が遠い2次元の地図を描き、学習によって単語がその位置に置かれると説明しましょう。

生徒の活動

  1. 好きな単語を8つ選んで意味ごとに2次元の地図に置き、そのうち2つの位置を説明しましょう。

達成の目安

ID、ワンホットベクトル、埋め込みの違いを区別できれば達成です。

生徒がつまずいたら

  • 埋め込みが近ければ「正しい」と思っているとき: 同じテーマについての正反対の2つの文が近くに置かれる例を見せましょう。

クラスへの問いかけ

  • 2つの文の埋め込みが近いとき、何が言えて、何が言えないでしょうか?
出典と参考資料
第8章 · 初級 · AIのしくみ

学習・推論・検索

目標

で変わるものとで使うものを説明します。

模型は直前の単語の次に何が出たか数えます。skyの次にredが3回、blueが1回ならは3/4と1/4です。現代のニューラルは(予測がどれだけ外れているかを表す数)を減らすよう多くのをします。推論では重みとから次ののスコアを計算します。この実習は条件付き予測の例で、全体ではありません。

やさしく理解しよう

こんなふうに考えてみよう
学習は、何か月もかけてする試験勉強のようなものです。時間もエネルギーもたくさんかかり、頭の中(重み)が変わります。推論は、試験会場で問題に答えることです。速く、頭の中は変わりません。 は持ち込み可の試験です。答えながら本を開いて調べてもかまいません。
例

ある会社が、自分の会社の規則について答えるをほしがっているとします。は、規則をもう一度勉強させて重みを変える方法です。RAG は、規則集を開いておき、質問のたびに合うページをに渡す方法です。だから規則が変わっても、学習し直さずに更新できます。

よくある間違い
「モデルはチャットのたびにすぐ学ぶ。」ふつうのチャットは推論です。会社があとでそのを使って学習し直さないかぎり、あなたのチャットが重みを変えることはありません。
左:本の山に囲まれたロボットが、小さなつまみをたくさん回している。時計とエネルギーのアイコンがある。右:つまみがロックされた同じロボットが、いなずまマークといっしょに子どもの質問にすばやく答えている。
学習はつまみ(重み)をゆっくり合わせることです。推論は固定したつまみを使って、すばやく答えることです。
もう少し詳しく

ファインチューニングは重みを変えます。では基礎の重みを固定して小さなを学習できます。RAG(検索拡張生成)は重み更新を必須とせず資料を検索し文脈に渡します。は単語一致にと文書長の補正を使い、は学習済みを比較します。どちらも証拠の見落としや誤った資料の取得はあり得ます。チャット一回が自動的な学習更新になるわけではありません。

自分の言葉で説明

新しい説明書を検索してに追加すると、必ずファインチューニングになりますか。

説明と比べる

いいえ。検索は文脈を追加します。ファインチューニングには重みを更新する学習が必要です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

学習と推論を比べる(10分) → バイグラムで数える例(10分) → 検索とファインチューニングを比べる(10分) → 生徒が場面を分類する(10分) → セルフチェック(10分)。

画面で見せること

  1. 章にある sky → red/blue を数える例を黒板で一緒に解き、確率を計算しましょう。
  2. マニュアルをプロンプトに貼り付けるアプリ(検索)を見せ、そのときモデルの重みは変わっていないと説明しましょう。

生徒の活動

  1. 5つの場面を学習、推論、検索に分けましょう。たとえば「チャットボットが答える前に今日のメニューを読む」といった場面です。

達成の目安

学習で何が変わり、推論のときにモデルが何を使うかを説明できれば達成です。

生徒がつまずいたら

  • チャットボットは会話のたびに学ぶと思っているとき: 学習し直さないかぎり重みは変わらないと説明しましょう。

クラスへの問いかけ

  • モデルは、なぜ一度も学習していない文書についても答えられるのでしょうか?
出典と参考資料
第9章 · 初級 · AIのしくみ

指示・サンプリング・検証

目標

いつも同じ答え(一貫性)と正しい答え(事実の正確さ)は違うことを知り、生成設定を変えながら比較します。

システム指示は回答を導きますが、従うことや安全なツールアクセスを保証しません。はアプリが制御します。は(スコアをに変える段階)前のスコアを調整し、小さい正の値は確率を集中、大きい値は平坦にします。は候補数、top-pはで候補を絞ります。事実確認の機能ではありません。は抽選せず最高スコアのを選びます。

やさしく理解しよう

こんなふうに考えてみよう
温度は、冒険心のつまみのようなものです。下げると、はほとんどいつも、いちばんありそうな言葉を選びます。上げると、意外な言葉をもっとよく試します。top-k はつぼの中にいちばんありそうな候補を k 個だけ残し、top-p は確率の大きい順に足していき、合計が p 以上になる、いちばん小さな候補のグループだけを残します。
例

算数の答えや、元の文章からはなれてはいけない要約には、低い温度を使います。お話のアイデアや名前を考えるときは、温度を少し上げると、いろいろな答えが出ます。どちらの場合も、事実は自分で確かめましょう。

よくある間違い
「温度を下げれば、答えが正しくなる。」選び方が予測しやすくなるだけです。ありそうでもまちがった文は、まちがったままです。
左:手がいつもいちばん高い棒だけを指すので、毎回同じブロックが出る。右:むらさきの玉が多く、うすむらさきの玉は少なく、ピーチ色の玉は少しだけ入ったつぼから手が玉を引き、結果はほとんどむらさきで、ときどき別の色がまじる。
貪欲法はいつもいちばん高い棒を選びます。はつぼから引くので、結果が毎回少しずつ変わります。
もう少し詳しく

作成実習で貪欲法とサンプリングを何度か比較しましょう。抽選でも同じ結果は出ます。実際のシステムではモデルの版・・ツール・数値計算も影響するため、温度0でも完全なは保証されません。次に曖昧な質問と、目的・背景・確認方法を含む質問を比較します。事実は原典で確かめ、ヒントを使って自分の言葉で説明しましょう。

自分の言葉で説明

低い温度のモデルも誤答を自信ありげに繰り返しますか。

説明と比べる

はい。確率の集中は真実の証拠ではありません。内容を別途検証します。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

指示と権限を比べる(10分) → 数字で見るtemperature、top-k、top-p(15分) → 生徒が出力を予想する(15分) → セルフチェック(10分)。

画面で見せること

  1. 3つのトークンのスコアに低いtemperatureと高いtemperatureをかけ、確率がとがったり平らになったりするようすを見せましょう。
  2. 高いtemperatureで同じ質問を2回して答えが変わることを見せ、どちらも事実かどうかは確かめられていないと説明しましょう。

生徒の活動

  1. 確率が0.6、0.3、0.1のとき、top-k = 2とtop-p = 0.8がそれぞれどのトークンを残すか答えましょう。

達成の目安

temperatureを低くすると答えは一貫するけれど、正しいとは限らないと説明できれば達成です。

生徒がつまずいたら

  • がの壁だと思っているとき: 権限を守るのはではなくアプリケーションだと説明しましょう。

クラスへの問いかけ

  • temperatureを高くしたいのはどんなときで、低くしたいのはどんなときでしょうか?
出典と参考資料
第10章 · 初級 · AIツールを使う

ChatGPT: 上手に頼んで答えを確かめる

目標

目的、、条件、のそろった依頼を書き、一歩ずつ改善し、答えを使う前に確かめられるようになります。

はで作られたチャットアシスタントです。文章を書き、要約し、翻訳し、説明し、計画を立てます。添付したファイルや画像を読むこともでき、機能がオンならWeb検索もします。

よい依頼には4つの部分があります:

  • 目的 — 何がほしいか
  • 文脈 — 誰のためのものか、すでに何があるか
  • 条件 — 長さ、口調、避けること
  • 形式 — 、表、メール

最初の答えが外れていたら、最初からやり直さずに、何を変えてほしいかを正確に伝えましょう。1つの会話は1つのテーマにしぼると、前のメッセージが混乱のもとではなく助けになります。

やさしく理解しよう

こんなふうに考えてみよう
ChatGPT は、初出勤の日の有能な新しい助っ人だと思って接しましょう。仕事は速いけれど、あなたが話さないかぎり、あなたの事情は知りません。まちがっているのに自信たっぷりに話すこともあります。仕事をはっきり説明し、最初の下書きを見て、具体的に直してほしいところを伝えましょう。
例
  • 最初のお願い:「パーティーの招待状を書いて。」
  • もっとよいお願い:「10 歳の子のクラスメートに送る誕生日パーティーの招待状を書いて。土曜日の午後 2 時、うちで、水着を持ってきてね、80 語以内、親しみやすい口調で。」
  • 続けて:「2 つ目の文を短くして、木曜日までに保護者の方に返事をお願いする一行を足して。」
よくある間違い
1 つのチャットにいろいろな話題をまぜること。前のメッセージがあとの答えにずっと影響するので、新しい話題は新しいチャットで始めましょう。
3 つの飛び石の上に、チャット画面が 1 つずつある。ぐちゃぐちゃの結果、鉛筆の直しが入った少しきれいな結果、緑のチェックがついたきれいな結果。子どもが段階ごとに意見を書いたふせんをはり、最後の答えを本ともう一つの資料で確かめている。
具体的な意見で答えを一歩ずつよくし、使う前に別の資料で確かめましょう。
もう少し詳しく

はありそうな文章を予測するので、すらすら読める答えでも間違っていることがあります。情報源をたずねて実際に開き、数字は元の資料と比べ、にどんな前提を置いたかを書き出してもらいましょう。大事な事実は、独立した2つ目の情報源で確かめます。やプロジェクト機能でChatGPTに好みを覚えさせることはできますが、それも指示であって保証ではないので、確認を続けましょう。

自分の言葉で説明

「発表を手伝って」という依頼を、目的、文脈、条件、形式が入るように書き直しましょう。

説明と比べる

たとえば「目的: スライド5枚の構成案。文脈: 13歳の生徒に向けた、リサイクルについての3分間の授業発表。条件: やさしい言葉で、スライドごとに出典つきの統計を1つ。形式: 各スライドにタイトルと箇条書き2つ。」4つの部分をすべてはっきり書いた答えなら正解です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

弱い依頼と強い依頼を比べる(10分) → 3回のやりとりでその場で改善する(10分) → 生徒が自分の依頼を書いて磨く(20分) → 答えを比べて確かめる(10分)。

画面で見せること

  1. 「韓国について教えて。」と聞いてみましょう。次に「目的: 10歳の子ども向けに韓国を5行で紹介する。文脈: その子はブラジルに住んでいる。条件: 歴史の年号は入れない。形式: 箇条書き。」と聞き、2つの答えを比べます。
  2. 最初から聞き直さずに、「3行目を短くして、食べ物の例を1つ加えて」のように、変えてほしい点を正確に続けて伝えましょう。
  3. 答えに数字が入る質問をし、情報源をたずねて開き、数字が合っているか確かめましょう。

生徒の活動

  1. 実際の作業(メール、勉強の計画、要約)を1つ選び、目的、文脈、条件、形式のそろった依頼を書きましょう。
  2. 少なくとも2回の追加メッセージで答えを改善し、確かめた主張を1つと、その確かめ方を書きましょう。

達成の目安

最後の依頼に4つの部分がすべて入っていて、情報源と照らし合わせて確かめた事実を1つ示せれば達成です。

生徒がつまずいたら

  • 答えが長すぎる、または一般的すぎるとき: 長さの制限と対象を加え、ほしいものの例を1つ示しましょう。
  • 答えが情報源や数字をでっち上げたとき: そう指摘してリンクを求め、確かめられないことは未確認として扱いましょう。

クラスへの問いかけ

  • あなたの例では、4つの部分のどれが答えをいちばん大きく変えましたか?
  • 自信たっぷりですらすら読める答えでも、なぜ間違っていることがあるのでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第11章 · 初級 · AIツールを使う

画像生成: 描写し、磨き、確かめる

目標

画像を正確に描写し、一度に1つだけ変え、使う前に間違い、権利、誠実さを確かめられるようになります。

画像は文章の説明を画像に変えます。多くのモデルは、渡した画像を編集することもできます。とは画像を作って編集できます。Googleはという画像モデルを提供しています( の以前のモデルは提供が終了しました)。よい画像には、次のものが入ります。

  • 主題と場所
  • 画風
  • 構図 — アップか引きか、何がどこにあるか
  • 色
  • サイズや

編集するときは、変えるものと変えないものを両方伝えましょう。たとえば「女の子と背景はそのままで、傘だけ黄色にして」のようにです。

やさしく理解しよう

こんなふうに考えてみよう
絵をお願いするのは、電話で画家に場面を説明するのと同じです。画家にはあなたの頭の中が見えないので、だれが描かれているか、どこなのか、絵のスタイル、どれくらい近くから見た絵か、色、絵の形を伝えましょう。直してほしいときは、そのままにしてほしいところも伝えます。
例

「夕暮れの雨の通りを、黄色いかさをさして歩く女の子。あたたかい水彩画のスタイル、少しはなれたところから見た様子、やわらかな青とオレンジ、横長 3:2 の絵。」続けて:「女の子と通りはそのままで、かさだけを赤に変えて。」

よくある間違い
拡大して見ないまま絵を使うこと。多すぎる指、まちがった文字、ありえない影をさがしましょう。そして、作った絵を本物の写真のように見せてはいけません。
子どもがタブレットで、黄色いかさをさした女の子の生成された絵を見ている。虫めがねで見ると女の子の指が 6 本あり、赤い丸で囲まれている。タブレットの横には、チェックボックスのあるチェックリストと盾のアイコンがある。
生成した絵を使う前に拡大して、手・文字・影を確かめましょう。そして、 が作ったことを正直に伝えましょう。
もう少し詳しく

生成された画像には、小さな間違いが隠れていることがよくあります。間違った文字、多すぎる指、ありえない影などです。必ず拡大して確かめましょう。生成した画像を使って本当に起きたことのように見せかけない、存命のアーティストや実在の人物を許可なくまねしない、必要なときはAIで作った画像だと明かす、を守りましょう。画像を商用で使う前には、ツールの利用規約を読みましょう。

自分の言葉で説明

人物写真の背景だけを海辺に変え、人物はまったく同じままにする編集の依頼を書きましょう。

説明と比べる

たとえば「人物の顔、服、ポーズ、光の当たり方は今のままにしてください。背景だけを、人物の後ろに海が見える晴れた海辺に変えてください。」変えるものと変えないものの両方を書く必要があります。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

弱いプロンプトと強いプロンプトを比べる(10分) → ほかはそのままで1か所だけ編集する(10分) → 生徒が自分の画像を作って編集する(20分) → 間違いと権利を振り返る(10分)。

画面で見せること

  1. 「ネコ」で画像を作り、次に「日当たりのよい窓辺の青いいすで眠るオレンジ色のネコの水彩画、引きの構図、4:3」で作って比べましょう。
  2. 2枚目の画像を「ほかはすべてそのままで、いすだけ緑にして」と編集しましょう。うっかり変わってしまった部分があれば指摘します。
  3. 結果を拡大し、文字、手、影、遠近法のどこかで間違いを1つ見つけましょう。

生徒の活動

  1. 主題、場所、画風、構図、色、サイズを入れた画像プロンプトを書いて、画像を生成しましょう。
  2. ちょうど1か所だけを変える編集をして、ほかの部分も変わったかどうかを書き留めましょう。

達成の目安

プロンプト、編集の依頼、そして結果の中で見つけた間違いを1つ示せれば達成です。

生徒がつまずいたら

  • 画像がプロンプトの一部を無視するとき: いちばん大事な内容を先頭に書き、矛盾する言葉を消しましょう。
  • 画像の中の文字のつづりが間違っているとき: 文字数を減らしてもらうか、あとから普通の編集ソフトで文字を入れましょう。

クラスへの問いかけ

  • 編集の依頼では、なぜ変えないものも伝えるべきなのでしょうか?
  • 生成した画像を使ってはいけないのは、どんなときでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第12章 · 初級 · AIツールを使う

シェルと基本コマンド: AIツールが動く場所

目標

の基本10個(、、、、、、、、clear、exit)を使えるようになります。プロジェクトフォルダでツールを起動・終了し、どのコマンドが危険かがわかるようになります。

、、、そしてほとんどの開発ツールはターミナルで動きます。ターミナルは、というにコマンドを入力するウィンドウです。基本の言葉はこれです。

  • pwd — 今どこにいる?
  • ls — ここに何がある?
  • cd — そこへ移動する(cd .. で1つ上に戻る)
  • mkdir — フォルダを作る
  • cat — ファイルを表示する
  • cp — コピーする
  • mv — 移動する、または名前を変える
  • rm — 削除する(ごみ箱はない)
  • clear — 画面をきれいにする
  • exit — セッションを閉じる

AIツールも同じように、プロジェクトフォルダの中で起動します。(Claude Code)、codex(Codex)、(Antigravity CLI)と入力します。SONUBには、の練習用ターミナルがついたシェルのコースがあります。この章では、そのコースの最初のユニットへ案内します。

もう少し詳しく

AIツールの中では、スラッシュで始まるコマンドがツールそのものを操作します:

  • — プロジェクトの指示ファイルを書きます。
  • /help — コマンドの一覧を表示します。
  • — 新しい会話を始めます。
  • /exit — ツールを終了します。

シェルのコースのユニット11では、AIツールのインストール方法と、 での確認方法を紹介しています。インストールコマンドは変わるので、公式ページと見比べましょう。まだ動いているコマンドを止めるには を押します。AIがコマンドを提案したら、許可する前に読みましょう。rm はごみ箱も通さず、すぐにファイルを消してしまいます。 は、たずねることもなくフォルダの中身をすべて消します。

シェルコマンドコースで練習する

この章の進み具合はそのコースに記録されます。

ターミナルで入力するコマンド
pwd                 # where am I?
ls                  # what is here?
mkdir ai-course     # make a folder
cd ai-course        # go into it (cd .. goes back up)
cat notes.txt       # show a file
cp notes.txt copy.txt
mv copy.txt old.txt # move or rename
rm old.txt          # delete for good (no recycle bin)
clear               # clean the screen

claude              # start an AI agent in this folder (or: codex, agy)
/init               # inside the agent: write the project instruction file
/help               # list the agent's commands
/exit               # leave the agent

これらはこのページではなく、自分のパソコンやのターミナルで実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

ai-course というフォルダに入り、中に何があるかを見て、今いる場所を確かめるには、どの3つのコマンドを使いますか?

説明と比べる

入るには cd ai-course、中身を一覧表示するには ls、今いる場所を表示するには pwd を使います。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

AIツールにとってターミナルが大切な理由(5分) → pwd、ls、cd、mkdirをその場で見て回る(10分) → 生徒がSONUBのシェルでユニット1と2に取り組む(25分) → ユニット11のインストール確認(10分)。

画面で見せること

  1. SONUBのシェルのコースを開き、練習用ターミナルで pwd、ls、mkdir ai-course、cd ai-course を実行しましょう。
  2. わざと間違ったコマンドを入力し、をみんなで声に出して読みましょう。
  3. ユニット11を見せましょう。Claude CodeとCodexのインストールコマンドと、--versionでインストールを確認する方法です。

生徒の活動

  1. シェルのユニット1(ターミナルに出会う)とユニット2(ファイルとフォルダ)を終えましょう。
  2. 自分のパソコンでターミナルを開き、で ai-course フォルダを作りましょう。

達成の目安

ユニット1と2を終え、助けなしで ai-course フォルダに移動できれば達成です。

生徒がつまずいたら

  • では見た目が違うとき: シェルのコースの説明どおりにかを使うか、SONUBのターミナルで練習を続けましょう。
  • インストール直後に「」と出るとき: ターミナルを閉じて開き直し、ユニット11のの部分を確認しましょう。

クラスへの問いかけ

  • pwd、ls、cdは、それぞれ何を教えてくれたり、何を変えたりしますか?
  • AIエージェントにコマンドを実行させる前に、なぜそのコマンドを読むべきなのでしょうか?
出典と参考資料
第13章 · 中級 · 開発の基本

GitとGitHub: バージョンを保存して一緒に作業する

目標

ですべての変更を保存し、による編集を確認して元に戻せるようにします。また、でプロジェクトを共有し、プルリクエストを作ってレビューできるようになります。

Gitはと呼ばれるプロジェクトのを記録するので、何が変わったかを見たり、前の状態に戻ったりできます。だからAIにとっての安全ネットになります。に作業させる前にコミットし、終わったら git で変更を確認して、残すか元に戻すかを決めましょう。

GitHubは、Gitのプロジェクトをオンラインで保管するWebサイトです。そこでは次のことをします:

  • を作る
  • コミットをプッシュする
  • プルリクエストを作る — 変更のまとまりを取り込むための提案で、ほかの人が読んで、コメントし、承認できる

SONUBのGitコースはを一歩ずつ教えてくれます。この章ではGitHubの側を加えます。

やさしく理解しよう

こんなふうに考えてみよう
Git はテレビゲームのセーブポイントのようなものです。コミットひとつひとつが、プロジェクト全体のスナップショットを持ったセーブポイントです。だから何かがうまくいかなくても、最後のうまくいっていた地点にもどれます。GitHub は、セーブポイントのコピーをオンラインで預かる雲の上の棚のようなものです。友だちがそれを見て、変更を提案することもできます。
例

エージェントに「を追加して」とたのむ前に、コミットします。エージェントが終わったら git diff を実行して、変わった行をすべて見ます。よさそうならもう一度コミットします。ページがこわれていたら、 でセーブポイントにもどれます。

よくある間違い
エージェントに長い時間作業させて、一度もコミットしないこと。そうすると、もどれるよいセーブポイントがなく、ひとつの大きなまちがいが、よい変更とまざってしまいます。
くねくねした道に、光るチェックポイントの旗が立っています。旗の上にはそれぞれ小さなスナップショットのカードがあり、点線の矢印が前の旗へもどっていきます。上の雲がカードのコピーを預かっていて、わき道にいるもう一人のキャラクターが、合流しようと握手の手を差し出しています。
コミットひとつひとつが、もどれるセーブポイントです。GitHub はそのコピーをオンラインで預かり、 はわき道を本道に合流させてほしいとお願いするものです。
もう少し詳しく

GitHubでは、で作業を説明し、でメインのを乱さずに作業し、プルリクエストでレビューします。個人的な作業が入ったリポジトリは非公開にし、やは決してコミットしないでください。一度プッシュしてしまったら、もう漏れたものと考えてキーを取り替えましょう。やもプルリクエストを作れますが、取り込む前には人がdiffを読むべきです。

自分の言葉で説明

AIエージェントがファイルを5つ変更したら、何かが壊れました。変更を確認して元に戻すには、どのGitコマンドが役に立ちますか?

説明と比べる

と git diff で何が変わったかを見ます。まだコミットしていない変更は git restore <file> で元に戻し、コミット済みなら でそのコミットを取り消します。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

AIと使うときにが大切な理由(5分) → 画面でコミット、diff、元に戻す操作(10分) → GitHub: リポジトリを作り、プッシュし、プルリクエストを作ってレビューする(15分) → 生徒の練習(20分)。

画面で見せること

  1. プロジェクトフォルダで 、、git commit -m "start" を実行し、1行変えてから git diff で何が変わったかを正確に見せましょう。
  2. GitHubにリポジトリを作り、プロジェクトをプッシュして、ブランチからプルリクエストを作りましょう。
  3. 変更された1行にレビューコメントを残し、承認するか変更を依頼しましょう。

生徒の活動

  1. Gitコースのステップ1–5に取り組み(またはもう知っていることを見せ)、ai-course フォルダで3回コミットしましょう。
  2. フォルダを新しいGitHubリポジトリにプッシュし、ファイルを1つだけ変えるプルリクエストを1つ作りましょう。

達成の目安

生徒のGitHubリポジトリにコミットが3つ以上あり、説明つきのプルリクエストが1つあれば達成です。

生徒がつまずいたら

  • のせいでプッシュが拒否されるとき: (gh auth login)かでサインインしましょう。は決してチャットに入力しないでください。
  • 秘密の値をうっかりコミットしたとき: すぐにそのキーを無効にして新しいキーに取り替え、それからコードから消しましょう。ファイルを消すだけでは足りません。

クラスへの問いかけ

  • AIエージェントにプロジェクトを変更させる前に、なぜコミットするのでしょうか?
  • プルリクエストがあると、ほかの人は何ができるでしょうか?
出典と参考資料
第14章 · 中級 · 開発の基本

PythonとNumPy: モデルを作るための道具

目標

小さなを書いて実行し、このコースのすべてのの部品となるを使えるようになります。

Pythonは短く書けて強力ながそろっているので、でいちばんよく使われる言語です。SONUBのPythonコースでは、出力、、、、、を、上で自動採点つきで学べます。先にそのコースを終えるか、それらの考え方を知っているか確かめておきましょう。

ただしモデルはたくさんの数を一度に扱うので、を使います。NumPy配列には数が格子状に入り、a @ b のような1行で全体をかけ算できます。これがまさにのしていることです。

やさしく理解しよう

こんなふうに考えてみよう
ふつうの Python は、電卓のように数をひとつずつ計算します。NumPy は、数がならんだマス目全体を一度に計算します。二つの表を一回でかけ算できる表計算ソフトのようなものです。モデルは巨大な数のマス目でできているので、モデルを十分に速く動かすのがこの道具です。
例

Python のループで百万個の数に 1 を足すと、小さな手順が百万回になります。NumPy の配列 a なら、a + 1 と書くだけで一行で全部できます。a @ b と書けば、二つの行列をまるごとかけ算します。

よくある間違い
Python の基本コースを飛ばして NumPy から始めること。リスト・ループ・関数を知らないと、NumPy のはとても読みにくくなります。
左側では、つかれたキャラクターが電卓を押していて、ひとつずつのブロックが長い列を作って待っています。右側では、機械が大きな色つきのマス目を二つ、一回でかけ算していて、キラキラと結果のマス目があらわれます。
ループは数をひとつずつ計算します。NumPy はマス目全体を一度に計算します。だからモデルは NumPy を使うのです。
もう少し詳しく

このコースの残りを支えるNumPyの考え方は3つです。

  • — 行と列がいくつあるか
  • — 演算が配列全体に自動で広げて適用されること
  • — Pythonのループを書かずに、配列全体をまとめて計算すること

この章の例はブラウザで動きます。自分のパソコンでは、Python 3をインストールし、 -m .venv で仮想環境を作り、source .venv/bin/activate( では .venv\\activate)でそれをオンにしてから、 install numpy でNumPyをインストールしましょう。

コード例 ブラウザ上でPythonとNumPyを使って動きます。を変えて、もう一度実行してみましょう。

自分の言葉で説明

ある配列のshapeは (4, 3)、もう1つは (3, 2) です。2つの積のshapeは何で、それはなぜでしょうか?

説明と比べる

(4, 2) です。行列のかけ算では内側のサイズ(3と3)が一致している必要があり、結果には外側のサイズである4と2が残ります。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

Pythonの基本を確認する(10分) → 画面でNumPy配列、shape、@を見る(10分) → 生徒が例を実行して書き換える(20分) → を一緒に説明する(10分)。

画面で見せること

  1. 例を実行し、shape、ブロードキャストの結果、を指し示しましょう。
  2. softmaxの行のスコアを変えても、の合計はやはり1になることを見せましょう。
  3. 同じ足し算をPythonのループとNumPyの1行で書いて比べましょう。

生徒の活動

  1. SONUBのPythonコースを関数のところまで終えるか、小さな関数を書けることを講師に見せましょう。
  2. 例を書き換えましょう。3×3の配列を作って3×1の配列とかけ算し、実行する前に結果のshapeを予想します。

達成の目安

行列の積のshapeを正しく予想し、softmaxが何を返すかを説明できれば達成です。

生徒がつまずいたら

  • shapeについてのが出るとき: 両方の配列の .shape を表示しましょう。a @ b では内側のサイズが一致している必要があります。
  • 自分のパソコンで「 numpy」と出るとき: 仮想環境を有効にして pip install numpy を実行しましょう。

クラスへの問いかけ

  • Pythonのループではなく、なぜNumPyを使うのでしょうか?
  • softmaxが返す数をすべて足すと、いつもいくつになるでしょうか?
出典と参考資料
第15章 · 中級 · 開発の基本

Python:実行・観察・変更

目標

で・分岐・を使います。

はやなど数値計算・の道具が豊富で、開発に広く使われます。SONUBはでブラウザー内のPythonを実行します。実行環境やパッケージの読み込みには時間がかかります。挨拶の表示は動作確認で、AIのではありません。

やさしく理解しよう

こんなふうに考えてみよう
を実行するのは、理科の実験に似ています。何が起きるか予想して、実行して、結果を見て、一度にひとつだけ変えます。表示されたメッセージは実験の結果です。あなたがまちがえたというしるしではありません。
例

実行ボタンを押す前に、(2 + 3 * 4) が何を表示するか予想しましょう。それから実行してくらべます。20 だと思ったなら、(2 + 3) * 4 に変えてもう一度実行し、最初の答えがなぜ 14 なのかたしかめましょう。

よくある間違い
エラーが出たときに、たくさんの行を一度に変えること。変えるのはひとつだけにして、もう一度実行します。は最後の行から読みましょう。たいていそこに問題が書いてあります。
もう少し詳しく

下の例は人が書いた規則を適用します。点数や基準を変え、実行前に結果を予想しましょう。関数のは値を返し、printは表示します。基準と等しい点数なども試します。この規則にはからの学習はありません。

コード例 ブラウザ上でPythonとNumPyを使って動きます。コードを変えて、もう一度実行してみましょう。

自分の言葉で説明

開発者がif条件を書き換えると、データから学習したことになりますか。

説明と比べる

いいえ。規則の編集はプログラミングです。学習にはデータからモデルの動作を導く処理が必要です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

例を実行する(10分) → 条件を1つ変えて出力を予想する(10分) → 生徒が小さな関数を書く(20分) → セルフチェック(10分)。

画面で見せること

  1. 章の例のコードを実行し、 の部分が実行されるように質問を変えてみましょう。
  2. if の条件を変えるのはプログラミングであって、データから学ぶことではないと指摘しましょう。

生徒の活動

  1. if//else で3つの違う質問に答える関数を書き、質問ごとに試しましょう。

達成の目安

コードを実行する前に、どの分岐が実行されるかを予想できれば達成です。

生徒がつまずいたら

  • : if と else の中の行を半角スペース4つでそろえましょう。

クラスへの問いかけ

  • 人が書き換えるプログラムと、自分で学ぶモデルは何が違うのでしょうか?
出典と参考資料
第16章 · 中級 · 作って公開する

バイブコーディング: AIと話しながらホームページを作る

目標

に説明し、変更を1つずつ確認し、プロジェクトをに保存しながら、1ページのホームページを作れるようになります。

とは、ほしいものを主にふつうの言葉で説明し、はAIに書かせてを作るやり方です。あなたは方向を決め、試し、判断します。

小さく始めましょう。フォルダ1つ、Gitの1つ、そして短い説明書です。説明書には次のことを書きます:

  • サイトを誰が見るか
  • どんなセクションがあるか
  • スタイル
  • ルール — 素のと、スマホでも動く、外部なし

に最初のを頼み、で を開き、1回に1つずつ改善していきます。「を小さくして」「連絡先のセクションを追加して」「スマホでのを直して」のようにです。

やさしく理解しよう

こんなふうに考えてみよう
バイブコーディングは、あなたが設計士になって大工さんといっしょに家を建てるようなものです。ほしい家をふだんの言葉で説明すると、大工さん(AI)が建ててくれます。あなたは中を歩いて、おかしいところを指さし、直してほしいとたのみます。何を建てるかを決め、安全かどうかをたしかめるのは、やはりあなたです。
例

「読書クラブ用の1ページのサイトを作って。タイトル、写真のスペース、次の集まりの日付、参加ボタン。ふつうの HTML と CSS で、スマホでも使えるようにして。」そのあと index.html を開き、せまいウィンドウで試してから、こうたのみます。「ボタンを大きくして、日付を写真の上に置いて。」

よくある間違い
ページを開かずに、変更を全部受け入れること。たのむたびにブラウザーでたしかめ、ちゃんと動くバージョンができたらしましょう。
リラックスした人が、ふきだしの中で家・パレット・スマホを説明しています。ロボットがノートパソコンの上で、色つきのブロックでページを組み立てます。その人は虫めがねを持ってスマホとノートパソコンでたしかめ、付せんを返します。円い矢印が、それぞれの手順をつないでいます。
説明する → AI が作る → ブラウザーでたしかめる → 意見を伝える。小さなひと回りをくり返し、動くバージョンができるたびに保存します。
もう少し詳しく

開発者はやはりあなたです。変更を受け入れる前に1つずつ読み、うまく動いた段階ごとにGitにコミットして戻れるようにし、実際のスマホの幅で試しましょう。エージェントにパスワードやをページに入れさせてはいけません。ホームページは公開されていて、中身はすべて誰でも読めます。ページがちゃんと動いたら、公開の準備ができました。次の章でを使ってインターネットに出します。

ターミナルで入力するコマンド
mkdir homepage && cd homepage
git init                       # save points from the first minute
claude                         # or: codex, agy

# then, inside the agent:
# "Make a one-page homepage in index.html for <who it is for>.
#  Sections: <...>. Style: <...>. Plain HTML and CSS, works on a phone,
#  no outside libraries. Show me the plan before you write."

git add index.html
git commit -m "first working homepage"
git restore index.html         # throw away a change you do not like

これらはこのページではなく、自分のパソコンやので実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

バイブコーディングで、変更のたびにくり返す4つの段階を書きましょう。

説明と比べる

変更を1つ説明する → エージェントに作らせる → ブラウザで確かめる(スマホの幅でも) → うまくいけばGitにコミットし、だめなら元に戻す。頼む、確かめる、保存する、が入っていれば正解です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

みんなで説明書を書く(10分) → エージェントが最初のバージョンを作る(10分) → 「見る、頼む、確かめる、コミットする」を3回(25分) → ページを見せ合う(5分)。

画面で見せること

  1. 空の homepage フォルダで を実行し、エージェントを起動して、1ページのサイトのための6つの部分のを貼り付けましょう。
  2. index.html を開き、ブラウザをスマホの幅に縮めて、崩れたところを直すようエージェントに頼みましょう。
  3. コミットしてから、わざとまずい変更を頼み、 で最後のコミットに戻しましょう。

生徒の活動

  1. セクションが3つ以上ある、自分だけの1ページのホームページ(クラブ、趣味、フォリオ)を作りましょう。
  2. うまく動いた変更1つにつきコミット1つで、わかりやすいメッセージをつけて3回以上コミットしましょう。

達成の目安

ページがブラウザで開き、スマホの幅でも読みやすく、秘密の情報が入っておらず、小さな段階ごとのGitの履歴があれば達成です。

生徒がつまずいたら

  • エージェントが毎回すべてを書き直すとき: 小さな変更を1つだけ頼み、ファイルとセクションの名前を伝えましょう。
  • スマホでページが崩れて見えるとき: のレイアウトを頼み、 の幅で確認しましょう。

クラスへの問いかけ

  • AIがコードを書くのに、なぜうまく動いた段階ごとにコミットするのでしょうか?
  • 公開するホームページに、なぜ絶対にAPIキーを入れてはいけないのでしょうか?
出典と参考資料
第17章 · 中級 · 作って公開する

Webに公開する: ホームページをCloudflareにデプロイする

目標

かを使って静的なページをで公開し、更新し、公開したあと何が見えるようになるのかがわかるようになります。

Cloudflare Pagesは、、、、画像でできたを、の世界中ので公開してくれます。無料プランがあり、your-project.pages.dev のようなアドレスがもらえます。方法は2つあります。

  • — をインストールし、 wrangler login を実行します(Wrangler は Cloudflare のツールで、npx はそれをインストールせずに実行します)。npx wrangler pages project create my-homepage でプロジェクトを作り、それから があるフォルダで npx wrangler pages ./ --project-name=my-homepage を実行します。
  • — プロジェクトをGitHubにプッシュし、Cloudflareのでそのをつなぎます。そのあとは、プッシュするたびに新しいが自動で公開されます。

最初にどちらかを選びましょう。Direct Uploadのプロジェクトは、あとからGit連携に切り替えられません。

やさしく理解しよう

こんなふうに考えてみよう
デプロイは、リビングにあったお店を、人通りの多い通りに引っこすようなものです。ノートパソコンの上では、ページを見られるのはあなただけです。デプロイすると、ファイルが世界中のに置かれ、アドレスを知っている人ならだれでも開けるようになります。
例

ホームページのフォルダーには index.html、style.css、写真が一枚入っています。フォルダーをアップロードすると、your-project.pages.dev のようなアドレスがもらえるので、スマホで開いてみます。次にページを直してもう一度デプロイすると、みんなに新しいバージョンが見えます。

よくある間違い
中に やが入ったまま、プロジェクトフォルダーをまるごとアップロードすること。静的サイトにデプロイしたものは、だれでもダウンロードできます。先にフォルダーの中身をたしかめましょう。
ページのファイルが入ったフォルダーが、ノートパソコンから雲へ上がっていきます。光る地球のネットワークから、同じカラフルなページが、世界中の人が持つスマホ・タブレット・ノートパソコンに届きます。
デプロイすると、ファイルが世界中のサーバーにコピーされます。だから、ひとつのアドレスで、だれにでも同じページが開きます。
もう少し詳しく

公開したものはすべて誰でも見られるので、フォルダにキー、個人的なメモ、.env ファイルが入っていないか確かめましょう。

デプロイのたびにそれ専用のができ、はいちばん新しいデプロイを表示します。だから、共有する前に試せます。myname.com のような自分のは、あとでダッシュボードから追加できます。

にデプロイのを実行させてもかまいませんが、先にコマンドを読み、Cloudflareのは決してチャットに貼り付けないでください。

ターミナルで入力するコマンド
# Direct Upload — run in the folder that has index.html
npx wrangler login
npx wrangler pages project create my-homepage
npx wrangler pages deploy ./ --project-name=my-homepage

# -> https://my-homepage.pages.dev
# Choose at the start: a Direct Upload project cannot switch to Git integration later.

これらはこのページではなく、自分のパソコンやサーバーので実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

自分のホームページがパソコンからインターネットに出るまでを、3つの段階で説明しましょう。

説明と比べる

1. WranglerでCloudflareにログインする(またはGitHubをつなぐ)。2. index.html が入ったフォルダをPagesのプロジェクトとしてアップロードする。3. Cloudflareが自分のネットワークから pages.dev のアドレスで配信し、新しくアップロードするたびに公開中のバージョンが置き換わる。ログイン、アップロード、公開アドレスが入っていれば正解です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

とは何か、静的なサイトはなぜかんたんなのか(5分) → みんなでWranglerを使ってデプロイする(15分) → ページを変えてもう一度デプロイする(10分) → 2つ目の方法としてGitHubをつなぐ(10分)。

画面で見せること

  1. npx wrangler login と npx wrangler pages deploy ./ --project-name=demo-homepage を実行し、pages.dev のアドレスを開きましょう。
  2. 1行変えてもう一度デプロイし、ダッシュボードで新しいデプロイとそのプレビュー用アドレスを見せましょう。
  3. .env を除外する を見せ、静的なサイトになぜ秘密を入れてはいけないのかを説明しましょう。

生徒の活動

  1. で作ったホームページを公開し、pages.dev のアドレスを共有しましょう。
  2. 1か所改善してもう一度公開し、変更が反映されたことを確かめましょう。

達成の目安

ホームページが pages.dev のアドレスで開け、更新を1回公開していて、何が公開されるのかを説明できれば達成です。

生徒がつまずいたら

  • 「npx: 」と出るとき: 先にNode.js()をインストールし、新しいターミナルを開きましょう。
  • ページにと表示されるとき: その上のフォルダではなく、index.html が入っているフォルダをデプロイしましょう。

クラスへの問いかけ

  • Direct UploadとGit連携は、どう違うでしょうか?
  • 静的なサイトは無料で公開しても安全なのに、秘密を置くのは安全でないのはなぜでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第18章 · 中級 · 作って公開する

Google Play: アプリをAndroidのスマホに届ける

目標

アプリをで公開する手順(デベロッパーアカウント、、、テスト、審査)がわかるようになります。新しい個人アカウントのテストのルールもわかるようになります。

Google Playで公開するには、3つのものが必要です。

  • のデベロッパーアカウント — 1回だけの登録料と本人確認
  • Android App Bundle(.aab)として作ったアプリ — でたもの
  • ストアの掲載情報 — 名前、説明、、アイコン、のアドレス、コンテンツとについての回答

でアプリを作るなら(たとえばで)、を作るよう頼みましょう。署名鍵のファイルとそのパスワードは、にもどのチャットにも入れないでください。

やさしく理解しよう

こんなふうに考えてみよう
アプリをストアに出すのは、自分の商品を大きなお店の棚にならべてもらうようなものです。お店は3つのことをたしかめます。その商品が本当にあなたのものか(署名)、箱に中身がちゃんと書いてあるか(スクリーンショット・説明・アイコン)、について正直か(プライバシーポリシー)です。最後に審査の人が見ます。
例

エージェントに、アップロード鍵で署名したリリースビルドをたのみます。それから Play Console に行き、ストアの掲載情報を書き、データセーフティの質問に答えて、まずにを送ります。新しい個人アカウントでは、12 人のテスターで 14 日間のクローズドテストをしたあとで、はじめてできます。

よくある間違い
署名の鍵をなくしたり、Git にしたりすること。鍵ファイルとそのパスワードはプロジェクトの外に置き、安全な場所にしておきましょう。
アプリの箱が、四つのやさしい門を通っていきます。鍵と封ろうの門、写真のフレームとカメラの門、書類をもった盾の門、虫めがねと緑のチェックマークをもった審査の人の門です。そして明るいお店の棚とスマホに届きます。
署名・ストアの掲載情報・プライバシー・審査。どのアプリも、人のスマホに届く前にこの四つの門を通ります。
もう少し詳しく

リリースはトラックを通っていきます。内部テスト、クローズドテスト、オープンテスト、製品版です。新しい個人のデベロッパーアカウントは、製品版へのアクセスを申請する前に、まず12人以上のテスターが14日間続けて参加し続けるクローズドテストを行わなければなりません。だから、テスターは早めに計画しましょう。リリースはすべてGoogleが審査し、更新のたびにを上げる必要があります。ルールや画面は変わるので、この章と合わせて公式のPlay Consoleヘルプに従ってください。

ターミナルで入力するコマンド
# Flutter: build a signed Android App Bundle for Google Play
flutter build appbundle
# -> build/app/outputs/bundle/release/app-release.aab

# Keep the upload key and its passwords out of Git:
#   android/key.properties
#   *.jks

これらはこのページではなく、自分のパソコンやので実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

次を順番に並べましょう: 製品版、クローズドテスト、リリース用のバンドル、ストアの掲載情報。

説明と比べる

リリース用のバンドル → ストアの掲載情報 → クローズドテスト(新しい個人アカウントは12人のテスターで14日間) → 製品版。バンドルと掲載情報はどちらを先に用意してもかまいませんが、テストはいつも製品版より先です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

アプリからストアまでの全体像(10分) → みんなでリリース用のバンドルを作る(15分) → Play Consoleの掲載情報を見て回る(15分) → 12人のテスターによるクローズドテストを計画する(10分)。

画面で見せること

  1. リリース用ビルドのコマンド(Flutterなら appbundle)と、.aab ファイルができる場所を見せましょう。
  2. Play Consoleを見て回りましょう。アプリの作成、ストアの掲載情報、データセーフティのフォーム、テストのトラックです。
  3. アップロード鍵をどこに保管するか、そしてなぜ決してコミットしたり共有したりしてはいけないのかを見せましょう。

生徒の活動

  1. 自分のアプリのストアの掲載情報を書きましょう。名前、簡単な説明と詳しい説明、撮るスクリーンショットのリストです。
  2. テスターの計画を立てましょう。12人、どうやって招待するか、14日間どうやってテストに残ってもらうかを書きます。

達成の目安

リリース用のバンドルから製品版までの手順を挙げられ、トラックとクローズドテストのルールを説明でき、掲載情報の下書きとテスターの計画があれば達成です。

生徒がつまずいたら

  • デベロッパーアカウントがない、または年齢が足りないとき: 掲載情報とテスターの計画で練習しましょう。アカウントは保護者や学校が持つこともできます。
  • のせいでアップロードが拒否されるとき: バージョンコードを上げましょう(Flutterなら の + のあとの数字)。

クラスへの問いかけ

  • 新しい個人アカウントは、なぜ製品版の前にクローズドテストをしなければならないのでしょうか?
  • アップロード鍵をなくすとどうなり、どうやって守ればよいでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第19章 · 中級 · 作って公開する

App Store: アプリをiPhoneに届ける

目標

iPhoneアプリを公開する手順(、署名、、、)がわかるようになります。いちばんよくあるリジェクトの理由もわかるようになります。

で公開するには、3つのものが必要です。

  • が入った
  • Apple Developer Programのメンバーシップ(年会費)
  • App Store Connectにあるアプリの登録情報 — 、名前、、のアドレス、アプリが集めるについてのプライバシー情報

Xcodeで(または ipa のようなツールで)アプリをアーカイブしてアップロードします。をオンにしておけば、署名のとプロファイルはXcodeが代わりに扱ってくれます。

やさしく理解しよう

こんなふうに考えてみよう
App Store も と同じ考え方ですが、Apple ならではの門があります。Xcode が入った Mac、年ごとの開発者メンバーシップ、アプリの名前になるバンドル ID、そして App Store Connect のアプリ記録です。自分のチェックリストを持った二つめのお店だと考えましょう。
例

Xcode で(またはビルドツールで)アプリをアーカイブしてアップロードし、TestFlight で何人かの友だちを招待します。もらった意見を直したら、プライバシーの詳細とスクリーンショットを入れて、そのを審査に出します。

よくある間違い
仮のスクリーンショット、動かないログイン、プライバシーポリシーなしで提出すること。審査の人は、説明と合わないアプリをリジェクトします。送るビルドそのものをテストしましょう。
アプリの箱が、四つのやさしい門を通っていきます。鍵と封ろうの門、写真のフレームとカメラの門、書類をもった盾の門、虫めがねと緑のチェックマークをもった審査の人の門です。そして明るいお店の棚とスマホに届きます。
Google Play と同じ四つの門を、Apple の道具で通ります。Xcode の署名、App Store Connect の、プライバシーの詳細、そして App Review です。
もう少し詳しく

アップロードしたビルドはどれも、先にTestFlightに出せます。だから、一般の人より先にテスターがインストールできます。リリースのために提出すると、AppleのApp Reviewがガイドラインに照らしてアプリを確認します。よくあるリジェクトの理由はこうです。

  • アプリがクラッシュする、または仮の内容が入っている。
  • プライバシー情報が抜けている。
  • ログインがあるのに、審査担当者用のテストアカウントがない。
  • 他社のログインがあるのに、のような同じくらいプライバシーに配慮した選択肢がない。
  • ウェブサイトをアプリで包んだだけで、できることがほとんどない(最低限の機能のルール、ガイドライン4.2)。

リジェクトのメッセージを読み、まさにそこを直して、もう一度提出しましょう。

ターミナルで入力するコマンド
# Flutter on a Mac with Xcode: build the iOS archive for App Store Connect
flutter build ipa
# -> build/ios/archive/Runner.xcarchive  (open it in Xcode)
# -> Xcode: Distribute App -> App Store Connect -> TestFlight first
# A website only wrapped in an app can be rejected (App Review Guidelines 4.2 — minimum functionality)

これらはこのページではなく、自分のパソコンやので実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

「起動時にアプリがクラッシュした」という理由でアプリがリジェクトされました。どうしますか?

説明と比べる

順番はこうです。

  • 同じのバージョンの実機のiPhoneかTestFlightで、同じことが起きるか試します。
  • クラッシュを直し、を上げます。
  • 新しいビルドをアップロードします。
  • App Store Connectで、何を直したかを返信します。

直す、アップロードし直す、返信する、が大事な手順です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

Appleの流れ: アカウント → ビルド → TestFlight → 審査(10分) → みんなでアーカイブしてアップロードする(15分) → App Store Connectの掲載情報(15分) → リジェクトの理由と返答のしかた(10分)。

画面で見せること

  1. Xcodeで Product → を選び、続けて Distribute App → App Store Connect を選びましょう。
  2. App Store ConnectでTestFlightのタブを見せ、内部テスターを追加して、スマホにビルドをインストールしましょう。
  3. 本物らしいリジェクトのメッセージをみんなで読み、直す点と返事を書きましょう。

生徒の活動

  1. 掲載情報の下書きを埋めましょう。名前、サブタイトル、説明、ワード、プライバシーポリシーのアドレス、審査担当者用のデモアカウントです。
  2. よくある5つのリジェクトの理由に照らして自分のアプリを確認し、直すことを書き留めましょう。

達成の目安

アーカイブ、アップロード、TestFlight、審査を順番に説明でき、チェックリストがよくあるリジェクトの理由をカバーしていれば達成です。

生徒がつまずいたら

  • Macやメンバーシップがないとき: 掲載情報とチェックリストで練習し、アプリはかWebで試しましょう。
  • 署名のエラーでアップロードに失敗するとき: Xcodeで自動署名をオンにし、自分のチームを選びましょう。

クラスへの問いかけ

  • 審査に提出する前に、なぜTestFlightで試すのでしょうか?
  • アプリにログインがあると、Appleはなぜデモアカウントを求めるのでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第20章 · 上級 · AIエージェント

エージェントとサブエージェント: AIが一歩ずつ働くしくみ

目標

のループ(観察する、考える、行動する、くり返す)と、エージェントをつくる4つの要素を説明できるようになります。がによって、、、エージェントと呼ばれる理由も説明できるようになります。エージェントが持つツールと、そしてがいつに仕事を渡すのかも説明できるようになります。

エージェント(Agent)は、目標を受け取ると自分で判断し、ツールを使って行動し、その結果を見て次の行動を決めるシステムです。は1つの質問に1つの答えを出して終わります。エージェントは、作業が終わるか、あなたの助けが必要になるまで、このループを自分でくり返します。

  • 観察する — ファイルの内容、検索結果、を読んで、今の状況を知ります。
  • 考える — が次に何をするかを決めます。
  • 行動する — ツールを使います(ファイルを直す、を実行する、を呼ぶ、を操作する)。
  • くり返す — 結果を見て、目標を達成するまでもう一度行います。

エージェントは4つの要素でできています。考える頭脳である言語モデル()、外の世界に手を伸ばすツール(最近はでつなぐことが多いです)、これまでにしたことを覚えておく、いつ仕事が終わったかを判断する目標とです。エージェントの力はツールから、限界は権限から来ます。権限とは、確認せずに何を読み、変え、実行してよいかです。Claude Code、、はどれもこのループで働きます。、設定、コマンドは違っても、基本のループは同じです。

Agent(エージェント)と(エージェンティック)は意味が違います。

  • Agent — 名詞です。それ自体で仕事を最後まで完全にやり遂げるものを指します。
  • Agentic — 形容詞です。AIを使って考え、決める過程を持つものの、AIだけでは完全な結末をつけられないツールを形容します。Agentic Tool、Agentic 、Agentic Music Generatorのように使います。

では、Claude Codeはツールでしょうか、それともエージェントでしょうか。答えは1つではありません。何を指すか、どう使うか、どんな会話かによって、4つの名前がどれも正しいのです。

  • ツール(tool) — 製品を呼ぶときです。作ったは「Claude Code is an agentic tool」(Claude Codeはエージェンティックなコーディングツール)と紹介しています。1ステップずつ確認して承認しながら使うと、賢いコーディングツールのように感じられます。
  • ハーネス(harness) — そのものを指すときです。Claude Codeの公式用語集は「Claude Codeはハーネスで、はその中のモデル」と説明しています。ハーネスはモデルに、ファイルの読み書き、の実行、権限の確認、メモリの読み込み、行動をつなぐループを与えます。
  • エージェンティックシステム(agentic system) — 設計の話をするときです。Anthropicは、言語モデルとツールをつないだシステムをすべてこの名前でまとめて呼びます。決まった順番で進むも、モデルが自分で手順を決めるエージェントも、どちらもここに入ります。
  • エージェント(agent) — ハーネスとモデルがいっしょに動いている姿を指すときです。大きな目標を任せて承認を自動にすると、自分でファイルを探し、直し、テストするエージェントとして働きます。Claude Codeを動かすハーネスを取り出したものが(旧名Claude Code SDK)で、同じハーネスでコーディング以外のエージェントも作れます。

やさしく理解しよう

こんなふうに考えてみよう
エージェントは、仕事を進めていく親切なイン生のようなものです。目標を読み、次の手順を決め、道具を使い、結果を見て、また決めます。権限は家のです。インターン生があなたに聞かずに開いたり、変えたり、実行したりしてよいことを決めます。
例

「テストが失敗する理由を見つけて直して。」エージェントはテストファイルを読み、テストを実行し、エラーを見て、コードを開き、変更して、もう一度テストを実行します。手順ひとつがループのひと回りです。サブエージェントは、一人めのインターン生が作業を続けているあいだに、二人めのインターン生に資料を探しに行ってもらうようなものです。

よくある間違い
初日からすべての権限をあたえること。まずはエージェントに読んで提案させ、コマンドはひとつずつ許可します。権限を広げるのは、自分がわかっている仕事だけにしましょう。
円い矢印のまん中にロボットがいます。矢印には四つの駅があります。目標の旗、計画が書かれた考えごとの雲、道具ベルト、結果を見る目です。ループのまわりには門のついたさくがあり、門のところで人が緑と赤の札を持っています。
目標 → 次の手順を計画 → 道具を使う → 結果を見る → もう一度。エージェントが何をしてよいかは、門のところであなたが決めます。
もう少し詳しく

技術用語では、ツール(tool)はモデルが呼び出すものです。ファイルを読む(Read)、コマンドを実行する(Bash)、ファイルを直す(Edit)などです。ハーネス(harness)は逆に、モデルをます。モデルが「このファイルを読んで」と頼むと、ハーネスがそれを実行して結果を返します。だから厳密に言えば、Claude Codeのプログラムはツールではなくハーネスです。ふだんの会話で「AIツール」と呼ぶのとは混ぜないでください。

サブエージェントは、メインのエージェントが仕事の一部を任せるために起動する助っ人です。自分専用の新しいを持っています。だから、たくさんのファイルを読んだり広く検索したりして、結論だけを報告できます。そのおかげで、メインの会話は短いままです。互いに関係のない部分なら、サブエージェントを動かすこともできます。

  • どこにあるか — Claude Codeでは、名前、説明、使ってよいツール、指示を書いたファイルです。(プロジェクト用)か ~/.claude/agents/(自分用)に置きます。
  • どう使うか — 狭い仕事と、必要なツールだけを与えましょう。その報告も、あなたが確かめるべき下書きです。

自分の言葉で説明

あなたのプロジェクトには300のファイルがあり、ログインのコードがどこにあるかを知りたいとします。なぜサブエージェントを使うとよいのでしょうか?

説明と比べる

たくさんのファイルを読むと、コンテキストウィンドウがいっぱいになります。サブエージェントなら自分専用の新しいコンテキストで検索し、「ログインのコードはこの3つのファイルにあります」とだけ返せるので、メインの会話は短く、集中したままです。のサブエージェントは何も変えられないので、安全でもあります。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

生徒の1人が「エージェント」になってエージェントのループを演じる(10分) → 本物のエージェントのを見る(10分) → サブエージェントのファイルを書く(20分) → 使うべきでないときについて話し合う(10分)。

画面で見せること

  1. に小さな作業を与え、計画、ツール呼び出し、結果、次の判断という各段階を指し示しましょう。
  2. プロジェクト全体からあるものを探すようエージェントに頼み、その検索を読み取り専用のサブエージェントに渡すようすを見せましょう。
  3. .claude/agents/ にあるサブエージェントのファイルを開き、名前、説明、ツール、指示を読みましょう。

生徒の活動

  1. 自分の作業(たとえば「ホームページの壊れたリンクを直す」)について、使うツールをすべて入れてエージェントのループを図にしましょう。
  2. 読み取り専用のレビュー用サブエージェントを書きましょう。いつ使うかの説明、読むことだけに限ったツール、3行のチェックリストを入れます。

達成の目安

ループ、ツールと権限の役割、サブエージェントが自分専用のコンテキストを持つ理由を説明でき、動くサブエージェントのファイルがあれば達成です。

生徒がつまずいたら

  • サブエージェントが一度も使われないとき: いつ使うべきかを、依頼で使われる言葉で、説明にはっきり書きましょう。
  • エージェントが一度に多くのことをやりすぎるとき: 先に計画を出してもらい、一度に1段階ずつ承認しましょう。

クラスへの問いかけ

  • チャットボットの答えとエージェントのループは、どう違うでしょうか?
  • サブエージェントには、なぜメインのエージェントより少ないツールを与えるのでしょうか?
出典と参考資料

製品情報は2026-10-19に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第21章 · 上級 · AIエージェント

Codex: OpenAIのコーディングエージェント

目標

ファイル、期待する動作、確かめ方がはっきりしたの作業をに頼み、変更を残す前にレビューできるようになります。

Codexはのです。(Codex CLI)、コードエディタ、アプリで動きます。プロジェクトを読み、ファイルを編集し、を実行して自分の作業をテストします。

プロジェクトのいちばん上のフォルダにあるファイルの指示に従うので、たとえばテストを実行するコマンドのようなルールを一度書いておけば済みます。Codexは危険な操作の前に承認を求めます。どこまで自分でやってよいかは、読み取りだけから作業フォルダの編集まで、あなたが選べます。

やさしく理解しよう

こんなふうに考えてみよう
Codex は、いろいろな場所で使えるコーディングエージェントです。ターミナル、エディター、ChatGPT アプリで使えます。AGENTS.md は、新しく来たお手伝いさん全員のための冷蔵庫のメモだと考えましょう。家のルールと実行するコマンドを一度書いておけば、毎回読んでもらえます。
例

AGENTS.md に「テストは test で実行する。 の中のファイルは決して編集しない。」と書きます。それから Codex にたのみます。「にを追加して、るようにして。」Codex はメモを読んで変更し、終わったと伝える前に npm test を実行します。

よくある間違い
質問をとばしたくて、フルアクセスに切りかえること。質問は、まちがったコマンドが実行される前に見つけるチャンスです。
もう少し詳しく

よいコーディングの依頼は具体的です。何を、どのファイルで変えるのか、変えたあとどう動くべきか、どう確かめるか(テスト、コマンド、の例)を伝えます。大きな作業なら、まず計画を出してもらいましょう。Codexが終わったら、を読み、テストを自分で実行し、理解できたものだけをします。 は対話画面なしで作業を実行するので、の中で使うのに便利です。Codex CLIがで、はその中のモデルです。次の章「ハーネス」でハーネスをさらに詳しく学びます。

自分の言葉で説明

「コードをよくして」を、Codexが実行して確かめられる依頼に書き直しましょう。

説明と比べる

たとえば「word_count.py の count_words が句読点と大文字を無視するようにして。関数名はそのままにして。'Hello, hello!' がユニークな単語1つとして数えられるテストを追加して。 -m を実行して結果を見せて。」ファイル、動作、確かめ方が書かれています。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

コーディングエージェントがすること(5分) → はっきりした依頼でその場で作業する(15分) → 生徒がCodexに自分の小さな作業を頼む(20分) → diffを一緒にレビューする(10分)。

画面で見せること

  1. ai-course フォルダに、ルールを1つ書いたAGENTS.mdを作りましょう。たとえば「変更のたびに python -m pytest を実行すること。」です。
  2. Codexにテストつきの小さなスクリプトを頼み、手順を承認しながら、テストが実行されるところを見せましょう。
  3. diff を開き、コミットする前に変更されたすべての行を一緒に見ていきましょう。

生徒の活動

  1. ファイル、動作、確かめ方を明示した作業をCodexに頼みましょう。たとえば、文章の単語数を数える関数とそのテストです。
  2. diffをレビューし、テストを自分で実行してから、変更内容を説明するメッセージでコミットしましょう。

達成の目安

生徒のコミットに動くコードとテストが入っていて、変更されたすべての行を説明できれば達成です。

生徒がつまずいたら

  • Codexが頼んだ以上に変更するとき: 止めて で元に戻し、正確なファイル名を挙げてもう一度頼みましょう。
  • サインインやプランの問題があるとき: ChatGPTアカウントでサインインしましょう。自分のプランにCodexが含まれていなければ、デモを見ながらついていき、講師のdiffをレビューする練習をしましょう。

クラスへの問いかけ

  • よいコーディングの依頼には、いつも何が入っているべきでしょうか?
  • テストが通っていても、なぜdiffを読むのでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第22章 · 上級 · AIエージェント

ハーネス:すべてのプロンプトがハーネスを使う

目標

・・の観点から、短いもを使う理由を説明できます。

ハーネスについてのすべての説明 — 3つの見方(Codex・Claude Code・LangChain)の原文、ループの図、"hello"の一言がたどる道、組み込みのハーネスとプロジェクト専用のハーネス、 — はハーネスのページにまとめました。下のリンクからそのページを開いて一緒に読み、この章の「自分で説明する」で授業をしめくくりましょう。

ハーネスのページで学ぶ

この章の説明はそのページだけにあります。授業ではそのページを一緒に開き、進み具合は下のボタンでここに記録しましょう。

自分の言葉で説明

Codexへの挨拶一回でもハーネスを使いますか?図と出典で説明してください。

説明と比べる

はい。挨拶がCodexハーネスのループを始めます。後に即答でき、は任意です。挨拶は入力、ハーネスは処理するシステムです。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

三つの原文を読む → 図をたどる → 即答と利用を比較 → 自分の言葉で説明。

画面で見せること

  1. Codexに挨拶し、図で入力・推論・応答を示してください。
  2. Claude Codeにファイルの説明を頼み、の判断とハーネスのファイルアクセスを区別してください。
  3. LangChain原文でプロンプト・ツール・基盤・作業調整・を探してください。

生徒の活動

  1. 挨拶とファイル読み取り依頼がそれぞれハーネスを使う仕組みを説明してください。
  2. モデル・・ツール・確認を三つの出典で分類してください。

達成の目安

短い入力もハーネスを使うと説明し、モデル・プロンプト・実行システムを出典付きで区別できます。

生徒がつまずいたら

  • 混乱したら、応答を作るモデルとループ・ツールを実行するシステムを分けましょう。
  • アカウントがなければ図・公式原文・講師の実演で学びましょう。

クラスへの問いかけ

  • ツールなしの即答でもハーネスを使うのはなぜですか?
  • ツールの変更が済みモデルの性能に影響するのはなぜですか?
出典と参考資料

製品情報は2026-10-21に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第23章 · 上級 · AIエージェント

Claude Code 1: プロジェクトを準備し、ずっと効く指示を与える

目標

プロジェクトでを起動し、にずっと効く指示を書き、で何をしてよいかを管理できるようになります。

Claude Codeはのな(agentic coding tool)です。によって、ツール、、、のどれで呼んでも正しいです(どれがいつ合うかは「エージェントと」の章にあります)。で動き、コードエディタ、、Webでも使えます。プロジェクトフォルダで と入力すると起動します。コードを読み、コードについての質問に答え、ファイルを編集し、を実行します。

プロジェクトのいちばん上のフォルダにあるCLAUDE.mdというファイルは、を始めるたびに読み込まれます。ここに次のことを書きましょう:

  • プロジェクトの目的
  • とテストのコマンド
  • あなたの

コマンドを使うと、プロジェクトを読んでCLAUDE.mdの下書きを作ってくれます。

やさしく理解しよう

こんなふうに考えてみよう
Claude Code はセッションを始めるたびに CLAUDE.md を読みます。新しいチームメンバーが、最初の朝にプロジェクトのハンドブックを読むようなものです。プロジェクトが何か、どうやってビルドしてテストするか、あなたのルールは何か。短くてわかりやすいハンドブックがあれば、同じことを何度も言わなくてすみます。
例

プロジェクトで /init を実行します。Claude Code はまわりを見て、最初の CLAUDE.md を書きます。それを読んで、まちがっているところを消し、自分のルールを二行足しましょう。たとえば「メッセージは韓国語で」「仕事が終わったと言う前にテストを実行する」です。

よくある間違い
本のように長い CLAUDE.md を書くこと。長い指示は読みとばされます。毎日大事なルールだけを残し、ほかは( の章を参照)や別の文書に移しましょう。
もう少し詳しく

Claude Codeはファイルを編集したりコマンドを実行したりする前に確認を求め、その操作を1回だけ、このセッションの間、または常に許可するかをあなたが決めます。権限のルールは にあり、ではClaude Codeは何も変えずに読んで計画を提案するだけです。最初は厳しく始めて、信頼できるものだけをゆるめ、理解できないコマンドは決して許可しないでください。

自分の言葉で説明

小さなの宿題プロジェクトのCLAUDE.mdに入れる3行を書きましょう。

説明と比べる

たとえば「目的: Pythonの授業の宿題の問題。テスト: 変更のたびに python -m を実行する。ルール: 関数は短く書き、それぞれをコメントで説明する。」目的、テストのコマンド、ルールがそろっていれば正解です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

インストール確認と初めての起動(10分) → /init でCLAUDE.mdを作る(10分) → 権限とプランモード(10分) → 生徒が自分のプロジェクトを準備する(20分)。

画面で見せること

  1. ai-course フォルダで claude を起動し、「このプロジェクトには何がある?」と聞いてみましょう。
  2. /init を実行し、できたCLAUDE.mdを編集してテストについてのルールを1つ加えましょう。
  3. を押してプランモードに切り替えて変更を頼み、計画を承認するまで何も編集されないことを見せましょう。

生徒の活動

  1. ai-course フォルダでClaude Codeを起動し、目的、テストのコマンド、ルール2つを書いたCLAUDE.mdを作りましょう。
  2. プランモードでClaude Codeに変更を頼み、承認せずに計画を読みましょう。

達成の目安

生徒のプロジェクトにテストのコマンドとルールが書かれたCLAUDE.mdがあり、プランモードが何をするかを説明できれば達成です。

生徒がつまずいたら

  • 「claude: 」と出るとき: のユニット11のインストール確認をやり直し、ターミナルを開き直しましょう。
  • 許可を求められる回数が多すぎるとき: 「常に許可」はテストの実行のような安全なコマンドだけにし、ファイルの削除には決して使わないでください。

クラスへの問いかけ

  • CLAUDE.mdには何を書くべきで、なぜセッションのたびに読まれるのでしょうか?
  • プランモードはどんなときに使いますか?
出典と参考資料

製品情報は2026-10-19に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第24章 · 上級 · AIエージェント

Claude Code 2: 計画し、変更し、テストし、レビューする

目標

で作業の1サイクルをひととおり回せるようになります。目的を説明し、計画をレビューし、を変更してテストさせ、結果をレビューして残すか元に戻すかを決めます。

と上手に作業するには、1つのサイクルに沿って進めます。目的と確かめ方を説明します。ファイルが変わる前に計画を読んで直します。に編集とテストの実行をさせます。を自分で読みます。して変更を残すか、元に戻します。巨大な依頼を1つするより、小さなサイクルを何回も回すほうがうまくいきます。サイクルごとに確かめやすいからです。

やさしく理解しよう

こんなふうに考えてみよう
コーディングエージェントと作業するのは、味見をしながらレシピどおりに料理するようなものです。料理を決め、計画を読み、ひと手順だけ作らせ、味見(テスト)をしてから先へ進みます。小さなひと回りなら、たしかめるのも元にもどすのもかんたんです。
例

1回め「検索ボックスを追加する計画を立てて。まだファイルは編集しないで。」計画を直します。2回め「ステップ1をやって、テストを実行して。」diff を読んでコミットします。3回めは次のステップです。大きなお願い一回より、短いひと回り三回のほうがうまくいきます。

よくある間違い
diff を読まずに「よさそう」と言うこと。diff には何が変わったかが正確に出ます。さわられると思っていなかったファイルも出てきます。
左側では、心配そうなキャラクターが大きなリュックを背負い、谷を一回のジャンプでとびこえようとしています。右側では、同じキャラクターが小さな飛び石の上を落ち着いてわたっています。石にはそれぞれ、計画・編集・テスト・確認の小さなサイクルと、小さなセーブの旗があります。
計画 → 編集 → テスト → 確認 → コミットを、小さなひと回りで。どのひと回りも、たしかめるのも元にもどすのもかんたんです。
もう少し詳しく

エージェントが自分で確かめられる手段を与えましょう。テスト、成功しなければならない、正しい出力の例などです。が間違った方向に進んだら、を押して止め、何が違うかを伝えるか、で元に戻して新しく頼み直しましょう。長いセッションには紛らわしいがたまるので、 できれいに始め直せます。くり返す作業は、手順をとして保存しましょう(の章を見てください)。確かめられるゴールラインがある長い作業は に任せると、それを満たすまで働き続けます(ゴールとの章を見てください)。

自分の言葉で説明

次を正しい順番に並べましょう: diffを読む、目的と確かめ方を説明する、コミットする、計画を承認する、テストを実行する。

説明と比べる

目的と確かめ方を説明する → 計画を承認する → (エージェントがコードを変更して)テストを実行する → diffを読む → コミットする。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

黒板で5段階のサイクルを見る(5分) → 小さな機能でその場でサイクルを回す(15分) → 生徒が自分のプロジェクトでサイクルを2回回す(20分) → エージェントが間違えたことを1つずつ共有する(10分)。

画面で見せること

  1. 「文章の中でいちばん多く出てくる単語を返す関数を、テストつきで追加して。まず計画を見せて。」と頼み、計画の細かい点を1つ直しましょう。
  2. 編集とテストの実行を任せましょう。テストが失敗したら、エージェントがエラーを読んでコードを直すようすを見せます。
  3. git diff をレビューしてコミットしましょう。次に、わざとまずい変更をして で元に戻します。

生徒の活動

  1. 自分のプロジェクトでサイクルを1回ひととおり回しましょう。確かめ方のある目的、計画、変更、テスト、diff、コミットです。
  2. 1回目の結果を改善する2回目のサイクルを回し、計画で何を直したかを1文で書きましょう。

達成の目安

生徒のGitの履歴に、サイクルを回して作ったコミットが2つあり、どちらもテストに通っていれば達成です。

生徒がつまずいたら

  • エージェントはテストに通ったと言うのに実際は失敗しているとき: テストのコマンドを自分で実行し、要約ではなく出力を信じましょう。
  • 会話が混乱してきたとき: ここまでの作業をコミットするか元に戻し、/clear を使って、短く正確な依頼でやり直しましょう。

クラスへの問いかけ

  • 大きな依頼を1つするより、小さなサイクルを何回も回すほうがよいのはなぜでしょうか?
  • エージェントが間違った方向に進んだら、どうしますか?
出典と参考資料

製品情報は2026-10-26に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第25章 · 上級 · AIエージェント

Antigravity CLI(agy): ターミナルで動くGoogleのエージェント

目標

でGoogleのを起動し、作業を任せられるようになります。やと比べ、複数のにお互いを確かめさせられるようになります。

Antigravity CLIは、で使うGoogleのです。公式ページのを実行したあと、agy で起動します。Googleは、以前のを使っていた人向けの移行ガイドも出しています。

Googleのを使い、ほかのエージェントと同じように動きます:

  • プロジェクトフォルダで起動します。
  • 作業を説明します。
  • 計画とコマンドを承認すると、ファイルを読んで編集します。

初めて起動すると、が開いてGoogleアカウントでサインインできます。作業の一部を、複数の助っ人エージェントに同時に送ることもできます。

やさしく理解しよう

こんなふうに考えてみよう
Antigravity CLI も、ターミナルで動くコーディングエージェントのひとつで、Google のものです。ひとつのエージェントを知れば、ほかのものもなじみやすく感じます。ちがう車を運転するのと同じで、ペダルの場所は同じ、変わるのはいくつかのボタンと設定だけです。
例

プロジェクトフォルダーで agy を起動し、はじめての時は Google アカウントでサインインします。そして、Codex や Claude Code にたのんだのと同じような仕事をたのみます。同じ仕事に対して、エージェントたちがどんな計画を立てるかくらべてみましょう。

よくある間違い
古い Gemini CLI のガイドを一字一句そのまま追うこと。ツールやコマンドは変わります。今のインストールとサインインの手順は、公式ページでたしかめましょう。
もう少し詳しく

モデルごとに得意なことと見落としやすいことが違うので、3つのエージェントを知っておくと役に立ちます。よい習慣はクロスチェックです。1つのエージェントに変更を任せて別のエージェントにレビューさせたり、いくつかのエージェントに同じ問題を別々に分析させて比べたりしましょう。意見が分かれたところは、自分でファイルを開いて判断します。すべてのエージェントが同じ指示に従うように、多くのエージェントが読むAGENTS.mdに同じプロジェクトのルールを書いておきましょう。

自分の言葉で説明

2つのエージェントが、の原因について違うことを言っています。どちらが正しいか、どうやって決めますか?

説明と比べる

それぞれが出す証拠、つまりファイルと行、を見て、自分で確かめます。を実行し、その行を読み、小さなテストを書きます。1つのエージェントしか言っていなくても、実際の動きに合う答えが勝ちです。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

3つのエージェントを並べて見る: Claude Code、Codex、agy(10分) → agyをインストールしてサインインする(10分) → 同じ小さな作業を2つのエージェントに任せる(20分) → 比べて判断する(10分)。

画面で見せること

  1. 練習用のプロジェクトで agy を起動し、プロジェクトの構成を説明するよう頼みましょう。
  2. 同じバグをagyと、Claude CodeかCodexに渡し、2つの計画を比べましょう。
  3. 1つのエージェントにもう1つのエージェントの変更をレビューさせ、どちらにするかをどう判断するかを見せましょう。

生徒の活動

  1. 自分のプロジェクトのルールを書いたAGENTS.mdを作り、2つのエージェントがそれに従うか確かめましょう。
  2. 2つのエージェントに同じ作業を1つ任せ、短い表を書きましょう。それぞれが何をしたか、どちらがよかったか、何が間違っていたかです。

達成の目安

プロジェクトでagyを動かし、同じ作業で2つのエージェントを比べ、クロスチェックでなぜ間違いが見つかるのかを説明できれば達成です。

生徒がつまずいたら

  • agyが起動しない、またはサインインできないとき: 公式のインストールページを確認し、ブラウザでGoogleアカウントにサインインしましょう。
  • エージェントの答えが食い違うとき: それこそがねらいです。エージェントが指し示すファイルを開き、多数決ではなく証拠で判断しましょう。

クラスへの問いかけ

  • 2つの違うエージェントは、なぜ1つよりも多くの間違いを見つけられるのでしょうか?
  • 複数のエージェントを使うとき、なぜルールをAGENTS.mdに書くのでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第26章 · 上級 · AIエージェント

Agent Skills: AIエージェントにくり返す作業を教える

目標

がくり返す作業を毎回同じやり方でこなせるようにファイルを読み書きし、いつ使われるかをテストできるようになります。

エージェントのすべて — 何なのか、どう動くのか、SKILL.mdの、最初のスキルの作り方、コツ、SONUBのスキルのインストール — は「エージェントスキル」のページにまとめました。下のリンクから開いて一緒に読み、最後にこの章のセルフチェックで授業を締めくくりましょう。

エージェントスキルのページで学ぶ

この章の説明はそのページだけにあります。授業ではそのページを一緒に開き、進み具合は下のボタンでここに記録しましょう。

自分の言葉で説明

会議のメモをやることリストに変えるスキルの説明を書きましょう。

説明と比べる

たとえば「会議のメモを、担当者と期限つきの番号つきやることリストに変えます。ユーザーが会議のアクションアイテムやToDoリストを求めたときに使います。議事録全体を書くためには使いません。」何をするか、いつ使うか、何には使わないかが書かれています。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

スキルとは何で、どこに置くのか(10分) → 実際のスキルを一緒に読む(10分) → 生徒が小さなスキルを書く(20分) → いつ使われるかをテストする(10分)。

画面で見せること

  1. 例のSKILL.mdを開き、名前、説明、手順を指し示しましょう。
  2. スキルを weekly-report/ に置き、「週報を書いて」と頼みましょう。次に関係のないことを聞き、スキルが使われないことを見せます。
  3. 説明をあいまいにして、スキルが当てにならなくなるようすを見せましょう。

生徒の活動

  1. 自分がくり返す作業(要約、チェックリスト、レ)のためのSKILL.mdを、はっきりした説明と3〜5つの手順で書きましょう。
  2. スキルを使うべき依頼2つと、使うべきでない依頼1つでテストし、結果を書き留めましょう。

達成の目安

スキルに名前、いつ使うかを書いた説明、番号つきの手順、確認方法があり、テストで正しく使われれば達成です。

生徒がつまずいたら

  • スキルがまったく使われないとき: 人が実際に使う言葉を説明に入れましょう。
  • 違う依頼で使われてしまうとき: 何には使わないかを説明に加えましょう。

クラスへの問いかけ

  • エージェントは、なぜ最初は名前と説明だけを読むのでしょうか?
  • インターネットからスキルをインストールする前に、なぜ中身を読むのでしょうか?
出典と参考資料

製品情報は2026-10-16に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第27章 · 上級 · AIエージェント

MCP: AIを自分のツールにつなぐサーバーとクライアントを作る

目標

のホスト、、がそれぞれ何をするかを説明し、を使わずに書いた小さなを読み、のクライアントで試し、 につないで、その設定がどこに保存されるかがわかるようになります。

MCP(Model Context Protocol)は、アプリを外のやにつなぐためのです。MCPができる前は、AIアプリごと、ツールごとに専用のつなぎ方を作る必要がありました。MCPなら、サーバーを一度作れば、MCPに対応したアプリ — Claude Code、、、自分で作った — のどれからでも使えます。

MCP は を開発する が作りました。公式ドキュメント: https://claude.com/docs/connectors/building/mcp

役割は3つです。

  • : 人が使うAIアプリです(Claude Code、エディター、チャットアプリ)。
  • クライアント(Client): ホストの中にある接続係です。1つのクライアントが1つのサーバーと話します。
  • サーバー(Server): AIにできることを提供する小さなプログラムです。

サーバーが提供できるものは3種類です。

  • ツール(Tools): AIが呼び出せる関数です。たとえば「メモを検索する」「行を1つ追加する」などです。
  • : アプリが読めるデータです。ファイルや記録などで、それぞれにアドレス()があります。
  • (Prompts): ユーザーが選んで使える、できあいのメッセージのひな形です。

メッセージは 2.0 です。(「何ができるの?」)や (「この引数でこれをして」)のような小さなです。メッセージは2つの標準のトランスのどちらかで行き来します。(クライアントが同じコンピューターでサーバーをプログラムとして起動し、標準入力と標準出力で話す)か、(サーバーがWebアドレスで動くので、たくさんのユーザーがアクセスできる)です。

やさしく理解しよう

こんなふうに考えてみよう
MCPは、AIアプリのUSBポートのようなものです。USBができる前は、プやボードごとに専用のプラグが必要でした。今はUSBプラグがあれば、どの機器もどのコンピューターにもさせます。MCPサーバーが機器、AIアプリがコンピューターで、プラグの形が共通なので、サーバーを一度作ればすべてのMCPアプリで使えます。
例
  • strange-add サーバーはツールを1つ提供します。2つの数を足し、さらに 0〜100 の乱数を足します。
  • 1つで Claude Code につなぎます。
  • 「strange-add で 2 と 3 を足して」と言うと、AIがツールの説明を読み、あなたに承認を求め、クライアントがサーバーの strange-add を呼びます。答えは 5 ではありません — ツールが本当に動いた証拠です。
よくある間違い
見つけた MCP サーバーを何でもインストールすること。サーバーはあなたのコンピューターで、あなたのでを動かします。中身を読むか信頼できるものを選び、必要なフォルダーやキーだけをわたしましょう。
ノートパソコンに向かうロボットのとなりで、人が承認と拒否のスイッチを持っています。ノートパソコンから1本のケーブルが、同じ形のコンセントが並んだ電源タップにつながり、3つのちがう道具箱 — ファイルのフォルダー、データベース、天気とカレンダーのサービス — が同じ形のプラグでさしこまれています。矢印が、リクエストが出ていき結果が戻ってくる様子を示しています。
プラグの形は1つ: AIアプリはMCPサーバーを通してたくさんのツールにつながり、ツールが動く前に人が承認します。
もう少し詳しく

サーバー(mcp-server.py)は のだけを使うので、そのものが見えます。標準入力から JSON-RPC のメッセージを1行に1つずつ読み、標準出力に返事を1行に1つずつ書きます。

  • : クライアントがを伝えてあいさつします。サーバーは同じで答え、ツールを持っていることを伝え、自分の名前を名乗ります。
  • tools/list: サーバーはただ1つのツール strange-add を、説明と入力(a と b は数)と一緒に返します。
  • tools/call: サーバーは strange-add を実行し、結果をテキストで返します。
  • id のないメッセージは通知(notifications/initialized など)なので、サーバーは返事をしません。それ以外のリクエスト( など)には空の結果を返します。

strange-add は a + b に 0〜100 の乱数を足します。モデルはこの値を自分では計算できないので、2 + 3 の答えが 5 でなければ、ツールが本当に動いた証拠になります。stdout にはプロトコルのメッセージだけを流します — よけいな () が1つあるだけで会話がこわれるので、 stderr に書きましょう。print(..., =True) は返事を1つずつすぐに送り出します。

クライアント(mcp-client.sh)は、AIを使わずにホストの役をするシェルスクリプトです。サーバーを起動し、全体(initialize、initialized の通知、tools/list、tools/call、ping)を送って、返事を1つずつ確かめ、PASS か FAIL を表示します。 0 は、すべて通ったという意味です。につなぐ前に、このようにサーバーを試しましょう。本物ののクライアントでは、モデルが次のくり返しに加わります。

  • ユーザーの質問とツールの一覧をモデルに送ります。
  • モデルがツールを使いたいと言ったら、クライアントが tools/call でサーバーのそのツールを呼びます。
  • 結果をモデルに返すと、モデルが最終的な答えを書きます。

この手作りのサーバーは initialize で始まる方式(プロトコルのバージョン 2025-06-18)で話します。Claude Code などのクライアントは、この方式を今も受け付けます。最新の(2026-07-28)では、initialize のの代わりに、すべてのリクエストにバージョンをのせます。実際のサービスには、仕様に合わせてくれる公式の SDK(Python の MCPServer、)を使いましょう。

安全: ツールはあなたの権限で動くコードです。また、信頼できるサーバーでなければ、ツールの説明も信用できません。仕様は、ホストがツールを呼ぶ前にユーザーの同意を得るよう求めています。自分で読んだか信頼できるサーバーだけをインストールし、サーバーには必要最小限のアクセスだけをわたし、キーはコードではなくに置き、に気をつけましょう — ツールが読むWebページやファイルに、AIをねらった指示が入っていることがあります。

mcp-server.py
"""
mcp-server.py: the smallest MCP server.
One tool, plain Python (standard library only), no SDK.

Who is who
  MCP server  This program. It offers tools (functions the AI
              may use).
  Host        The app the user talks to (Claude Code, Codex).
              It runs one MCP client for each connected server.
  MCP client  The part of the host that talks to this server
              with JSON-RPC messages (here over stdio: one JSON
              message per line).
  Model       The LLM (Claude Opus, GPT, ...). It never talks to
              the server directly. It only talks to the host.

Flow
  1. Discover tools
     The client asks for the tools (tools/list). The server replies
     with each tool's name, description and input schema.
  2. Offer tools
     The host sends the user's message to the model, together
     with the tool list.
  3. Model decides
     The model answers directly, or asks for a tool call
     (tool name + arguments). It never runs the tool itself.
  4. Call the tool
     The client sends the request to the server (tools/call).
  5. Run the tool
     The server runs the function and returns the result.
  6. Model continues
     The host gives the result back to the model. The model may
     call more tools (3-6 again) or write the final answer.

  Model             Host (MCP client)            MCP server
    |                    |  1. tools/list  ------>  |
    |                    |  <------  tool list      |
    | <-- 2. message + tool list                    |
    | 3. tool call -->   |                          |
    |                    |  4. tools/call  ------>  |
    |                    |  <------  5. result      |
    | <-- 6. result      |                          |

Rule for stdio servers: stdout carries protocol messages only.
Never print() anything else there. Write logs to stderr.
"""

import json
import random
import sys

SERVER_INFO = {"name": "strange-add-mcp", "version": "1.0.0"}

# The tool. The model reads the description to decide when to use it.
STRANGE_ADD = {
    "name": "strange-add",
    "description": "Add two numbers with a strange number.",
    "inputSchema": {
        "type": "object",
        "properties": {
            "a": {"type": "number"},
            "b": {"type": "number"},
        },
        "required": ["a", "b"],
    },
}


def strange_add(a, b):
    """Add a + b and a random number from 0 to 100 (always >= a + b).

    The model cannot guess the answer, so a right answer proves
    that the tool was really called.
    """
    return a + b + random.randint(0, 100)


def handle(method, params):
    """Return the result for one request. Others (like ping) get {}."""
    if method == "initialize":
        # Use the client's protocol version and say "I have tools".
        return {
            "protocolVersion": params["protocolVersion"],
            "capabilities": {"tools": {}},
            "serverInfo": SERVER_INFO,
        }
    if method == "tools/list":
        return {"tools": [STRANGE_ADD]}
    if method == "tools/call":
        args = params["arguments"]
        total = strange_add(args["a"], args["b"])
        return {"content": [{"type": "text", "text": str(total)}]}
    return {}


def main():
    # One JSON-RPC message per line comes in, one reply per line goes out.
    for line in sys.stdin:
        request = json.loads(line)
        # No id means a notification: send no reply.
        if "id" not in request:
            continue
        result = handle(request["method"], request.get("params", {}))
        reply = {"jsonrpc": "2.0", "id": request["id"], "result": result}
        # flush=True sends the reply at once.
        print(json.dumps(reply), flush=True)


if __name__ == "__main__":
    main()
mcp-client.sh
#!/bin/sh
# mcp-client.sh: the simplest MCP client, a shell script.
# It starts mcp-server.py, talks to it over stdio (one JSON-RPC
# message per line) and checks every reply.
# Exit code 0 means every check passed.

SERVER="python3 $(dirname "$0")/mcp-server.py"

# 1. Send the whole session at once and keep the replies.
#    id 1     initialize                 agree on a version
#    (no id)  notifications/initialized  "ready" (no reply)
#    id 2     tools/list                 which tools are there?
#    id 3     tools/call                 run strange-add(2, 3)
#    id 4     ping                       is the server alive?
replies=$(
  $SERVER <<'EOF'
{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2025-06-18", "capabilities": {}, "clientInfo": {"name": "shell-mcp-client", "version": "1.0.0"}}}
{"jsonrpc": "2.0", "method": "notifications/initialized"}
{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}
{"jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": {"name": "strange-add", "arguments": {"a": 2, "b": 3}}}
{"jsonrpc": "2.0", "id": 4, "method": "ping"}
EOF
)

echo "--- Server replies ---"
echo "$replies"
echo "--- Checks ---"

failed=0

# 2. check <label> <reply id> <text the reply must contain>
check() {
  reply=$(echo "$replies" | grep -F "\"id\": $2,")
  if echo "$reply" | grep -qF "$3"; then
    echo "PASS   $1"
  else
    echo "FAIL   $1 (expected: $3)"
    failed=1
  fi
}

check "initialize: protocol version"  1 '"protocolVersion": "2025-06-18"'
check "initialize: server info"       1 '"serverInfo": {'
check "initialize: has tools"         1 '"capabilities": {"tools": {}}'
check "tools/list: strange-add"       2 '"name": "strange-add"'
check "ping: empty result"            4 '"result": {}'

# 3. strange-add adds a random 0 to 100,
#    so the answer only has to be >= 2 + 3.
total=$(echo "$replies" | grep -F '"id": 3,' |
  sed 's/.*"text": "\([0-9]*\)".*/\1/')
if [ "$total" -ge 5 ] 2>/dev/null; then
  echo "PASS   tools/call: strange-add(2, 3) >= 5 (got $total)"
else
  echo "FAIL   tools/call: strange-add(2, 3) >= 5 (got $total)"
  failed=1
fi

exit $failed
ターミナルで入力するコマンド
# put the two files above into one folder
mkdir -p ~/tmp/mcp && cd ~/tmp/mcp
#   mcp-server.py   mcp-client.sh

# 1) test the server without any AI
sh mcp-client.sh               # -> 6 x PASS, exit code 0

# 2) connect it to Claude Code (no --scope: the "local" scope)
claude mcp add strange-add -- python3 ~/tmp/mcp/mcp-server.py
claude mcp list                # strange-add: ... - Connected
claude mcp get strange-add     # Scope: Local config

# 3) where it was saved: NOT in this folder (no new file here)
#    ~/.claude.json -> projects -> "<this folder>" -> mcpServers
jq '.projects["'"$PWD"'"].mcpServers' ~/.claude.json

# 4) use it: start Claude Code in THIS folder
claude                         # "Use strange-add to add 2 and 3"
                               # -> not 5 (e.g. 61): the tool ran

claude mcp remove strange-add -s local

これらはこのページではなく、自分のパソコンやサーバーので実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

MCPの3つの役割と、サーバーが提供できる3種類のものを、それぞれ例を1つずつつけて挙げましょう。

説明と比べる

役割: ホストはAIアプリ(Claude Code)、クライアントはその中の接続係、サーバーはできることを提供するプログラム(メモのサーバー)です。サーバーは、モデルが呼べるツール(メモを追加する)、アプリが読めるリソース(notes://shopping)、ユーザーが選べるプロンプト(「メモを要約して」のひな形)を提供します。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

MCPとは何か、3つの役割(10分) → mcp-server.py をメッセージごとに一緒に読む(15分) → mcp-client.sh で試す(10分) → Claude Code につなぎ、設定が保存された場所を探す(15分)。

画面で見せること

  1. mcp-server.py を開き、メッセージを1つ追いかけましょう。tools/call の1行が stdin から入り、handle() が分岐を選び、strange_add() が動き、JSON が1行 stdout に出ていきます。モデルが読むツールの説明も指し示しましょう。
  2. mcp-client.sh を実行し、返事を1行ずつ読みましょう。initialize、tools/list、tools/call、ping にはそれぞれ返事が1つ来て、通知には返事がなく、6つのチェックがすべて通ります。次に、サーバーに print("hello") を加えてクライアントをもう一度実行し、失敗するようすを見せましょう。
  3. claude mcp add strange-add -- ~/mcp/mcp-server.py を実行し、claude mcp list で確かめましょう。フォルダーに新しいファイルができていないことを見せ、~/.claude.json の projects → このフォルダー → mcpServers にある項目を見せましょう。そのフォルダーで Claude Code を起動し、「strange-add で 2 と 3 を足して」と頼んで、承認を求める画面と 5 ではない答えを見せましょう。

生徒の活動

  1. mcp-server.py に2つ目のツールを加えましょう。たとえば、テキストの単語の数を返す word-count です。tools/list にその定義を加え、tools/call ではツール名を確かめて正しい関数を実行させましょう。
  2. mcp-client.sh に新しいツールのチェックを加え、すべてのチェックが通るまで実行しましょう。次に、サーバーを Claude Code につなぎ、~/.claude.json でその項目を探しましょう。Claude Code のアカウントがなければ、mcp-client.sh だけで十分です — ホストの役をしてくれます。

達成の目安

生徒のクライアントが新しいツールも含めてすべてのチェックで PASS を表示し、claude mcp add が設定をどこに保存したか、なぜほかのフォルダーではサーバーが現れないかを言えれば達成です。

生徒がつまずいたら

  • クライアントが失敗する、または Claude Code がサーバーへの接続に失敗したと出るとき: print() かが stdout に出ています。stdout は JSON の返事だけに使い、ログは stderr に書いて、sh mcp-client.sh をもう一度実行しましょう。
  • Claude Code にサーバーがないとき: ちがうフォルダーで Claude Code を起動しています。local スコープは、claude mcp add を実行したフォルダーのものです。~/.claude.json を確かめて、そのフォルダーで Claude Code を起動するか、--scope user でサーバーを加え直しましょう。

クラスへの問いかけ

  • ツールの説明が、そのコードと同じくらい大切なのはなぜでしょうか?
  • 人気のある MCP サーバーでも、インストールする前に読むべきなのはなぜでしょうか?
出典と参考資料

製品情報は2026-10-20に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第28章 · 上級 · AIエージェント

Claude Cowork: 何段階もの作業を任せる

目標

複数のファイルやアプリにまたがる作業にを使い、はっきりした制限を決め、進み具合を追い、できあがった成果を確かめられるようになります。

はと同じエージェントの技術を使いますが、は必要ありません。で作業を説明し、必要なフォルダへのアクセスを与えます。たとえば「この40枚のレシートを月ごとにスプレッドシートに整理して」と言うと、手順を計画し、一つずつこなしながら進み具合を見せてくれます。事務や勉強の作業向けに作られています。

  • ファイルの整理
  • メモから文書の下書きを作る
  • 情報を集めて表にまとめる

Coworkはの有料プランで使えます。

やさしく理解しよう

こんなふうに考えてみよう
Cowork は、たよりになるアシスタントにフォルダーをわたすようなものです。「このレシートを月ごとに分けて、表にまとめて。」仕事を説明し、必要なフォルダーだけ使えるようにして、手順を進めていく進み具合のリストを見守ります。
例

会議メモのフォルダーを Cowork にわたして、こうたのみます。「決まったことを1ページにまとめて、だれが何をいつまでにするかの表を作って。」だれかに送る前に、二つのメモと表をくらべてたしかめましょう。

よくある間違い
小さな仕事のために、へのアクセスをあたえること。共有するのは、その仕事に必要なフォルダーだけにしましょう。
もう少し詳しく

エージェントができることが多いほど、あなたの指示が大切になります:

  • 必要なフォルダだけを渡しましょう。
  • してはいけないこと(削除、送信、購入)を伝えましょう。
  • 迷ったら止まって質問するよう頼みましょう。
  • 結果を元のと照らし合わせて確かめましょう。

のチームから学べる便利な習慣がクロスチェックです。同じ質問を2つ以上のツールにして、答えを比べ、多数決ではなく根拠で判断します。SONUBの開発者もこのやり方で仕事をしています。1つの質問を複数のAIに送り、すべての主張を元のファイルで確かめています。

自分の言葉で説明

エージェントツールに渡すよい作業指示書に必ず入れるべき4つのことを挙げましょう。

説明と比べる

目的、入力(どのファイルやフォルダか)、期待する成果物、そして制限(してはいけないことと、いつ止まって質問するか)です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

エージェントツールとは何か(5分) → 制限を決めてその場で作業する(15分) → 生徒が作業指示書を作る(20分) → 2つのAIの答えをクロスチェックする(10分)。

画面で見せること

  1. Coworkにメモの入ったサンプルフォルダを渡し、1ページの要約文書を頼みましょう。どこで許可を求めてくるかを指摘します。
  2. 制限を決めた作業指示書を見せましょう。どのフォルダか、どんな成果物か、してはいけないこと、いつ質問すべきかが入っています。
  3. 同じ事実についての質問を2つのAIツールにして答えを比べ、情報源を確かめましょう。

生徒の活動

  1. 実際の用事について作業指示書を書きましょう。目的、入力のフォルダ、期待する成果物、してはいけないこと3つを入れます。
  2. 使えるならCoworkで実行し、成果物のうち3項目を元のデータと比べましょう。使えないなら、2つのAIツールに同じ質問をして比べましょう。

達成の目安

指示書に目的、入力、成果物、制限が書かれていて、生徒が確かめた項目を少なくとも1つ報告できれば達成です。

生徒がつまずいたら

  • 有料プランがないとき: 作業指示書を書き、クロスチェックの活動は無料のツールでやりましょう。計画する力は同じです。
  • エージェントが違うファイルにさわってしまったとき: 元のフォルダではなくコピーを渡し、アクセスできる範囲をしぼりましょう。

クラスへの問いかけ

  • 最初はエージェントにファイルのコピーで作業させるべきなのは、なぜでしょうか?
  • AIツールの答えが食い違うとき、なぜ多数決ではなく根拠で判断するのでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第29章 · 上級 · 働き続けるエージェント

ゴールとRalph Loop: 本当に終わるまでエージェントに続けさせる

目標

はっきりしたゴールラインのある目標を決め、目標を達成するまでをループで動かし、確認、上限、予算で安全に止められるようになります。

ふつう、エージェントは1つの依頼が終わったと判断すると止まります。ゴール(goal)は、1つの依頼を長い作業に変えます。目的とゴールラインを伝えると、エージェントは一歩ごとに進み具合を確かめながら働き続けます。

にもにも があります:

  • /goal のあとにゴールラインを書くと、ゴールが決まり、すぐに作業を始めます。
  • /goal だけで、ゴールと状態を表示します。
  • /goal clear で消します。Codexでは /goal pause と resume で一時停止と再開ができます。

Claude Codeでは、が終わるたびに別の小さなが会話を読んで判定します。まだなら作業を続け、達成した、または不可能と判断したらゴールを消します。このモデルはコマンドを実行せず、ファイルも読まないので、テスト結果のように会話に出たもので証明できるゴールラインを書きましょう。状態には、これまでの時間・ターン数・が表示されます。

Codexのゴールの状態は、実行中、一時停止、完了、到達のどれかです。テストに通るといった証拠に裏づけられたときだけ完了にできます。

は同じ考えをかんたんなしかけで作ったものです。エージェントが終わろうとすると、(止まった瞬間に自動で動く小さな)がそれをつかまえて同じをもう一度入れます。エージェントはファイルとの履歴から自分の前の作業を見て、1周ごとにそれをよくしていきます。Claude Codeのとして使う、同じことをする別の方法です。Claude Codeの /goal も、中ではそのだけのStopフックとして動いています。

やさしく理解しよう

こんなふうに考えてみよう
ふつうのエージェントは、1つの依頼が終わったと思うと止まります。最初の角で止まってしまうのようです。ゴールは、ゴールラインとがあるレースのようなものです。エージェントは走り続け、チェックポイントごとにリストをたしかめます。止まるのは、ゴールライン、つまりあなたが決めた完了の条件に本当に着いたときか、予算がなくなったときだけです。
例

「/goal テストがすべて通り、 にアプリの動かし方が書いてある。」エージェントは作業してテストを実行し、二つの失敗を見つけて直し、README をたしかめて、二つの条件がそろったときだけ止まります。Ralph Loop も似たことをします。エージェントが止まろうとするたびに、同じプロンプトをもう一度あたえるのです。

よくある間違い
「もっとよくして」のような、はっきりしたゴールラインのないゴール。たしかめられることを書きましょう。通るテスト、開くページ、全部うまったリストなどです。
長いトラックをロボットのランナーが走っています。チェックポイントの駅があり、通るたびに箱にひとつずつチェックが入ります。ひとつの駅には、やり直しの矢印があります。ゴールラインには、トロフィーと全部チェックのついたリストがあります。小さなダッシュボードには、一時停止・再生のボタンと予算のメーターが見えます。
エージェントは、完了の条件がそろうまで、チェックポイントをひとつずつ進み続けます。あなたが一時停止するか、予算がなくなれば止まります。
もう少し詳しく

ループのよさは、ゴールラインのよさで決まります。「もっとよくして」は終わりませんが、「tests/ のテストがすべて通り、ページがエラーなしで開く」は確かめられます。

必ず上限を決めましょう。そうしないと、ループが一晩中回って、むだにお金を使ってしまうことがあります:

  • 最大の周回数 — Claude Codeの /goal では、ゴールラインの最後に「or stop after 20 turns」のように書きます
  • 本当のときだけエージェントが言ってよい
  • トークンの予算

Claude Codeの /goal はを変えません。ひとりで回し続けるにはautoモードで使いましょう。そうしないと、許可していないコマンドのたびに確認されます。

ループは新しいGitので始め、プロジェクトのはかに書き、結果は自分で確かめましょう。エージェントの「できました」は主張であって、証拠ではありません。

ターミナルで入力するコマンド
# Claude Code — keep working until a finish line you can check is met
/goal All tests in tests/ pass and the homepage loads without errors, or stop after 20 turns
/goal               # show the condition, turns and tokens
/goal clear         # remove it before it is met
claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"

# Codex — the same idea, plus pause and resume
/goal All tests in tests/ pass and the homepage loads without errors
/goal               # show the goal and its status
/goal pause         # also: /goal resume, /goal clear

# Claude Code plugin — Ralph Loop: the same prompt again and again, with limits
/ralph-loop "Fix the failing tests in tests/. Say DONE only when all pass." --completion-promise "DONE" --max-iterations 5

これらはこのページではなく、自分のパソコンやので実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

「ページをいい感じにして」を、ループのための目標に書き直しましょう。

説明と比べる

たとえば「ホームページがに通り、コンソールにエラーがなく、 の幅で読みやすく、すべてのリンクが動く。最大8周で止まる。」確かめられる条件と上限があります。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

大きな作業には、なぜ1回の答えでは足りないのか(5分) → ゴールラインのある目標を書く(10分) → 上限を決めて短いループを回す(20分) → ループがしたことをGitで確認する(15分)。

画面で見せること

  1. Codexで、測れる目的をつけて /goal を入力し、/goal で状態を見てから、一時停止しましょう。
  2. Claude Codeで、測れるゴールラインの最後に「or stop after 20 turns」をつけて /goal を決め、/goal で状態(ターン数・トークン)を見てから、/goal clear で消してみましょう。同じ作業を、完了のフレーズと最大5周のRalph Loopでも回して比べましょう。
  3. ループのあとで を見せ、ゴールラインに照らして作業を確かめましょう。

生徒の活動

  1. あいまいな3つの依頼(「サイトをよくして」「を直して」「テストを書いて」)を、確かめられるゴールラインのある目標に書き直しましょう。
  2. 練習用のブランチで最大5周のループを1回回し、1周ごとに何が変わったかを書きましょう。

達成の目安

目標に確かめられるゴールラインと上限があり、ループが自分で止まり、生徒が結果を確かめていれば達成です。

生徒がつまずいたら

  • ループが止まらないとき: /goal clear(Ralph Loopなら /cancel-ralph)で止め、最大の周回数と、テストできるゴールラインを加えましょう。
  • 毎周、前の周の作業を元に戻してしまうとき: 目標がはっきりしていません。ゴールラインをテストかチェックリストとして書きましょう。

クラスへの問いかけ

  • ループには、なぜゴールラインと上限の両方が必要なのでしょうか?
  • エージェントが終わったと言っても、なぜ作業を自分で確かめるべきなのでしょうか?
出典と参考資料

製品情報は2026-10-26に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第30章 · 上級 · 働き続けるエージェント

VPSとtmux: エージェントを1日24時間働かせる

目標

小さな()を借りてで接続し、接続を切っても働き続けるようにの中でを動かし、サーバーとを安全に守れるようになります。

VPSは、で借りる小さなコンピューターです。ノートパソコンがスリープしても動き続けます。ワードの代わりにを使って ssh user@address で接続し、ツール(、、、エージェント)をインストールして、プロジェクトをします。でも、SSHのセッションで直接エージェントを起動すると、接続が切れたときにエージェントも止まってしまいます。tmuxがこれを解決します。

  • tmux new -s agent — セッションを開きます。その中でエージェントを起動します。
  • +b を押してから d — セッションから抜けます()。エージェントは動き続けます。
  • -t agent — あとで同じ画面に戻ります。
  • tmux — セッションの一覧を表示します。

やさしく理解しよう

こんなふうに考えてみよう
VPS は、ねむらないデータセンターにある、借りた小さなコンピューターです。tmux は、そのコンピューターの中にある、あなたが出ていっても明かりがついたままの部屋のようなものです。部屋の中でエージェントを動かし始め、ドアを閉め(デタッチ)、あとでもどってくると、まだ作業を続けています。
例

ssh でサーバーに入り、tmux new -s agent を実行して、エージェントを起動します。それから Ctrl+b を押して d を押すと、部屋から出られます。ノートパソコンを閉じましょう。次の日、もう一度 ssh で入り、tmux attach -t agent を実行すると、夜のあいだにしたことが見られます。

よくある間違い
パスワードでログインし、サーバーをインターネットに開いたままにすること。SSH キーを使い、システムを最新に保ち、人と共有するプロジェクトフォルダーには決してキーを置かないようにしましょう。
左側では、夜、閉じたノートパソコンのそばで人がねむっています。キーのアイコンがついた細い線が右へのびていますが、プラグがぬけています。右側では、雲の中のデータセンターの明かりがついた部屋で、ロボットが画面に向かって作業を続けています。
ノートパソコンはねむっても、接続が切れてもかまいません。VPS では、tmux のセッションが、あなたがもどるまでエージェントの作業を続けさせます。
もう少し詳しく

一晩中働くエージェントには安全対策が必要です:

  • ゴールラインと上限のあるはっきりした目標を与えましょう。
  • で動かし、させて、朝に作業を確認できるようにしましょう。
  • はではなくに置き、の提供会社で利用額の上限を決めましょう。
  • サーバーを守りましょう。SSHキーでだけ接続し、を使い、定期的にアップデートします。

tmux attach で入るかを読んでセッションを確認し、 か tmux kill-session -t agent で止めます。

ターミナルで入力するコマンド
ssh user@address               # log in with an SSH key, not a password
tmux new -s agent              # open a session called "agent"
claude                         # start the agent with a goal and a limit
# press Ctrl+b, then d         -> detach; the agent keeps working
exit                           # log out — the session stays on the server

ssh user@address
tmux ls                        # list sessions
tmux attach -t agent           # back to the same screen
tmux kill-session -t agent     # stop it for good

これらはこのページではなく、自分のパソコンやサーバーので実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

agent という名前のtmuxセッションを始めて、動かしたまま離れ、あとで戻ってくるためのを書きましょう。

説明と比べる

tmux new -s agent を実行し、を起動し、Ctrl+b を押してから d を押してデタッチします。あとでもう一度ログインしてから tmux attach -t agent を実行します。名前を忘れたら、tmux ls でセッションの一覧が見られます。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

なぜサーバーなのか: いつも電源が入っていて、いつもオンライン(5分) → キーでSSH接続する(10分) → tmux new、デタッチ、アタッチ(15分) → 上限を決めたエージェントのを始めて、あとで確認する(20分)。

画面で見せること

  1. ssh で接続して tmux new -s agent を実行し、時間のかかるコマンドを始め、Ctrl+b d を押し、ログアウトしてもう一度ログインし、tmux attach -t agent を実行しましょう。
  2. tmuxの中で、練習用のブランチで、目標と周回の上限をつけたエージェントを起動しましょう。
  3. APIキーを置く場所(環境変数)と、AIの提供会社の利用額上限のページを見せましょう。

生徒の活動

  1. 自分のパソコンかVPSでtmuxを練習しましょう。セッションを作る、デタッチする、セッションの一覧を見る、アタッチする、セッションを終わらせる、です。
  2. 夜間実行の計画を書きましょう。目標とゴールライン、上限、ブランチ、どうやって確認するか、どうやって止めるかです。

達成の目安

tmuxを使って接続を切ってもプログラムを動かし続けられ、上限と確認の手順がある安全な夜間実行の計画があれば達成です。

生徒がつまずいたら

  • アタッチしようとすると「no 」と出るとき: セッションが終わったか、サーバーが再起動しています。tmux ls で確認し、新しいセッションを始めましょう。
  • SSHでパスワードを聞かれる、または接続を拒否されるとき: サーバーに自分のを追加し、それに合うユーザーで接続しましょう。

クラスへの問いかけ

  • SSHが切れると、なぜプログラムが止まるのでしょうか? tmuxはどうやってそれを防ぐのでしょうか?
  • 一晩中働くエージェントに必ずつけるべき3つの上限は何でしょうか?
出典と参考資料
第31章 · マスター · 自分でLLMを作る

数値・予測・活性化関数

目標

平均・最大値のような小さな関数を作り、その出力が何を意味するかを説明します。

平均・最大値・のから始めます。maxは最大の値、はその位置を返します。単一ラベル分類では、その位置から最高スコアのクラスを選べます。スコアが常に適切に校正されたとは限りません。判定しきい値を変えるとに分類される例が変わることがあります。

やさしく理解しよう

こんなふうに考えてみよう
は、採点表を持った小さな審査員のようなものです。入力ひとつひとつに、それをどれだけ大事に思うか()を掛けて全部足し、最初のおまけ点(バイアス)も加えます。そして、どれくらい強く反応するかを決めます。この最後の段階がです。合計を出力に変える調光スイッチのようなもので、たとえば sigmoid なら 0 と 1 の間の値になります。
例

3 匹の動物の点数は、猫 2.1、犬 3.4、うさぎ 0.5 です。max は 3.4 を返し、argmax は位置 1(0 から数えて)、つまり犬を返します。しきい値が 3.0 なら答えは「犬」です。しきい値を 4.0 に上げると、何も選ばれません。

よくある間違い
0 から 1 の間の点数を、そのまま信頼できる確率だと思い込むこと。点数はパーセントのように見えても、きちんと調整()されていないことがあります。その点数のとき、が実際にどれくらい当たっているかを確かめましょう。
3 つの入力が、太さの違う管を通って小さな審査員のキャラクターに流れ込みます。審査員は採点表で入力を足し合わせて調光スイッチを回し、出力としてランプが明るく、または暗く光ります。
入力 × 重みを足し合わせてバイアスを加え、活性化関数がニューロンをどれくらい強く光らせるかを決めます。
もう少し詳しく

ニューロンは入力をz = w·x + bでまとめ、活性化関数を適用できます。sigmoidは有限の実数を0と1の間に写す一つの関数で、全ニューロンの定義ではありません。ReLUやを使うもあります。sigmoidの実装は部品作りで、済みネットワークの完成ではありません。次の課題ではに適合したモデルを扱いますが、例の合格だけではの証明になりません。

自分の言葉で説明

[0.2, 0.7, 0.1]を0始まりで数えるとmaxとargmaxは何を返しますか。

説明と比べる

max = 0.7、argmax = 1です。値とその位置は別の出力です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

平均、max、argmax(10分) → しきい値と活性化(10分) → 生徒がラボのミッションに取り組む(20分) → セルフチェック(10分)。

画面で見せること

  1. [0.2, 0.7, 0.1] で、max、argmax、そしてargmaxが選ぶクラスを見せましょう。
  2. 判定のしきい値を0.5から0.3に動かし、どの例のクラスが変わるかを見せましょう。

生徒の活動

  1. AIラボのモードで、平均、最大値、しきい値のミッションを終えましょう。

達成の目安

maxとargmaxの違いと、スコアがそのまま確率になるわけではない理由を説明できれば達成です。

生徒がつまずいたら

  • argmaxの答えが1つずれるとき: は位置を0から数えることを思い出させましょう。

クラスへの問いかけ

  • 医師が警告のための検査でしきい値を低めに設定するのは、なぜでしょうか?
出典と参考資料
第32章 · マスター · 自分でLLMを作る

小さなモデルの学習と評価

目標

用と評価用のを分け、スコアからはわからないことを説明します。

で・を学習します。にはがく片の長さと幅、花弁の長さと幅の4特徴があります。適合前にデータを分け、訓練部分で学び、取り置いた例で評価します。訓練スコアが高くても新しいデータで悪いことがあり、と呼びます。もだけに適合し、評価情報の漏れを防ぎます。

やさしく理解しよう

こんなふうに考えてみよう
を学習させてテストするのは、試験勉強に似ています。練習プリントの答えを丸暗記すると、そのプリントでは 100% 取れますが、新しい問題が出る本番の試験では落ちてしまいます。これが過学習です。だから、モデルが学習中に一度も見ない問題をいくつか取っておきます(テストセット)。
例

150 輪のアヤメの花を分けます。120 輪は学習用、30 輪は取っておきます。質問を次々にしながら分類するは、深さを制限しないと 120 輪では 100% になりますが、取っておいた 30 輪ではもっと低くなることがあります(分け方によっては 87%)。学習の点数とテストの点数の差が大きいなら、プリントを丸暗記したということなので、深さを制限して比べてみましょう。

よくある間違い
調整しながら、テストセットを何度ものぞき見すること。のぞくたびにテストの中身を覚えてしまうので、最後の点数が実際のモデルより良く見えます。調整には(設定を選ぶために学習データから取り分けた部分)を分けて使い、テストセットは最後まで取っておきましょう。
左は、生徒が答えのプリントを丸暗記し、練習で満点を取って笑顔になっていますが、新しい試験用紙を見て首をかしげています。右は、別の生徒が本からパターンを学び、新しい試験用紙に自信を持って答えています。いくつかの問題カードは箱に入れて鍵がかけてあります。
練習プリントの丸暗記は過学習です。テストの問題は鍵をかけてしまっておき、最後にだけモデルを確かめましょう。
もう少し詳しく

や木の深さは適合の外で選ぶーで、係数は学習するーになり得ます。設定は検証用データや交差検証で選び、テスト集合はに残します。テスト結果に合わせ続けると見積もりが楽観的になります。分割・・スコア・誤りを記録しましょう。小さなIris実験は最初の作品で、あらゆる集団や課題への有効性の証明ではありません。

自分の言葉で説明

学習に使ったデータで100%のモデルは、次に何を確かめるべきですか。

説明と比べる

適切な未学習データで評価し、誤りや情報漏れを調べます。訓練の正解率だけでは不十分です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

黒板で学習用とテスト用にデータを分ける(10分) → モデルを学習させて評価する(15分) → 生徒が学習スコアとテストスコアを比べる(15分) → セルフチェック(10分)。

画面で見せること

  1. 小さな表を学習用の行とテスト用の行に分け、前半で学習させて後半で採点しましょう。
  2. 学習データでは100%正解なのにテストデータでは成績が下がるモデルを見せ、これを過学習と呼びましょう。

生徒の活動

  1. 回帰と分類のミッションを終え、学習スコアとテストスコアを書き留めましょう。

達成の目安

学習データでのスコアだけでは足りない理由を説明できれば達成です。

生徒がつまずいたら

  • : などの前処理は、学習用のデータだけで合わせるようにしましょう。

クラスへの問いかけ

  • あなたのモデルは学習データで100%正解しました。次に何を確かめますか?
出典と参考資料
第33章 · マスター · 自分でLLMを作る

LLMを作る 1: 文字、数え上げ、最初の生成器

目標

文字ので文章を数に変え、どの文字のあとにどの文字が来るかを数え、その回数から新しい文章を生成できるようになります。

どんなも、文章を数に変えるところから始まります。いちばん簡単なトークナイザーは、文字ごとにを1つ割り当てます。いちばん簡単なであるモデルは、ある文字のあとに別の文字が何回来るかを数え、その回数をに変えます。文章を生成するときは、その確率で次の文字を選び、つけ足し、これをます。下のを実行してみましょう。ID、「h」のあとに来る可能性が高い文字、生成した文章、そして損失を表示します。

やさしく理解しよう

こんなふうに考えてみよう
バイグラムモデルは、どの文字のあとにどの文字が来やすいかを、正の字で数えておくようなものです。たくさんの文章を読むと表ができます。「q」のあとにはほぼいつも「u」が来て、「t」のあとにはよく「h」が来ます。文章を書くときは、その表に合わせて出やすさを変えたサイコロを振り、1 文字ずつ決めていきます。
例

「hello hello help」では、「h」のあとに「e」が 3 回来るので、「h」のあとにモデルが「e」を選ぶ確率は 3/3 = 1 です。「l」のあとには「l」「o」「l」「o」「p」が来るので、それぞれの候補に自分の割合があります。数文字を生成すると、「helo hello hel」のようなものになります。

よくある間違い
バイグラムモデルに、ちゃんとした文を期待すること。1 文字前しか覚えていないので、単語のような形をしたでたらめを書きます。だからこそ、次の章でもっと多くのを加えるのです。
文字のペアのマスが並んだ表に、高さの違う集計の印があり、それが出やすさを変えたサイコロにつながっています。サイコロを振るたびにタイルが 1 枚ずつ出てきて、タイルの列が伸びていきます。
どのかけらのあとにどのかけらが来るかを数え、その数を確率に変えて、1 つずつサイコロを振ります。
もう少し詳しく

損失は、実際の次の文字を見てモデルがどれだけ驚いたかを測るものです。その確率のにマイナスをつけた値の平均です。完璧なモデルなら損失は0になります。本物のは複数の文字でできたを使い、はるかに長い文脈を見ますが、サイクルは同じです。文章 → ID → 次のトークンの確率 → 1つ選ぶ → くり返す。

コード例 上でとを使って動きます。コードを変えて、もう一度実行してみましょう。

自分の言葉で説明

表によると、「t」のあとには「h」が0.7、「e」が0.3の確率で来ます。モデルが「t」のあとを生成すると何が起きるでしょうか?

説明と比べる

その確率に従ってランダムに、10回のうち7回くらいは「h」を、3回くらいは「e」を選びます。そして選んだ文字から続けて生成します。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

黒板で文章を数に変える(10分) → コードを実行して出力を読む(10分) → 生徒が文章と最初の文字を変える(20分) → 損失について話す(10分)。

画面で見せること

  1. コードを実行し、表示された行を1つずつ説明しましょう。語彙、とdecode、「h」のあとの確率、生成した文章、損失です。
  2. させる文章を別の文体の数文に変えてもう一度実行し、生成される文章がどう変わるかを見せましょう。
  3. probs の行を指し、どの行も合計が1になることを見せましょう。

生徒の活動

  1. 文章を自分で書いた3つの文に置き換え、好きな文字から始めて40文字を生成しましょう。
  2. 自分の文章で「e」のあとにいちばんよく来る文字を見つけ、手で数えて確かめましょう。

達成の目安

自分の文章でコードを実行し、確率の表の1行が何を意味するかを説明できれば達成です。

生徒がつまずいたら

  • 生成のときにが出るとき: 最初の文字が文章に入っていません。文章に出てくる文字を選びましょう。
  • 出力がでたらめに見えるとき: それで当然です。バイグラムモデルは直前の1文字しか見ていないからです。

クラスへの問いかけ

  • モデルは、なぜ文章を数に変えなければならないのでしょうか?
  • 損失が0というのは、どういう意味でしょうか?
出典と参考資料
第34章 · マスター · 自分でLLMを作る

LLMを作る 2: 学習するニューラルネットワーク

目標

数え上げを小さなに置き換えます。このはでとをし、3文字分のを見ます。

数え上げの表は、大きさが爆発的に増えてしまうので、それ以上前を見られません。でもニューラルネットワークならできます。文字ごとに学習される、つまり埋め込みがあります。

  • は直前3文字のベクトルをつなげて(のあいだにあり、数を混ぜて特徴を作る中間の層)に通します。
  • 次に来うるすべての文字にスコアを出します。
  • がそのスコアをに変えます。

学習では、予測を実際の次の文字と比べて損失を計算し、すべての重みを損失が下がる方向に少しずつ動かします。この一歩が勾配降下法で、その方向を計算するのがです。

やさしく理解しよう

こんなふうに考えてみよう
ニューラルネットワークの学習は、霧のかかった山を下って、いちばん低い谷を目指すようなものです。高さは損失、つまりモデルがどれだけ間違っているかです。谷は見えませんが、足元の地面がどちらに傾いているか(勾配)は感じられるので、下り坂へ小さく一歩進みます。小さな歩みを何度も重ねると、谷底の近くに着きます。
例

ステップ 0 では、損失はだいたい 3.4 です。15 文字の中からでたらめに当てると約 2.7 になるので、最初のモデルはそれよりもさらに悪いのです。300 ステップほどで 0.2 くらいまで下がり、生成される文章が本物の単語のように見え始めます。モデルが直前の 3 文字を見るからです。

よくある間違い
早く終わらせようと、大きな歩幅で進むこと。が大きすぎると谷を飛び越えてしまい、損失が上下に跳ねたり、爆発したりします。小さく着実な歩みのほうが、たいていうまくいきます。
小さなハイカーが、霧のかかった曲がった山の斜面を、下を指す矢印に導かれて小さな歩幅で下りていき、ふもとの日の当たる谷へ向かっています。
勾配降下法とは、損失の傾きを感じ取り、下り坂へ小さく一歩進むことを何度もくり返すことです。
もう少し詳しく

ステップが進むにつれて損失が下がっていくのを見てください。ネットワークが学習しているしるしです。今度はより長い文脈を見るので、生成した文章が本物の単語の形になってきます。は生成がどれだけ冒険的かを決めます。1より低いと無難な文字を選び、1より高いと思い切った選び方をします。大きなは何十億もの重みを持ち、で膨大な量の文章を学習しますが、1ステップはこれとまったく同じ考え方です。

コード例 上でとを使って動きます。を変えて、もう一度実行してみましょう。

自分の言葉で説明

temperatureを0.8から0.2に下げると、生成される文章はどうなるでしょうか? それはなぜでしょうか?

説明と比べる

が多く無難な文章になります。スコアを小さなtemperatureで割ると、いちばんありそうな文字の確率がほかの文字よりずっと大きくなるからです。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

黒板で埋め込みと隠れ層を見る(10分) → コードを実行して損失を見守る(10分) → 生徒がtemperatureと文章を変える(20分) → 学習の1ステップを説明する(10分)。

画面で見せること

  1. コードを実行し、50ステップごとに損失が下がっていくところを指し示しましょう。
  2. generate() のtemperatureを0.3に、次に1.5に変えて、文章を比べましょう。
  3. lr を5.0にしてもう一度実行し、一歩が大きすぎると学習が不安定になることを見せましょう。

生徒の活動

  1. 学習させる文章を自分の文に変えて学習し直し、最後の損失を書き留めましょう。
  2. 2つのtemperatureを試し、違いを1文で説明しましょう。

達成の目安

損失が下がっていくことを示し、埋め込みと学習の1ステップが何かを説明できれば達成です。

生徒がつまずいたら

  • 損失が nan になるとき: 学習率が高すぎます。lr を今の値より下げ、たとえば 0.1 にしましょう。
  • 自分の文章で生成がうまくいかないとき: 最初の文字列は、文章に出てくる3文字でなければなりません。

クラスへの問いかけ

  • 逆伝播は何を計算するのでしょうか?
  • 文脈が長いと、なぜ文章が本物の単語らしく見えてくるのでしょうか?
出典と参考資料
第35章 · マスター · 自分でLLMを作る

LLMを作る 3: トランスフォーマーの心臓、アテンション

目標

セルフを加えて、どの位置も前の文字を振り返り、どれが大事かを決められるようにし、させて中身を調べられるようになります。

今のを支えるしくみであるは、アテンションの上に成り立っています:

  • は位置ごとに(自分は何を探している?)を作ります。
  • 前にあるすべての位置がキー(自分は何を持っている?)とバリュー(自分は何を渡す?)を差し出します。
  • クエリとキーを比べると、合計が1になるアテンションのが得られます。
  • 出力は、その重みでバリューを混ぜ合わせたものになります。

は、ある位置が自分よりあとの文字を見られないようにして、モデルがずるをできないようにします。は、それぞれの文字がどこにあるかをモデルに教えます。

やさしく理解しよう

こんなふうに考えてみよう
アテンションは、生徒が前の席の生徒たちのノートを振り返って見られる教室のようなものです。一人ひとりが質問カード(クエリ)を掲げ、前にいる生徒はみんな名札(キー)を付けて、自分のノート(バリュー)を持っています。名札が質問によく合うほど、その生徒のノートがたくさん写されます。そして、あとの席の生徒をのぞいてはいけない、という決まりがあります(因果マスク)。
例

「The cat sat because it was tired」(猫は疲れていたので座った)で、モデルが「it」まで来ると、そのクエリは「cat」のキーと強く合います。そのため「cat」のバリューの多くが「it」に流れ込みます。大きくてよく学習されたモデルなら、アテンションの重みを表示すると「cat」の横に大きな数が出るはずです。この章の小さなでは、アテンションが近くの文字に集まるのが見えます。

よくある間違い
アテンションの重みが、モデルの「考え」をすべて説明していると思うこと。重みが示すのは、1 つの層の 1 つのヘッドがどこを見たかだけです。役に立つ手がかりですが、すべての説明ではありません。
生徒が一列に並んでいます。最後の生徒が質問カードを掲げ、前の生徒たちに懐中電灯を向けています。前の生徒たちの名札は、明るく、または暗く光ります。太いリボンと細いリボンが、その生徒たちから最後の生徒へノートを運びます。右側の席は小さな柵でふさがれています。
それぞれの位置が質問(クエリ)をし、前にあるすべての名札(キー)と比べて、ノート(バリュー)を混ぜ合わせます。あとに来るものをのぞき見するのは禁止です。
もう少し詳しく

このは、が8文字のを1つ、だけで学習させ、最後の文字のアテンションの重みを表示します。だから、その文字が前のどの文字を頼りにしているかが見えます。本物のトランスフォーマーは、ヘッドをたくさん持つ層を何層も重ね、とを加え、のようなではるかに多くの文章を学習します。それ以外のすべて、つまり、、、損失、、は、もうあなたが自分で作ってきました。

コード例 上でとNumPyを使って動きます。コードを変えて、もう一度実行してみましょう。

自分の言葉で説明

クエリ、キー、バリューがすることを、それぞれ1文で説明しましょう。

説明と比べる

クエリは、今の位置が何を探しているかを表します。キーは、前の各位置が何を持っているかを表し、クエリと照らし合わせられるようにします。バリューは、その一致の度合いに応じて渡される情報です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

身近な例で見るクエリ、キー、バリュー(10分) → コードを実行して損失とアテンションの重みを読む(10分) → 生徒が実験する(20分) → 本物のLLMとつなげる(10分)。

画面で見せること

  1. 文を使ってアテンションを説明しましょう。「the dog ran because it was scared(イヌはこわがって走った)」では、「it」は「dog」に注目します。
  2. コードを実行し、最後の文字のアテンションの重みを読みましょう。前のどの位置がいちばん大きな重みを受けていますか?
  3. マスクを外し(0をかけて)、モデルが答えを見られるせいで損失があやしいほど低くなることを見せましょう。

生徒の活動

  1. 自分の文章で学習させ、好きな最初の文字列から生成しましょう。
  2. X[10:11] のような別の例でアテンションの重みを表示し、最後の文字が何に注目しているかを説明しましょう。

達成の目安

モデルを学習させて損失が下がるのを示し、クエリ、キー、バリュー、因果マスクを自分の言葉で説明できれば達成です。

生徒がつまずいたら

  • T を変えたあとにのエラーが出るとき: マスクとウィンドウはどちらも T で決まるので、T は1か所だけで変えましょう。
  • 古いで学習が遅いとき: ステップ数を200に減らしましょう。それでも損失は下がります。

クラスへの問いかけ

  • モデルには、なぜ因果マスクが必要なのでしょうか?
  • 1つの位置のアテンションの重みをすべて足すと、いくつになるでしょうか?
出典と参考資料
第36章 · マスター · 自分でLLMを作る

自分のパソコンでGPTを作る: ミニチュアのGPT-2

目標

とを使い、と同じ設計の小さなを自分のパソコンでさせられます。損失が下がるのを見て、自分ので文章を作れます。

GPT-2はを積み重ねたものです。

  • のと位置の埋め込み
  • セルフと小さなでできた層
  • 次に来うるすべてのトークンに点数をつける最後の層

いちばん小さいGPT-2でも約1億2400万個のーがあり、大きなで何日もかけて何十億ものトークンを学習しました。ノートパソコンには大きすぎます。でも同じ設計を小さくすれば、ノートパソコンでも本当に学習できます。4層、4個、128個の数でできた埋め込み(約80万個のパラメーター)なら、シェイクスピアのような小さな文章から、で約3分で学びます。

のの は PyTorch(ニューラルネットワークを作って学習させるための Python )で書かれていて、そのための定番の短いです。を用意し、学習スクリプトを実行し、文章をします。今では作者が nanoGPT を古いものとし、より新しいのプロジェクトである を案内しています。それでも、数百行でGPT-2風のモデルを見るには、nanoGPT が今でもいちばんわかりやすい方法です。

やさしく理解しよう

こんなふうに考えてみよう
GPT-2 はレイヤーケーキのようなものです。同じトランスフォーマーブロックを何度も積み重ね、層を重ねるごとに予想を少しずつよくしていきます。本物の大きさのケーキには、プロのケーキ屋さんが必要です(大きな GPU で何日も)。でも、同じレシピで層を少なく薄くしたカップケーキ版なら、家の台所で数分で焼けます。
例

4 層、アテンションヘッド 4 個、128 個の数でできた埋め込みで、パラメータは約 80 万個です。ノートパソコンでシェイクスピアの文章を約 3 分学習します。そこから文章をサンプリングすると、単語がいつも意味を成すわけではありませんが、シェイクスピアらしいや名前の入った文章が出てきます。

よくある間違い
学習の損失だけを見ること。学習の損失は下がり続けているのに、の損失が上がり始めたら、モデルは丸暗記を始めています。そこで止めるか、モデルを小さくしましょう。
大きなオーブンが並ぶ大きなケーキ屋さんで、台の上にのった背の高いプロのレイヤーケーキがあります。その横では、同じ層の模様を持つ小さなカップケーキが家のオーブンで焼けています。1 枚のレシピカードが、2 つをつないでいます。
同じレシピの 2 つのサイズ。本物の GPT-2 にはケーキ屋さんが必要ですが、小さな GPT-2 ならノートパソコンで焼けます。
もう少し詳しく

学習は1つの手順をます:

  • 文章のまとまり()を取ります。
  • それぞれの次のトークンを予測します。
  • (損失)を測ります。
  • 損失が小さくなるように、すべてのパラメーターを少しずつ動かします。

2つの数字を見守りましょう。学習損失と、モデルが見たことのない文章でのです。学習損失だけが下がるなら、モデルは丸暗記しています。学習が終わると、すべてのパラメーターが入ったができます。

では mps デバイスを、のグラフィックカードでは を使い、それ以外ではもっと小さなモデルで cpu を使いましょう。この章の前にあるの章では、同じ部品をで手作りしました。ここでは、それを実際のサイズで使います。

ターミナルで入力するコマンド
git clone https://github.com/karpathy/nanoGPT
cd nanoGPT
pip install torch numpy transformers datasets tiktoken wandb tqdm

python data/shakespeare_char/prepare.py      # text -> characters -> numbers

# a small GPT on the CPU (about 3 minutes); on a Mac use --device=mps
python train.py config/train_shakespeare_char.py --device=cpu --compile=False \
    --eval_iters=20 --log_interval=1 --block_size=64 --batch_size=12 \
    --n_layer=4 --n_head=4 --n_embd=128 --max_iters=2000 \
    --lr_decay_iters=2000 --dropout=0.0

python sample.py --out_dir=out-shakespeare-char --device=cpu

これらはこのページではなく、自分のパソコンやので実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

GPTの主な3つの部分と、それぞれの役割を挙げましょう。

説明と比べる

埋め込みはトークンと位置をに変えます。トランスフォーマーブロック(セルフアテンションと小さなニューラルネットワーク)はトークンの間で情報を混ぜ合わせます。は最後のベクトルを、次に来うるすべてのトークンの点数に変えます。そのあと、サンプリングで次のトークンを選びます。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

ブラウザの3つの章からGPT-2へ: 同じブロックを大きく(10分) → PythonとPyTorchを準備する(10分) → データを用意して学習を始める(15分) → 文章をサンプリングして損失の曲線を読む(15分)。

画面で見せること

  1. GPT-2のブロック図を見せ、それぞれの部分をを作る章と対応させましょう。埋め込み、アテンション、次のトークンの点数です。
  2. nanoGPTのシェイクスピアのを、小さなCPU向けの設定で(約3分)実行し、表示される学習損失と検証損失を見せましょう。
  3. 初期のチェックポイントと最後のチェックポイントから、それぞれ文章を作って比べましょう。

生徒の活動

  1. 小さなモデルを自分のパソコン(または無料の)で学習させ、最初と最後の損失の値を記録しましょう。
  2. 設定を1つ(層の数、埋め込みのサイズ、)変え、損失と文章がどう変わったかを書きましょう。

達成の目安

モデルを学習させ、チェックポイントがあり、損失が下がるところを見せられ、学習損失と検証損失の違いを説明できれば達成です。

生徒がつまずいたら

  • が足りないとき: バッチサイズ、、層の数を減らしましょう。
  • CPUでの学習がとても遅いとき: モデルを小さくするか、GPUつきの無料のクラウドノートブックを使いましょう。

クラスへの問いかけ

  • 同じGPT-2の設計が、ずっと小さなサイズでも動くのはなぜでしょうか?
  • 学習損失は下がり続けているのに検証損失が上がっているのは、どういうことでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第37章 · マスター · 自分のモデルをどこでも動かす

ランナー: モデルに命を吹き込むプログラム

目標

がすることを説明できます。を読み込む、に分ける、を一歩ずつ動かす、する、する、の5つです。そして、かでモデルを動かせます。

したモデルは、数が入ったファイルにすぎません。ランナーは、それを使うです。ランナーは次の作業をくり返します。

  • 重みをに読み込みます。
  • モデルので、あなたの文章をトークンに変えます。
  • モデルを動かして、次のトークンの点数を出します。
  • のような設定で、トークンを1つサンプリングします。
  • それを文章に付け足し、画面に1つずつ表示します(ストリーミング)。

前の計算を()に残しておくので、新しいトークンを速く作れます。モデルが学習したときのも当てはめます。Ollama と llama.cpp はモデルを包むランナーで、 のようなサービスは、こうしたランナーを自社ので動かしています。

やさしく理解しよう

こんなふうに考えてみよう
学習したモデルは音楽のレのようなもので、ランナーはレコードプレーヤーです。レコードには音楽(重み)がすべて入っていますが、それを読み取り、あなたの言葉をトークンに変え、次の音を鳴らし、続けていくにはプレーヤーが必要です。プレーヤーによって、読めるレコードの形式が違います。
例

Ollama と llama.cpp は、ふつうのコンピューターで ファイルを読みます。あなたが質問を打ち込むと、ランナーがそれをトークンに分け、モデルを動かし、トークンを 1 つサンプリングして画面に表示し、これをくり返します。だから答えが一語ずつ現れるのです。

よくある間違い
のモデルにはインターネットのが必要だと思うこと。自分のコンピューターで動くランナーは、キーなしで を提供できます。しかも、あなたのはそのコンピューターの外に出ません。
小さな数字でできた円盤のようなレコードが、親しみやすいレコードプレーヤーにのっています。音符が小さな言葉の吹き出しになって次々に出てきます。棚には、形の違うレコード用の、いくつかの違うプレーヤーが並んでいます。
モデルはレコード、ランナーはそれを読むプレーヤーです。次のトークンを 1 つずつ鳴らしていきます。
もう少し詳しく

ランナーによって、動く場所と読めるファイルの形式が違います:

  • — をそのまま動かします。
  • llama.cpp — パソコンやスマホでGGUFファイルを動かします。Ollama — パソコンで動かします。
  • やスマホ — (多くのツールが読めるモデル形式)や、Apple()とGoogle()それぞれのも使えます。

多くのランナーはを用意しているので、自分のアプリから、のAPIと話すのとまったく同じように、パソコンの中のモデルと話せます。キーもいらず、データがパソコンの外に出ることもありません。あなたの のチェックポイントは、変換の手順を通すとこうしたエンジンで動かせるようになります。その変換は次の章で行います。

ターミナルで入力するコマンド
# a runner on your computer: download a small open model and chat
ollama run llama3.2:1b

# the same runner as a local API — no key, nothing leaves the machine
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2:1b",
  "prompt": "Explain a token in one sentence.",
  "stream": false
}'

これらはこのページではなく、自分のパソコンやサーバーので実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

ランナーが新しいトークンを1つ作るたびにくり返す手順を挙げましょう。

説明と比べる

次の順番をくり返します。

  • それまでの文章をトークンとして取ります。
  • モデルを動かして、次に来うるすべてのトークンの点数を出します。
  • 点数をに変えます。
  • temperatureなどの設定を使って、トークンを1つサンプリングします。
  • それを付け足して表示します。

が出るか、長さの上限に届くと止まります。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

重みはただの数: 何が足りない?(5分) → ランナーのループを一歩ずつ(15分) → Ollamaかllama.cppで小さなを動かす(20分) → ローカルAPIを呼び出す(10分)。

画面で見せること

  1. 黒板にランナーのループを書きましょう。トークンに分ける → モデル → 点数 → サンプリング → 付け足す → くり返す。そしてサンプリングの章とつなげます。
  2. 小さなオープンモデルを手元で動かし(たとえばー10億個のモデルで ollama run)、トークンが流れてくるところを見せましょう。
  3. でローカルAPIを、リクエストに "stream": false を入れて、答え全体が1つので返ってくるところを見せましょう。これがないと、トークンごとにJSONの行が1つずつ届きます。

生徒の活動

  1. ランナーのループを、番号つきの手順として自分の言葉で書き、temperatureが使われるところに印をつけましょう。
  2. 小さなオープンモデルを自分のパソコンで動かし、1秒間に何トークン作るかを測りましょう。

達成の目安

ランナーのループの各段階を説明でき、ローカルでモデルを動かしたことがあり、ランナーがローカルAPIを提供できることを知っていれば達成です。

生徒がつまずいたら

  • モデルが遅すぎる、またはメモリに入らないとき: もっと小さなモデルか、もっと強くしたファイルを選びましょう。
  • 答えがおかしく見えるとき: チャットテンプレートかトークナイザーがモデルと合っていません。モデルと一緒についてきたファイルを使いましょう。

クラスへの問いかけ

  • 重みのファイルだけでは、なぜモデルとチャットできないのでしょうか?
  • クラウドのAPIではなく手元でモデルを動かすと、どんなよいことがあるでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第38章 · マスター · 自分のモデルをどこでも動かす

スマホの中の自分のLLM: 変換し、小さくし、組み込む

目標

をスマホ向けの形式に変換し、で小さくし、と一緒にで、自分のスマホでオフラインで使えるようになります。

スマホはが少ないので、モデルは小さく圧縮されている必要があります。量子化とは、それぞれのーを少ない数で保存することです。たとえばビットの代わりに4ビットにすると、品質は少し下がるだけで、ファイルは約4分の1の大きさになります。

ふつうの流れはこうです:

  • の変換ツールでモデルをに変換します。
  • 量子化します( がよく選ばれます)。
  • まず自分のパソコンで試します。

自分の も書き出せますが、34章の(shakespeare_char)はそのままでは書き出せません。 の(/shakespeare)でし直し、 の GPT-2 形式で保存しましょう。それに、シェイクスピアで学習したとても小さなモデルは、シェイクスピアのような文章しか書きません。役に立つアシスタントがほしいなら、パラメーターが約10億〜30億個の小さなから始めましょう。

やさしく理解しよう

こんなふうに考えてみよう
量子化は、小さなスーツケースで旅行の荷造りをするようなものです。シャツを 1 枚ずつ元の大きさのままきれいにたたむ(1 つの数に 16 ビット)代わりに、きつく丸めます(4 ビット)。全部ちゃんと入って見た目もほとんど同じですが、スーツケースは約 4 分の 1 の大きさになります。スマホに入るくらい小さくなるのです。
例

30 億個のパラメータを持つモデルは、16 ビットだと約 です。約 4 ビットに量子化すると 2 GB 未満になります。GGUF ファイルをスマホのオフラインのチャットアプリにコピーし、機内モードをオンにして何か聞いてみましょう。それでも答えてくれます。

よくある間違い
シェイクスピアで学習したとても小さなモデルに、役に立つアシスタントになってほしいと期待すること。役に立つスマホのアシスタントがほしいなら、小さなオープンモデルから始めて、を短くしましょう。
左は、きれいにたたんだ服が入った大きなスーツケース。右は、同じ服をきつく丸めて詰めた小さなスーツケースで、スマホの形をしたポケットに入っています。近くには小さな飛行機のアイコンがあります。
量子化は、1 つの数あたりのビットを減らして同じモデルを詰め込みます。だからスマホに入り、オフラインでも動きます。
もう少し詳しく

スマホで使うには2つの方法があります。

  • 手軽な方法 — のようにランナーがすでに入っているアプリにGGUFファイルをコピーして、オフラインでチャットします。
  • 作り手の方法 — 自分のアプリにランナーを組み込みます。たとえばのアプリなら 、のアプリなら llama.cpp のを使います。モデルのファイルはアプリと一緒に配るかダウンロードさせて、自分のからます。

すべてがスマホの中にあるので、インターネットなしで動き、データも守られます。でもより遅く、バッテリーも使うので、プロンプトは短く、モデルは小さくしましょう。別の方法は、ランナーを自分のパソコンに置き、同じWi-Fiにつないだスマホからそのを呼び出すことです。こちらのほうがかんたんですが、そのパソコンの近くでしか使えません。

アプリにモデルを組み込む(埋め込む)ことと、の章に出てきたである埋め込みを混同しないでください。スマホの中の小さなで、自分のメモを検索することもできます。

ターミナルで入力するコマンド
# your own nanoGPT: train it with the GPT-2 tokenizer (data/shakespeare, not shakespeare_char)
# and save the weights as a Hugging Face GPT-2 folder (./my-model) — then it converts like any model

# llama.cpp: model folder -> GGUF (16-bit) -> 4-bit Q4_K_M
python convert_hf_to_gguf.py ./my-model --outfile my-model-f16.gguf
./llama-quantize my-model-f16.gguf my-model-Q4_K_M.gguf Q4_K_M
ls -lh my-model-*.gguf         # about four times smaller

# quick way: copy my-model-Q4_K_M.gguf into an offline chat app (e.g. PocketPal AI)
# builder's way: embed a runner in your app (llama.rn, a llama.cpp binding) and load the file

これらはこのページではなく、自分のパソコンやので実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

パソコンで学習したモデルが、スマホでのチャットになるまでの道のりを4つの段階で説明しましょう。

説明と比べる

1. モデルをGGUFのようなスマホ向けの形式に変換する。2. メモリに入るように量子化する(たとえば4ビットに)。3. ランナーが入ったアプリに入れる。すでにあるオフラインチャットアプリか、ランナーを組み込んだ自分のアプリです。4. スマホで読み込んで、オフラインでチャットする。段階の合間にパソコンで試すのもよい方法です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

スマホにはなぜ小さなモデルが必要なのか(5分) → パソコンで変換して量子化する(15分) → スマホのアプリで動かす(15分) → アプリがランナーを組み込むしくみ(15分)。

画面で見せること

  1. 同じモデルの16ビットと4ビットのファイルサイズを見せ、どちらもパソコンで試しましょう。
  2. 小さく量子化したGGUFモデルをスマホのオフラインチャットアプリに読み込み、機内モードをオンにしてチャットしましょう。
  3. モデルのファイルを読み込み、組み込んだランナーからを流すアプリのコードを数行見せましょう。

生徒の活動

  1. 小さなオープンモデルを1つ選び、量子化したGGUFファイルを見つけ、自分のスマホのメモリに入るかどうか見積もりましょう。
  2. それをスマホでオフラインで動かし、速さ(1秒あたりのトークン数)と、得意なこと1つ、苦手なこと1つを書きましょう。

達成の目安

変換、量子化、アプリへのランナーの組み込みを説明でき、スマホでモデルをオフラインで動かしたことがあれば(スマホがなければパソコンで)達成です。

生徒がつまずいたら

  • 読み込むときにアプリがクラッシュするとき: モデルがスマホのメモリに対して大きすぎます。もっと小さなモデルを使うか、もっと強く量子化しましょう。
  • スマホがないとき: 同じGGUFファイルをパソコンの llama.cpp で動かしましょう。手順は同じです。

クラスへの問いかけ

  • 4ビットの量子化で、得るものと失うものは何でしょうか?
  • 端末の中で動くモデルは、なぜプライバシーにとってよいのでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第39章 · マスター · 最終プロジェクト

最終プロジェクト: AIで何かを作り、自分の作業を見せる

目標

このコースのツールで小さなプロジェクトを計画し、作り、発表します。ちゃんと動くことを示すの履歴と確認の結果も添えます。

小さくて役に立つプロジェクトを選びましょう。たとえば、クラス用のクイズ生成ツール、ファイルを整理するスクリプト、趣味を紹介するWebページ、好きな文章でさせた自分だけのミニなどです。そのあと、次のようにします。

  • 1ページの計画を書きます。目的、使う人、動くことをどう確かめるかを入れます。
  • と小さなサイクルを何度も回しながら作ります。
  • 1ステップ動くたびにします。
  • AGENTS.md、CLAUDE.md、またはで、にあなたのルールを守らせます。
  • 最後に、でプルリクエストを作り、何を作ったか、どう試せるかを説明します。

やさしく理解しよう

こんなふうに考えてみよう
最終プロジェクトは、自由研究の発表会のようなものです。小さな問いを選び、それに答えるものを作り、試してみて、ポスターの横に立って説明します。何がうまくいき、何がうまくいかず、それをどうやって見つけたのかを話します。話の正直さは、結果と同じくらい大切です。
例

プロジェクトの例は、クラス用のクイズ作成ツールです。計画は、1 つの章から 10 問を作り、友だちに確認してもらうこと。エージェントと一緒に小さなループで作り、うまく動いた段階ごとにコミットします。 がまちがった問題を作った場面と、それにどう気づいたかを 1 つ記録し、最後に付きでプルリクエストを開きます。

よくある間違い
大きすぎて終わらないプロジェクトを選ぶこと。動いて、きちんと説明できる小さなプロジェクトのほうが、いつまでも動かない巨大なプロジェクトより優れています。
生徒が、自由研究のポスターの横に誇らしげに立っています。ポスターには、計画書、小さなロボットのいるノートパソコン、チェックリスト、虫めがねといった簡単なアイコンが描かれていて、クラスメートが見ています。
計画し、小さなループで作り、確かめて、正直に発表しましょう。自分が作ったもの、AI が作ったもの、そしてそれをどう確かめたかを伝えます。
もう少し詳しく

発表はと同じくらい大切です。計画、AIが何かを間違えた場面とあなたがそれに気づいた方法、実行したテストや確認、次にやりたいことを見せましょう。正直に書きましょう。どの部分を自分が書き、どの部分をAIが書き、それをどう確かめたかを伝えます。

自分の言葉で説明

最後のプルリクエストの説明には、どんな4つのことを入れるべきでしょうか?

説明と比べる

プロジェクトが何をするか、どう実行したり試したりできるか、どう確かめたか(テストや例)、そしてどの部分をAIの助けを借りて作ったかです。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

プロジェクトのアイデアと範囲を決める(15分) → 1回以上の授業で生徒が計画して作る → Gitの履歴とデモを使った発表(1人約10分)。

画面で見せること

  1. 目的、使う人、確認方法、3つの中間目標が入った計画の例を見せましょう。
  2. 完成したの例を見せましょう。コミット、CLAUDE.mdまたはAGENTS.md、説明のはっきりしたプルリクエストがあります。
  3. AIの間違いを1つと、それをどう見つけたかを含めた短い発表の例をやってみせましょう。

生徒の活動

  1. 1ページの計画を書き、作り始める前に講師の承認をもらいましょう。
  2. 3回以上コミットしながら作り、説明と試し方を書いたプルリクエストを作りましょう。

達成の目安

プルリクエストがあり、プロジェクトが説明どおりに動き、AIの間違いを1つと確認を1つ説明できれば達成です。

生徒がつまずいたら

  • プロジェクトが大きすぎるとき: 最初から最後まで動く機能1つにしぼり、そこから足していきましょう。
  • コードは動くのに生徒が説明できないとき: エージェントに1行ずつ説明してもらい、それから1か所を自分で書き直しましょう。

クラスへの問いかけ

  • プロジェクトが動くといちばん自信を持てたのは、どの確認でしたか?
  • どの部分を自分でやり、どの部分をAIがやりましたか?

キャンセルする保留中の予約を選んでください。予約ごとに確認が必要です。

あなたの:

閉じる