LLM 연결

LLM 연결 (Connect to any LLM)

CrewAI는 가장 인기 있는 프로바이더(OpenAI, Anthropic, Google Gemini, Azure, AWS Bedrock)에는 네이티브 SDK 통합으로 연결하고, 그 외의 모든 프로바이더에는 LiteLLM을 유연한 폴백으로 사용합니다. 기본 모델은 gpt-4o-mini이며, OPENAI_MODEL_NAME 환경 변수로 결정되고 미설정 시 기본값 "gpt-4o-mini"가 적용됩니다. 에이전트가 다른 모델이나 프로바이더를 쓰도록 쉽게 구성할 수 있습니다.

출처: 공식문서

지원 프로바이더

LiteLLM은 다음을 포함한 광범위한 프로바이더를 지원합니다:

  • OpenAI
  • Anthropic
  • Google (Vertex AI, Gemini)
  • Azure OpenAI
  • AWS (Bedrock, SageMaker)
  • Cohere
  • VoyageAI
  • Hugging Face
  • Ollama
  • Mistral AI
  • Replicate
  • Together AI
  • AI21
  • Cloudflare Workers AI
  • DeepInfra
  • Groq
  • SambaNova
  • Nebius AI Studio
  • NVIDIA NIMs
  • 그 외 더 많은 프로바이더
uv add 'crewai[litellm]'

완전하고 최신의 지원 프로바이더 목록은 LiteLLM Providers 문서를 참고하세요. 네이티브 통합으로 커버되지 않는 프로바이더를 쓰려면 프로젝트에 LiteLLM을 의존성으로 추가합니다. 네이티브 프로바이더(OpenAI, Anthropic, Google Gemini, Azure, AWS Bedrock)는 각자의 SDK extras를 사용합니다 — Provider Configuration Examples 참고.

LLM 바꾸기

CrewAI 에이전트에서 다른 LLM을 사용하려면 여러 옵션이 있습니다.

문자열 식별자 사용하기

from crewai import Agent

# Using OpenAI's GPT-4
openai_agent = Agent(
    role='OpenAI Expert',
    goal='Provide insights using GPT-4',
    backstory="An AI assistant powered by OpenAI's latest model.",
    llm='gpt-4'
)

# Using Anthropic's Claude
claude_agent = Agent(
    role='Anthropic Expert',
    goal='Analyze data using Claude',
    backstory="An AI assistant leveraging Anthropic's language model.",
    llm='claude-2'
)

LLM 클래스 사용하기

from crewai import Agent, LLM

llm = LLM(
    model="gpt-4",
    temperature=0.7,
    base_url="https://api.openai.com/v1",
    api_key="your-api-key-here"
)

agent = Agent(
    role='Customized LLM Expert',
    goal='Provide tailored responses',
    backstory="An AI assistant with custom LLM settings.",
    llm=llm
)

에이전트를 초기화할 때 모델 이름을 문자열로 전달할 수 있고, 더 세부적인 설정이 필요하면 LLM 클래스를 사용하면 됩니다.

구성 옵션

에이전트용 LLM을 구성할 때 다양한 파라미터를 사용할 수 있습니다:

파라미터 타입 설명
model str 사용할 모델 이름 (예: "gpt-4", "claude-2")
temperature float 출력의 무작위성 제어 (0.0 ~ 1.0)
max_tokens int 생성할 최대 토큰 수
top_p float 출력 다양성 제어 (0.0 ~ 1.0)
frequency_penalty float 지금까지 나온 텍스트에서 새 토큰의 빈도에 따라 패널티
presence_penalty float 지금까지 나온 텍스트에서 새 토큰의 존재 여부에 따라 패널티
stop str, List[str] 생성을 멈출 시퀀스(들)
base_url str API 엔드포인트의 기본 URL
api_key str 인증용 API 키

전체 파라미터와 설명은 LLM 클래스 문서를 참고하세요.

OpenAI 호환 LLM 연결하기

OpenAI 호환 LLM에는 환경 변수를 쓰거나 LLM 클래스 속성을 설정하는 두 가지 방법으로 연결할 수 있습니다.

import os

os.environ["OPENAI_API_KEY"] = "your-api-key"
os.environ["OPENAI_API_BASE"] = "https://api.your-provider.com/v1"
os.environ["OPENAI_MODEL_NAME"] = "your-model-name"
import os

# Example using Gemini's OpenAI-compatible API.
os.environ["OPENAI_API_KEY"] = "your-gemini-key"  # Should start with AIza...
os.environ["OPENAI_API_BASE"] = "https://generativelanguage.googleapis.com/v1beta/openai/"
os.environ["OPENAI_MODEL_NAME"] = "openai/gemini-3.7-flash"  # Add your Gemini model here, under openai/
llm = LLM(
    model="custom-model-name",
    api_key="your-api-key",
    base_url="https://api.your-provider.com/v1"
)
agent = Agent(llm=llm, ...)
# Example using Gemini's OpenAI-compatible API
llm = LLM(
    model="openai/gemini-3.7-flash",
    base_url="https://generativelanguage.googleapis.com/v1beta/openai/",
    api_key="your-gemini-key",  # Should start with AIza...
)
agent = Agent(llm=llm, ...)

환경 변수로 OPENAI_API_KEY, OPENAI_API_BASE, OPENAI_MODEL_NAME을 설정하면 OpenAI 호환 엔드포인트에 연결할 수 있습니다. Gemini도 OpenAI 호환 API를 제공하므로 같은 방식을 그대로 씁니다.

Ollama로 로컬 모델 사용하기

    agent = Agent(
        role='Local AI Expert',
        goal='Process information using a local model',
        backstory="An AI assistant running on local hardware.",
        llm=LLM(model="ollama/llama3.2", base_url="http://localhost:11434")
    )

Ollama와 같은 로컬 모델을 쓰는 방법은 세 단계입니다:

  1. Ollama 다운로드·설치Click here to download and install Ollama
  2. 원하는 모델 풀 — 예: ollama pull llama3.2를 실행해 모델을 다운로드합니다.
  3. 에이전트 구성LLM(model="ollama/llama3.2", base_url="http://localhost:11434")처럼 지정합니다.

기본 API URL 바꾸기

llm = LLM(
    model="custom-model-name",
    base_url="https://api.your-provider.com/v1",
    api_key="your-api-key"
)
agent = Agent(llm=llm, ...)

base_url 파라미터를 설정하면 어떤 LLM 프로바이더의 기본 API URL도 바꿀 수 있습니다. OpenAI 호환 API를 쓰거나 선택한 프로바이더에 다른 엔드포인트를 지정해야 할 때 특히 유용합니다.

결론

LiteLLM을 활용하면 CrewAI가 방대한 LLM 배열과 손쉽게 통합됩니다. 이 유연성 덕분에 성능, 비용 효율, 로컬 배포 중 무엇을 우선시하든 자신의 특정 요구에 가장 적합한 모델을 고를 수 있습니다. 지원 모델과 구성 옵션에 대한 최신 정보는 LiteLLM 문서를 참고하세요.

더 알아보기