Mastra Agent — 대화와 도구 사용

Mastra Agent — 대화와 도구 사용

Mastra 의 Agent 는 LLM, 도구, 메모리를 결합해 맥락을 기억하고 외부 기능을 쓸 수 있는 대화 주체예요. 정해진 시스템 프롬프트와 도구를 주고 원하는 작업을 시키는 방식이죠.

기본 에이전트 만들기

import { openai } from '@ai-sdk/openai';
import { Agent } from '@mastra/core/agent';

const agent = new Agent({
  name: 'my-agent',
  instructions: '너는 도움이 되는 어시스턴트야.',
  model: openai('gpt-4o'),
});

const result = await agent.generate('세종대왕은 언제 태어났어?');

Tool 통합

도구를 만들어 에이전트가 외부 기능을 쓰게 할 수 있어요.

import { createTool } from '@mastra/core/tools';
import { z } from 'zod';

const weatherTool = createTool({
  id: 'get-weather',
  inputSchema: z.object({ city: z.string() }),
  outputSchema: z.object({ temp: z.number() }),
  execute: async ({ context }) => getWeather(context.city),
});

제공한 도구는 tools 옵션으로 에이전트에 연결해요. 에이전트는 작업을 수행하며 필요할 때 도구를 자동 호출해요(tool calling).

근거 기반 답변 / 스트리밍

  • generate: 전체 답변을 한 번에 받아요.
  • stream: 토큰 단위로 스트리밍해 UI 에 점진적으로 표시해요.
  • RAG 지식과 결합해 출처를 인용한 답변도 만들 수 있어요.

더 알아보기 (Learn more)

출처: Mastra Agents 문서