前の環境構築 から早10ヶ月、AIの発展は目覚ましいものでAIを取り巻く環境はすっかり変わってしまいました。
「AIのコードは信用ならん!全部自分で読んでレビューするのがプログラマーだ!」と息巻いていた人たちでさえ、周囲の圧からか堕落からか、一部しか読まなくなったり、AIにレビューを任せたりといった人が出てきているようです。 (ちなみにぼくはつくるものと動かす環境によって変えるタイプ)
ブログでも明らかにAIが書いたであろう記事が増えてきました。 耳馴染みのないAI特有の表現だらけだったり、記事が異様に長かったり。 文中にいきなり「AIに聞いてみました」「AIに調査してもらいました」といってAI出力をそのまま長文で貼り付けているものもよくみます。
こういうのを見ると「読みやすくまとめるなりすればいいのに、受け手の負担とか考えないのかなー」とぼくみたいなのは思うわけですが、多くの人はそうは思っていないようでAI記事は今日もわさわさ数を増しています。 もしかしたら、もうみんなAIに調べてもらうからブログなんて読まないのかも。 かなしいね
まぁ、それはさておき。
好むと好まないとに関わらず、AIが便利な道具であることは確かですからしっかり使えるようになっておきたいわけです。
そこで、前回の構成を使っていて感じた不満点とAI勢力図の変化に基づいて、もうちょいイマドキな環境を構築してみました。
要件は前回と大体同じ
- AIがコマンド実行できるのは隔離環境だけ
- 使用感を損なわないうちで、できるだけ安い定額制
前は500円以下で探して見つからず、OpenCode Zenの無料モデルを採用したのですが、いい無料モデルがある期間とない期間で性能差が大きかったり、応答が不安定でエラーが多かったりと快適に使えるものではありませんでした。 なので今回は有料プランで探すことに。
従量課金制は「AIが暴走したらとんでもない請求が来るんじゃないか」と恐ろしいので、定額プランで探した結果… OpenCode GO の10ドルプランに行きつきました。 AstraやOpus、Fableのような自社フロンティアモデルを提供しているChatGPT(Codex)やCluadeとは違い、いろんなメーカーの公開モデルから好きなものを使えるサービスです。 最近はオープンウェイトLLMの性能がかなり上がっているらしく、全体設計など超高難易度ではない普通のコーディングなら卒なくこなしてくれるみたいで期待大です。
AI関連ツール・サービスは変化が早いので、お金回りなど大事なところはご自分で確認されることをおすすめします。
構成
AIモデルは DeepSeek-V4.1-Flash を中心に使うことにしました。 OpenCode GOは複数のモデルからどれを使えるか選べるので、どうしようかなーと利用統計を見ていたところ、この子が圧倒的に人気だったので。 評判、ベンチマークスコアともになかなかよさげですし。
ハーネスはOpenCodeではなく Pi を選びました。 OpenCodeはコマンド実行毎に許可を与えてやらねばならず、自動許可モードにしても過去の実行コマンドしか自動承認されないので、ちょっとオプションが増えたりするとすぐ承認を求めてきて面倒だったのです。 好き勝手していいようにコンテナ環境に隔離してるので、いちいち聞いてこないで自律的に進めて欲しいんですよね。 その点Piは承認機能がないので好き勝手やってくれていい感じ
AGENTS.mdや拡張機能などは こちらの記事 のAGENTS.mdとツール群を参考にして構築しました。 正直あまりよくわかってないのでシンプルな構成にしています。
AI以外のとこで言うと、言語環境はDockerファイルではなくmiseで管理するようにしてみました。 前は言語ごとにDockerfileにインストールスクリプト書くかイメージ変えるかしなきゃいけなくて面倒だったので、環境の統一とか再配布性を捨ててでもプロジェクト作成時の心理的ハードルを小さくすることを優先しています。 私が使う可能性の高い言語は .mise.toml に書いておいたので、コメントアウトするだけでOK。 それ以外の言語やmiseで入れれないツールはAIに入れて貰えばいいだろうという発想です。
実行環境は前と同じくVS CodeのDev Containersを想定しているのですが、Dev Containersにはコンテナ内からホスト側のSSHエージェントにアクセスでき、公式で塞ぐ設定がないというAI時代にはなかなか危ない仕様があるのでその対策も入れてあります。
同じようにGitのクレデンシャルも渡されてしまうのですが、こちらは設定でどうにかできるのでやっておくといいでしょう。 CMD + Shift + P (Mac以外はわかんない) で出る検索ボックスに「Preferences: Open User Settings (JSON)」と入れて開く設定ファイルに
"dev.containers.copyGitConfig": false, "dev.containers.gitCredentialHelperConfigLocation": "none", "dev.containers.dockerCredentialHelper": false
を追加すればOKです。
Dev Containersを使わなければこんな問題はないのですが、でも便利だからさ…
つかいかた
環境をクローン
git clone https://github.com/PepperCat-YamanekoVillage/DevContainer-Pi code DevContainer-Pi
クローンしてきたらVS Codeで開きます。 まだコンテナでは開かないでね
JinaのAPIキーの取得
Jina AI にアクセスして無料APIキーをゲット
PiはWeb検索機能を持たないので、拡張機能から検索をする必要があります。
これはそのため
envファイルの作成
# https://jina.ai/ja/ JINA_API_KEY=jina_AAAAAAAAAA
.env ファイルを作成し、先ほどのAPIキーをぺたり
VSCodeの左下をクリックして、「コンテナーで再度開く」でコンテナを起動
ダウンロードにしばらくかかるので、待ってる間にOpenCode GOを契約しましょう。
OpenCode GOのAPIキーの取得
OpenCode GO コンソール からアカウントを作成し、OpenCode GO(10ドル)を契約
支払いはStripe経由なのでちょっと安心
APIキーはSetting > Service accountsから作成できます。わかりにくい
PermissionsはRestrictedにして、Models → Request / Usage → Read でok
従量課金設定はデフォルトでオフなので安心
いよいよ起動
pi --model opencode-go/deepseek-v4.1-flash
/login と入力してEnter > Use an API key > OpenCode GO と選ぶとAPIキーの入力を求められるので、さっき作ったAPIキーを入力します。
これにて完了!
あとは好きにプロンプトを打てば応答が帰ってくるはず
いやー有料モデルはやっぱりレスポンスが早くていいですね。
応答のクオリティも軽く触った感じでは問題なさそうです。 あとはもっと大きいプロジェクトで使ってみてどうかですが、それはまた追々
アプリなどを作ったりしています! よかったらみていってください→
つくったもの
今のイチオシ↓

