はじめに
この記事は少し変わった経緯で生まれました。
AIコーディングアシスタントの Claude Code が、ユーザーと対話しながら自宅サーバーにローカルLLM + 自律AIエージェント環境を構築しました。そして構築完了後、「今回やったことをブログに書いて」という指示を受け、ローカルで動いている Ollama(coder7b-agent) が記事の下書きを生成し、Claude Code が WordPress REST API 経由で投稿したのがこの記事です。
つまり、AIが環境を作り、AIがその記事を書き、AIが投稿したというわけです。
Claude Code とは
Claude Code は Anthropic が提供する AI コーディングアシスタントです。ターミナルやエディタから直接操作でき、コードの読み書きだけでなく、SSH でリモートサーバーに接続してコマンドを実行したり、設定ファイルを変更したりと、かなり自律的に作業を進めてくれます。
今回はユーザーが「ローカルLLMサーバーを建てたい」と伝えると、Claude Code が計画を立てて実装まで主導しました。
構築した環境の概要
ハードウェア
| 項目 | 内容 |
|---|---|
| OS | Ubuntu 24.04 LTS |
| CPU | AMD Ryzen 5600X |
| RAM | 16GB |
| GPU | RTX 3060 12GB VRAM |
ソフトウェアスタック
| レイヤー | 選択 | 役割 |
|---|---|---|
| 推論バックエンド | Ollama | ローカルLLM実行エンジン |
| プライマリモデル | Qwen3:14b | 9.3GB VRAM、複雑タスク向け |
| フォールバック | Gemma4-e4b-cpu | CPU動作、VRAM競合時に自動切替 |
| 自律エージェント | OpenClaw | Discord統合、自律タスク実行 |
| 画像生成 | ComfyUI | SDXL-Turbo + Pony Diffusion V6 XL |
| Claude連携 | MCP ブリッジ | Claude Code ↔ Ollama / OpenClaw |
Claude Code が実装した内容
1. Ollama のセットアップと VRAM 最適化
Claude Code が SSH でサーバーに接続し、Ollama をインストールしました。
curl -fsSL https://ollama.com/install.sh | sh
VRAM 最適化のため systemd の override 設定を作成しました。
[Service]
Environment="OLLAMA_FLASH_ATTENTION=1"
Environment="OLLAMA_KV_CACHE_TYPE=q8_0"
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_MAX_LOADED_MODELS=1"
Flash Attention と KV cache q8_0 の組み合わせで約30%のVRAM削減を達成し、RTX 3060 12GB で Qwen3:14b(9.3GB)を安定稼働させることができました。
2. モデル選定
Claude Code がユーザーとの対話でモデルを選定しました。最終的な構成:
Qwen3:14b(プライマリ)
– VRAM: 9.3GB、複雑なタスクやコーディング支援に強い
– OpenClaw が要求する 262K コンテキストを 8192 に制限する Modelfile を作成
Gemma4-e4b-cpu(フォールバック)
– CPU 動作で VRAM を消費しない
– Google の MoE アーキテクチャで実効 4B ながら高品質
– ComfyUI で GPU が占有されているときに自動切替
3. OpenClaw 自律エージェント
OpenClaw は Discord を通じて自律的にタスクを実行できるエージェントです。Claude Code が設定ファイルを生成し、Discord ボットとの連携まで完了させました。
- Discord でメンション(@llm-agent)するだけでタスクを指示できる
- スレッド機能で案件ごとに会話を分けられる
- openshell プラグインでシェルコマンドも実行可能
4. ComfyUI 画像生成
画像生成環境として ComfyUI をセットアップし、2つのモデルを導入しました。
- SDXL-Turbo fp16: 高速生成(数ステップで生成可能)
- Pony Diffusion V6 XL: 高品質生成(アニメ・イラスト向け)
重要な制約: Ollama と ComfyUI は VRAM を共有するため同時起動不可です。Gemma4-e4b-cpu フォールバックはこの制約への対応策でもあります。
5. MCP ブリッジの実装
Claude Code が自分自身と Ollama・OpenClaw をつなぐ MCP サーバーを実装しました。
mcp-ollama: Node.js で実装した MCP サーバー。ask_ollama と list_models ツールを提供します。この記事の下書きも、このブリッジ経由で Ollama に生成させています。
openclaw-mcp-serve.sh: SSH 経由で OpenClaw の MCP サーバーに接続するラッパースクリプト。nvm 環境を SSH 非インタラクティブ環境でも読み込めるよう工夫しました。
実装中のハマりポイント
Claude Code がぶつかった問題と解決策の記録です。
Discord webhook の bot-to-bot 制限
Webhook で送ったメッセージに OpenClaw が反応しない問題。Discord 仕様で bot は bot/webhook のメッセージを無視するためです。OpenClaw ネイティブの Discord ボット統合に切り替えて解決しました。
OpenClaw Web UI のアクセス制限
HTTPS または localhost しか許可されない仕様。SSH トンネルで回避しています。
ssh -L 18789:localhost:18789 llm
# → ブラウザで http://localhost:18789 にアクセス
nvm 環境が SSH 非インタラクティブで読まれない
MCP 経由で SSH 実行する場合、~/.bashrc が読み込まれないため nvm が使えません。ラッパースクリプトで source ~/.nvm/nvm.sh を明示的に実行することで対応しました。
この記事の生成と投稿について
「今回やったことをブログに書いて欲しい」というユーザーの指示を受け、Claude Code は以下のステップを実行しました。
- 記事生成: MCP ブリッジ経由で Ollama(coder7b-agent)に記事の下書きを依頼
- 投稿: WordPress REST API を使って直接 WordPress に投稿
ただし当初は色々と苦労しました。OpenClaw への指示はペアリング問題で断念し、Discord 経由の投稿はアクセス権限の問題で失敗。最終的に Ollama MCP + REST API という構成に落ち着きました。
まとめ
Claude Code がユーザーと対話しながら、計画・実装・ドキュメント化・投稿まで一気通貫でやり遂げた事例でした。
ローカル LLM 環境があることで、Claude Code がさらにその環境を活用して記事を書くという面白い構図が生まれました。プライバシーを守りながら自前の AI 基盤を持つことの可能性を感じさせる体験でした。
なお、RTX 3060 12GB という家庭用 GPU でも、VRAM 最適化を工夫すれば十分実用的な環境が構築できます。ローカル LLM に興味がある方はぜひ試してみてください。






