메인 콘텐츠로 건너뛰기

개요

CrewAI는 LiteLLM을 통해 다양한 LLM 제공업체와 통합되어, 특정 사용 사례에 맞는 올바른 모델을 선택할 수 있는 유연성을 제공합니다. 이 가이드는 CrewAI 프로젝트에서 다양한 LLM 제공업체를 구성하고 사용하는 방법을 이해하는 데 도움이 될 것입니다.

LLM이란 무엇인가요?

Large Language Models(LLM)는 CrewAI 에이전트의 핵심 지능입니다. 에이전트가 문맥을 이해하고, 결정을 내리며, 인간과 유사한 응답을 생성할 수 있도록 합니다. 알아두어야 할 내용은 다음과 같습니다:

LLM 기본

Large Language Models는 방대한 양의 텍스트 데이터로 학습된 AI 시스템입니다. CrewAI 에이전트의 지능을 구동하여, 인간과 유사한 텍스트를 이해하고 생성할 수 있도록 합니다.

컨텍스트 윈도우

컨텍스트 윈도우는 LLM이 한 번에 처리할 수 있는 텍스트 양을 결정합니다. 더 큰 윈도우(예: 128K 토큰)는 더 많은 문맥을 다룰 수 있지만, 비용과 속도 면에서 더 부담이 될 수 있습니다.

Temperature

Temperature(0.0에서 1.0)는 응답의 무작위성을 조절합니다. 낮은 값(예: 0.2)은 더 집중적이고 결정적인 결과를, 높은 값(예: 0.8)은 창의성과 다양성을 높입니다.

제공자 선택

각 LLM 제공자(예: OpenAI, Anthropic, Google)는 다양한 기능, 가격, 특성을 가진 모델을 제공합니다. 정확성, 속도, 비용 등 요구 사항에 따라 선택하세요.

LLM 설정하기

CrewAI 코드 내에는 사용할 모델을 지정할 수 있는 여러 위치가 있습니다. 모델을 지정한 후에는 사용하는 각 모델 제공자에 대한 설정(예: API 키)을 제공해야 합니다. 각 제공자에 맞는 제공자 설정 예제 섹션을 참고하세요.
가장 간단하게 시작할 수 있는 방법입니다. .env 파일이나 앱 코드에서 환경 변수로 직접 모델을 설정할 수 있습니다. crewai create를 사용해 프로젝트를 부트스트랩했다면 이미 설정되어 있을 수 있습니다.
.env
API 키를 절대 버전 관리 시스템에 커밋하지 마세요. 환경 파일(.env)이나 시스템의 비밀 관리 기능을 사용하세요.
CrewAI는 OpenAI, Anthropic, Google (Gemini API), Azure, AWS Bedrock, Snowflake Cortex에 대해 네이티브 SDK 통합을 제공합니다 — 제공자별 extras(예: uv add "crewai[openai]") 외에 추가 설치가 필요하지 않습니다.그 외 모든 제공자는 LiteLLM을 통해 지원됩니다. 이를 사용하려면 프로젝트에 의존성으로 추가하세요:

공급자 구성 예시

CrewAI는 고유한 기능, 인증 방법, 모델 역량을 제공하는 다양한 LLM 공급자를 지원합니다. 이 섹션에서는 프로젝트의 요구에 가장 적합한 LLM을 선택, 구성, 최적화하는 데 도움이 되는 자세한 예시를 제공합니다.
.env 파일에 다음 환경 변수를 설정하십시오:
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
OpenAI는 다양한 모델과 기능을 제공하는 대표적인 LLM 공급자 중 하나입니다.Responses API:OpenAI는 Chat Completions(기본값)와 새로운 Responses API, 두 가지 API를 제공합니다. Responses API는 네이티브 멀티모달 지원을 기반으로 처음부터 설계되었으며, 텍스트, 이미지, 오디오, 함수 호출이 모두 일급 객체입니다. 추론 모델에서 더 나은 성능을 제공하고 자동 체이닝 및 내장 도구와 같은 추가 기능을 지원합니다.
Code
Responses API 파라미터:
  • api: Responses API를 사용하려면 "responses"로 설정 (기본값: "completions")
  • instructions: 시스템 레벨 지침 (Responses API 전용)
  • store: 멀티턴 대화를 위한 응답 저장 여부
  • previous_response_id: 멀티턴을 위한 이전 응답 ID
  • include: 응답에 포함할 추가 데이터 (예: ["reasoning.encrypted_content"])
  • builtin_tools: OpenAI 내장 도구 목록: "web_search", "file_search", "code_interpreter", "computer_use"
  • parse_tool_outputs: 파싱된 내장 도구 출력과 함께 구조화된 ResponsesAPIResult 반환
  • auto_chain: 멀티턴 대화를 위한 응답 ID 자동 추적 및 사용
  • auto_chain_reasoning: ZDR(제로 데이터 보존) 준수를 위한 암호화된 추론 항목 추적
