AI コーディングエージェントをインストールするラボ:npm、設定ファイル、モデル
このラボは、コーディングエージェントのラボから何もインストールしていないものです。生徒はそれぞれ、オープンソースの AI コーディングエージェント opencode を npm からインストールし、設定ファイルの例を読んで所定の場所にコピーしてから、同じ売店のレジの小さなプログラムでエージェントを使います。
コピーからインターネットへの出口は 2 つだけです。ほかを一切通さないプロキシーを経由した npm レジストリと、プラットフォームのモデルです。エージェントを使える人と使える量は、最初のラボと同じです。
生徒が学ぶこと
プログラムはパッケージとしてインストールし、リリースを固定すること。設定ファイルはプログラムにサービスの場所を教えること。そして、キーは提出するファイルに決して書かないこと。ツールのインストールと設定を初めて扱う授業に向いています。
ブラウザーで動かす
ラボはサービス agent を 1 つ起動します。プロジェクトは /home/node/project に、設定の例は /home/node/opencode.example.json にあります。
- コンテナーのページを開く. バーの「つくる」を開き、「コンテナーを実行」を選びます。ページは誰でも開けて、Git ラボと SQL ラボはアカウントなしで起動できます。ほかのラボには無料アカウントが必要です。アカウントを作成してサインインし、「起動」を押します。
- ラボを探す. 「サンプルラボ」のカードにすべてのサンプルが並んでいます。自分でインストールするコーディングエージェントを探します。
- 「起動」を押す. 「起動」はそのまま1回の操作で実行します。「先にファイルを編集」は compose ファイルを開くので、起動する前に変更できます。
- 開く. ラボのページで「ターミナルを開く」を押します。docker exec agent npm install -g [email protected] でエージェントがインストールされ、docker exec agent opencode --version でそのリリースが表示されます。レッスンでは、設定の例を所定の場所にコピーします。
生徒に提出させるもの
自分の opencode.json、修正前と修正後のテスト、そして設定の各行が何をするかを説明する1 文です。
このラボの基本レッスン
AI Coding Agent Basics 2 は、AI Coding Agent Basics のあとにこのラボで進める小さなレッスンです。生徒はエージェントをインストールし、設定を読んでコピーし、質問を 1 つしてから、エージェントと一緒にバグを修正します。
無料の個人アカウントには、ホームにある Basics モジュールで配布されます。どの学校もライブラリの Basics フォルダから自分のモジュールにコピーでき、新しい学校では DevOps Labs (Sample) というモジュールに入っています。変更したい場合は、自分のモジュールにコピーしてください。
GitHub のコード
compose ファイルに Dockerfile はありません。公式の node イメージをバージョンを固定して、特権のないユーザーで実行します。opencode は MIT ライセンスで、インストールするのは生徒であり、当社は配布していません。プロジェクトと設定は名前付きボリュームに保存されますが、エージェントは保存されないため、再起動のあとはもう一度インストールします。
課題として出す
何を提出するかを、課題に書いておきます。
- ラボを作る. モジュールで課題を追加し、「コンテナーラボ」のカードを選んでから「GitHub リポジトリ」を選びます。https://github.com/mitsurutech/lab-ai-agent-install とブランチ main を指定します。compose ファイルは既定の compose.yaml です。変更したい場合は、先にリポジトリをフォークしてください。
- 公開して試す. 「公開」すると、確認したコミットに固定されるので、あとでリポジトリを変更しても、すでに出したラボは変わりません。まず自分のコピーを起動してください。
- 配布する. ほかの課題と同じように配布します。期限を付けることもでき、課題には何をするか、何を提出するかを書いておきます。
- 提出物を採点する. 生徒のコピーを開いて提出された内容を確認し、採点します。足りない場合は理由を書いて差し戻します。
よくある質問
- ラボに出口がないのに、npm はどこからエージェントを取ってくるのですか?
- npm レジストリからです。コピーの隣にあるプロキシーを経由し、プロキシーはレジストリだけを通して、ほかのアドレスはすべて拒否します。
- なぜ設定のキーはただの lab という単語なのですか?
- 本物のキーは、通信の途中でラボが付け加えます。そのため、生徒が見たり提出したりできるファイルに入ることはありません。そこに何を入力しても置き換えられます。
- なぜ再起動のあとにエージェントをもう一度インストールする必要があるのですか?
- 約 140 MB あり、コピーが保存できる量を超えているからです。プロジェクトと設定は保存されるので、やり直すのはインストールの手順だけです。