> ## Documentation Index
> Fetch the complete documentation index at: https://docs.one.fim.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 권장 모델

> FIM One 배포에 적합한 LLM을 선택하세요.

FIM One은 **공급자 독립적**입니다 — 모든 OpenAI 호환 엔드포인트가 작동합니다. 이 페이지는 사용 사례에 맞는 최적의 모델 조합을 선택하는 데 도움을 줍니다. 구성 세부 정보는 [환경 변수](/configuration/environment-variables)를 참조하세요.

## FIM One가 모델을 사용하는 방식

FIM One에는 세 가지 모델 역할이 있습니다:

| 역할            | 환경 변수                 | 용도                             |
| ------------- | --------------------- | ------------------------------ |
| **General**   | `LLM_MODEL`           | 계획, 분석, ReAct 에이전트, 복잡한 추론     |
| **Fast**      | `FAST_LLM_MODEL`      | DAG 단계 실행, 컨텍스트 압축 (더 저렴하고 빠름) |
| **Reasoning** | `REASONING_LLM_MODEL` | 심층 분석, 복잡한 계획, 수학적 증명          |

Fast와 Reasoning이 구성되지 않으면 General로 폴백됩니다. 프로덕션 배포의 경우, 최소한 두 개의 모델(General + Fast)로 분할하면 최고의 비용/품질 균형을 얻을 수 있습니다.

이러한 역할은 ENV 변수를 통해 또는 관리자 UI의 **Model Groups** 기능을 통해 구성할 수 있으며, 이를 통해 모델 세트 간에 한 번의 클릭으로 전환할 수 있습니다. 전체 관리자 UI 가이드는 [Model Management](/configuration/model-management)를 참조하세요.

***

## 빠른 선택 매트릭스

| 제공자                 | 메인 LLM                                      | 빠른 LLM                                        | 추론                               | 비전          | 참고                                                     |
| ------------------- | ------------------------------------------- | --------------------------------------------- | -------------------------------- | ----------- | ------------------------------------------------------ |
| **OpenAI**          | `gpt-5.4`                                   | `gpt-5.4-mini` / `gpt-5.4-nano`               | ✅ `reasoning_effort`             | ✅ 모두        | 최고의 네이티브 도구 호출; GPT-5.4는 최신 플래그십 (2026년 3월)            |
| **Anthropic**       | `claude-sonnet-4-6`                         | `claude-haiku-4-5`                            | ✅ LiteLLM 경유                     | ✅ 모두        | 네이티브 API 라우팅; 완전한 `reasoning_content` 지원; 1M 컨텍스트 GA   |
| **Google Gemini**   | `gemini-2.5-pro` / `gemini-3.1-pro-preview` | `gemini-2.5-flash` / `gemini-3-flash-preview` | ✅ `reasoning_effort`             | ✅ 모두        | 2.5는 안정적 GA; 3.x는 프리뷰; `gemini-3-pro-preview` 3월 9일 종료 |
| **DeepSeek**        | `deepseek-chat` (V3.2)                      | `deepseek-chat`                               | ✅ `deepseek-reasoner`            | ❌           | 텍스트 전용; V4 (2026년 4월)에서 비전 추가 예정                       |
| **Qwen (Alibaba)**  | `qwen3.5-plus` / `qwen3-max`                | `qwen3.5-flash` / `qwen-turbo`                | ✅ `qwen3-max`의 `enable_thinking` | ⚠️ qwen3.5만 | 최강의 중국어 지원; qwq/추론은 텍스트 전용                             |
| **ChatGLM (Zhipu)** | `glm-4.7`                                   | `glm-4.7-flash`                               | `glm-5`                          | ⚠️ GLM-4.6V | 강제 FC 미지원; 비전은 별도 VLM 모델 필요                            |
| **MiniMax**         | `MiniMax-M2.7`                              | `MiniMax-M2.5`                                | ❌                                | ❌           | 텍스트 전용; M2.7 최신 (2026년 3월); SWE-Bench 80.2%            |
| **Kimi (Moonshot)** | `kimi-k2.5`                                 | `kimi-k2`                                     | ✅ `kimi-k2-thinking`             | ⚠️ K2.5만    | K2-thinking은 텍스트 전용; 강제 FC는 thinking과 미지원              |
| **Ollama (로컬)**     | `qwen3.5` / `llama4`                        | `qwen3.5:9b`                                  | ❌                                | 다양함         | 완전 오프라인, API 키 불필요; Llama 4는 비전 지원                     |

<Tip>
  **비전**은 모델이 이미지 입력을 수용하는지 여부를 나타냅니다. 이는 [지능형 문서 처리 (IDP)](/features/idp)에 필수적입니다——모델이 비전을 지원하지 않으면 IDP는 텍스트 전용 추출로 폴백됩니다. ⚠️로 표시된 제공자는 일부 모델에서만 비전을 지원합니다. 사용 중인 특정 모델을 확인하세요.

  채팅 첨부 파일도 동일한 플래그를 따릅니다. 텍스트 전용 모델의 경우 첨부된 이미지가 전송되지 않으며, 모델은 파일 이름만 받습니다. 채팅 작성기는 실제로 사용할 모델 (에이전트 설정, 활성 모델 그룹, 시스템 기본값)을 기반으로 전송 전에 이를 표시합니다. 문서 텍스트는 영향을 받지 않습니다——PDF 또는 DOCX는 여전히 콘텐츠가 추출되어 주입됩니다.
</Tip>