새 프로젝트, 특히 추론 모델(o1, o3, o4)을 사용하거나 파일에 대한 네이티브 멀티모달 지원이 필요한 경우 Responses API를 사용하세요.
Meta의 Llama API는 Meta의 대형 언어 모델 패밀리 접근을 제공합니다. API는 Meta Llama API에서 사용할 수 있습니다. .env 파일에 다음 환경 변수를 설정하십시오:
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
https://llama.developer.meta.com/docs/models/ 에 기재된 모든 모델이 지원됩니다.참고: 이 제공자는 LiteLLM을 사용합니다. 프로젝트에 의존성으로 추가하세요:
CrewAI는 OpenAI 호환 Chat Completions 엔드포인트를 통해 Snowflake Cortex REST API와 네이티브로 통합됩니다. snowflake/... 모델은 LiteLLM fallback 없이 사용됩니다. CrewAI에서 Snowflake Cortex는 현재 Chat Completions만 지원하므로 기본 api 모드를 사용하고 api="responses"를 설정하지 마세요.
Code
기본 사용법:
Code
Cortex의 Claude 모델:
Code
지원 환경 변수:
  • SNOWFLAKE_PAT, SNOWFLAKE_TOKEN, 또는 SNOWFLAKE_JWT: Bearer 자격 증명으로 사용할 토큰
  • SNOWFLAKE_ACCOUNT_URL: 전체 Snowflake 계정 URL
  • SNOWFLAKE_ACCOUNT, SNOWFLAKE_ACCOUNT_ID, 또는 SNOWFLAKE_ACCOUNT_IDENTIFIER: 계정 URL을 만들 계정 식별자
Snowflake REST 요청은 사용자의 기본 Snowflake role을 사용합니다. 해당 role에 SNOWFLAKE.CORTEX_USER 또는 SNOWFLAKE.CORTEX_REST_API_USER가 있는지 확인하세요. Cortex REST Chat Completions 엔드포인트에는 database, schema, warehouse, 명시적 role 파라미터가 필요하지 않습니다.기능:
  • model="snowflake/<model-name>"을 통한 네이티브 provider 선택
  • Streaming 및 non-streaming Chat Completions만 지원; api="responses"는 지원되지 않음
  • 토큰 사용량 추적
  • Snowflake 호스팅 OpenAI 및 Claude 모델의 함수 호출
  • Snowflake Claude 모델에서 유효하지 않은 마지막 assistant prefill 자동 제거
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
.env 파일에 API 키를 설정하십시오. 키가 필요하거나 기존 키를 찾으려면 AI Studio를 확인하세요.
.env
기본 사용법:
Code
Vertex AI Express 모드 (API 키 인증):Vertex AI Express 모드를 사용하면 서비스 계정 자격 증명 대신 간단한 API 키 인증으로 Vertex AI를 사용할 수 있습니다. Vertex AI를 시작하는 가장 빠른 방법입니다.Express 모드를 활성화하려면 .env 파일에 두 환경 변수를 모두 설정하세요:
.env
그런 다음 평소처럼 LLM을 사용하세요:
Code
Express 모드 API 키를 받으려면:자세한 내용은 Vertex AI Express 모드 문서를 참조하세요.

Gemini 모델

