tutorial privacy ollama

ZeroClaw + Ollama + Open WebUI:搭建完全离线的 AI 技术栈

ZeroClaws.io

ZeroClaws.io

@zeroclaws

2026年2月22日

6 分钟

ZeroClaw + Ollama + Open WebUI:搭建完全离线的 AI 技术栈

有一类用户不是偏好本地 AI,而是必须本地。处理特权通信的律师。处理患者数据的医疗机构。在涉密环境工作的政府承包商。合规团队否决了云端 AI 服务的公司。以及大量单纯不想对话数据存在别人服务器上的个人。

对这些用户来说,"大部分本地"是不够的。他们需要一套拔掉网线也能用的方案。下面是搭建方法。

架构

三个组件,各负其责:

  • Ollama 管理模型下载、量化,在 localhost 提供兼容 OpenAI 的 API
  • ZeroClaw 提供智能体运行时——记忆、频道、工具、人设和编排
  • Open WebUI 提供一个精致的浏览器聊天界面,类似 ChatGPT 的 UI

三个都跑在本地。Ollama 和 ZeroClaw 通过 localhost 通信。Open WebUI 连接 Ollama 的本地 API。初次设置之后,什么都不碰互联网。

第一步:安装 Ollama

```bash curl -fsSL https://ollama.com/install.sh | sh ```

Windows 从 ollama.com/download 下载安装包。macOS 上 `brew install ollama` 可以。

趁还有网的时候把模型拉下来:

```bash ollama pull llama3.1:8b ollama pull qwen2.5-coder:7b ollama pull gemma3:4b ```

模型只下载一次,存在本地。这一步之后,Ollama 再也不需要联网。

选模型: 如果你有 16GB+ 内存或 8GB+ 显存的 GPU,从 llama3.1:8b 开始——同尺寸里最全面的。如果只有 8GB 内存没有 GPU,用 gemma3:4b。专门写代码的话,qwen2.5-coder:7b 在代码生成基准测试上超过了两倍大小的模型。

第二步:安装 ZeroClaw

```bash curl -fsSL https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/main/scripts/bootstrap.sh | bash ```

配置 ZeroClaw 使用 Ollama 作为后端。编辑 `~/.zeroclaw/config.toml`:

```bash [provider] type = "openai-compatible" base_url = "http://localhost:11434/v1" model = "llama3.1:8b" api_key = "not-needed"

[agent] name = "LocalAssistant" personality = "Helpful, concise assistant running entirely on local hardware. Prioritize accuracy over speed."

[memory] type = "sqlite" path = "~/.zeroclaw/memory.db" ```

启动 ZeroClaw:

```bash zeroclaw start ```

测试一下:

```bash zeroclaw chat "What can you help me with?" ```

第三步:安装 Open WebUI

Open WebUI 提供熟悉的聊天界面。用 Docker 部署:

```bash docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main ```

浏览器打开 http://localhost:3000。创建一个本地管理员账号(存在 Docker 卷里,不会发送到任何地方)。Open WebUI 自动检测本地 Ollama 实例并列出你下载的模型。

现在你有了一个完全跑在自己硬件上的 ChatGPT 风格界面。

第四步:断网

这是测试。拔掉网线或关掉 WiFi。Open WebUI 应该还能在 localhost:3000 正常加载。输入一条消息。你应该在几秒内从本地模型得到回复。

如果断网后能用,你的技术栈就是完全离线可用的。重新联网不会改变任何东西——无论网络状态如何,技术栈继续本地运行。

按硬件选模型

能跑什么模型取决于你的内存和 GPU:

  • gemma3:4b——快,基础任务够用
  • qwen2.5:3b——更小但出乎意料地能打
  • llama3.1:8b——这个档位最好的通用模型
  • qwen2.5-coder:7b——开发用
  • 跟上面一样的模型,但推理快 3-5 倍
  • 响应时间从 5-8 秒降到 1-2 秒
  • deepseek-v3.2:32b——比 8B 模型质量大幅提升
  • qwen2.5-coder:32b——软件开发很好用

加入 ZeroClaw 的智能体功能

基础的 Ollama + Open WebUI 给你一个聊天界面。加入 ZeroClaw 给你一个智能体——能记住之前的对话、使用工具、连接消息平台。

记忆持久化: ZeroClaw 用 SQLite 混合搜索(FTS5 + 向量)存储对话。你的智能体记得昨天、上周或上个月讨论的内容。单独的 Open WebUI 不提供跨会话记忆。

工具使用: 配置 ZeroClaw 工具来处理文件操作、计算或自定义脚本。智能体可以读取系统文件、执行白名单命令、与本地服务交互——全部离线。

多频道接入: 在线时连接 Telegram、Discord 或其他消息平台,而实际推理保持本地。消息平台只看到文字消息;AI 处理从不离开你的机器。

安全加固

对于因合规或安全原因需要这套方案的用户,额外的加固步骤:

  1. 1.**只绑定 localhost。** Ollama 和 ZeroClaw 都应该监听 127.0.0.1 而不是 0.0.0.0。ZeroClaw 默认如此;Ollama 用 `OLLAMA_HOST=127.0.0.1 ollama serve` 来确认。
  1. 2.**关掉遥测。** Open WebUI 有可选的遥测功能,气隙部署应该关掉:在 Docker 环境变量中设置 `ENABLE_TELEMETRY=false`。
  1. 3.**用 ZeroClaw 的白名单。** 配置文件路径和网络白名单,限制智能体在本地机器上能访问的范围。
  1. 4.**加密记忆数据库。** 对于敏感对话,为 ZeroClaw 的记忆文件使用 SQLite 加密(SQLCipher)。

你放弃了什么

诚实面对取舍很重要。完全离线意味着:

  • 模型质量天花板。 本地模型(8B-32B 参数)不错但不是前沿水平。Claude 3.5 Opus 或 GPT-5 这样的云端模型在复杂推理任务上产出更好。
  • 没有联网工具。 网页搜索、实时数据获取和外部 API 调用在离线时不工作。智能体局限于本地知识和工具。
  • 硬件投入。 需要专用硬件。持续成本是电费而不是 API 费用,但前期投入是实实在在的。

大多数用户的实际做法是混合方案:默认跑本地,需要前沿质量时路由到云端,保留离线能力作为网络不可用或任务敏感时的后备。

ZeroClaw 原生支持这个——配置本地后端(Ollama)和云端后端,设置路由规则,智能体根据每个查询自动选择合适的后端。你的私密对话留在本地。复杂的研究问题走云端。边界由你控制。

开始用 ZeroClaw 构建 AI Agent

获取新版本、集成和 Rust 驱动的 Agent 基础设施更新。不发垃圾邮件,随时退订。