모델

모델 (Models)

모델은 에이전트 뒤에 있는 AI 두뇌예요. Docker Agent는 여러 제공자와 유연한 구성을 지원해요.

출처: 문서

본문

인라인 vs. 이름 있는 모델 (Inline vs. Named Models)

에이전트에 모델을 할당하는 두 가지 방법이 있어요:

인라인 (빠른 방법) — Inline (Quick)

에이전트 정의에서 provider/model 약어를 직접 사용해요:

agents:
  root:
    model: openai/gpt-5
    instruction: You are a helpful assistant.

이름 있는 (완전 제어) — Named (Full Control)

models 섹션에서 모델을 정의하고 이름으로 참조해요:

models:
  claude:
    provider: anthropic
    model: claude-sonnet-4-5
    max_tokens: 64000
    temperature: 0.7

agents:
  root:
    model: claude
    instruction: You are a helpful assistant.

이름 있는 모델은 temperature, 토큰 한도, thinking 버짓 및 기타 파라미터를 구성할 수 있게 해요. 또한 여러 에이전트에서 재사용할 수 있어요.

첫 사용 가능 모델 (First Available Models)

이름 있는 모델은 우선순위 목록에서 첫 번째 사용 가능한 모델을 선택할 수도 있어요. 이는 API 키가 있을 때 유료 클라우드 모델을 선호하되, 로컬 폴백으로도 계속 동작해야 하는 공유 구성에 유용해요:

models:
  smart:
    first_available:
      - anthropic/claude-sonnet-4-5
      - openai/gpt-5
      - dmr/ai/qwen3

agents:
  root:
    model: smart
    instruction: You are a helpful assistant.

로드 시점에 Docker Agent는 자격 증명이 구성된 첫 번째 후보를 선택해요. 후보 하나에 대한 자격 증명만 있으면 돼요. 자세한 내용은 Model Configuration 참고.

지원 제공자 (Supported Providers)

Provider Key Example Models API Key Env Var
OpenAI openai gpt-5, gpt-5-mini, gpt-4o OPENAI_API_KEY
Anthropic anthropic claude-sonnet-4-5, claude-opus-5 ANTHROPIC_API_KEY
Google google gemini-3.5-flash, gemini-3-pro GOOGLE_API_KEY / GEMINI_API_KEY
AWS Bedrock amazon-bedrock Claude, Nova, Llama models AWS credentials
Docker Model Runner dmr ai/qwen3, ai/llama3.2 None (local)
Mistral mistral Mistral models MISTRAL_API_KEY
xAI xai Grok models XAI_API_KEY
Nebius nebius Open-source and specialised models NEBIUS_API_KEY
NVIDIA NIM nvidia Nemotron, Llama, Qwen, DeepSeek (open models) NVIDIA_API_KEY
MiniMax minimax MiniMax models MINIMAX_API_KEY
Baseten baseten DeepSeek, Kimi, GLM, Llama models BASETEN_API_KEY
OVHcloud ovhcloud Qwen, Llama, Mistral, DeepSeek (EU-hosted) OVH_AI_ENDPOINTS_ACCESS_TOKEN
Groq groq Llama, Qwen, GPT-OSS (fast inference) GROQ_API_KEY
Fireworks AI fireworks Kimi, Llama, Qwen, DeepSeek, GLM (open models) FIREWORKS_API_KEY
DeepSeek deepseek DeepSeek-V3 chat and R1 reasoner DEEPSEEK_API_KEY
Cerebras cerebras GPT-OSS, GLM (fast inference) CEREBRAS_API_KEY
Together AI together Llama, Qwen, DeepSeek, Kimi (open models) TOGETHER_API_KEY
Hugging Face huggingface Llama, Qwen, DeepSeek, GLM (open models) HF_TOKEN
Cloudflare Workers AI cloudflare-workers-ai Llama, Mistral, Qwen, Gemma (edge-hosted open models) CLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID
Moonshot AI moonshot Kimi K2 chat, reasoning, and coding models MOONSHOT_API_KEY
Vercel AI Gateway vercel Multi-provider gateway AI_GATEWAY_API_KEY
Cloudflare AI Gateway cloudflare-ai-gateway Multi-provider gateway CLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID + CLOUDFLARE_GATEWAY_ID
Requesty requesty Multi-provider gateway REQUESTY_API_KEY
OpenRouter openrouter Multi-provider gateway OPENROUTER_API_KEY
Azure OpenAI azure gpt-4o, gpt-5 on Azure AZURE_API_KEY + base_url
Ollama ollama Any local Ollama model None (local; optional base_url)
GitHub Copilot github-copilot Copilot-hosted OpenAI/Anthropic GITHUB_TOKEN (copilot scope가 있는 PAT)
ChatGPT (OpenAI account) chatgpt gpt-5 family via ChatGPT subscription None (docker agent setup 으로 로그인)

상세 구성 가이드는 Model Providers 섹션을 참고하세요.

모델 속성 (Model Properties)

Property Type Description
provider string 제공자 식별자 (필수)
model string 모델 이름 (필수)
description string 모델 목적에 대한 사람이 읽을 수 있는 요약
temperature float 무작위성: 0.0(결정적) ~ 1.0(창의적)
max_tokens int 최대 응답 길이
top_p float 핵 샘플링(nucleus sampling): 0.0 ~ 1.0
frequency_penalty float 반복 감소: 0.0 ~ 2.0
presence_penalty float 주제 다양성 촉진: 0.0 ~ 2.0
base_url string 커스텀 API 엔드포인트
thinking_budget string/int 추론 노력(reasoning effort) 구성
task_budget int/object 에이전트 작업용 총 토큰 버짓 (Anthropic; 오늘날 Opus 4.7에서 적용)
provider_opts object 제공자별 옵션

추론 / 생각 버짓 (Reasoning / Thinking Budget)

모델이 응답하기 전에 얼마나 "생각"할지 제어해요:

Provider Format Values Default
OpenAI string minimal, low, medium, high, xhigh, max medium (always-reasoning 모델만)
Anthropic int or str 1024–32768 토큰, 또는 adaptive, adaptive/<effort>, effort level off
Gemini 2.5 int 0 (off), -1 (dynamic), 또는 토큰 수 -1 (dynamic)
Gemini 3 string minimal, low, medium, high varies
All string/int none 또는 0 은 Docker Agent의 로컬 구성을 지움 —

none 과 0 은 보편적인 API 레벨 비활성 스위치가 아니에요. 진짜 OpenAI gpt-5.6+ 엔드포인트(Sol/Terra/Luna)에서는 none 이 실제 reasoning_effort 값이라 Docker Agent가 그대로 보내고 모델은 추론하지 않아요. 이전 OpenAI 모델에서 none / 0 은 로컬 thinking_budget 만 지워요 — 필드를 생략해도 효과는 같아요 — 그러면 모델은 API 자체의 기본 effort로 폴백돼요(o-series 같은 always-reasoning 모델은 여전히 내부적으로 추론해요). 진짜 선택적 thinking 스위치가 있는 제공자(Gemini 2.5, Claude, 로컬 모델)는 none / 0 으로 완전히 비활성화돼요. 제공자별 전체 분석은 Thinking / Reasoning 가이드를 참고하세요.

models:
  deep-thinker:
    provider: anthropic
    model: claude-sonnet-4-5
    thinking_budget: 16384

  fast-responder:
    provider: openai
    model: gpt-5.6
    thinking_budget: none # real API-level disable on gpt-5.6+

Note 다중 제공자 팀 (Multi-provider teams) 같은 구성에서 서로 다른 에이전트가 서로 다른 제공자를 사용할 수 있어요. 패턴은 Multi-Agent 참고.

알로이 모델 (Alloy Models)

"Alloy models"는 같은 대화에서 여러 모델을 사용할 수 있게 해줘요 — Docker Agent가 그것들 사이를 오가며 각자의 강점을 활용해요:

agents:
  root:
    model: anthropic/claude-sonnet-4-5,openai/gpt-5
    instruction: You are a helpful assistant.

alloy 모델 개념에 대해 더 읽어보려면 xbow.com/blog/alloy-agents 를 방문하세요.

더 알아보기 (Learn more)