Google은 다양한 용도에 최적화된 강력한 모델을 제공합니다.전체 모델 목록은 Gemini 모델 문서에서 확인할 수 있습니다.

Gemma

Gemini API를 통해 Google 인프라에서 호스팅되는 Gemma 모델도 API 키를 이용해 사용할 수 있습니다.
Google Cloud Console에서 자격증명을 받아 JSON 파일로 저장한 후, 다음 코드로 로드하세요:
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
Google은 다양한 용도에 최적화된 강력한 모델들을 제공합니다:참고: 이 제공자는 LiteLLM을 사용합니다. 프로젝트에 의존성으로 추가하세요:
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
Amazon Bedrock을 사용하기 전에, 환경에 boto3가 설치되어 있는지 확인하십시오.Amazon Bedrock은 대표적인 AI 회사들의 여러 파운데이션 모델에 통합 API를 통해 접근할 수 있는 매니지드 서비스로, 안전하고 책임감 있는 AI 응용프로그램 개발을 가능하게 해줍니다.
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
참고: 이 제공자는 LiteLLM을 사용합니다. 프로젝트에 의존성으로 추가하세요:
.env 파일에 다음 환경 변수를 설정하십시오:
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
참고: 이 제공자는 LiteLLM을 사용합니다. 프로젝트에 의존성으로 추가하세요:
.env 파일에 다음 환경 변수를 설정하십시오:
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
Nvidia NIM은 일반 목적 작업부터 특수 목적 응용까지 다양한 용도를 위한 모델 제품군을 제공합니다.참고: 이 제공자는 LiteLLM을 사용합니다. 프로젝트에 의존성으로 추가하세요:
NVIDIA NIM을 이용하면 Windows 기기에서 WSL2(Windows Subsystem for Linux)를 통해 강력한 LLM을 로컬로 실행할 수 있습니다. 이 방식은 Nvidia GPU를 활용하여 프라이빗하고, 안전하며, 비용 효율적인 AI 추론을 클라우드 서비스에 의존하지 않고 구현할 수 있습니다. 데이터 프라이버시, 오프라인 기능이 필요한 개발, 테스트, 또는 프로덕션 환경에 최적입니다.로컬 NVIDIA NIM 모델 설치 단계별 가이드는 다음과 같습니다:
  1. NVIDIA 홈페이지의 설치 안내를 따르세요.
  2. 로컬 모델을 설치합니다. Llama 3.1-8b는 여기 안내를 참조하세요.
  3. crewai 로컬 모델을 구성하세요:
Code
참고: 이 제공자는 LiteLLM을 사용합니다. 프로젝트에 의존성으로 추가하세요:
.env 파일에 다음 환경 변수를 설정하십시오:
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
참고: 이 제공자는 LiteLLM을 사용합니다. 프로젝트에 의존성으로 추가하세요:
.env 파일에 다음 환경 변수를 설정하십시오:
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
참고: 이 제공자는 LiteLLM을 사용합니다. 프로젝트에 의존성으로 추가하세요:
  1. Ollama 설치: ollama.ai
  2. 모델 실행: ollama run llama3
  3. 구성:
Code
참고: 이 제공자는 LiteLLM을 사용합니다. 프로젝트에 의존성으로 추가하세요:
.env 파일에 다음 환경 변수를 설정하십시오:
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
참고: 이 제공자는 LiteLLM을 사용합니다. 프로젝트에 의존성으로 추가하세요:
.env 파일에 다음 환경 변수를 설정하십시오:
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
참고: 이 제공자는 LiteLLM을 사용합니다. 프로젝트에 의존성으로 추가하세요:
.env 파일에 다음 환경 변수를 설정하십시오:
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
참고: 이 제공자는 LiteLLM을 사용합니다. 프로젝트에 의존성으로 추가하세요:
.env 파일에 다음 환경 변수를 설정하십시오:
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
참고: 이 제공자는 LiteLLM을 사용합니다. 프로젝트에 의존성으로 추가하세요:
.env 파일에 다음 환경 변수를 설정하십시오:
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
Cerebras 특징:
  • 빠른 추론 속도
  • 경쟁력 있는 가격
  • 속도와 품질의 우수한 밸런스
  • 긴 컨텍스트 윈도우 지원
