본문으로 건너뛰기

Agent 개요

Agent는 LLM과 Tool을 사용하여 개방형 작업을 해결합니다. 그들은 목표에 대해 추론하고 사용할 Tool을 결정합니다. 대화 Memory를 유지하고 Model이 최종 답변을 내보내거나 선택적 중지 조건이 충족될 때까지 계속 반복합니다.

Agent는 UI에서 렌더링하거나 프로그래밍 방식으로 처리할 수 있는 구조화된 응답을 생성합니다. Agent를 직접 사용하거나 Workflow 또는 다중 Agent 시스템으로 구성하세요.

Agent를 사용해야 하는 경우
Agent를 사용해야 하는 경우에 대한 직접 링크

작업이 제한되지 않고 단계를 미리 알 수 없는 경우 Agent를 사용하세요. Agent는 호출할 Tool, 루프 횟수, 중지 시점을 결정합니다. 각 단계를 정의하는 대신 목표와 제약 조건을 제공합니다. 명시적인 제어 흐름을 갖춘 미리 결정된 다단계 프로세스의 경우 다음을 사용하세요.workflows instead.

:::tip[📹 보기]

Mastra Agent를 생성하고 테스트하는 간단한 안내는 Mastra Agent 빠른 시작을 참조하세요. :::

빠른 시작
빠른 시작에 대한 직접 링크

@mastra/core에서 Agent 클래스를 인스턴스화하고 필수 속성을 제공하여 Agent를 생성합니다.

src/mastra/agents/test-agent.ts
import { Agent } from '@mastra/core/agent'

export const testAgent = new Agent({
id: 'test-agent',
name: 'Test Agent',
instructions: 'You are a helpful assistant.',
model: 'openai/gpt-5.6-sol',
})

instructions는 Agent의 동작, 성격, 기능을 정의합니다. 이는 Agent의 핵심 정체성과 전문성을 설정하는 시스템 수준 Prompt입니다. model은 Mastra의 Model 라우터를 사용하여 'provider/model-name' 형식으로 지정합니다. 애플리케이션 전체에서 Agent를 사용할 수 있게 하려면 Mastra 인스턴스(일반적으로 다음 위치에 있음)에 등록하세요.src/mastra/index.ts):

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { testAgent } from './agents/test-agent'

export const mastra = new Mastra({
agents: { testAgent },
})

등록되면 Workflow, Tool 또는 기타 Agent에서 호출할 수 있으며 Memory, 로깅, 관찰 기능과 같은 공유 리소스에 액세스할 수 있습니다.

사용 가능한 속성과 구성에 관한 자세한 내용은 Agent 참조를 확인하세요.

Studio를 사용하여 다양한 메시지로 Agent를 테스트하고 Tool 호출과 응답을 검사하며 Agent 동작을 디버깅하세요.

Agent를 사용하세요
Agent를 사용하세요에 대한 직접 링크

등록한 후 mastra.getAgentById()를 통해 Agent를 가져옵니다. 완전한 응답을 얻으려면 .generate()를 호출하고, 토큰을 실시간으로 전달하려면 .stream()을 호출합니다. Workflow 단계, Tool, Mastra Client, 라우트 핸들러, 서버 어댑터, 명령줄에서 Agent를 호출할 수 있습니다. 원하는 프레임워크에서 Agent를 사용하는 방법은 가이드 섹션을 확인하세요. Mastra 인스턴스에서 Agent를 참조할 때는 mastra.getAgentById()를 사용하여 인스턴스 수준 스토리지, 로깅, Agent 레지스트리와 같은 공유 서비스에 접근할 수 있도록 하세요. 직접 가져온 Agent도 자체 로컬 구성으로 작동할 수 있지만 이러한 공유 서비스에는 접근할 수 없습니다.

모든 Tool 호출 및 단계가 완료된 후 전체 응답을 반환합니다. 결과에는 text, toolCalls, toolResults, steps, 토큰 usage 통계가 포함됩니다. Tool 호출 및 Tool 결과 페이로드를 포함한 응답 형태는 Agent.generate() 참조를 확인하세요.

const agent = mastra.getAgentById('test-agent')
const response = await agent.generate('Help me organize my day')
console.log(response.text)

Agent 확장
Agent 확장에 대한 직접 링크

Agent가 실행되면 이 표를 사용하여 다음에 수행할 작업에 대한 올바른 페이지를 찾으세요.

목표여기서 시작하세요
외부 API 또는 서비스를 호출할 수 있는 Tool을 Agent에 제공Tool
대화 간에 컨텍스트와 기본 설정 유지Memory
일반 텍스트 대신 타입이 지정된 객체 반환구조화된 출력
Human-in-the-loop: 실행을 일시 중지하고 사람의 승인 대기승인
다중 Agent 네트워크 구축감독자 Agent
하위 Agent 등록Tool
생성 전후에 메시지 가로채기 또는 변환프로세서
Agent를 안전하게 보호가드레일
자신의 작업을 교정하는 Agent 구축루브릭 채점기
요청 컨텍스트에 따라 지침 또는 Model 교체동적 구성
음성을 텍스트로 또는 텍스트를 음성으로 변환하는 기능 추가음성
Slack, Discord 또는 Telegram에 연결채널

다중 Agent 시스템
다중 Agent 시스템에 대한 직접 링크

다중 Agent 시스템은 단일 Agent가 처리하기에는 지나치게 광범위하거나 전문화된 작업을 해결하기 위해 여러 Agent를 사용합니다. 수십 개의 Tool과 긴 지침 세트를 사용하는 하나의 Agent를 구축하는 대신, 특화된 Agent들이 책임을 나누고 코디네이터가 결과를 통합하도록 구성할 수 있습니다. Mastra에서 다양한 패턴을 적용하는 방법을 알아보려면 다중 Agent 시스템의 개념 개요를 읽어보세요.