OpenAI Responses API
この OpenAI 互換の Agent ベースインターフェースにより、Mastra Agent を Responses API として使用できます。Mastra Agent を通じてレスポンスを作成、取得、ストリーミング、削除するためのメソッドを提供します。
これらのルートは、Mastra Agent、メモリ、ストレージを利用する Agent ベースのアダプターです。リクエストを処理する Mastra Agent は agent_id で選択します。1 回のリクエストに限って Agent に設定されたモデルを上書きするには model を渡します。省略すると、Agent に設定済みのモデルが使用されます。
保存されたレスポンスは conversation_id も返します。Mastra では、これは未加工のメモリ 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 スタイルのイベントペイロードを生成する非同期 iterable を返します。
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 ベースレスポンスでは、永続化された assistant メッセージの 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 には、リクエストで利用できる設定済みの関数定義が含まれます。
モデルが関数を呼び出すと、その処理は最終的な assistant 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_objectは JSON モードを有効にします。json_schemaはスキーマ制約付きの構造化出力を有効にします。
どちらの形式でも、assistant メッセージの内容として 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,
},
},
},
})
Provider を利用するリクエストProvider を利用するリクエストへの直接リンク
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:assistant のmessage、function_call、function_call_outputなどの出力アイテムoutput_text:assistant のテキスト出力を結合するための簡易ゲッターtools:リクエスト用に設定された Tool 定義conversation_id:保存済みレスポンスの未加工のスレッド IDtext:指定された場合の、要求したテキスト出力形式
パラメーターパラメーターへの直接リンク
agent_id?:
previous_response_id を使用して続行する場合に省略できます。model?:
openai/gpt-5 など)。省略すると、Mastra は選択した Agent に設定されたモデルを使用します。input:
instructions?:
text?:
json_object、スキーマ制約付きの構造化出力には json_schema を使用します。