본문으로 건너뛰기

Agent.생성()

그만큼.generate()방법을 사용하면 향상된 기능을 갖춘 Agent에서 비스트리밍 응답 생성이 가능합니다. 메시지와 선택적 생성 옵션을 허용합니다.

사용예
사용예에 대한 직접 링크

응답을 생성하려면 메시지로 Agent를 호출하세요.

const result = await agent.generate('message for agent')

매개변수
매개변수에 대한 직접 링크

messages:

string | string[] | CoreMessage[] | AiMessageType[] | UIMessageWithMetadata[]
Agent에 보낼 메시지입니다. 단일 문자열, 문자열 배열 또는 구조화된 메시지 객체를 사용할 수 있습니다.

options?:

AgentExecutionOptions<Output, Format>
생성 프로세스의 선택적 구성입니다.
AgentExecutionOptions<Output, Format>

maxSteps?:

number
실행 중 수행할 최대 단계 수입니다.

stopWhen?:

LoopOptions['stopWhen']
실행을 중지하는 조건입니다(예: 단계 수, 토큰 한도).

onIterationComplete?:

(context: IterationCompleteContext) => { continue?: boolean; feedback?: string } | void | Promise<{ continue?: boolean; feedback?: string } | void>
각 반복이 완료된 후 호출되는 콜백 함수입니다. 진행 상황을 모니터링하거나, Agent를 안내하는 피드백을 제공하거나, 실행을 조기에 중지할 때 사용하세요. 콜백은 현재 텍스트, Tool 호출, 완료 사유 등 반복에 관한 컨텍스트를 받습니다.
IterationCompleteContext

context.iteration:

number
현재 반복 번호입니다(1부터 시작).

context.maxIterations:

number | undefined
허용되는 최대 반복 횟수입니다(설정된 경우).

context.text:

string
이 반복에서 생성된 텍스트 응답입니다.

context.isFinal:

boolean
이 반복이 마지막 반복인지 여부입니다.

context.finishReason:

string
이 반복이 완료된 이유입니다(예: 'stop', 'length', 'tool-calls').

context.toolCalls:

ToolCall[]
이 반복에서 수행된 Tool 호출입니다.

context.messages:

MastraDBMessage[]
지금까지 누적된 모든 메시지입니다.

return.continue?:

boolean
실행을 조기에 중지하려면 false로 설정합니다.

return.feedback?:

string
Agent의 다음 반복을 안내하는 피드백 메시지입니다.

isTaskComplete?:

IsTaskCompleteConfig
작업 완료 여부를 검증하는 완료 점수 산정 구성입니다. Mastra의 평가 스코어러를 사용하여 Agent의 응답이 완료 기준을 충족하는지 자동으로 확인합니다.
IsTaskCompleteConfig

scorers:

MastraScorer[]
작업 완료 여부를 평가하는 스코어러 배열입니다. 각 스코어러는 0(실패) 또는 1(통과)을 반환합니다.

strategy?:

'all' | 'any'
스코어러 결과를 결합하는 전략입니다. 'all'은 모든 스코어러가 통과해야 하고, 'any'는 하나 이상이 통과해야 합니다.

onComplete?:

(result: IsTaskCompleteRunResult) => void | Promise<void>
작업 완료 검사가 끝나면 호출되는 콜백입니다. 개별 스코어러 점수가 포함된 결과를 받습니다.

parallel?:

boolean
스코어러를 병렬로 실행할지 여부입니다.

timeout?:

number
모든 스코어러가 완료될 때까지 기다리는 최대 시간(밀리초)입니다.

delegation?:

DelegationConfig
하위 Agent 위임을 위한 구성입니다. Agent가 다른 Agent에 작업을 위임하는 시점을 제어하고 모니터링하는 데 사용합니다. 위임을 수정하거나 거부하고, 감독 Agent를 안내하는 피드백을 제공하는 기능도 포함됩니다.
DelegationConfig

onDelegationStart?:

(context: DelegationStartContext) => DelegationStartResult | void | Promise<DelegationStartResult | void>
하위 Agent에 위임하기 전에 호출됩니다. 위임 매개변수를 수정하거나, 위임을 완전히 거부하거나, context.requestContext를 변경하여 하위 Agent 실행의 요청 컨텍스트에 항목을 추가할 때 사용하세요.

