今回は、OpenCode とよばれる OSS の AI エージェント + LLM API を活用して、 コスパよいローカルAIエージェント環境を作っていきたいと思います。
OpenCode とは
OpenCode は、ソフトウェアエンジニアリングタスクを支援するために設計されたオープンソースの AI エージェントです。 ターミナル上で動くため、どんなエディタにも対応します。僕は普段 Neovim で作業しているため、ターミナルで完結できるので使いやすいと感じます。
Big Pickle
OpenCode では、インストール後からそのまま使えるフリーの LLM “Big Pickle” が提供されています。 このモデルで色々と使ってみましたが、複雑・難解なタスクはわかりませんが、簡単なタスク・インプットが豊富なタスクは十分実用レベルと感じました。日本語でいけます。

ローカルLLM を試す
今回は、無料で使えるローカルLLMの OpenCode 上でのセットアップの手順を紹介します。 ローカルLLM をローカル環境で動かすためのランタイムとして Ollama と LM Studio を試してみます。
Ollama
Ollama ダウンロードページに移動します。

インストール確認
ollama --version
ollama version is 0.15.1
gemma3 をダウンロードしてみます。
ollama pull gemma3
ダウンロードされました。
ollama list
NAME ID SIZE MODIFIED
gemma3:latest a2af6cc3eb7f 3.3 GB 51 seconds ago
動作確認してみます。
ollama run gemma3:latest "ハロー"
こんにちは!何かお手伝いできることはありますか?😊
こんな感じで返事が返ってきたらOKです。
次に、OpenCode 経由で Gemma3 を使ってみましょう。
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ollama": {
"npm": "@ai-sdk/openai-compatible",
"name": "Ollama (local)",
"options": {
"baseURL": "http://localhost:11434/v1"
},
"models": {
"gemma3:latest": {
"name": "gemma3:latest (local)",
}
}
}
}
}

registry.ollama.ai/library/gemma3:latest does not support tools
だめでした、、、 どうやら Gemma3 は OpenCode に対応していないようです。(メッセージの文面的に、外部APIのようなツールをサポートしていないモデルですよ、と理解しています)
改めて、Tools に対応したモデルを探しましょう。

日本語対応が明記されているものがあればいいのですが、、、なさそうなのでダウンロード数が多いものを適当に見繕います。
ollama pull qwen3
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ollama": {
"npm": "@ai-sdk/openai-compatible",
"name": "Ollama (local)",
"options": {
"baseURL": "http://localhost:11434/v1"
},
"models": {
"qwen3:latest": {
"name": "qwen3:latest (local)",
}
}
}
}
}
これで、OpenCode 上でコミュニケーションできました!
ただ、ollama run で実行すると普通に日本語で返ってくるのですが、OpenCode 上だと日本語で返ってきませんでした。
ディスクがもったいないので、最初にインストールした gemma3 は消しておきましょう。
ollama rm gemma3
% ollama list
NAME ID SIZE MODIFIED
qwen3:latest 500a1f067a9f 5.2 GB About an hour ago
LM Studio
LM Studio にして試してみます。

からダウンロード・インストールします。
lms version
__ __ ___ ______ ___ _______ ____
/ / / |/ / / __/ /___ _____/ (_)__ / ___/ / / _/
/ /__/ /|_/ / _\ \/ __/ // / _ / / _ \ / /__/ /___/ /
/____/_/ /_/ /___/\__/\_,_/\_,_/_/\___/ \___/____/___/
lms - LM Studio CLI - v0.0.47
GitHub: https://github.com/lmstudio-ai/lms
lms get llama-3.1-8b
動作確認(おかしな日本語が返ってきました)
lms chat meta-llama-3.1-8b-instruct
Chatting with meta-llama-3.1-8b-instruct. Type 'exit', 'quit' or Ctrl+C to quit
› こんにちは!
● こんにちは!どうしてもうまいですか?(Hello! How are you?)
OpenCode との連携を確認します。
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"lmstudio": {
"npm": "@ai-sdk/openai-compatible",
"name": "LM Studio (local)",
"options": {
"baseURL": "http://127.0.0.1:1234/v1"
},
"models": {
"meta-llama-3.1-8b-instruct": {
"name": "meta-llama-3.1-8b (local)"
},
}
},
}
}
LM Studio の場合は、ロードしてサーバ起動しておく必要があります。
lms load meta-llama-3.1-8b-instruct
確認
lms ls
You have 5 models, taking up 16.80 GB of disk space.
LLM PARAMS ARCH SIZE
meta-llama-3.1-8b-instruct 8B Llama 4.53 GB ✓ LOADED
EMBEDDING PARAMS ARCH SIZE
text-embedding-nomic-embed-text-v1.5 Nomic BERT 84.11 MB
サーバ起動
lms server start
Success! Server is now running on port 1234
ここでようやく OpenCode から利用できるようになりますが、おそらく以下のエラーがでると思います。
The number of tokens to keep from the initial prompt is greater than the context length. Try to load the model with a larger context length, or provide a shorter input
コンテキスト長を広げます。
lms unload
lms load meta-llama-3.1-8b-instruct --context-length=13200
length の値は適当です。試した限りは、上記の値くらいでエラーが解消されました。
まとめ
OpenCode そのものは、モデルと人間の橋渡しツールとしては十分な品質であると感じます。
無料で使える ローカルLLM に関しては、若干のオペレーションは必要ですが比較的簡単に導入できました。簡単なタスクは色々とお願いしてみたいと思います。 (同じ無料だし日本語で返してくれる Big Pickle でいいんじゃないかな、、、) 今後どちらも使いながら、ローカルLLM のメリットを確認していきたいと思います。