이 표는 FIM One이 지원하는 전체 제공자 세트가 아닌 권장하는 조합을 나열합니다. xAI (Grok), ByteDance Doubao, Mistral 및 모든 OpenAI 호환 릴레이가 작동합니다. 전체 목록과 각각의 라우팅 방식은 [제공자 기능 매트릭스](/architecture/llm-provider-guide#provider-capability-matrix)를 참조하세요.

## 구조화된 출력 호환성

FIM One의 DAG 플래너는 모델이 유효한 구조화된 JSON을 반환해야 합니다. 내부적으로 다음 세 가지 추출 수준을 순서대로 시도합니다:

1. **Native Function Calling** — 도구 호출 API를 통해 스키마와 일치하는 JSON 출력을 강제합니다. 가장 안정적입니다.
2. **JSON Mode** — `response_format: json_object`를 요청합니다. 유효한 JSON을 보장하지만 스키마 준수를 강제하지는 않습니다.
3. **Plain Text Extraction** — 마지막 수단으로 자유 형식 텍스트에서 JSON을 파싱합니다.

Level 1(강제 `tool_choice`를 사용한 네이티브 FC)을 지원하는 모델이 최고의 플래닝 안정성을 제공합니다. 모델이 Level 2에만 도달하면 출력 품질은 프롬프트 지시를 따르는 정도에 따라 달라집니다. 약한 모델은 예상된 구조와 일치하지 않는 유효한 JSON을 생성할 수 있습니다.

| 제공자                         | 강제 Function Calling                                        | JSON Mode | 플래닝 안정성                |
| --------------------------- | ---------------------------------------------------------- | --------- | ---------------------- |
| **OpenAI** (GPT-5.x, o3)    | ✅ 완전 지원                                                    | ✅         | ⭐⭐⭐ 우수                 |
| **Anthropic** (Claude 4.x)  | ⚠️ 사고 모드와 충돌                                               | ✅         | ⭐⭐⭐ 우수 (강력한 지시 준수로 보완) |
| **Google Gemini** (2.5/3.x) | ✅ 완전 지원                                                    | ✅         | ⭐⭐⭐ 우수                 |
| **Mistral**                 | ✅ 완전 지원                                                    | ✅         | ⭐⭐ 양호                  |
| **xAI** (Grok 4.1)          | ✅ 완전 지원                                                    | ✅         | ⭐⭐ 양호                  |
| **DeepSeek** (V3.2)         | ✅ `deepseek-chat`에서 지원; ❌ `deepseek-reasoner`에서는 사고 모드가 거부 | ✅         | ⭐⭐ 양호                  |
| **Qwen** (3.x)              | ✅ 지원됨                                                      | ✅         | ⭐⭐ 양호                  |
| **ByteDance** (Doubao Seed) | ✅ 완전 지원                                                    | ✅         | ⭐⭐ 양호                  |
| **Kimi** (K2.5)             | ⚠️ 사고 모드 사용 시 `auto`만 지원; 강제 도구 선택은 사고 비활성화 필요 (`kimi-k2`) | ✅         | ⭐ 보통 — 잘못된 플랜 생성 가능    |
| **ChatGLM** (GLM-4.7/5)     | ❌ 지원 안 함 (`auto`만 가능)                                      | ✅         | ⭐ 보통                   |
| **MiniMax** (M2.5/M2.7)     | ✅ 완전 지원, 사고 모드 관계없이                                        | ✅         | ⭐⭐ 양호                  |
| **Local (Ollama)**          | 모델에 따라 다름                                                  | 모델에 따라 다름 | ⭐ 보통 — 32B 이상 권장       |

이 표는 선택을 돕기 위한 것입니다. 각 제공자가 수용하는 `tool_choice` 상태와 거부될 때 FIM One이 수행하는 작업을 포함한 권위 있는 코드 기반 버전은 [제공자 기능 매트릭스](/architecture/llm-provider-guide#provider-capability-matrix)를 참조하세요.

<Tip>
  "failed to generate a valid task plan" 오류가 표시되면 모델의 구조화된 출력 기능이 DAG 플래닝에 불충분합니다. **Main LLM**을 ⭐⭐⭐ 또는 ⭐⭐ 이상으로 평가된 모델로 전환하거나 DAG 모드를 비활성화하고 더 간단한 ReAct 에이전트를 대신 사용하세요.
</Tip>

## 사고 / 추론 호환성

다양한 제공자들은 "사고"(연쇄 추론)를 근본적으로 다른 방식으로 구현합니다. 이는 사고 모드가 도구 호출과 충돌할 수 있고, 제공자에 따라 출력이 다른 위치에 나타나기 때문에 중요합니다. FIM One은 이 모든 것을 투명하게 처리합니다 — 이 표는 내부에서 무엇이 일어나고 있는지 이해하는 데 도움이 됩니다.

### 주요 개념

* **선택적 활성화** — 사고 기능은 기본적으로 비활성화되어 있으며, API 매개변수(예: `reasoning_effort`)를 통해 활성화합니다. 호출별로 선택적으로 비활성화할 수 있습니다.
* **항상 활성화** — 모델이 항상 사고합니다. 이를 끌 수 있는 API 매개변수가 없습니다. 사고 기능을 피하려면 사고하지 않는 모델 변형으로 전환해야 합니다.
* **모델 수준** — 사고는 매개변수가 아닌 선택한 모델 ID(예: `deepseek-reasoner` vs `deepseek-chat`)에 의해 결정됩니다.

### 호환성 매트릭스

| 제공자                         | 활성화 방법                             | 비활성화 가능? | 추론 출력                              | 강제 FC 충돌?                                                                                    |
| --------------------------- | ---------------------------------- | -------- | ---------------------------------- | -------------------------------------------------------------------------------------------- |
| **OpenAI** (GPT-5.x)        | `reasoning_effort` 파라미터            | ✅ 선택 가능  | 내부 (사용자에게 표시되지 않음)                 | ✅ 도구 + 추론이 Responses API를 통해 함께 실행됨 (자동; chat-completions 폴백은 `reasoning_effort: "none"` 강제) |
| **OpenAI** (o-series)       | 항상 활성화                             | ❌        | 내부 (토큰 계산됨, 반환되지 않음)               | ✅ 충돌 없음                                                                                      |
| **Anthropic** (Claude 4.x)  | `reasoning_effort` → `thinking`    | ✅ 선택 가능  | API `reasoning_content` 필드 → 추론 패널 | ❌ 강제 FC + 추론 = **400 오류**                                                                    |
| **Google Gemini** (2.5/3.x) | `reasoning_effort` 파라미터            | ✅ 선택 가능  | 내부                                 | ✅ 충돌 없음                                                                                      |
| **DeepSeek**                | 모델 변형 (`deepseek-reasoner`)        | 모델 수준    | API `reasoning_content` 필드 → 추론 패널 | ❌ `deepseek-reasoner`에서 거부됨, `deepseek-chat`에서 수락됨                                           |
| **Qwen** (3.x)              | `enable_thinking` 파라미터, 제공자 측에서 설정 | ✅ 선택 가능  | 콘텐츠의 `<think>` 태그                  | ✅ 충돌 없음                                                                                      |
| **MiniMax** (M2.7)          | 항상 활성화                             | ❌        | 콘텐츠의 `<think>` 태그                  | ✅ 충돌 없음                                                                                      |
| **ChatGLM** (GLM-5)         | 모델 변형                              | 모델 수준    | 외부화되지 않음                           | ❌ 강제 FC 미지원, 추론 여부와 관계없음                                                                     |
| **Kimi** (K2-thinking)      | 모델 변형                              | 모델 수준    | API 필드                             | ❌ 추론 활성화 시 `auto`만 지원됨                                                                       |

이 표 뒤의 제공자별 세부 정보(각 `effort` 수준이 어떻게 변환되는지 및 추론이 이후 턴에서 재생되는지 여부 포함)는 [제공자 기능 매트릭스의 표 C](/architecture/llm-provider-guide#provider-capability-matrix)에 있습니다.

### FIM One이 각 경우를 처리하는 방식

**API 수준 `reasoning_content`** (Claude, DeepSeek): 추론 필드는 API 응답에서 직접 읽어지며 UI의 Reasoning 패널에 표시됩니다. 후처리가 필요하지 않습니다.

**콘텐츠의 `<think>` 태그** (MiniMax, Qwen, QwQ 및 기타 오픈소스 파생 모델): FIM One은 콘텐츠 필드에서 `<think>...</think>` 태그를 자동으로 제거하고 사고 텍스트를 Reasoning 패널로 재라우팅합니다. 이는 스트리밍 및 비스트리밍 응답 모두에서 작동합니다.

**강제 FC + 사고 충돌**은 제공자별로 발생하며, 사고 모델의 일반적인 속성이 아닙니다. Claude는 이 조합을 거부하지만 사고는 선택 사항이므로, FIM One은 `reasoning_effort=None`을 전달하여 해당 호출에 대해 사고를 끄고 네이티브 함수 호출을 진행합니다. Kimi도 이를 거부하며, 사고는 매개변수가 아닌 모델 ID로 선택되므로, 여기서의 해결책은 사고 모델에 대해 Native Function Calling을 비활성화하는 것입니다. MiniMax는 모든 호출에서 사고하며 강제 함수 호출을 어쨌든 수락하므로, 이에 적용되는 해결책이 없습니다.

**폴백 체인**: 강제 함수 호출이 어떤 이유로든 실패하면, FIM One은 자동으로 폴백합니다: 네이티브 FC → JSON 모드 → 일반 텍스트 추출. 이 3단계 접근 방식은 도구 호출 지원이 부분적인 제공자에서도 계획이 작동하도록 보장합니다.

<Note>
  항상 사고하는 모델(MiniMax M2.7, `deepseek-reasoner`)을 Main LLM으로 사용하는 경우, 사고 출력이 모든 에이전트 반복의 Reasoning 패널에 나타납니다. 이는 정상입니다 — 기능에 영향을 주지 않으며, 모델의 추론 과정을 볼 수 있습니다.
</Note>

## 제공자 세부 정보

### OpenAI

가장 검증된 옵션입니다. OpenAI 모델은 최고 수준의 네이티브 함수 호출(도구 호출) 지원을 제공하므로 에이전트 안정성에 직접적인 영향을 미칩니다. GPT-5 패밀리(2025년 8월 이후)는 GPT-4 대비 세대 단위의 큰 도약입니다.

**권장 모델:**

* Main: `gpt-5.4` (최신 플래그십, 2026년 3월 — 1M+ 컨텍스트, 컴퓨터 사용) 또는 `o3` (최고의 추론 정확도)
* Fast: `gpt-5.4-mini` ($0.75/$4.50 per MTok) 또는 `gpt-5.4-nano` (최저가 $0.20/$1.25 per MTok)
* Budget Fast: `gpt-5-mini` ($0.25/$2.00) 및 `gpt-5-nano` ($0.05/$0.40)은 더 낮은 가격으로 계속 이용 가능
* Legacy: `gpt-4.1` (여전히 API에 있음, 1M 컨텍스트, 코딩에 적합)

**추론:** `LLM_REASONING_EFFORT=medium`을 설정하세요 — o-series 및 GPT-5.x 모델과 네이티브로 작동합니다. GPT-5.4는 `reasoning_effort`를 `none`, `low`, `medium`, `high`, `xhigh` 수준으로 지원합니다. o-series는 `max_tokens` 대신 `max_completion_tokens`이 필요하며, LiteLLM이 자동으로 처리합니다. 참고: `/v1/chat/completions`는 도구와 추론을 결합한 GPT-5.x 요청을 거부하므로, FIM One은 GPT-5.x에 대해 Responses API를 직접 사용하며, 여기서 둘 다 함께 작동합니다. 이 경로는 각 턴의 암호화된 추론을 다음 턴으로 전달하므로, 에이전트가 다단계 답변을 구축할 때 이미 작업한 내용을 유지하고 모든 도구 호출에서 다시 도출하지 않습니다. `/v1/responses` 경로가 없는 엔드포인트는 에이전트 도구 사용 단계에서 명시적 `reasoning_effort: "none"`을 사용하여 채팅 완성으로 폴백하며, `FIM_GPT5_RESPONSES_MODE`로 폴백을 수동으로 강제할 수 있습니다. OpenAI 호환 엔드포인트의 다른 모델 패밀리는 채팅 완성에 유지됩니다. Responses에서 얻을 이점이 없으며, 이에 대한 프록시 shim은 스트리밍을 심각하게 버퍼링할 수 있습니다. GPT-5.4는 `temperature=1`이 필요하며, FIM One은 LiteLLM의 매개변수 필터링(`drop_params`)을 통해 자동으로 처리합니다.

| Model          | Input \$/MTok | Output \$/MTok | Context                  |
| -------------- | ------------- | -------------- | ------------------------ |
| `gpt-5.4`      | \$2.50        | \$15.00        | 1,050K (surcharge >272K) |
| `gpt-5.4-mini` | \$0.75        | \$4.50         | 400K                     |
| `gpt-5.4-nano` | \$0.20        | \$1.25         | 400K                     |
| `o3`           | \$2.00        | \$8.00         | 200K                     |
| `o4-mini`      | \$1.10        | \$4.40         | 200K                     |
| `gpt-5-mini`   | \$0.25        | \$2.00         | 400K                     |
| `gpt-5-nano`   | \$0.05        | \$0.40         | 400K                     |

```bash theme={null}
# .env — OpenAI (production with reasoning)
LLM_API_KEY=sk-...
LLM_BASE_URL=https://api.openai.com/v1
LLM_MODEL=gpt-5.4
FAST_LLM_MODEL=gpt-5.4-nano
LLM_REASONING_EFFORT=medium
```

```bash theme={null}
# .env — OpenAI (budget reasoning)
LLM_API_KEY=sk-...
LLM_BASE_URL=https://api.openai.com/v1
LLM_MODEL=o3
FAST_LLM_MODEL=gpt-5.4-nano
LLM_REASONING_EFFORT=medium
```

***

### Anthropic (Claude)

Claude는 미묘한 추론과 복잡한 다단계 작업에 탁월합니다. FIM One은 [LiteLLM](https://github.com/BerriAI/litellm)을 통해 연결되며, Anthropic 모델을 자동으로 네이티브 API를 통해 라우팅합니다. 현재 세대는 Claude 4.6(2026년 2월)입니다.

**권장 모델:**

* Main: `claude-sonnet-4-6` (기능과 비용의 최적 균형 — $3/$15 per MTok)
* Fast: `claude-haiku-4-5` (빠르고 저렴함 — $1/$5 per MTok)
* Premium: `claude-opus-4-6` (가장 강력함, 최대 128K 출력 — $5/$25 per MTok)

**Base URL:** `https://api.anthropic.com/v1/`

Opus 4.6과 Sonnet 4.6은 1M 컨텍스트 윈도우를 가지고 있습니다(2026년 3월 13일 이후 GA — 베타 헤더 불필요). Haiku 4.5는 200K 컨텍스트 윈도우를 가지고 있습니다.

**추론:** `LLM_REASONING_EFFORT=medium`을 설정하세요. LiteLLM은 Anthropic 모델을 네이티브 API를 통해 라우팅하므로, `reasoning_content`(확장 사고)가 완전히 반환되고 UI의 "thinking" 단계에서 볼 수 있습니다. Claude 4.6 이상은 수동 `budget_tokens` 대신 Adaptive Thinking(`thinking: {type: "adaptive"}` 및 `output_config.effort`)을 사용하며, FIM One은 LiteLLM의 매핑에 의존하지 않고 직접 이를 내보냅니다. Anthropic은 사고가 활성화되어 있는 동안 `temperature=1`을 요구하며, 시스템이 이를 강제합니다. 요청 빌더는 Anthropic 라우트에서 값을 고정하고, 샘플링 매개변수를 완전히 거부하는 모델에서는 `temperature`를 완전히 제거합니다. `LLM_TEMPERATURE=1`을 수동으로 설정하지 마세요. 자세한 내용은 [Extended Thinking](/configuration/environment-variables#extended-thinking-reasoning)을 참조하세요.

```bash theme={null}
# .env — Anthropic Claude
LLM_API_KEY=sk-ant-...
LLM_BASE_URL=https://api.anthropic.com/v1/
LLM_MODEL=claude-sonnet-4-6
FAST_LLM_MODEL=claude-haiku-4-5
LLM_REASONING_EFFORT=medium
```

***

### Google Gemini

Gemini 모델은 Google의 OpenAI 호환 엔드포인트를 통해 경쟁력 있는 가격으로 강력한 성능을 제공합니다. 3.x 세대(2025년 말 이후)는 큰 도약입니다 — Gemini 3 Flash는 2.5 Pro를 능가하면서 3배 더 빠릅니다. 참고: `gemini-3-pro-preview`는 2026년 3월 9일에 종료되었습니다 — 대신 `gemini-3.1-pro-preview`를 사용하세요.

**권장 모델:**

* 안정화(GA): `gemini-2.5-pro` (메인) + `gemini-2.5-flash` (빠름) — 프로덕션 준비 완료
* 최신(미리보기): `gemini-3.1-pro-preview` (메인) + `gemini-3-flash-preview` (빠름) + `gemini-3.1-flash-lite-preview` (예산 빠름) — 최고 성능, 하지만 미리보기 상태

**기본 URL:** `https://generativelanguage.googleapis.com/v1beta/openai/`

**추론:** `reasoning_effort`는 호환성 엔드포인트에서 지원됩니다 — `LLM_REASONING_EFFORT=medium`을 설정하면 기본적으로 작동합니다.

| 모델                              | 입력 \$/MTok | 출력 \$/MTok | 상태              |
| ------------------------------- | ---------- | ---------- | --------------- |
| `gemini-3.1-pro-preview`        | \$2.00     | \$12.00    | 미리보기            |
| `gemini-3-flash-preview`        | \$0.50     | \$3.00     | 미리보기            |
| `gemini-3.1-flash-lite-preview` | \$0.25     | \$1.50     | 미리보기 (2026년 3월) |
| `gemini-2.5-pro`                | \$1.25     | \$10.00    | 안정화 GA          |
| `gemini-2.5-flash`              | \$0.30     | \$2.50     | 안정화 GA          |
| `gemini-2.5-flash-lite`         | \$0.10     | \$0.40     | 안정화 GA          |

```bash theme={null}
# .env — Gemini (stable)
LLM_API_KEY=AIza...
LLM_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai/
LLM_MODEL=gemini-2.5-pro
FAST_LLM_MODEL=gemini-2.5-flash
LLM_REASONING_EFFORT=medium
```

```bash theme={null}
# .env — Gemini (latest preview)
LLM_API_KEY=AIza...
LLM_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai/
LLM_MODEL=gemini-3.1-pro-preview
FAST_LLM_MODEL=gemini-3-flash-preview
LLM_REASONING_EFFORT=medium
```

***

### DeepSeek

DeepSeek는 시장에서 최고의 비용/성능 비율을 제공합니다. V3.2(2025년 12월)는 채팅과 추론 라인을 단일 모델로 통합했으며, 매우 저렴한 가격을 제공합니다.

**모델 ID** (모두 V3.2로 지원됨):

* `deepseek-chat` — 범용 (비사고 모드)
* `deepseek-reasoner` — 사고의 연쇄 추론 모드, `reasoning_content` 반환

**기본 URL:** `https://api.deepseek.com`

**가격:** MTok당 $0.28/$0.42 (캐시 히트: \$0.028) — 지금까지 가장 저렴한 최첨단 API입니다.

**출력 제한:** `deepseek-chat` 최대 출력은 8K 토큰입니다(`max_tokens`를 통해 명시적으로 설정해야 함). `deepseek-reasoner` 최대 출력은 64K 토큰입니다(사고의 연쇄 포함).

> **V4 예상 2026년 4월**: 1M 컨텍스트 윈도우를 가진 조 단위 매개변수 멀티모달 모델. 출시 시 새로운 모델 ID를 기대하세요.

```bash theme={null}
# .env — DeepSeek (budget-friendly)
LLM_API_KEY=sk-...
LLM_BASE_URL=https://api.deepseek.com
LLM_MODEL=deepseek-chat
FAST_LLM_MODEL=deepseek-chat
```

```bash theme={null}
# .env — DeepSeek (with reasoning)
LLM_API_KEY=sk-...
LLM_BASE_URL=https://api.deepseek.com
LLM_MODEL=deepseek-reasoner
FAST_LLM_MODEL=deepseek-chat
```

***

### 중국 국내 모델

모든 주요 중국 모델 제공업체는 OpenAI 호환 엔드포인트를 제공합니다. 이들은 중국어 작업에 특히 강력하며 경쟁력 있는 로컬 가격을 제공합니다.

#### Qwen / 通义千问 (Alibaba Cloud)

Qwen 3.5 (2026년 2월)는 최신 세대입니다 — 397B MoE 플래그십은 MMLU-Pro에서 GPT-5.2를 능가합니다. 가장 강력한 중국어 지원과 가장 저렴한 프론티어급 가격(\~\$0.11/MTok 입력)을 제공합니다.

* **Base URL (중국):** `https://dashscope.aliyuncs.com/compatible-mode/v1`
* **Base URL (글로벌):** `https://dashscope-intl.aliyuncs.com/compatible-mode/v1`
* **메인:** `qwen3.5-plus` (플래그십, 1M 컨텍스트, $0.11/$0.66 per MTok) 또는 `qwen3-max` (256K, 가장 강력)
* **빠른 속도:** `qwen3.5-flash` ($0.055/$0.22 per MTok) 또는 `qwen-turbo` ($0.04/$0.08 per MTok)
* **추론:** `enable_thinking: true` 파라미터가 있는 `qwen3-max` (별도의 `qwen3-max-thinking` 모델 ID는 없음)

```bash theme={null}
# .env — Qwen (China)
LLM_API_KEY=sk-...
LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
LLM_MODEL=qwen3.5-plus
FAST_LLM_MODEL=qwen3.5-flash
```

```bash theme={null}
# .env — Qwen (Global)
LLM_API_KEY=sk-...
LLM_BASE_URL=https://dashscope-intl.aliyuncs.com/compatible-mode/v1
LLM_MODEL=qwen3.5-plus
FAST_LLM_MODEL=qwen3.5-flash
```

#### ChatGLM / 智谱

GLM-4.7 및 GLM-5 (2026)는 최신 모델입니다. GLM-5는 코딩/에이전트 작업에서 Claude Opus 수준에 접근하는 745B MoE 플래그십입니다.

* **Base URL (국내):** `https://open.bigmodel.cn/api/paas/v4`
* **Base URL (Z.AI 국제):** `https://api.z.ai/api/paas/v4`
* **Main:** `glm-4.7` (강력한 코딩, Z.AI에서 $0.60/$2.20)
* **Fast:** `glm-4.7-flash` (무료 티어!) 또는 `glm-4.7-flashx` ($0.07/$0.40, 높은 처리량)
* **Reasoning:** `glm-5` (745B MoE 플래그십, $1.00/$3.20)

강제 `tool_choice`는 지원되지 않습니다 — `"auto"`만 작동합니다.

<Warning>
  일부 HTTP 클라이언트는 base URL에 `/v1`을 자동으로 추가합니다. Zhipu는 `/v4`를 사용합니다 — 클라이언트가 OpenAI 스타일의 경로 접미사를 강제하지 않도록 하십시오. 그렇지 않으면 404 오류가 발생합니다.
</Warning>

```bash theme={null}
# .env — ChatGLM (domestic)
LLM_API_KEY=...
LLM_BASE_URL=https://open.bigmodel.cn/api/paas/v4
LLM_MODEL=glm-4.7
FAST_LLM_MODEL=glm-4.7-flash
```

```bash theme={null}
# .env — ChatGLM (Z.AI international)
LLM_API_KEY=...
LLM_BASE_URL=https://api.z.ai/api/paas/v4
LLM_MODEL=glm-4.7
FAST_LLM_MODEL=glm-4.7-flash
```

#### MiniMax

MiniMax M2.7 (2026년 3월 18일)는 최신 모델이며, 오픈 가중치이고 SWE-Bench에서 80.2%의 점수를 획득했습니다. M2.5는 빠르고 저렴한 옵션으로 계속 사용 가능합니다.

MiniMax는 다양한 지역을 위해 두 개의 별도 API 엔드포인트를 제공합니다:

* **Base URL (Global/해외판):** `https://api.minimax.io/v1` -- 중국 본토 외 사용자용
* **Base URL (China/국내판):** `https://api.minimaxi.com/v1` -- 중국 본토 사용자용 (참고: `minimaxi`에 추가 `i` 포함)
* **Main:** `MiniMax-M2.7`
* **Fast:** `MiniMax-M2.5`
* **Speed:** `MiniMax-M2.7-highspeed` (2배 비용, 낮은 지연시간)

| 모델                       | 입력 \$/MTok | 출력 \$/MTok |
| ------------------------ | ---------- | ---------- |
| `MiniMax-M2.7`           | \$0.30     | \$1.20     |
| `MiniMax-M2.7-highspeed` | \$0.60     | \$2.40     |
| `MiniMax-M2.5`           | \$0.30     | \$1.20     |
| `MiniMax-M2.5-highspeed` | \$0.60     | \$2.40     |

```bash theme={null}
# .env — MiniMax (global endpoint)
LLM_API_KEY=...
LLM_BASE_URL=https://api.minimax.io/v1
LLM_MODEL=MiniMax-M2.7
FAST_LLM_MODEL=MiniMax-M2.5
```

```bash theme={null}
# .env — MiniMax (China mainland endpoint)
LLM_API_KEY=...
LLM_BASE_URL=https://api.minimaxi.com/v1
LLM_MODEL=MiniMax-M2.7
FAST_LLM_MODEL=MiniMax-M2.5
```

#### Kimi / 월지암면 (Moonshot)

Kimi K2.5 (2026년 1월)는 256K 컨텍스트를 가지고 있으며 강력한 코딩 성능(오픈소스 모델 중 SWE-Bench 76.8%)을 제공합니다.

* **Base URL (Global):** `https://api.moonshot.ai/v1`
* **Base URL (China):** `https://api.moonshot.cn/v1`
* **Main:** `kimi-k2.5`
* **Fast:** `kimi-k2` (non-thinking, function calling works)
* **Reasoning:** `kimi-k2-thinking` ($0.47/$2.00 per MTok)

강제 `tool_choice`는 thinking 모드가 꺼져 있을 때만 작동합니다. thinking이 활성화되면 `"auto"`만 지원됩니다.

```bash theme={null}
# .env — Kimi (Global)
LLM_API_KEY=...
LLM_BASE_URL=https://api.moonshot.ai/v1
LLM_MODEL=kimi-k2.5
FAST_LLM_MODEL=kimi-k2
```

```bash theme={null}
# .env — Kimi (China)
LLM_API_KEY=...
LLM_BASE_URL=https://api.moonshot.cn/v1
LLM_MODEL=kimi-k2.5
FAST_LLM_MODEL=kimi-k2
```

***

### 로컬 모델 (Ollama)

자신의 하드웨어에서 모델을 완전히 실행하세요 — API 키가 필요 없고, 완전히 오프라인입니다. Ollama는 기본적으로 OpenAI 호환 엔드포인트를 제공합니다. 오픈소스 환경이 극적으로 변했습니다 — Qwen 3.5, Llama 4, GPT-OSS (OpenAI의 첫 오픈 가중치 모델)이 모두 사용 가능합니다.

**기본 URL:** `http://localhost:11434/v1`

**VRAM별 권장 모델:**

| VRAM   | 주요 LLM                            | 빠른 LLM        | 참고                     |
| ------ | --------------------------------- | ------------- | ---------------------- |
| 8 GB   | `qwen3.5:9b` / `gemma3:4b`        | `qwen3.5:4b`  | Qwen 3.5 9B는 이 계층에서 최고 |
| 16 GB  | `gpt-oss:20b` / `deepseek-r1:14b` | `qwen3.5:9b`  | GPT-OSS 20B는 에이전트 최적화됨 |
| 24 GB  | `qwen3:32b` / `deepseek-r1:32b`   | `qwen3.5:9b`  | Qwen 3 32B는 도구 호출에 최적  |
| 48 GB+ | `llama3.3:70b` / `gpt-oss:120b`   | `qwen3.5:14b` | 최신 수준의 품질              |

**도구 호출에 최적:** Qwen 3/3.5 (32B+), GLM-4.7, GPT-OSS, Mistral — 이들은 명시적 함수 호출 학습을 받았습니다. 14B+ 파라미터를 가진 모델이 안정적인 도구 호출의 최소 요구사항이며, 32B+ 이상이 강력히 권장됩니다.

<Warning>
  **도구 호출 품질은 로컬 모델 간에 크게 다릅니다.** 모든 모델이 유효한 함수 호출을 안정적으로 생성하는 것은 아닙니다. 프로덕션에서 사용하기 전에 에이전트 워크플로우로 선택한 모델을 테스트하세요. 일반적인 규칙: 최소 14B, 에이전트 작업에는 32B+ 권장.
</Warning>

```bash theme={null}
# .env — Ollama (balanced, 16GB VRAM)
LLM_API_KEY=ollama
LLM_BASE_URL=http://localhost:11434/v1
LLM_MODEL=gpt-oss:20b
FAST_LLM_MODEL=qwen3.5:9b
LLM_CONTEXT_SIZE=32768
LLM_MAX_OUTPUT_TOKENS=8192
```

```bash theme={null}
# .env — Ollama (agent-optimized, 24GB VRAM)
LLM_API_KEY=ollama
LLM_BASE_URL=http://localhost:11434/v1
LLM_MODEL=qwen3:32b
FAST_LLM_MODEL=qwen3.5:9b
LLM_CONTEXT_SIZE=32768
LLM_MAX_OUTPUT_TOKENS=8192
```

***

## 제3자 릴레이 플랫폼

많은 사용자가 단일 릴레이(프록시) 서비스를 통해 여러 모델 제공자에 액세스합니다. FIM One은 URL 경로 패턴을 기반으로 올바른 API 프로토콜을 자동으로 감지합니다 — `LLM_BASE_URL`을 입력하기만 하면 작동합니다.

### 작동 방식

기본 URL이 타사 릴레이를 가리킬 때, FIM One은 URL 경로를 검사하여 사용할 프로토콜을 결정합니다:

| URL 경로 포함                 | 감지된 프로토콜       | 인증 헤더                   | 주요 이점                             |
| ------------------------- | -------------- | ----------------------- | --------------------------------- |
| `/v1` (또는 일치 없음)          | OpenAI 호환      | `Authorization: Bearer` | 범용 폴백, 대부분의 릴레이와 호환               |
| `/claude` 또는 `/anthropic` | Anthropic 네이티브 | `x-api-key`             | 전체 `reasoning_content` (확장 사고) 지원 |
| `/gemini`                 | Google 네이티브    | `x-goog-api-key`        | 네이티브 Gemini 파라미터 변환               |

**해결 순서:** 명시적 DB 제공자 필드 > 도메인 일치 (공식 API) > URL 경로 힌트 (릴레이 플랫폼) > OpenAI 호환 폴백.

### 예제: 하나의 릴레이, 세 가지 프로토콜

단일 릴레이 계정으로 기본 URL 경로를 변경하기만 하면 다양한 공급자에 액세스할 수 있습니다:

```bash theme={null}
# .env — Claude via relay (Anthropic native protocol)
LLM_API_KEY=your-relay-key
LLM_BASE_URL=https://relay.example.com/anthropic
LLM_MODEL=claude-sonnet-4-6
```

```bash theme={null}
# .env — Gemini via relay (Google native protocol)
LLM_API_KEY=your-relay-key
LLM_BASE_URL=https://relay.example.com/gemini
LLM_MODEL=gemini-2.5-pro
```

```bash theme={null}
# .env — GPT via relay (OpenAI compatible protocol)
LLM_API_KEY=your-relay-key
LLM_BASE_URL=https://relay.example.com/v1
LLM_MODEL=gpt-5.4
```

추가 구성이 필요 없습니다 — 인증 헤더, 매개변수 형식 및 응답 파싱이 모두 자동으로 전환됩니다.

### 단계별: 경로 감지 작동 방식

릴레이를 구성할 때 내부적으로 어떤 일이 발생하는지 보여주는 구체적인 예시입니다:

```bash theme={null}
# .env — Claude via a relay platform
LLM_API_KEY=your-relay-key
LLM_BASE_URL=https://my-relay.example.com/claude
LLM_MODEL=claude-sonnet-4-6
LLM_REASONING_EFFORT=medium
```

1. FIM One이 URL 경로에서 `/claude`를 감지 → **Anthropic 네이티브** 프로토콜 감지
2. 모델이 LiteLLM 라우팅을 위해 `anthropic/claude-sonnet-4-6`으로 접두사 지정
3. 요청이 Anthropic의 `/v1/messages` 형식을 `x-api-key` 인증 헤더와 함께 사용
4. `reasoning_effort=medium`이 Anthropic의 네이티브 `thinking` 파라미터로 변환됨 (OpenAI의 `reasoning_effort`가 아님)

<Warning>
  동일한 릴레이 URL이 `https://my-relay.example.com/v1`이었다면, `/claude` 힌트가 누락되어 FIM One이 OpenAI 호환 프로토콜로 폴백되어 Claude 네이티브 엔드포인트에 `/v1/chat/completions` 요청을 보내게 되어 실패합니다. **URL 경로가 중요합니다.**
</Warning>

### 이것이 중요한 이유

* **Anthropic 네이티브 엔드포인트**는 적절한 `reasoning_content` 지원(UI에서 확장 사고 표시), 올바른 도구 호출 형식, `x-api-key` 인증을 제공합니다 — OpenAI 호환 변환 사용 시 손실되는 기능입니다.
* **Google 네이티브 엔드포인트**는 네이티브 Gemini 파라미터와 `x-goog-api-key` 인증을 제공합니다.
* **OpenAI 호환**은 범용 폴백이며 모든 릴레이에서 작동하지만, 공급자별 기능(예: 확장 사고 출력)은 사용할 수 없을 수 있습니다.

<Note>
  릴레이 플랫폼이 비표준 경로 규칙을 사용하는 경우(예: URL에 `/claude` 또는 `/anthropic`이 없음), FIM One은 OpenAI 호환 프로토콜로 폴백합니다 — 대부분의 사용 사례에서 작동합니다. 완전한 네이티브 프로토콜 지원을 위해 관리자 모델 구성 UI를 통해 `provider` 필드를 명시적으로 설정할 수 있습니다.
</Note>

릴레이는 직접 공급자와 다른 방식으로 실패하며, 대부분의 실패는 무음입니다: 삭제된 파라미터, 제거된 캐시 중단점, 오류가 발생하지 않는 버퍼링된 스트림. 증상별 목록은 [릴레이/프록시 주의사항](/architecture/llm-provider-guide#relayproxy-gotchas)에 있습니다.

<Note>
  **릴레이는 최선의 노력입니다.** FIM One의 문서화된 동작은 OpenAI, Anthropic, Google 및 자신의 모델을 직접 제공하는 기타 공급자를 의미하는 1차 엔드포인트에 대해 보장됩니다. 릴레이는 작동하며 광범위하게 사용되며, 그 방식으로만 도달할 수 있는 모델도 포함하지만, 릴레이가 요청에 수행하는 작업은 우리의 통제 범위를 벗어나므로 이러한 보장을 받지 않습니다. 호스트명으로 차단되는 것은 없습니다: 기능은 엔드포인트별로 탐사되며, 지원되지 않는 동작은 자체적으로 폴백됩니다. 모델 계층 버그를 보고하기 전에 1차 엔드포인트에 대해 재현하십시오.
</Note>

## 구성 전략

### Main vs Fast: 언제 분할할지

* **분할** 메인 모델이 비싸거나 느릴 때 (예: `gpt-5.4` + `gpt-5.4-nano`). DAG 모드는 많은 병렬 단계를 실행합니다 — 더 저렴한 빠른 모델을 사용하면 상당한 비용을 절감할 수 있습니다.
* **동일 모델** 모델이 이미 저렴할 때 (예: 둘 다 `deepseek-chat`). 두 모델을 관리하는 오버헤드는 그만한 가치가 없습니다.

### 추론을 활성화하는 시기

* **활성화**: 복잡한 분석 작업, 다단계 계획, 신중한 판단이 필요한 작업
* **비활성화** (기본값): 일상적인 작업, 간단한 Q\&A, 비용에 민감한 배포
* 추론은 일반적으로 요청당 비용을 2-5배 증가시킵니다 — `medium` 수준의 노력이 좋은 시작점입니다

### 컨텍스트 윈도우 크기 조정

`LLM_CONTEXT_SIZE`를 모델의 실제 윈도우와 일치하도록 설정하세요:

| 모델                | 컨텍스트 윈도우                 |
| ----------------- | ------------------------ |
| GPT-5.4           | 1,050K (272K 초과 시 추가 요금) |
| o3 / o4-mini      | 200K                     |
| Claude Opus 4.6   | 1M                       |
| Claude Sonnet 4.6 | 1M                       |
| Claude Haiku 4.5  | 200K                     |
| Gemini 2.5 Pro    | 1M                       |
| Gemini 3.1 Pro    | 1M                       |
| DeepSeek V3.2     | 128K                     |
| Qwen 3.5 Plus     | 1M                       |
| Local (Ollama)    | 4K–128K (다양함)            |

로컬 모델의 경우 `LLM_CONTEXT_SIZE`와 `LLM_MAX_OUTPUT_TOKENS`를 명시적으로 설정하세요. 기본값은 로컬 모델이 지원할 수 없는 클라우드 규모의 컨텍스트 윈도우를 가정합니다.