onDelegationComplete?:

(context: DelegationCompleteContext) => { feedback?: string } | void | Promise<{ feedback?: string } | void>
하위 Agent 위임이 완료된 후 호출됩니다. 컨텍스트에는 추가 실행을 중지하는 bail() 메서드가 포함되며, { feedback }을 반환하여 감독자의 다음 작업을 안내할 수 있습니다. 피드백은 감독자의 Memory에 assistant 메시지로 저장됩니다.

messageFilter?:

(context: MessageFilterContext) => MastraDBMessage[] | Promise<MastraDBMessage[]>
하위 Agent에 위임하기 전에 호출되는 콜백 함수입니다. 하위 Agent에 전달되는 메시지를 필터링하는 데 사용합니다.

scorers?:

MastraScorers | Record<string, { scorer: MastraScorer['name']; sampling?: ScoringSamplingConfig }>
실행 결과에 적용할 평가 채점기입니다.
MastraScorers | Record<string, { scorer: MastraScorer['name']; sampling?: ScoringSamplingConfig }>

scorer:

string
사용할 채점기의 이름입니다.

sampling?:

ScoringSamplingConfig
채점기의 샘플링 구성입니다.
ScoringSamplingConfig

type:

'none' | 'ratio'
샘플링 전략의 유형입니다. 샘플링을 비활성화하려면 'none'을, 백분율 기반 샘플링에는 'ratio'를 사용합니다.

rate?:

number
샘플링 비율(0~1)입니다. type이 'ratio'일 때 필수입니다.

returnScorerData?:

boolean
응답에 상세 채점 데이터를 반환할지 여부입니다.

onChunk?:

(chunk: ChunkType) => Promise<void> | void
생성 중 각 청크에 대해 호출되는 콜백 함수입니다.

onError?:

({ error }: { error: Error | string }) => Promise<void> | void
생성 중 오류가 발생할 때 호출되는 콜백 함수입니다.

onAbort?:

(event: any) => Promise<void> | void
생성이 중단될 때 호출되는 콜백 함수입니다.

activeTools?:

Array<keyof ToolSet> | undefined
실행 중 활성화할 Tool 이름의 배열입니다. undefined이면 사용 가능한 모든 Tool이 활성화됩니다.

abortSignal?:

AbortSignal
Agent 실행을 중단할 수 있는 신호 객체입니다. 신호가 중단되면 Agent가 위임하여 진행 중인 모든 하위 Agent 실행을 포함해 진행 중인 모든 작업이 종료됩니다.

prepareStep?:

PrepareStepFunction
다단계 실행의 각 단계 전에 호출되는 콜백 함수입니다.

requireToolApproval?:

boolean
true이면 모든 Tool 호출을 실행하기 전에 명시적인 승인이 필요합니다. generate() 메서드는 finishReason: 'suspended'와 함께 반환되며 Tool 호출 세부 정보(toolCallId, toolName, args)가 담긴 suspendPayload를 포함합니다. 계속하려면 approveToolCallGenerate() 또는 declineToolCallGenerate()를 사용합니다. 자세한 내용은 Agent 승인을 참조하세요.

autoResumeSuspendedTools?:

boolean
true이면 사용자가 같은 스레드에 새 메시지를 보낼 때 일시 중단된 Tool을 자동으로 재개합니다. Agent는 Tool의 resumeSchema를 기반으로 사용자 메시지에서 resumeData를 추출합니다. Memory를 구성해야 합니다.

toolCallConcurrency?:

number
동시에 실행할 수 있는 Tool 호출의 최대 개수입니다. 승인이 필요할 수 있으면 기본값은 1이고, 그렇지 않으면 10입니다.

context?:

ModelMessage[]
Agent에 제공할 추가 컨텍스트 메시지입니다.

structuredOutput?:

StructuredOutputOptions<S extends ZodTypeAny = ZodTypeAny>
구조화된 출력 생성을 세부 조정하는 옵션입니다.
StructuredOutputOptions<S extends ZodTypeAny = ZodTypeAny>

schema:

StandardJSONSchemaV1
예상 출력 구조를 정의하는 표준 JSON Schema입니다.

model?:

MastraLanguageModel
구조화된 출력 생성에 사용할 언어 Model입니다. 제공하면 Agent가 Tool 호출, 텍스트, 구조화된 출력을 포함한 다단계 응답을 생성할 수 있습니다.