참고: 이 제공자는 LiteLLM을 사용합니다. 프로젝트에 의존성으로 추가하세요:
.env 파일에 다음 환경 변수를 설정하십시오:
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
Open Router 모델:
  • openrouter/deepseek/deepseek-r1
  • openrouter/deepseek/deepseek-chat
참고: 이 제공자는 LiteLLM을 사용합니다. 프로젝트에 의존성으로 추가하세요:
.env 파일에 다음 환경 변수를 설정하십시오:
Code
CrewAI 프로젝트에서의 예시 사용법:
Code
Nebius AI Studio 특징:
  • 대규모 오픈소스 모델 보유
  • 높은 속도 제한
  • 경쟁력 있는 가격
  • 속도와 품질의 우수한 밸런스
참고: 이 제공자는 LiteLLM을 사용합니다. 프로젝트에 의존성으로 추가하세요:

스트리밍 응답

CrewAI는 LLM의 스트리밍 응답을 지원하여, 애플리케이션이 출력물을 생성되는 즉시 실시간으로 수신하고 처리할 수 있습니다.
LLM을 초기화할 때 stream 파라미터를 True로 설정하여 스트리밍을 활성화합니다:
스트리밍이 활성화되면, 응답이 생성되는 대로 청크 단위로 전달되어 보다 반응성 있는 사용자 경험을 만듭니다.

구조화된 LLM 호출

CrewAI는 Pydantic 모델을 사용하여 response_format을 정의함으로써 LLM 호출에서 구조화된 응답을 지원합니다. 이를 통해 프레임워크가 출력을 자동으로 파싱하고 검증할 수 있어, 수동 후처리 없이도 응답을 애플리케이션에 쉽게 통합할 수 있습니다. 예를 들어, 예상되는 응답 구조를 나타내는 Pydantic 모델을 정의하고 LLM을 인스턴스화할 때 response_format으로 전달할 수 있습니다. 이 모델은 LLM 출력을 구조화된 Python 객체로 변환하는 데 사용됩니다.
Code

고급 기능 및 최적화

LLM 설정을 최대한 활용하는 방법을 알아보세요:
CrewAI는 스마트한 컨텍스트 관리 기능을 제공합니다:
컨텍스트 관리 모범 사례:
  1. 적절한 컨텍스트 윈도우를 가진 모델 선택
  2. 가능하면 긴 입력값을 사전 처리
  3. 큰 문서에는 청킹(chunking) 사용
  4. 비용 최적화를 위해 토큰 사용량 모니터링
1

토큰 사용 최적화

작업에 맞는 컨텍스트 윈도우를 선택하세요:
  • 작은 작업 (최대 4K 토큰): 표준 모델
  • 중간 작업 (4K~32K 사이): 확장 모델
  • 큰 작업 (32K 이상): 대형 컨텍스트 모델
  • 사실 기반 응답에는 낮은 temperature(0.1~0.3)
  • 창의적인 작업에는 높은 temperature(0.7~0.9)
2

모범 사례

  1. 토큰 사용량 모니터링
  2. 속도 제한(rate limiting) 구현
  3. 가능하면 캐싱 사용
  4. 적절한 max_tokens 제한 설정
비용 및 성능을 최적화하기 위해 토큰 사용량을 정기적으로 모니터링하고 필요에 따라 설정을 조정하세요.
CrewAI는 내부적으로 LLM 호출에 Litellm을 사용하며, 이를 통해 특정 사용 사례에 필요하지 않은 추가 파라미터를 제거할 수 있습니다. 이를 통해 코드가 간소화되며 LLM 구성의 복잡성을 줄일 수 있습니다. 예를 들어, stop 파라미터를 보낼 필요가 없다면 LLM 호출에서 제외할 수 있습니다:

일반적인 문제 및 해결 방법

대부분의 인증 문제는 API 키 형식과 환경 변수 이름을 확인하여 해결할 수 있습니다.