Zed + Ollama:アシスタントを備えた超高速エディター ローカル
はい、ZedはOllamaにネイティブで接続できます。Ollamaをインストールし、ollama pull dでモデルをプルし、サーバーが起動していることを確認してから、Zedが自動的に埋めるドロップダウンメニューからそのモデルを選択します。使用前に知っておくべき設定があります。ZedはデフォルトでOllamaに4096トークンのコンテキストウィンドウのみを送信します。これは最近の多くのモデルのコンテキスト長を大きく下回っており、大きなファイルに対して回答が切り捨てられる原因を説明するのに十分です。
ZedはRustで書かれたマルチユーザー対応のコードエディタで、応答の速さで知られています。このガイドでは、Ollamaと連携してローカルAIアシスタントを使うための設定、コンテキストウィンドウの調整、モデルの自動検出、そしてZedのエージェントが利用者のマシン上で実行できることを制御する権限とサンドボックスの仕組みを解説します。
#ZedでOllamaを設定する
Zedの公式ドキュメントでは、4つの手順が説明されています。Ollamaのダウンロードとインストール、モデルの取得、Ollamaサーバーが実行されていることの確認、そしてZedのドロップダウンメニューからそのモデルを選択することです。
macOSでは、Ollama.appアプリを起動するだけでサーバーが開始できます。Linuxまたはシェルから起動する場合も、ollama serve コマンドを実行すれば同じ結果になります。Zedは開発者側がAtomおよびTree-sitterの開発者によって作られた、マルチユーザー対応かつ高性能なコードエディタとして紹介されています。2026年9月28日時点での最新の安定版はv1.21.0で、そのリリース日は2026年9月23日であり、GitHub上のリポジトリには当時までにほぼ91,000のスターが付いていました。
この Ollama の設定は、言語モデルを利用する Zed のすべての AI 機能に使えます。複数のファイルにまたがる作業を行う Agent パネル、エディター内で特定の箇所を変更するインラインアシスタント(Inline Assistant)、エージェントがコマンドを提案できるターミナルスレッドが含まれます。ただし、外部エージェントやターミナルスレッドでは、ここで説明する Zed の標準機能向けの設定とは別に、専用のローカルモデル設定が必要になる場合があります。
#モデルの自動検出
このガイドでモデルの導入まで、キットでエディタ内でコードを書くコパイロットの導入まで進められます。
- 永久に利用できるオンラインスペース
- PDF + ファイル
- 生涯アップデート
Zedは、Ollamaがすでにダウンロードしたモデルを自動的に検出し、選択メニューに表示します。この自動検出を無効にして、各モデルの具体的な機能とともに一覧を自分で指定するには、設定でauto_discoverをfalseにする必要があります。
この手動モードには実用的な利点があります。Zedが自動的に適切に分類しないモデルに対して、supports_toolsまたはmax_tokensを強制的に設定する場合や、プロジェクトのバージョン管理された設定ファイルに、チームが使用すべきモデル名を記載する場合に活用できます。
supports_tools フィールドには特に注意が必要です。これはZedがモデルにツールの定義を受け取れるか(ファイルの編集、コマンドの実行など)を示すもので、単なるチャットにとどまらず、Zedエージェントによるマルチファイル処理に対応できるかどうかを決定します。ツール呼び出し機能が明記されていない Ollama モデルは、オンラインアシスタントや自動補完には適していますが、エージェントパネルのマルチファイルタスクには対応できません。
#4096トークンのコンテキストウィンドウ
Zed は num_ctx パラメータを介してコンテキスト長を Ollama に渡します。公式ドキュメントによると、デフォルトは4096トークンです。これは最近のモデルの大半が本来備えるコンテキストウィンドウ(多くの場合32,000トークン以上)よりもはるかに小さく、中程度のサイズのファイルだけでこの上限を超えることがあります。
context_window の設定は Zed に登録されたすべての Ollama モデルに適用されます。各モデルごとの異なるコンテキストは、available_models における max_tokens で定義され、auto_discover を無効にすることでその値が反映されます。
#llama.cppとLM Studio:ローカルで使える代替ツール
Zed は Ollama と同様に llama.cpp に対応しており、ルーターモードで提供されるモデルを自動検出できます。この検出は /models/sse ストリームによってさらに精度が高められますが、これには比較的新しいバージョンの llama.cpp サーバーが必要です。LM Studio にも、lms server start で起動するローカル API サーバー経由で対応しています。
| Backend | モデルの検出 | 特徴 |
|---|---|---|
| Ollama | 自動(既にダウンロードされたモデル) | 手動で設定するコンテキストサイズ(デフォルトは4096) |
| llama.cpp | ルーターモードでは自動(比較的新しいビルドが必要) | オプション -hf を使用したオンデマンドロード |
| LM Studio | 読み込み済みモデルの一覧から手動で確認 | モデル管理用のグラフィカルインターフェースおよびAPIの両方を提供 |
#エージェントのツールの権限
バージョン0.224.0以降、Zedエージェントのツール承認はagent.tool_permissions.defaultで設定されます。このバージョン以前では、単純なブール値(agent.always_allow_tool_actions、デフォルトはfalse)が全体を制御していました。新しいシステムでは、正規表現パターンごとのルールが設定でき、許可、拒否、または常に確認を求めるという3つの結果が選択できます。
公式ドキュメントから引用したこの例では、ターミナルツール内で特定のcargoコマンドを自動的に許可する一方、システムのルートに影響するsudoコマンドには必ず確認を求めます。このように細かく制御できることは、接続するモデルが、基準となるクラウドモデルよりも挙動を予測しにくい小型のローカルモデルである場合に役立ちます。
#サンドボックス:実際に何を保護するのか
Zedは、宣言的な権限設定に加えて、エージェントによるツール呼び出しに対し、OSレベルのサンドボックスを提供しています。ドキュメントには、その適用範囲が明確に示されています。対象はterminalとfetchのツールのみで、Zed自体や、言語サーバー、拡張機能、タスク、通常のターミナルタブには適用されません。
- ターミナルツール
- サンドボックスは、エージェントによって実行されるコマンドのディスク上の書き込みおよび外部ネットワークアクセスを制限し、Gitのメタデータは保護されます。
- fetch ツール
- サンドボックスは、エージェントが実際に通信できるホストを制限します。
- Linuxの前提条件
- PATH に実行可能ファイルであり、setuidでない bwrap バイナリが存在する必要があります。
- Windows の前提条件
- WSLが利用可能である必要があります。ドキュメントでは、WSL上のサンドボックスはLinuxやmacOS上のものよりも保護が弱く、サンドボックスからの脱出を試みる行為をすべて防げるとは限らないと説明されています。
この適用範囲の制限(terminalとfetchのみ)は、挙動の予測が難しい小型のローカルモデルに機密性の高いタスクを任せる前に、理解しておくことが重要です。edit_fileやwrite_fileによるファイルの変更は、サンドボックスによるシステムレベルの隔離ではなく、宣言的な権限設定とエージェントプロファイルで制御されます。そのため、他の操作でサンドボックスが有効になっていても、これらの操作については人間によるレビューが引き続き役立ちます。
#ZedにおけるMCPサーバー
Zedは、Ollamaをモデルの提供元として利用するだけでなく、Model Context Protocol(MCP)を使って、データベース、チケット管理システム、社内ドキュメントなどの外部コンテキストサーバーとやり取りします。公式ドキュメントには、ZedがMCPの「ツール」と「プロンプト」機能に対応していると明記されています。これにより、エージェントは組み込みツール(ファイル編集、ターミナル)に加えて、追加の機能を利用できます。
特定のMCPサーバーがZedの組み込みツールと競合せず、確実に使われるようにするため、ドキュメントでは専用のエージェントプロファイルを例示しています(例はcontainer-useサーバー)。このプロファイルでは、組み込みツールを無効にし、選択したMCPサーバーのツールだけを有効にします。そのために、プロファイルの設定でenable_all_context_serversをfalseに設定します。
このプロファイル単位の細かな制御は、前述のツールごとの権限管理と通じるものです。基準となるクラウドモデルより予測しにくいローカルのOllamaモデルを使う場合、エージェントが実際に利用できるツールを制限すれば、それがMCPサーバー由来でもZedの標準機能でも、権限やサンドボックスの問題を検討する前の段階で、エラーが起こりうる範囲を狭められます。
#予測編集(Zeta)もローカルで実行可能
Zed はチャットエージェントに独自の機能を提供しています。それは予測編集機能で、入力中に次の修正を提案し、Tabキーを押すことで承認できます。デフォルトの提供元はZetaで、これはZed自身が開発したオープンソースモデルです。これはエージェントパネルまたはオンラインアシスタントに設定された会話モデルとは異なります。
この機能を完全にローカルで利用するため、公式ドキュメントでは、予測編集専用のOllamaプロバイダーを設定する方法が案内されています。エージェント用にすでに設定したチャットモデルを流用するのではなく、この用途向けのモデルのバリエーション(特にzeta2)を使います。Zedでは、この2つの設定は独立しています。複数ターンの会話を続けるためではなく、一度に1つの変更を予測するために設計された小型モデルは、この特定のタスクでは通常、汎用チャットモデルよりも速く応答します。ここでは、その速さが純粋な推論能力よりも重要です。入力中に感じる遅延が最優先の判断基準であり、回答の豊かさよりもはるかに重視されます。
#Ollama を遠隔サーバーで使用
Ollamaが別のマシンで動作している場合や、キーを必要とする場合(ホスト版のOllama Turboなど)は、プロバイダーの画面で、または変数OLLAMA_API_KEYを使ってキーを設定します。また、APIのURLはlocalhostではなく、リモートのエンドポイントを指す必要があります。
このリモート構成には、チームにとって具体的な利点があります。十分な規模のモデルを動かせるように用意した1台のOllamaサーバーで、同じAPI URLを設定した複数のZed利用端末に対応できます。そのため、各開発者が自分のマシンでモデルを実行したり、再読み込みしたりする必要がなくなります。この場合、コンテキストウィンドウと宣言する機能(supports_tools、supports_thinking)は、各自の個人設定ではなく、プロジェクトの共有設定で一度だけ設定すれば済みます。
- Clineによるローカルコパイロット:VS Code内のAIエージェント(Ollama)
- Cline + Ollama:VS Code内で動作する100%ローカルのコーディングエージェント
- CursorがContinue.devを買収:ローカル環境でClineへ移行する
- 出典:Zed におけるローカルモデルの公式ドキュメント
- 出典:エージェントのサンドボックスに関する公式ドキュメント
- 出典:ツールの権限に関する公式ドキュメント
Ollamaを使うと、Zedが大きなファイルに対する回答を途中で切ってしまうのはなぜですか?+
ZedはOllamaのモデルを自動検出しますか?+
Zedのサンドボックスがエージェントのすべてのツールを保護していますか?+
Zed において Ollama の代わりに LM Studio または llama.cpp を使用することは可能ですか?+
Zedのサンドボックスは、WindowsでもLinuxと同じくらい信頼できますか?+
ZedはローカルのOllamaモデルと併せてMCPサーバーを使用できますか?+
Zedの予測編集機能は完全にローカルで動作可能でしょうか?+
ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。