errorStrategy?:

'strict' | 'warn' | 'fallback'
스키마 검증 오류를 처리하는 전략입니다. 'strict'는 오류를 발생시키고, 'warn'은 경고를 기록하며, 'fallback'은 대체 값을 사용합니다.

fallbackValue?:

<S extends ZodTypeAny>
스키마 검증에 실패하고 errorStrategy가 'fallback'일 때 사용할 대체 값입니다.

instructions?:

string
구조화된 출력 Model에 제공할 추가 지침입니다.

jsonPromptInjection?:

boolean | 'system' | 'inline' | 'auto'
JSON 스키마가 Model에 전달되는 방식을 제어합니다. 지원되는 경우 네이티브 구조화 출력을 사용하고, 그렇지 않으면 인라인 Prompt 삽입을 사용하려면 'auto'로 설정합니다.

logger?:

IMastraLogger
출력 생성 중 구조화된 로깅에 사용할 선택적 로거 인스턴스입니다.

providerOptions?:

ProviderOptions
내부 구조화 Agent에 전달되는 Provider별 옵션입니다. 사고 Model의 추론 노력 수준과 같은 Model 동작을 제어하는 데 사용합니다(예: { openai: { reasoningEffort: 'low' } }).

outputProcessors?:

OutputProcessorOrWorkflow[]
이 실행에 사용할 출력 프로세서입니다(Agent의 기본값을 재정의함).

maxProcessorRetries?:

number
이 생성에서 프로세서가 재시도를 트리거할 수 있는 최대 횟수입니다. Agent의 기본 maxProcessorRetries를 재정의합니다.

inputProcessors?:

InputProcessorOrWorkflow[]
이 실행에 사용할 입력 프로세서입니다(Agent의 기본값을 재정의함).

instructions?:

string | string[] | CoreSystemMessage | SystemModelMessage | CoreSystemMessage[] | SystemModelMessage[]
이 실행에서 Agent의 기본 지침을 재정의하는 사용자 지정 지침입니다. 단일 문자열, 메시지 객체 또는 둘 중 하나의 배열일 수 있습니다.

system?:

string | string[] | CoreSystemMessage | SystemModelMessage | CoreSystemMessage[] | SystemModelMessage[]
Prompt에 포함할 사용자 지정 시스템 메시지입니다. 단일 문자열, 메시지 객체 또는 둘 중 하나의 배열일 수 있습니다. 시스템 메시지는 Agent의 주요 지침을 보완하는 추가 컨텍스트 또는 동작 지침을 제공합니다.

output?:

Zod schema | JsonSchema7
**사용 중단됨.** 동일한 결과를 얻으려면 Model 없이 structuredOutput을 사용하세요. 예상 출력 구조를 정의합니다. JSON Schema 객체 또는 Zod 스키마일 수 있습니다.

memory?:

object
대화 유지 및 검색을 위한 Memory 구성입니다.
object

thread:

string | { id: string; metadata?: Record<string, any>, title?: string }
대화 연속성을 위한 스레드 식별자입니다. 문자열 ID 또는 ID와 선택적 메타데이터/제목이 포함된 객체일 수 있습니다.

resource:

string
사용자, 세션 또는 컨텍스트별로 대화를 구성하기 위한 리소스 식별자입니다.

options?:

MemoryConfig
lastMessages, readOnly, semanticRecall, workingMemory, filterIncompleteToolCalls를 포함한 추가 Memory 구성 옵션입니다.

onTitleGenerated?:

(title: string) => void | Promise<void>
스레드 제목이 생성되어 스토리지에 유지될 때 비동기적으로 실행되는 콜백입니다. 제목 생성은 백그라운드에서 실행되며 generate()가 반환된 후 완료될 수 있습니다. Memory 옵션에서 generateTitle이 활성화되어 있고 스레드에 기존 제목이 없을 때만 실행됩니다.

onFinish?:

LoopConfig['onFinish']
생성이 완료될 때 실행되는 콜백입니다.

onStepFinish?:

LoopConfig['onStepFinish']
각 생성 단계 후에 실행되는 콜백입니다.

telemetry?:

TelemetrySettings
생성 중 OTLP 텔레메트리 수집을 위한 설정입니다(Tracing 아님).
TelemetrySettings

