OpenAI 응답 API
이 OpenAI 호환 Agent 지원 인터페이스를 통해 Mastra Agent를 응답 API로 사용할 수 있습니다. Mastra Agent를 통해 응답을 생성, 검색, 스트리밍 및 삭제하는 방법을 제공합니다.
이 경로는 Mastra Agent, Memory 및 스토리지를 기반으로 하는 Agent 지원 어댑터입니다. 요청을 처리할 Mastra Agent를 선택하려면 agent_id를 사용하세요. 단일 요청에 한해 Agent에 구성된 Model을 재정의하려면 model을 전달하고, 이미 Agent에 구성된 Model을 사용하려면 생략할 수 있습니다.
저장된 응답은 conversation_id도 반환합니다. Mastra에서 이는 원시 Memory threadId입니다.
이 API는 현재 실험적입니다.
사용예사용예에 대한 직접 링크
import { MastraClient } from '@mastra/client-js'
const client = new MastraClient({
baseUrl: 'http://localhost:4111',
})
const response = await client.responses.create({
agent_id: 'support-agent',
input: 'Summarize this ticket',
store: true,
})
console.log(response.output_text)
행동 양식행동 양식에 대한 직접 링크
수명주기수명주기에 대한 직접 링크
create(params)createparams에 대한 직접 링크
응답을 만듭니다.
const response = await client.responses.create({
agent_id: 'support-agent',
input: 'Summarize this ticket',
})
반환: stream이 생략되거나 false이면 Promise<ResponsesResponse>입니다.
stream: true이면 create()는 SSE 스타일 이벤트 페이로드의 비동기 이터러블을 반환합니다.
const stream = await client.responses.create({
agent_id: 'support-agent',
input: 'Summarize this ticket',
stream: true,
})
for await (const event of stream) {
if (event.type === 'response.output_text.delta') {
process.stdout.write(event.delta)
}
}
스트리밍 응답에는 Tool 이벤트도 포함될 수 있습니다. Tool 호출 스트림은 response.output_item.added, response.function_call_arguments.delta, response.function_call_arguments.done, response.output_item.done 이벤트를 사용합니다. Tool 결과는 <toolCallId>:output ID가 있는 function_call_output 항목으로 표시됩니다.
보고: Promise<ResponsesStream>.
retrieve(responseId, requestContext?)retrieveresponseid-requestcontext에 대한 직접 링크
저장된 응답을 검색합니다.
const response = await client.responses.retrieve('msg_123')
보고: Promise<ResponsesResponse>.
delete(responseId, requestContext?)deleteresponseid-requestcontext에 대한 직접 링크
저장된 응답을 삭제합니다.
const deleted = await client.responses.delete('msg_123')
보고: Promise<{ id: string; object: "response"; deleted: true }>
stream(params)streamparams에 대한 직접 링크
스트리밍 응답을 생성합니다.
const stream = await client.responses.stream({
agent_id: 'support-agent',
input: 'Say hello',
})
for await (const event of stream) {
console.log(event.type)
}
보고: Promise<ResponsesStream>.
저장된 응답 및 대화저장된 응답 및 대화에 대한 직접 링크
저장된 응답에는 response.id와 conversation_id가 모두 포함됩니다.
response.id응답 ID입니다. 저장된 Agent 지원 응답의 경우 이는 지속형 보조자 메시지 ID입니다.conversation_id원시 Mastra 스레드 ID입니다.
이전에 저장된 응답부터 계속하려면 previous_response_id를 사용하세요. 알려진 스레드를 직접 지정하려면 conversation_id를 사용하세요.
const first = await client.responses.create({
agent_id: 'support-agent',
input: 'Start a support thread',
store: true,
})
const second = await client.responses.create({
agent_id: 'support-agent',
conversation_id: first.conversation_id!,
input: 'Add a follow-up to the same thread',
store: true,
})
기반이 되는 OpenAI Responses API 대화를 직접 생성, 조회, 삭제 또는 검사하려면 client.conversations를 사용하세요.
함수 호출(Tool)함수 호출(Tool)에 대한 직접 링크
response.tools요청에 사용할 수 있는 구성된 기능 정의가 포함되어 있습니다.
Model이 함수를 호출하면 해당 활동은 최종 어시스턴트 message와 함께 function_call 및 function_call_output 항목으로 response.output에 포함됩니다.
stream: true이면 함수 호출도 Responses 스트림 이벤트로 내보냅니다. 부분 인수 청크는 response.function_call_arguments.delta 이벤트에서 읽고, 최종 인수 페이로드와 Tool 이름은 response.function_call_arguments.done에서 읽는 것이 좋습니다. 완료된 function_call 및 function_call_output 항목은 response.output_item.done 이벤트에서 읽으세요. Tool 출력 항목은 <toolCallId>:output ID를 사용합니다.
구조화된 출력구조화된 출력에 대한 직접 링크
JSON 출력을 원하면 text.format을 사용하세요.
json_objectJSON 모드를 활성화합니다.json_schema스키마가 제한된 구조화된 출력을 가능하게 합니다.
두 형식 모두 어시스턴트 메시지 콘텐츠에 JSON을 반환합니다. 엄격한 스키마 적용이 필요하면 json_schema를 사용하세요. 유효한 JSON 출력만 필요하면 json_object를 사용하세요.
const response = await client.responses.create({
agent_id: 'support-agent',
input: 'Return a structured support ticket summary.',
text: {
format: {
type: 'json_schema',
name: 'ticket_summary',
schema: {
type: 'object',
properties: {
summary: { type: 'string' },
priority: { type: 'string' },
},
required: ['summary', 'priority'],
additionalProperties: false,
},
},
},
})
공급자 지원 요청공급자 지원 요청에 대한 직접 링크
Responses 계층에서 Mastra가 정규화하지 않는 Provider별 옵션이 필요하면 providerOptions를 사용하세요.
const response = await client.responses.create({
agent_id: 'support-agent',
input: 'Continue this exchange',
providerOptions: {
openai: {
previousResponseId: 'resp_123',
},
},
})
응답 형태응답 형태에 대한 직접 링크
반환된 응답 객체에는 다음이 포함됩니다.
id: 응답 IDoutput:message,function_call,function_call_output같은 출력 항목output_text: 어시스턴트 텍스트 출력을 결합하는 편의 gettertools: 요청에 구성된 Tool 정의conversation_id: 저장된 응답의 원시 스레드 IDtext: 요청된 텍스트 출력 형식(제공된 경우)
매개변수매개변수에 대한 직접 링크
agent_id?:
previous_response_id로 계속할 때 이를 생략할 수 있습니다.model?:
openai/gpt-5). 생략하면 Mastra는 선택한 Agent에 구성된 Model을 사용합니다.input:
instructions?:
text?:
json_object를, 스키마로 제약된 구조화 출력에는 json_schema를 사용하세요.