ollama+agentでローカルAIエージェント
Qwen 3.6やGemma4など実用的なローカルLLMが出てきたので、フロンティアモデルの必要がない簡単な作業ならローカルで完結できるようになりました。そこで既存のAIエージェントをollamaを使ってローカルLLMを動かし、開発したいと思います。
ローカルLLMは高速なPCで動かしたいので、ollamaはsshトンネリングで動かすことにします。使えるAIエージェントは、Codex、Claude Code、OpenCode、GitHub Copilotです。
Codex CLI
次のコマンドでインストールする。
curl -fsSL https://chatgpt.com/codex/install.sh | sh
次のコマンドで動きます。
codex --oss -m gpt-oss:120b-cloud
Claude code
次のコマンドでインストールする。
curl -fsSL https://claude.ai/install.sh | bash
ollamaを使うために、環境変数を設定し、claude codeを実行する。
export ANTHROPIC_AUTH_TOKEN=ollama
export ANTHROPIC_API_KEY=""
export ANTHROPIC_BASE_URL=http://localhost:11434
claude --model qwen3.5
インライン版
ANTHROPIC_AUTH_TOKEN=ollama ANTHROPIC_BASE_URL=http://localhost:11434 ANTHROPIC_API_KEY="" claude --model glm-5:cloud
ollamaがインストールされていれば
ollama launch claude --model qwen3-coder:30b
でも動く。しかし、ollamaが入っていないと動かない(sshトンネリングで動かす場合は使用できない)。
OpenCode
次のコマンドでインストールする。
curl -fsSL https://opencode.ai/install | bash
.opencode/opencode.jsonにollamaの設定を書く。
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ollama": {
"npm": "@ai-sdk/openai-compatible",
"name": "Ollama (local)",
"options": {
"baseURL": "http://localhost:11434/v1"
},
"models": {
"qwen3.6:35b_agent": {
"name": "qwen3.6:35b"
},
"qwen3.6:27b_agent": {
"name": "qwen3.6:27b"
}
}
}
}
}
OpenCodeを実行し、ollamaのモデルを選ぶ。
GitHub Copilot CLI
次のコマンドでインストールする。
curl -fsSL https://gh.io/copilot-install | bash
ollamaを使うために、環境変数を設定し、GitHub Copilot CLIを実行する。
export COPILOT_PROVIDER_BASE_URL=http://localhost:11434/v1
export COPILOT_PROVIDER_API_KEY=
export COPILOT_PROVIDER_WIRE_API=responses
export COPILOT_MODEL=qwen3.5
copilot
インライン版
COPILOT_PROVIDER_BASE_URL=http://localhost:11434/v1 COPILOT_PROVIDER_API_KEY= COPILOT_PROVIDER_WIRE_API=responses COPILOT_MODEL=glm-5:cloud copilot
GitHub Copilot
sshトンネリングすれば(ollamaがインストールされていれば)、Copilotが使用するモデルにollamaのモデルが記載される。
LLMサーバと複数サーバがある場合
エージェントとollamaが動くコンピュータが異なる場合、エージェントを動かすコンピュータでollamaを動かせるようにする必要があります。この場合、sshトンネリングにより、ollamaを使えるようにします。次のコマンドを打つことで、エージェントを動かすコンピュータからollamaが使えるようになります。
ssh -N -L 11434:127.0.0.1:11434 your_user@ollama-server
また、LLMごとにLLMサーバ(ollamaサーバ)を用意している場合は、LLMサーバごとに異なるポートでトンネリングすれば、簡単にLLMサーバ(LLM)を切り替えることができます。例えば、2つLLMサーバがある場合、1つは11434、もう一つは11433としたばあい、次のようなコマンドを打てばよいです。
ssh -N -L 11434:127.0.0.1:11434 your_user@ollama-server1
ssh -N -L 11433:127.0.0.1:11434 your_user@ollama-server2
さらに、エージェントのLLMサーバのbase URLの設定で、2つのURLを設定すれば、複数LLMサーバが使えます。
コーディングエージェントにおけるLLMの設定について
コーディングエージェントで重要なのは、もちろんコーディング能力ですが、スピードとコンテキストサイズも重要です。コーディングエージェントの場合、エージェントに与えるコンテキストは大きくなりがちなため、メモリーとLLMの能力が許す限り大きくする必要があります。
また、安定してエージェント動作をさせるために、生成サイズ、生成のばらつき(温度パラメタ)、ループへのペナルティなど調整する必要があります。
例として、modelfileを提示します。参考にして下さい。
FROM qwen3.6:35b-a3b-mtp-q8_0
PARAMETER num_ctx 131072
PARAMETER num_predict 4096
PARAMETER temperature 0.15
PARAMETER top_p 0.9
PARAMETER repeat_penalty 1.05