isEnabled?:

boolean
텔레메트리 수집 활성화 여부입니다.

recordInputs?:

boolean
텔레메트리에 입력 데이터를 기록할지 여부입니다.

recordOutputs?:

boolean
텔레메트리에 출력 데이터를 기록할지 여부입니다.

functionId?:

string
실행 중인 함수의 식별자입니다.

modelSettings?:

CallSettings
Model-specific settings like temperature, maxOutputTokens, topP, etc. These settings control how the language model generates responses.

temperature?:

number
Controls randomness in generation (0-2). Higher values make output more random.

maxOutputTokens?:

number
Maximum number of tokens to generate in the response. Note: Use maxOutputTokens (not maxTokens) as per AI SDK v5 convention.

maxRetries?:

number
Maximum number of retry attempts for failed requests.

topP?:

number
Nucleus sampling parameter (0-1). Controls diversity of generated text.

topK?:

number
Top-k sampling parameter. Limits vocabulary to k most likely tokens.

presencePenalty?:

number
Penalty for token presence (-2 to 2). Reduces repetition.

frequencyPenalty?:

number
Penalty for token frequency (-2 to 2). Reduces repetition of frequent tokens.

stopSequences?:

string[]
Stop sequences. If set, the model will stop generating text when one of the stop sequences is generated.

toolChoice?:

'auto' | 'none' | 'required' | { type: 'tool'; toolName: string }
생성 중 Tool을 선택하는 방식을 제어합니다.
'auto' | 'none' | 'required' | { type: 'tool'; toolName: string }

'auto':

string
Tool을 사용할 시점을 Model이 결정하도록 합니다(기본값).

'none':

string
Tool 사용을 완전히 비활성화합니다.

'required':

string
Model이 하나 이상의 Tool을 반드시 사용하도록 합니다.

{ type: 'tool'; toolName: string }:

object
Model이 특정 Tool을 반드시 사용하도록 합니다.

toolsets?:

ToolsetsInput
이 실행에 사용할 수 있는 추가 Tool 세트입니다.

clientTools?:

ToolsInput
실행 중 사용할 수 있는 클라이언트 측 Tool입니다.

hooks?:

ToolHooks
Tool 호출 전후에 실행되는 실행별 훅입니다. 이 실행에서 일치하는 Agent 수준 훅을 재정의합니다. beforeToolCall{ proceed: false, output }을 반환하여 Tool 호출을 건너뛸 수 있습니다.

savePerStep?:

boolean
각 생성 단계가 완료된 후 메시지를 점진적으로 저장합니다(기본값: false). 관찰 Memory가 활성화되면 내부적으로 비활성화됩니다.

providerOptions?:

Record<string, Record<string, JSONValue>>
언어 Model에 전달되는 Provider별 옵션입니다.
Record<string, Record<string, JSONValue>>

openai?:

Record<string, JSONValue>
reasoningEffort, responseFormat 등 OpenAI별 옵션입니다.

anthropic?:

Record<string, JSONValue>
maxTokens 등 Anthropic별 옵션입니다.

google?:

Record<string, JSONValue>
Google별 옵션입니다.

[providerName]?:

Record<string, JSONValue>
임의의 Provider별 옵션입니다.

runId?:

string
이 실행의 고유 식별자입니다.

requestContext?:

RequestContext
동적 구성과 상태를 포함하는 Request Context입니다.

tracingContext?:

TracingContext
하위 span을 생성하고 메타데이터를 추가하기 위한 Tracing 컨텍스트입니다. Mastra의 Tracing 시스템을 사용할 때 자동으로 주입됩니다.
TracingContext

currentSpan?:

Span
하위 span을 생성하고 메타데이터를 추가하기 위한 현재 span입니다. 실행 중 사용자 지정 하위 span을 생성하거나 span 속성을 업데이트하는 데 사용합니다.

tracingOptions?:

TracingOptions
Tracing 구성을 위한 옵션입니다.
TracingOptions

metadata?:

Record<string, any>
루트 Trace span에 추가할 메타데이터입니다. 사용자 ID, 세션 ID 또는 기능 플래그와 같은 사용자 지정 속성을 추가하는 데 유용합니다.

requestContextKeys?:

string[]
이 Trace의 메타데이터로 추출할 추가 RequestContext 키입니다. 중첩된 값에는 점 표기법을 지원합니다(예: 'user.id').

traceId?:

string
이 실행에 사용할 Trace ID입니다(1~32자의 16진수 문자). 제공하면 이 Trace가 지정된 Trace의 일부가 됩니다.

parentSpanId?:

string
이 실행에 사용할 상위 span ID입니다(1~16자의 16진수 문자). 제공하면 루트 span이 이 span의 하위로 생성됩니다.

tags?:

string[]
이 Trace에 적용할 태그입니다. Trace를 분류하고 필터링하기 위한 문자열 레이블입니다.

versions?:

VersionOverrides
하위 Agent 위임을 위한 호출별 버전 재정의입니다. Mastra 인스턴스 수준 버전 위에 병합되며 requestContext를 통해 하위 Agent 호출에 자동으로 전파됩니다. editor 패키지가 필요합니다. Editor 버전 관리를 참조하세요.
VersionOverrides

agents?:

Record<string, VersionSelector>
Agent ID를 해당 버전 선택기에 매핑한 맵입니다.
VersionSelector

versionId?:

string
ID로 특정 버전을 지정합니다.

status?:

'draft' | 'published'
이 게시 상태에 해당하는 최신 버전을 지정합니다.

includeRawChunks?:

boolean
스트림 출력에 원시 청크를 포함할지 여부입니다. 일부 Model Provider에서는 사용할 수 없습니다.

응답 구조
응답 구조에 대한 직접 링크

Agent.generate() 실행 중 수집된 최종 데이터를 반환합니다. steps는 단계 객체의 배열입니다. 최상위 toolCallstoolResults, 중첩된 step.toolCallsstep.toolResults 배열을 포함하여 결과의 Tool 배열에는 Mastra의 청크 형식을 사용합니다. 이는 Tool 데이터가 래핑되어 있음을 의미합니다.payload:

const response = await agent.generate('Check the weather in Lagos')

for (const toolCall of response.toolCalls) {
console.log(toolCall.type) // 'tool-call'
console.log(toolCall.runId)
console.log(toolCall.from)
console.log(toolCall.payload.toolName)
console.log(toolCall.payload.args)
}

for (const step of response.steps) {
for (const toolResult of step.toolResults) {
console.log(toolResult.type) // 'tool-result'
console.log(toolResult.payload.toolName)
console.log(toolResult.payload.result)
}
}

동일한 청크 모양의 스트리밍 버전에 대해서는 다음을 참조하세요.ChunkType reference.

보고
보고에 대한 직접 링크

result:

Awaited<ReturnType<MastraModelOutput<Output>['getFullOutput']>>
텍스트, 객체(구조화된 출력인 경우), Tool 호출, Tool 결과, 사용량 통계 및 단계 정보를 포함한 생성 프로세스의 전체 출력을 반환합니다.

text:

string
Agent가 생성한 텍스트 응답입니다.

object?:

Output | undefined
structuredOutput이 제공된 경우 스키마에 따라 검증된 구조화된 출력 객체입니다.

toolCalls:

ToolCallChunk[]
생성 중 이루어진 Tool 호출 청크의 배열입니다.
ToolCallChunk

type:

'tool-call'
청크 유형 식별자입니다.

runId:

string
실행 식별자입니다.

from:

ChunkFrom
AGENT 또는 WORKFLOW과 같은 청크의 소스입니다.

payload:

ToolCallPayload
Tool 호출 데이터입니다.
ToolCallPayload

toolCallId:

string
Tool 호출의 고유 식별자입니다.

toolName:

string
호출된 Tool의 이름입니다.

args?:

Record<string, unknown>
Tool에 전달된 인수입니다.

providerExecuted?:

boolean
Model Provider가 Tool을 직접 실행했는지 여부입니다.

toolResults:

ToolResultChunk[]
Tool 실행에서 나온 Tool 결과 청크의 배열입니다.
ToolResultChunk

type:

'tool-result'
청크 유형 식별자입니다.

runId:

string
실행 식별자입니다.

from:

ChunkFrom
AGENT 또는 WORKFLOW과 같은 청크의 소스입니다.

payload:

ToolResultPayload
Tool 결과 데이터입니다.
ToolResultPayload

toolCallId:

string
Tool 호출의 고유 식별자입니다.

toolName:

string
결과를 생성한 Tool의 이름입니다.

result:

unknown
Tool이 반환한 값입니다.

isError?:

boolean
Tool 실행 실패 여부입니다.

usage:

TokenUsage
생성의 토큰 사용량 통계입니다.

steps:

object[]
실행 단계의 배열로, 다단계 생성을 디버깅하는 데 유용합니다.
object

text:

string
이 단계에서 생성된 텍스트입니다.

toolCalls:

ToolCallChunk[]
이 단계에서 내보낸 Tool 호출입니다.

toolResults:

ToolResultChunk[]
이 단계에서 내보낸 Tool 결과입니다.

finishReason?:

string
이 단계가 완료된 이유입니다.

usage:

LanguageModelUsage
이 단계의 토큰 사용량입니다.

request:

{ body?: unknown }
이 단계의 요청 메타데이터입니다.

response:

object
이 단계의 응답 메타데이터입니다.

finishReason:

string
생성이 완료된 이유입니다. 값에는 'stop'(정상 완료), 'tool-calls'(Tool 호출로 종료), 'suspended'(Tool 승인 대기) 또는 'error'(오류 발생)가 포함됩니다.

response:

object
Model Provider의 응답 메타데이터입니다. 요청 한도 헤더와 요청 ID에 접근하는 데 유용합니다.
object

id?:

string
Model Provider의 응답 ID입니다.

timestamp?:

Date
응답이 생성된 타임스탬프입니다.

modelId?:

string
이 응답에 사용된 Model 식별자입니다.

headers?:

Record<string, string>
Model Provider의 HTTP 응답 헤더입니다. 요청 한도 정보(예: anthropic-ratelimit-requests-remaining, x-ratelimit-remaining-tokens)와 기타 Provider별 메타데이터를 포함합니다.

messages?:

ResponseMessage[]
Model 형식의 응답 메시지입니다.

uiMessages?:

UIMessage[]
UI 형식의 응답 메시지이며, 출력 프로세서가 추가한 모든 메타데이터를 포함합니다.

request?:

object
Model에 전송된 요청입니다.
object

body?:

unknown
Model Provider에 전송된 요청 본문입니다.

warnings?:

LanguageModelWarning[]
생성 중 Model Provider에서 발생한 모든 경고입니다.

providerMetadata?:

Record<string, unknown>
응답과 함께 반환된 Provider별 메타데이터입니다.

reasoning?:

ReasoningChunk[]
추론을 지원하는 Model의 추론 세부 정보입니다(예: OpenAI o1 시리즈).

reasoningText?:

string
추론 Model에서 나온 결합된 추론 텍스트입니다.

sources?:

SourceChunk[]
생성 중 Model이 참조한 소스입니다.

files?:

FileChunk[]
Model이 생성한 파일입니다.

suspendPayload?:

object
finishReason이 'suspended'일 때 존재합니다. 대기 중인 Tool 호출을 승인하거나 거부하는 데 필요한 Tool 호출 세부 정보를 포함합니다.
object

toolCallId:

string
대기 중인 Tool 호출의 고유 식별자입니다.

toolName:

string
승인이 필요한 Tool의 이름입니다.

args:

Record<string, any>
Tool에 전달될 인수입니다.

runId?:

string
이 실행의 고유 식별자입니다. 일시 중단된 실행을 재개하기 위해 approveToolCallGenerate() 또는 declineToolCallGenerate()를 호출할 때 필요합니다.

traceId?:

string
Tracing이 활성화되었을 때 이 실행과 연결된 Trace ID입니다. 로그를 연관 짓고 실행 흐름을 디버깅하는 데 사용합니다.

spanId?:

string
Tracing이 활성화되었을 때 이 실행과 연결된 루트 span ID입니다. span 수준 조회 및 연관 분석에 사용합니다.

messages:

MastraDBMessage[]
입력, Memory 기록 및 응답을 포함한 이 실행의 모든 메시지입니다.

rememberedMessages:

MastraDBMessage[]
Memory에서 불러온 메시지(대화 기록)만 포함합니다.

error?:

Error
생성에 실패한 경우의 오류 객체입니다.

tripwire?:

StepTripwireData
프로세서가 콘텐츠를 차단한 경우의 트립와이어 데이터입니다.

