AI コーディングエージェントのラボ:opencode でコードを説明・修正し、その結果を確かめる
このラボは、各生徒に専用の AI コーディングエージェント opencode を渡します。隣には、テストが5 つとバグが 1 つある売店のレジの小さなプログラムがあります。エージェントはプロジェクトを読み、それについての質問に答え、変更もできます。ファイルを変更する前やコマンドを実行する前には、必ず確認を求めます。
エージェントの回答は、プラットフォームが選び、ロンドンの Amazon Bedrock で動かしているモデルが返します。コピーからインターネットへのほかの出口はなく、モデルのキーがコピーの中に置かれることはありません。
生徒が学ぶこと
コーディングエージェントとは何か、そしてどう上手に使うか。変更を頼む前にまず説明を頼むこと、前後でテストを実行すること、変更を許可する前に一つずつ読むこと、自信があるように聞こえるからといって回答を信じないこと。AI ツールを使ったプログラミングの入門や、テストの授業に向いています。
ブラウザーで動かす
ラボはサービス agent を 1 つ起動し、売店のプロジェクトは /home/node/project にあります。エージェントはラボが起動するたびにインストールされ、約 1 分かかります。準備ができると、docker exec agent cat /tmp/agent/status が ready と表示します。
- コンテナーのページを開く. バーの「つくる」を開き、「コンテナーを実行」を選びます。ページは誰でも開けて、Git ラボと SQL ラボはアカウントなしで起動できます。ほかのラボには無料アカウントが必要です。アカウントを作成してサインインし、「起動」を押します。
- ラボを探す. 「サンプルラボ」のカードにすべてのサンプルが並んでいます。AI コーディングエージェントを探します。
- 「起動」を押す. 「起動」はそのまま1回の操作で実行します。「先にファイルを編集」は compose ファイルを開くので、起動する前に変更できます。
- 開く. ラボのページで「ターミナルを開く」を押します。docker exec -w /home/node/project agent node --test で 5 つのテストが実行され、1 つが失敗します。docker exec -it -w /home/node/project agent opencode でエージェントが開き、生徒はしてほしいことを入力します。
エージェントを使える人
無料の個人アカウントでは、このラボと、生徒が自分でインストールするラボでエージェントが使えます。上限は 1 日 80 AI クレジット、合計 300 AI クレジットで、数回の授業分です。学校では、学校の管理者が「設定」の「AI 支援」でラボのコーディングエージェントを有効にし、その人の AI 支援も有効にしたあとでのみ使えます。そのあとは、1 人 1 日 400 AI クレジットまで使えます。それまでは、エージェントは開きますが、有効になっていないと表示します。
生徒に提出させるもの
修正前と修正後のテストの出力、エージェントが変更した行、そして自分で変更をどう確かめたかを数文で。最後の部分を見れば、変更を読んだのか、ただ受け入れたのかがわかります。
このラボの基本レッスン
AI Coding Agent Basics は、このラボで進める小さなレッスンです。生徒はテストを実行し、エージェントにコードを説明させ、変更を読んだうえでバグを修正させ、テストとレジをもう一度動かして確かめます。
無料の個人アカウントには、ホームにある Basics モジュールで配布されます。どの学校もライブラリの Basics フォルダから自分のモジュールにコピーでき、新しい学校では DevOps Labs (Sample) というモジュールに入っています。変更したい場合は、自分のモジュールにコピーしてください。
GitHub のコード
compose ファイルに Dockerfile はありません。公式の node イメージをバージョンを固定して、特権のないユーザーで実行し、起動のたびに npm から opencode を、これもバージョンを固定してインストールします。opencode は MIT ライセンスで、当社は配布していません。プロジェクトは名前付きボリュームに保存されますが、エージェントは大きすぎるため保存されません。
課題として出す
何を提出するかを、課題に書いておきます。
- ラボを作る. モジュールで課題を追加し、「コンテナーラボ」のカードを選んでから「GitHub リポジトリ」を選びます。https://github.com/mitsurutech/lab-ai-agent とブランチ main を指定します。compose ファイルは既定の compose.yaml です。変更したい場合は、先にリポジトリをフォークしてください。
- 公開して試す. 「公開」すると、確認したコミットに固定されるので、あとでリポジトリを変更しても、すでに出したラボは変わりません。まず自分のコピーを起動してください。
- 配布する. ほかの課題と同じように配布します。期限を付けることもでき、課題には何をするか、何を提出するかを書いておきます。
- 提出物を採点する. 生徒のコピーを開いて提出された内容を確認し、採点します。足りない場合は理由を書いて差し戻します。
よくある質問
- エージェントに答えるのはどのモデルで、コードはどこへ送られますか?
- プラットフォームが選んだモデルで、ロンドンの Amazon Bedrock で動いています。各ステップでは、エージェントが読んだプロジェクトの内容と生徒が入力した内容が送られ、名前やメールアドレスは含まれません。モデルの学習には使われません。詳しくはプライバシーポリシーをご覧ください。
- 生徒はエージェントをほかのことに使えますか?
- エージェントは生徒自身のコピーの中で動き、モデルと npm レジストリ以外には届きません。入力されたことには何でも答えるので、課題をはっきり示し、提出物を採点してください。
- なぜエージェントはファイルを変更する前に確認を求めるのですか?
- ラボの設定でそうするよう指示しているからです。生徒が変更の前に一つずつ読むためで、それこそがこのレッスンで身につける習慣です。