모델 제공업체(Model Providers)

모델 제공업체(Model providers)는 다양한 언어 모델과 상호작용하기 위해 사용됩니다. Mastra는 Vercel의 AI SDK를 모델 라우팅 계층으로 활용하여 여러 모델에 대해 유사한 문법을 제공합니다.

src/mastra/agents/weather-agent.ts:

import { openai } from "@ai-sdk/openai";
import { Agent } from "@mastra/core/agent";
 
const agent = new Agent({
  name: "WeatherAgent",
  instructions: "Instructions for the agent...",
  model: openai("gpt-4-turbo"),
});
 
const result = await agent.generate("What is the weather like?");

AI SDK 모델 제공업체

AI SDK의 모델 제공업체는 크게 세 가지 유형으로 나눌 수 있습니다.

사용 가능한 모든 모델 제공업체 목록은 AI SDK 문서에서 확인할 수 있습니다.

AI SDK 모델 제공업체는 Mastra 프로젝트에 설치해야 하는 패키지입니다. 설치 과정에서 기본 모델 제공업체가 선택되어 프로젝트에 설치됩니다.

만약 다른 모델 제공업체를 사용하고 싶다면 해당 제공업체도 별도로 프로젝트에 설치해야 합니다.

아래는 Mastra 에이전트를 다양한 유형의 모델 제공업체로 설정하는 예시입니다.

공식 제공업체(Official providers)

공식 모델 제공업체는 AI SDK 팀에서 관리하며, 보통 패키지 이름이 @ai-sdk/로 시작합니다. 예를 들어 @ai-sdk/anthropic, @ai-sdk/openai 등이 있습니다.

src/mastra/agents/weather-agent.ts:

import { openai } from "@ai-sdk/openai";
import { Agent } from "@mastra/core/agent";
 
const agent = new Agent({
  name: "WeatherAgent",
  instructions: "Instructions for the agent...",
  model: openai("gpt-4-turbo"),
});

추가 설정이 필요한 경우, AI SDK 제공업체로부터 헬퍼(helper) 함수를 불러서 사용할 수 있습니다. OpenAI를 이용한 예시는 다음과 같습니다.

src/mastra/agents/weather-agent.ts:

import { createOpenAI } from "@ai-sdk/openai";
import { Agent } from "@mastra/core/agent";
 
const openai = createOpenAI({
    baseUrl: "<사용자 정의 베이스 URL>",
    apiKey: "<사용자 정의 API 키>",
    ...기타 옵션
});
 
const agent = new Agent({
    name: "WeatherAgent",
    instructions: "에이전트용 지침...",
    model: openai("<모델명>"),
});

OpenAI 호환 업체 (OpenAI-compatible providers)

일부 언어 모델 제공업체는 OpenAI API를 구현합니다. 이런 경우 @ai-sdk/openai-compatible 를 사용할 수 있습니다.

일반적인 설정과 제공업체 인스턴스 생성 방법은 다음과 같습니다.

src/mastra/agents/weather-agent.ts:

import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
import { Agent } from "@mastra/core/agent";
 
const openaiCompatible = createOpenAICompatible({
    name: "<모델명>",
    baseUrl: "<베이스 URL>",
    apiKey: "<API 키>",
    headers: {},
    queryParams: {},
    fetch: async (url, options) => {
        // 커스텀 fetch 로직
        return fetch(url, options);
    }
});
 
const agent = new Agent({
    name: "WeatherAgent",
    instructions: "에이전트용 지침...",
    model: openaiCompatible("<모델명>"),
});

OpenAI 호환 제공업체에 관한 자세한 내용은 AI SDK 문서를 참고하세요.

커뮤니티 제공업체 (Community providers)

AI SDK는 Language Model Specification(언어 모델 명세)를 제공합니다. 이 명세에 따라 직접 AI SDK 호환 모델 제공업체를 만들 수 있습니다.

몇몇 커뮤니티 제공업체는 이 명세를 구현하여 AI SDK와 호환됩니다. 그중 하나로 ollama-ai-provider 패키지의 Ollama 제공업체를 예로 들어 보겠습니다.

src/mastra/agents/weather-agent.ts:

import { ollama } from "ollama-ai-provider";
import { Agent } from "@mastra/core/agent";
 
const agent = new Agent({
    name: "WeatherAgent",
    instructions: "에이전트용 지침...",
    model: ollama("llama3.2:latest"),
});

Ollama 제공업체를 사용자 정의 옵션으로 설정하는 방법은 다음과 같습니다.

src/mastra/agents/weather-agent.ts:

import { createOllama } from "ollama-ai-provider";
import { Agent } from "@mastra/core/agent";
 
const ollama = createOllama({
    baseUrl: "<사용자 정의 베이스 URL>",
    ...기타 옵션,
});
 
const agent = new Agent({
    name: "WeatherAgent",
    instructions: "에이전트용 지침...",
    model: ollama("llama3.2:latest"),
});

Ollama 제공업체와 기타 커뮤니티 제공업체에 관한 자세한 정보는 AI SDK 문서를 참고하세요.

이 예시는 Ollama 제공업체를 사용하는 방법을 보여주지만, openrouter, azure, 등 다른 제공업체도 사용할 수 있습니다.

서로 다른 AI 제공업체는 설정 옵션이 다를 수 있으니, 더 자세한 사항은 AI SDK 문서를 참고하시기 바랍니다.


2025년 7월 26일 기준 번역
by dongne.lab@gmail.com

Updated on