모델
모델 (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 |
| 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 를 방문하세요.