scoringData?:

object
returnScorerData가 활성화된 경우 Evals의 채점 데이터입니다.

더 많은 예시
더 많은 예시에 대한 직접 링크

Model 설정으로
Model 설정으로에 대한 직접 링크

출력 토큰 제한 및 온도 설정의 예:

const limitedResult = await agent.generate('Write a short poem about coding', {
modelSettings: {
maxOutputTokens: 50,
temperature: 0.7,
},
})

Memory 포함
Memory 포함에 대한 직접 링크

Memory 옵션을 구성하여 Agent에 대화 기록 및 지속성에 대한 액세스 권한을 부여하세요. 이를 통해 Agent는 이전 상호 작용을 기억하고 메시지 전반에 걸쳐 컨텍스트를 유지할 수 있습니다.

const memoryResult = await agent.generate('Remember my favorite color is blue', {
memory: {
thread: 'user-123-thread',
resource: 'user-123',
},
})

응답 헤더에 액세스
응답 헤더에 액세스에 대한 직접 링크

일부 Model 공급자는 남은 토큰 수 또는 속도 제한 상태와 같은 유용한 정보를 응답 헤더에 반환합니다. 생성이 완료된 후 결과 개체에서 이러한 헤더에 액세스할 수 있습니다.

const result = await agent.generate('Hello!')
const remainingRequests = result.response?.headers?.['anthropic-ratelimit-requests-remaining']
const remainingTokens = result.response?.headers?.['x-ratelimit-remaining-tokens']
console.log(`Remaining requests: ${remainingRequests}, Remaining tokens: ${remainingTokens}`)

이미지 분석
이미지 분석에 대한 직접 링크

Agent는 시각적 콘텐츠와 그 안의 텍스트를 모두 처리하여 이미지를 분석하고 설명할 수 있습니다. 이미지 분석을 활성화하려면 type: 'image'가 지정된 객체와 이미지 URL을 content 배열에 전달하세요. 이미지 콘텐츠와 텍스트 Prompt를 결합하여 Agent의 분석을 안내할 수 있습니다.

const response = await agent.generate([
{
role: 'user',
content: [
{
type: 'image',
image: 'https://placebear.com/cache/395-205.jpg',
mimeType: 'image/jpeg',
},
{
type: 'text',
text: 'Describe the image in detail, and extract all the text in the image.',
},
],
},
])

console.log(response.text)

사용maxSteps
using-maxsteps에 대한 직접 링크

maxSteps 매개변수는 Agent가 순차적으로 수행할 수 있는 최대 LLM 호출 횟수를 제어합니다. 각 단계에서는 응답을 생성하고 모든 Tool 호출을 실행한 후 그 결과를 처리합니다. 단계 수를 제한하면 무한 루프를 방지하고 지연 시간을 줄일 수 있습니다. 또한 Tool을 사용하는 Agent의 토큰 사용량도 제어할 수 있습니다. 기본값은 5이지만 늘릴 수 있습니다.

const response = await agent.generate('Help me organize my day', {
maxSteps: 10,
})

console.log(response.text)

사용onStepFinish
using-onstepfinish에 대한 직접 링크

onStepFinish 콜백을 사용하여 다단계 작업의 진행 상황을 모니터링할 수 있습니다. 디버깅하거나 사용자에게 진행 상황을 알릴 때 유용합니다. onStepFinish구조화된 출력 없이 텍스트를 스트리밍하거나 생성하는 경우에만 사용할 수 있습니다.

const response = await agent.generate('Help me organize my day', {
onStepFinish: ({ text, toolCalls, toolResults, finishReason, usage }) => {
console.log({ text, toolCalls, toolResults, finishReason, usage })
},
})

사용onTitleGenerated
using-ontitlegenerated에 대한 직접 링크

Memory 옵션에서 generateTitle을 활성화하면 응답이 완료된 후 제목 생성이 비동기적으로 실행됩니다. 제목이 준비되었을 때 처리하려면 onTitleGenerated를 사용하세요. 예를 들어 SSE를 통해 클라이언트에 제목을 푸시할 수 있습니다.

const response = await agent.generate('What is quantum computing?', {
memory: {
thread: threadId,
resource: userId,
onTitleGenerated: title => {
console.log('Thread title:', title)
},
},
})