在 Windows 上部署本地 Agent,最省心的结构通常不是把模型服务、Docker、终端和代码工具散落在 Windows、WSL 与多个虚拟环境里,而是把它们放进同一个 WSL2 Ubuntu 发行版:
|
|
这样 Ollama 和 Agent 直接通过 WSL 内的 localhost 通信,路径、权限和日志都在 Linux 环境内。Windows 端可以继续用 Windows Terminal、VS Code Remote WSL 或资源管理器访问项目。
先说结论
最小可用路线是:
|
|
不要一开始就让本地 Agent 获得全盘权限,也不要先追求最大的模型。先用能稳定运行的模型验证流程,比先折腾复杂代理、远程端口和多 Agent 编排更重要。
第一步:安装 WSL2 和 Ubuntu
在 Windows 的管理员 PowerShell 中执行:
|
|
重启后,默认会安装 Ubuntu。首次打开 Ubuntu 时,按提示创建 Linux 用户名和密码。
确认发行版使用 WSL2:
|
|
如果旧发行版仍是版本 1,可转换:
|
|
进入 Ubuntu:
|
|
后续大部分命令都在 Ubuntu 终端里执行,而不是 PowerShell。
第二步:准备 Ubuntu 基础环境
进入 WSL 后先更新系统:
|
|
确认环境:
|
|
项目建议放在 Linux 文件系统内,例如:
|
|
不要把高频 Git、Node.js、Python 虚拟环境和大规模依赖都放在 /mnt/c/... 下运行。跨文件系统访问在某些开发任务里会更慢,也更容易遇到权限和文件监听差异。需要从 Windows 打开项目时,可使用 VS Code 的 Remote WSL 功能。
第三步:在 WSL 内安装并验证 Ollama
按 Ollama Linux 安装方式执行:
|
|
先在当前终端启动服务:
|
|
另开一个 WSL 终端,下载并测试一个模型:
|
|
模型选择必须按你的 GPU 显存或 CPU/内存决定。没有可用 GPU 时,先用更小模型验证流程;不要把“大模型文件能下载”误认为“本机能流畅推理”。
确认服务和模型状态:
|
|
如果 ollama run 本身不能稳定输出,先解决模型、显存、驱动或内存问题,再接 Agent。
第四步:检查 WSL GPU 是否真的可用
有 NVIDIA GPU 时,在 WSL 内执行:
|
|
能显示显卡不等于 Ollama 已经使用 GPU,但它至少证明 WSL 看到了驱动。启动模型后,再执行:
|
|
观察模型是否使用 GPU、显存是否增长。
如果 nvidia-smi 不存在或报错,先检查 Windows 的 NVIDIA 驱动、WSL 版本和 GPU 支持,不要急着在 Ubuntu 内反复安装桌面 Linux 驱动。WSL 的 GPU 支持有自己的驱动链路。
第五步:让 Codex 使用本地 Ollama
Codex 提供 OSS 模式,可选择 Ollama 或 LM Studio 作为本地提供方。在 WSL 内安装并可运行 Codex 后,进入你的项目目录:
|
|
首次建议使用只读权限启动:
|
|
先给一个不修改文件的任务:
|
|
确认本地模型能读懂仓库、回答稳定后,再按需使用 workspace 写入权限。不要因为它是本地模型,就跳过 Git、测试和权限控制。
如果想把 Ollama 作为默认本地提供方,在用户级 Codex 配置 ~/.codex/config.toml 加入:
|
|
之后用下面命令即可:
|
|
注意,提供方相关配置应放在用户级配置中,而不是项目里的 .codex/config.toml。项目配置不应偷偷改变你机器的模型提供方。
第六步:需要常驻服务时启用 systemd
新安装的 WSL Ubuntu 通常已默认使用 systemd。先检查:
|
|
若当前发行版没有启用 systemd,编辑:
|
|
加入:
|
|
然后回到 Windows PowerShell:
|
|
重新进入 Ubuntu 后再检查 systemctl status。
是否把 Ollama 做成常驻服务,要看安装方式和你是否需要后台 API。刚开始学习时,保持一个 ollama serve 终端最容易看到日志;确认稳定后,再用 systemd 管理服务。
WSL 内的路径、端口和 API
默认情况下,Ollama 服务使用:
|
|
如果 Agent、脚本和 Ollama 都在同一个 WSL 发行版中,优先使用这个本地地址,不需要先开放局域网端口。
测试 API:
|
|
需要在 Windows 程序、手机或局域网其他设备中调用时,再单独设计网络暴露方式、反向代理和鉴权。不要把裸露的本地模型端口直接映射到公网。
推荐的资源分级
| 硬件情况 | 建议的起步方式 |
|---|---|
| 无独显、8GB–16GB 内存 | 小模型、只读分析、摘要和简单脚本 |
| 8GB 显存 | 7B/8B 量化模型,单用户短到中等上下文 |
| 12GB–16GB 显存 | 8B 更舒适,可谨慎尝试更大量化模型 |
| 24GB+ 显存 | 可考虑更大模型、长上下文或更复杂的本地 Agent 任务 |
模型越大不代表 Agent 越可靠。对本地 Agent 来说,命令执行稳定性、上下文、工具调用能力和任务拆分方式,同样影响结果。
最容易踩的坑
1. Windows 和 WSL 各跑了一套 Ollama
这会让你分不清 Agent 实际连到哪一个服务。初次部署建议只在 WSL 内运行一套 Ollama,所有测试都在同一个 WSL 终端完成。
2. 在 /mnt/c 里跑所有开发任务
可以访问,但依赖安装、文件监听、Git 性能和 Linux 权限行为未必理想。优先把活跃项目放到 ~/projects。
3. 本地模型一开始就允许写文件
先用 --sandbox read-only 验证模型是否理解任务。进入修改阶段后,也应先让它说明计划,再检查 diff、运行测试并用 Git 保留回退点。
4. 端口开放后没有鉴权
本地 API 一旦允许局域网访问,就不再只是“自己电脑上的服务”。至少限制防火墙来源,必要时在反向代理层增加鉴权和 HTTPS。
5. 以为安装成功就会自动后台运行
WSL 关闭或发行版被停止后,前台进程会退出。需要长期 API 时,先确认 systemd、服务状态和 Windows/WSL 的运行策略。
总结
Windows WSL 部署本地 Agent,最可靠的第一版是:
|
|
让模型、Agent 和代码都在同一个 WSL 环境里,能减少一半以上的路径、端口和权限问题。等最小流程稳定后,再考虑 Docker、多模型路由、RAG 或远程访问。
参考: