閉域網でAIを操る:Windsurf × Ollama による「完全ローカル・コーディング」の深淵
テックリードとして現場を俯瞰すると、現代の開発において「AIの恩恵」と「機密保持」のジレンマは避けて通れない命題だ。特に金融、医療、あるいは未公開のコアアルゴリズムを扱うプロジェクトにおいて、コードの一部すら外部サーバーに送信することを許容できないケースは多い。
Windsurfは、単なるVS Codeのフォークではない。AIがコードベースのコンテキストをリアルタイムで理解し、エディタの深層まで介入する「エージェント型IDE」だ。今回は、このWindsurfをローカルLLM(Ollama)と統合し、社内ネットワークやオフライン環境でも最強のAIペアプロ環境を構築する、アーキテクト視点の実践知を共有する。
—
1. なぜ「ローカルLLM」が最強の選択肢なのか
クラウドAI(Claude 3.5 SonnetやGPT-4o)は強力だが、プライバシーの懸念に加え、推論ごとのレイテンシと「ネットワーク切断時の無力化」がボトルネックになる。Ollamaをバックエンドに据えることで、以下のメリットが確定する。
- 完全なデータ主権: 推論データは一切社外へ漏れない。
- 低レイテンシ: ネットワークを介さないため、UI/UXの応答速度が爆速化する。
- コストのゼロベース化: 推論料金を気にする必要がないため、脳が動くままにプロンプトを投げ続けられる。
—
2. Windsurf × Ollama 統合の深部設定
WindsurfはOpenAI互換のAPIエンドポイントを叩くことができる。Ollamaをローカルの推論エンジンとして稼働させ、Windsurfに接続する手順は以下の通りだ。
ステップ1: Ollamaのモデル最適化(重要)
Windsurfの「Cascade」機能に耐えうる知能を確保するには、最低でも `qwen2.5-coder` (7B または 14B) を推奨する。32Bが動かせるワークステーションなら、それがベストだ。
推論エンジンを起動
ollama run qwen2.5-coder:14b-instruct-q4_k_m
ステップ2: Windsurfへの接続設定
Windsurfの「AI Settings」または `settings.json` にて、ローカルエンドポイントを直接指定する。
{
“ai.provider”: “openai”, // OpenAI互換APIとして認識させる
“ai.model”: “qwen2.5-coder:14b-instruct-q4_k_m”,
“ai.baseUrl”: “http://localhost:11434/v1”, // OllamaのAPIルート
“ai.apiKey”: “ollama”, // ローカルでは値は何でも良いが空欄は不可
“ai.temperature”: 0.2 // コーディング精度を高めるために低めを推奨
}
—
3. 開発効率を極限まで引き上げる「神」設定とテクニック
開発を加速させる「隠れたキーボードショートカット」
Windsurfの真骨頂は、マウスに触れずに完結するエージェント操作にある。
- `Cmd/Ctrl + L`: Cascadeチャットへの即時フォーカス。思考のフローを止めない。
- `Cmd/Ctrl + I`: インライン編集の呼び出し。コードの一部をAIに書き換えさせる際の最短経路。
- `Cmd/Ctrl + K`: コンテキストへのファイル追加。特定のファイルをAIに深く読ませたいときに必須。
チーム開発の生産性を底上げする `.windsurf/` の共有
プロジェクトごとにAIの振る舞いを統一するため、リポジトリ直下に `.windsurf/` ディレクトリを作成し、以下をGit管理下に置く。
.windsurf/rules.yaml
チーム内で一貫したコード品質を保つためのAI指示書
instructions:
- rule: “常にテスト駆動開発(TDD)のアプローチでコードを生成すること。”
- rule: “非同期処理には必ずエラーハンドリングを付与すること。”
- rule: “既存のユーティリティ関数を再利用し、重複コード(DRY原則)を徹底する。”
- language: “TypeScript”
- framework: “Next.js 14 (App Router)”
これをコミットすることで、新人エンジニアであっても「熟練のシニアエンジニア」と同等の品質でAIがコード生成をアシストしてくれるようになる。
—
4. ローカル環境運用の限界と現実解
ただし、アーキテクトとして正直に伝えねばならない「限界」がある。
1. 推論性能の限界: 14Bクラスのモデルでは、非常に複雑なリファクタリングや、巨大なライブラリの依存関係を一瞬で理解する能力は、Claude 3.5 Sonnetに一歩譲る。
2. GPUメモリの壁: モデルを動かすにはVRAMが8GB〜12GB以上必要になる。チームメンバーのPCスペックが低い場合、開発環境の格差が生産性に直結する。
現場の解決策:
「日常的な実装はOllama + Qwenで完結させ、アーキテクチャ設計や難易度の高いバグ調査が必要な時だけ、一時的にクラウドAIに切り替える」というハイブリッド運用をチームの標準フローとして確立すること。
—
結びに:ツールに遊ばれるな、ツールを使い倒せ
Windsurfを導入したからといって、コードが勝手に完成するわけではない。重要なのは、「AIに何をさせ、何を確認させるか」という設計者の意志だ。
ローカル環境にAIを閉じ込めることは、単なるセキュリティ対策ではない。それは、外部のインフラに依存せず、自分のPC一台で世界を変えるコードを書き続けられるという「エンジニアの自由」の獲得に他ならない。
さあ、今すぐOllamaを立ち上げ、`.windsurf/rules.yaml` をプロジェクトに放り込み、チームのコーディング体験を次世代へと引き上げよう。現場からは以上だ。