利用 Ollama 和 Fly.io 安全运行 AI 智能体
2026 年 10 月 13 日

Ollama Cloud 现在支持在基于 Fly.io Sprites 构建的完整 Linux 计算机环境中运行,专为 AI Agent 设计。
Sprite 是 Fly.io 提供的沙箱环境。每一个都是一个拥有独立磁盘的完整 Linux 虚拟机,且磁盘数据在会话之间会持久保留。原生支持 Claude Code、Codex 和 Gemini CLI,允许 Agent 在沙箱内安全地执行命令。
借助新的 Ollama Connector,你的 Sprites 可以使用 Ollama 的云端模型,如 kimi-k3、glm-5.3 和 deepseek-v4.1-flash。
工作原理
将你的 Ollama API 密钥添加到 Fly.io 组织,Fly.io 会对其进行加密,且绝不会通过 API 返回该密钥。
当 Sprite 内部的代码调用 Ollama 时,请求会经过一个 Fly.io 网关。网关会验证发起调用的 Sprite 身份,并将你的密钥附加到请求中。Sprite 本身只知道一个网关 URL 和一个连接 ID。
这意味着:
- Sprite 中的 Agent 无法泄露你的密钥。
- 新的连接器默认阻止所有 Sprite 访问。你可以按标签、名称前缀或全选等方式指定哪些 Sprite 拥有访问权限。
- 调用仅在 Sprite 内部有效。
快速开始
你需要一个 Ollama API 密钥 以及至少一个 Sprite。
- 在 Fly.io 控制台 中,打开 Sprites,然后进入 Connectors,添加一个带有你的 API 密钥的 Ollama 连接器。
- 在 Access Configuration 下,选择允许使用该连接器的 Sprites 并保存。
- 点击某个 Sprite 旁边的 Test reachability,检查其是否能访问 Ollama。
然后,在 Sprite 内部执行:
curl "https://api.sprites.dev/v1/gateway/ollama/<connection_id>/v1/chat/completions" \
-H "Content-Type: application/json" \
-d '{"model": "kimi-k3", "messages": [{"role": "user", "content": "Hello!"}]}'
连接器页面会展示已填入你连接 ID 的命令。由于网关会附加你的密钥,因此无需包含 Authorization 请求头。
Python
任何 OpenAI SDK 均可使用。将 base_url 设置为网关地址,api_key 可以填入任意值:
from openai import OpenAI
client = OpenAI(
base_url="https://api.sprites.dev/v1/gateway/ollama/<connection_id>/v1",
api_key="unused",
)
response = client.chat.completions.create(
model="glm-5.3",
messages=[{"role": "user", "content": "Why is the sky blue?"}],
)
print(response.choices[0].message.content)
Ollama 原生的 /api/* 路由也可以通过 Gateway 访问。
编码智能体
Fly.io Sprites 内置了一项技能,可让 Claude Code、Cursor、Codex 和 Gemini CLI 识别 Ollama。只要 Sprite 拥有相应权限,编码智能体即可直接调用 Ollama 模型,无需额外配置。
示例:模糊测试
Fly.io 提供了一份指南,演示如何组合多个模型进行模糊测试(fuzzing)。其中,类似 nemotron-3-nano:30b 的小型模型生成畸形输入,Sprite 将其应用于你的程序,再由类似 kimi-k3 的大型模型分析崩溃情况。切换模型只需修改 model 字段即可。详见 Ollama Connector 快速入门。
感谢 Fly.io 团队与我们共同构建此功能。