Ollama 및 Fly.io Sprites: Ollama 커넥터를 통해 클라우드 모델로 AI 에이전트를 안전하게 실행하기

이제 Fly.io Sprites(에이전트 실행을 위해 Fly.io가 구축한 샌드박스 Linux 가상 머신) 내부에서 Ollama Cloud를 사용할 수 있습니다. 이 통합은 새로운 Ollama 커넥터로 제공되며, Ollama API 키를 Fly.io 조직 수준에 저장하고 게이트웨이에서 주입하므로 샌드박스 내부에서 실행되는 에이전트는 자격 증명을 직접 보유하지 않습니다.

이 발표가 중요한 이유는 에이전트 배포에서 일반적으로 혼동되는 두 가지, 즉 프론티어 모델을 호출하는 기능과 신뢰할 수 없는 모델 생성 명령을 안전하게 실행하는 기능을 분리하기 때문입니다. Sprites는 격리된 실행 환경을 제공하고, Ollama 커넥터는 Ollama 클라우드 모델에 대한 범위가 지정된 키 없는 액세스를 제공합니다.

Fly.io Sprites란 무엇인가

Sprite는 Fly.io의 샌드박스입니다. 각 Sprite는 세션 간에 유지되는 자체 디스크를 가진 전체 Linux 가상 머신입니다.

Claude Code, Codex 및 Gemini CLI는 기본적으로 지원되므로 에이전트가 개발자 머신이 아닌 샌드박스 내에서 명령을 실행할 수 있습니다.

사용 가능한 Ollama 모델

Ollama 커넥터를 사용하면 Sprites가 Ollama 클라우드 모델을 호출할 수 있습니다. 발표에서는 kimi-k3, glm-5.3, deepseek-v4.1-flash의 세 가지 예를 언급합니다.

Ollama 커넥터가 API 키를 보호하는 방법

Ollama API 키를 Fly.io 조직에 추가하면 Fly.io가 키를 암호화하고 API를 통해 다시 반환하지 않습니다.

Sprite 내부의 코드가 Ollama를 호출하면 요청이 Fly.io 게이트웨이를 통과합니다. 게이트웨이는 호출하는 Sprite를 확인하고 요청에 키를 추가합니다. Sprite 자체는 게이트웨이 URL과 연결 ID만 알고 있습니다.

Ollama와 Fly.io가 이 설계에 대해 명시한 보안 속성은 다음과 같습니다.

  • Sprite의 에이전트는 키를 유출할 수 없습니다.
  • 새 커넥터는 기본적으로 모든 Sprite를 차단합니다. 레이블, 이름 접두사 또는 전체 중에서 액세스 권한을 부여할 Sprite를 선택합니다.
  • 호출은 Sprite 내부에서만 작동합니다.

설정: Fly.io 조직에 Ollama 커넥터 추가

Ollama API 키와 Sprite가 하나 이상 필요합니다.

  1. Fly.io 대시보드에서 Sprites, Connectors를 열고 API 키로 Ollama 커넥터를 추가합니다.
  2. Access Configuration에서 사용할 Sprite를 선택하고 저장합니다.
  3. Sprite 옆의 Test reachability를 클릭하여 Ollama에 연결할 수 있는지 확인합니다.

Sprite 내부에서 curl로 Ollama 호출

커넥터 페이지에는 연결 ID가 채워진 요청 명령이 표시됩니다. 게이트웨이가 키를 추가하므로 Authorization 헤더가 없습니다.

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!"}]}'

Sprite 내부에서 Python으로 Ollama 호출

모든 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/* 경로도 게이트웨이를 통해 작동하므로 기존 Ollama 클라이언트 코드를 OpenAI 호환 경로를 사용하도록 다시 작성할 필요가 없습니다.

코딩 에이전트는 자동으로 Ollama 지원을 받습니다

Fly.io Sprites에는 Claude Code, Cursor, Codex 및 Gemini CLI에 Ollama를 알려주는 스킬이 포함되어 있습니다. Sprite가 커넥터에 액세스할 수 있으면 에이전트는 추가 설정 없이 Ollama 모델을 사용할 수 있습니다.

사용 사례 예: 다중 모델 퍼징

Fly.io는 퍼징에 여러 모델을 함께 사용하는 가이드를 게시합니다. nemotron-3-nano:30b와 같은 작은 모델은 잘못된 입력을 생성하고, Sprite는 해당 입력을 프로그램에 대해 실행하며, kimi-k3와 같은 더 큰 모델은 결과 충돌을 검사합니다. 두 역할 간 전환은 요청의 model 필드만 변경하면 됩니다.

이 통합의 목적

Ollama 커넥터는 에이전트가 유능한 클라우드 모델과 잠재적으로 적대적이거나 단순히 잘못된 코드를 실행할 수 있는 장소를 모두 필요로 하는 경우를 대상으로 합니다. 샌드박스는 격리와 영구 디스크를 제공하고, 게이트웨이는 자격 증명과 액세스 정책을 제공합니다. 에이전트나 에이전트가 실행하는 코드는 Ollama API 키를 볼 수 없습니다.

Sources