@mastra/core 1.6.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +236 -0
- package/dist/agent/agent.d.ts +6 -0
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/index.cjs +8 -8
- package/dist/agent/index.js +1 -1
- package/dist/{chunk-VJWRJWSC.cjs → chunk-2X66GWF5.cjs} +94 -16
- package/dist/chunk-2X66GWF5.cjs.map +1 -0
- package/dist/{chunk-YM6245EM.js → chunk-6OXW5E2O.js} +3 -3
- package/dist/{chunk-YM6245EM.js.map → chunk-6OXW5E2O.js.map} +1 -1
- package/dist/{chunk-XWZAKKFT.cjs → chunk-6QBN6MZY.cjs} +14 -14
- package/dist/{chunk-XWZAKKFT.cjs.map → chunk-6QBN6MZY.cjs.map} +1 -1
- package/dist/{chunk-AYHSPIT6.cjs → chunk-7UAJ6LMR.cjs} +820 -259
- package/dist/chunk-7UAJ6LMR.cjs.map +1 -0
- package/dist/{chunk-RZNHRIM7.cjs → chunk-A72NTLFT.cjs} +5 -5
- package/dist/{chunk-RZNHRIM7.cjs.map → chunk-A72NTLFT.cjs.map} +1 -1
- package/dist/{chunk-EEU5NHHU.js → chunk-DFCRXDVK.js} +3 -3
- package/dist/{chunk-EEU5NHHU.js.map → chunk-DFCRXDVK.js.map} +1 -1
- package/dist/{chunk-5K45E5VE.js → chunk-GPJGPARM.js} +3 -2
- package/dist/chunk-GPJGPARM.js.map +1 -0
- package/dist/{chunk-LNKS4TJ6.cjs → chunk-HB6T4554.cjs} +8 -7
- package/dist/chunk-HB6T4554.cjs.map +1 -0
- package/dist/{chunk-DGS2KGDI.js → chunk-KUXNBWN7.js} +6 -5
- package/dist/chunk-KUXNBWN7.js.map +1 -0
- package/dist/{chunk-IHDE4CJV.js → chunk-QSHV7GPT.js} +89 -12
- package/dist/chunk-QSHV7GPT.js.map +1 -0
- package/dist/{chunk-3U3XFMGJ.cjs → chunk-QTAS3HND.cjs} +13 -8
- package/dist/chunk-QTAS3HND.cjs.map +1 -0
- package/dist/{chunk-RHKNKJNM.js → chunk-QWTB53GS.js} +4 -4
- package/dist/{chunk-RHKNKJNM.js.map → chunk-QWTB53GS.js.map} +1 -1
- package/dist/{chunk-4WG5K4CK.js → chunk-R4N65TLG.js} +7 -7
- package/dist/{chunk-4WG5K4CK.js.map → chunk-R4N65TLG.js.map} +1 -1
- package/dist/{chunk-5VQPSWPG.cjs → chunk-RABITNTG.cjs} +48 -48
- package/dist/{chunk-5VQPSWPG.cjs.map → chunk-RABITNTG.cjs.map} +1 -1
- package/dist/{chunk-TVPANHLE.cjs → chunk-SBOHDNIZ.cjs} +3 -2
- package/dist/chunk-SBOHDNIZ.cjs.map +1 -0
- package/dist/{chunk-MWGGSA5Q.js → chunk-T6GAM3SQ.js} +10 -5
- package/dist/chunk-T6GAM3SQ.js.map +1 -0
- package/dist/{chunk-TL2TTA4X.cjs → chunk-YQG7NBPR.cjs} +9 -9
- package/dist/{chunk-TL2TTA4X.cjs.map → chunk-YQG7NBPR.cjs.map} +1 -1
- package/dist/{chunk-XB3DA67Q.js → chunk-ZSBM2SVU.js} +818 -259
- package/dist/chunk-ZSBM2SVU.js.map +1 -0
- package/dist/datasets/experiment/scorer.d.ts.map +1 -1
- package/dist/datasets/index.cjs +17 -17
- package/dist/datasets/index.js +2 -2
- package/dist/evals/index.cjs +20 -20
- package/dist/evals/index.js +3 -3
- package/dist/evals/scoreTraces/index.cjs +7 -6
- package/dist/evals/scoreTraces/index.cjs.map +1 -1
- package/dist/evals/scoreTraces/index.js +4 -3
- package/dist/evals/scoreTraces/index.js.map +1 -1
- package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
- package/dist/harness/harness.d.ts +21 -1
- package/dist/harness/harness.d.ts.map +1 -1
- package/dist/harness/index.cjs +422 -5
- package/dist/harness/index.cjs.map +1 -1
- package/dist/harness/index.d.ts +2 -1
- package/dist/harness/index.d.ts.map +1 -1
- package/dist/harness/index.js +418 -3
- package/dist/harness/index.js.map +1 -1
- package/dist/harness/types.d.ts +151 -0
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/dist/loop/index.cjs +12 -12
- package/dist/loop/index.js +1 -1
- package/dist/loop/test-utils/tools.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
- package/dist/mastra/hooks.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.js +1 -1
- package/dist/memory/index.cjs +14 -14
- package/dist/memory/index.js +1 -1
- package/dist/processor-provider/index.cjs +10 -10
- package/dist/processor-provider/index.js +1 -1
- package/dist/processors/index.cjs +45 -41
- package/dist/processors/index.js +1 -1
- package/dist/processors/processors/index.d.ts +1 -0
- package/dist/processors/processors/index.d.ts.map +1 -1
- package/dist/processors/processors/workspace-instructions.d.ts +50 -0
- package/dist/processors/processors/workspace-instructions.d.ts.map +1 -0
- package/dist/relevance/index.cjs +3 -3
- package/dist/relevance/index.js +1 -1
- package/dist/storage/constants.cjs +56 -56
- package/dist/storage/constants.d.ts.map +1 -1
- package/dist/storage/constants.js +1 -1
- package/dist/storage/index.cjs +160 -160
- package/dist/storage/index.js +2 -2
- package/dist/storage/types.d.ts +2 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -1
- package/dist/stream/base/output.d.ts.map +1 -1
- package/dist/stream/index.cjs +8 -8
- package/dist/stream/index.js +1 -1
- package/dist/tool-loop-agent/index.cjs +4 -4
- package/dist/tool-loop-agent/index.js +1 -1
- package/dist/vector/index.cjs +7 -7
- package/dist/vector/index.js +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/index.cjs +25 -25
- package/dist/workflows/index.js +1 -1
- package/dist/workspace/constants/index.d.ts +2 -0
- package/dist/workspace/constants/index.d.ts.map +1 -1
- package/dist/workspace/errors.d.ts +1 -1
- package/dist/workspace/errors.d.ts.map +1 -1
- package/dist/workspace/filesystem/composite-filesystem.d.ts +4 -1
- package/dist/workspace/filesystem/composite-filesystem.d.ts.map +1 -1
- package/dist/workspace/filesystem/file-write-lock.d.ts +35 -0
- package/dist/workspace/filesystem/file-write-lock.d.ts.map +1 -0
- package/dist/workspace/filesystem/filesystem.d.ts +5 -1
- package/dist/workspace/filesystem/filesystem.d.ts.map +1 -1
- package/dist/workspace/filesystem/index.d.ts +1 -0
- package/dist/workspace/filesystem/index.d.ts.map +1 -1
- package/dist/workspace/filesystem/local-filesystem.d.ts +17 -1
- package/dist/workspace/filesystem/local-filesystem.d.ts.map +1 -1
- package/dist/workspace/index.cjs +72 -64
- package/dist/workspace/index.d.ts +3 -2
- package/dist/workspace/index.d.ts.map +1 -1
- package/dist/workspace/index.js +1 -1
- package/dist/workspace/lifecycle.d.ts +1 -9
- package/dist/workspace/lifecycle.d.ts.map +1 -1
- package/dist/workspace/sandbox/index.d.ts +2 -0
- package/dist/workspace/sandbox/index.d.ts.map +1 -1
- package/dist/workspace/sandbox/local-process-manager.d.ts +18 -0
- package/dist/workspace/sandbox/local-process-manager.d.ts.map +1 -0
- package/dist/workspace/sandbox/local-sandbox.d.ts +49 -35
- package/dist/workspace/sandbox/local-sandbox.d.ts.map +1 -1
- package/dist/workspace/sandbox/mastra-sandbox.d.ts +45 -11
- package/dist/workspace/sandbox/mastra-sandbox.d.ts.map +1 -1
- package/dist/workspace/sandbox/native-sandbox/bubblewrap.d.ts +2 -3
- package/dist/workspace/sandbox/native-sandbox/bubblewrap.d.ts.map +1 -1
- package/dist/workspace/sandbox/native-sandbox/seatbelt.d.ts +2 -3
- package/dist/workspace/sandbox/native-sandbox/seatbelt.d.ts.map +1 -1
- package/dist/workspace/sandbox/native-sandbox/wrapper.d.ts +4 -5
- package/dist/workspace/sandbox/native-sandbox/wrapper.d.ts.map +1 -1
- package/dist/workspace/sandbox/process-manager/index.d.ts +4 -0
- package/dist/workspace/sandbox/process-manager/index.d.ts.map +1 -0
- package/dist/workspace/sandbox/process-manager/process-handle.d.ts +107 -0
- package/dist/workspace/sandbox/process-manager/process-handle.d.ts.map +1 -0
- package/dist/workspace/sandbox/process-manager/process-manager.d.ts +59 -0
- package/dist/workspace/sandbox/process-manager/process-manager.d.ts.map +1 -0
- package/dist/workspace/sandbox/process-manager/types.d.ts +24 -0
- package/dist/workspace/sandbox/process-manager/types.d.ts.map +1 -0
- package/dist/workspace/sandbox/sandbox.d.ts +38 -2
- package/dist/workspace/sandbox/sandbox.d.ts.map +1 -1
- package/dist/workspace/sandbox/types.d.ts +9 -2
- package/dist/workspace/sandbox/types.d.ts.map +1 -1
- package/dist/workspace/sandbox/utils.d.ts +7 -0
- package/dist/workspace/sandbox/utils.d.ts.map +1 -0
- package/dist/workspace/tools/execute-command.d.ts +53 -2
- package/dist/workspace/tools/execute-command.d.ts.map +1 -1
- package/dist/workspace/tools/get-process-output.d.ts +6 -0
- package/dist/workspace/tools/get-process-output.d.ts.map +1 -0
- package/dist/workspace/tools/index.d.ts +4 -1
- package/dist/workspace/tools/index.d.ts.map +1 -1
- package/dist/workspace/tools/kill-process.d.ts +4 -0
- package/dist/workspace/tools/kill-process.d.ts.map +1 -0
- package/dist/workspace/tools/output-helpers.d.ts +21 -0
- package/dist/workspace/tools/output-helpers.d.ts.map +1 -0
- package/dist/workspace/tools/tools.d.ts.map +1 -1
- package/dist/workspace/types.d.ts +31 -0
- package/dist/workspace/types.d.ts.map +1 -1
- package/dist/workspace/utils.d.ts +11 -0
- package/dist/workspace/utils.d.ts.map +1 -0
- package/dist/workspace/workspace.d.ts +36 -0
- package/dist/workspace/workspace.d.ts.map +1 -1
- package/package.json +7 -7
- package/dist/chunk-3U3XFMGJ.cjs.map +0 -1
- package/dist/chunk-5K45E5VE.js.map +0 -1
- package/dist/chunk-AYHSPIT6.cjs.map +0 -1
- package/dist/chunk-DGS2KGDI.js.map +0 -1
- package/dist/chunk-IHDE4CJV.js.map +0 -1
- package/dist/chunk-LNKS4TJ6.cjs.map +0 -1
- package/dist/chunk-MWGGSA5Q.js.map +0 -1
- package/dist/chunk-TVPANHLE.cjs.map +0 -1
- package/dist/chunk-VJWRJWSC.cjs.map +0 -1
- package/dist/chunk-XB3DA67Q.js.map +0 -1
- package/dist/docs/SKILL.md +0 -301
- package/dist/docs/assets/SOURCE_MAP.json +0 -1413
- package/dist/docs/references/docs-agents-adding-voice.md +0 -353
- package/dist/docs/references/docs-agents-agent-approval.md +0 -377
- package/dist/docs/references/docs-agents-agent-memory.md +0 -212
- package/dist/docs/references/docs-agents-guardrails.md +0 -382
- package/dist/docs/references/docs-agents-network-approval.md +0 -275
- package/dist/docs/references/docs-agents-networks.md +0 -290
- package/dist/docs/references/docs-agents-overview.md +0 -309
- package/dist/docs/references/docs-agents-processors.md +0 -632
- package/dist/docs/references/docs-agents-structured-output.md +0 -271
- package/dist/docs/references/docs-agents-using-tools.md +0 -214
- package/dist/docs/references/docs-evals-custom-scorers.md +0 -519
- package/dist/docs/references/docs-evals-overview.md +0 -146
- package/dist/docs/references/docs-evals-running-in-ci.md +0 -106
- package/dist/docs/references/docs-mcp-overview.md +0 -370
- package/dist/docs/references/docs-mcp-publishing-mcp-server.md +0 -95
- package/dist/docs/references/docs-memory-memory-processors.md +0 -316
- package/dist/docs/references/docs-memory-observational-memory.md +0 -246
- package/dist/docs/references/docs-memory-overview.md +0 -45
- package/dist/docs/references/docs-memory-semantic-recall.md +0 -272
- package/dist/docs/references/docs-memory-storage.md +0 -261
- package/dist/docs/references/docs-memory-working-memory.md +0 -400
- package/dist/docs/references/docs-observability-datasets-overview.md +0 -188
- package/dist/docs/references/docs-observability-datasets-running-experiments.md +0 -266
- package/dist/docs/references/docs-observability-logging.md +0 -99
- package/dist/docs/references/docs-observability-overview.md +0 -70
- package/dist/docs/references/docs-observability-tracing-bridges-otel.md +0 -209
- package/dist/docs/references/docs-observability-tracing-exporters-arize.md +0 -274
- package/dist/docs/references/docs-observability-tracing-exporters-braintrust.md +0 -111
- package/dist/docs/references/docs-observability-tracing-exporters-cloud.md +0 -129
- package/dist/docs/references/docs-observability-tracing-exporters-datadog.md +0 -187
- package/dist/docs/references/docs-observability-tracing-exporters-default.md +0 -211
- package/dist/docs/references/docs-observability-tracing-exporters-laminar.md +0 -100
- package/dist/docs/references/docs-observability-tracing-exporters-langfuse.md +0 -217
- package/dist/docs/references/docs-observability-tracing-exporters-langsmith.md +0 -202
- package/dist/docs/references/docs-observability-tracing-exporters-otel.md +0 -479
- package/dist/docs/references/docs-observability-tracing-exporters-posthog.md +0 -148
- package/dist/docs/references/docs-observability-tracing-overview.md +0 -1114
- package/dist/docs/references/docs-rag-chunking-and-embedding.md +0 -183
- package/dist/docs/references/docs-rag-graph-rag.md +0 -215
- package/dist/docs/references/docs-rag-overview.md +0 -72
- package/dist/docs/references/docs-rag-retrieval.md +0 -521
- package/dist/docs/references/docs-rag-vector-databases.md +0 -648
- package/dist/docs/references/docs-server-auth-auth0.md +0 -222
- package/dist/docs/references/docs-server-auth-clerk.md +0 -132
- package/dist/docs/references/docs-server-auth-composite-auth.md +0 -234
- package/dist/docs/references/docs-server-auth-custom-auth-provider.md +0 -513
- package/dist/docs/references/docs-server-auth-firebase.md +0 -272
- package/dist/docs/references/docs-server-auth-jwt.md +0 -110
- package/dist/docs/references/docs-server-auth-simple-auth.md +0 -178
- package/dist/docs/references/docs-server-auth-supabase.md +0 -117
- package/dist/docs/references/docs-server-auth-workos.md +0 -190
- package/dist/docs/references/docs-server-custom-adapters.md +0 -374
- package/dist/docs/references/docs-server-custom-api-routes.md +0 -267
- package/dist/docs/references/docs-server-mastra-client.md +0 -243
- package/dist/docs/references/docs-server-mastra-server.md +0 -71
- package/dist/docs/references/docs-server-middleware.md +0 -228
- package/dist/docs/references/docs-server-request-context.md +0 -478
- package/dist/docs/references/docs-streaming-events.md +0 -247
- package/dist/docs/references/docs-streaming-tool-streaming.md +0 -178
- package/dist/docs/references/docs-streaming-workflow-streaming.md +0 -109
- package/dist/docs/references/docs-voice-overview.md +0 -979
- package/dist/docs/references/docs-voice-speech-to-speech.md +0 -103
- package/dist/docs/references/docs-voice-speech-to-text.md +0 -80
- package/dist/docs/references/docs-voice-text-to-speech.md +0 -84
- package/dist/docs/references/docs-workflows-agents-and-tools.md +0 -170
- package/dist/docs/references/docs-workflows-control-flow.md +0 -823
- package/dist/docs/references/docs-workflows-error-handling.md +0 -360
- package/dist/docs/references/docs-workflows-human-in-the-loop.md +0 -213
- package/dist/docs/references/docs-workflows-overview.md +0 -372
- package/dist/docs/references/docs-workflows-snapshots.md +0 -238
- package/dist/docs/references/docs-workflows-suspend-and-resume.md +0 -205
- package/dist/docs/references/docs-workflows-time-travel.md +0 -309
- package/dist/docs/references/docs-workflows-workflow-state.md +0 -181
- package/dist/docs/references/docs-workspace-filesystem.md +0 -162
- package/dist/docs/references/docs-workspace-overview.md +0 -239
- package/dist/docs/references/docs-workspace-sandbox.md +0 -63
- package/dist/docs/references/docs-workspace-search.md +0 -219
- package/dist/docs/references/docs-workspace-skills.md +0 -126
- package/dist/docs/references/guides-agent-frameworks-ai-sdk.md +0 -140
- package/dist/docs/references/reference-agents-agent.md +0 -142
- package/dist/docs/references/reference-agents-generate.md +0 -174
- package/dist/docs/references/reference-agents-generateLegacy.md +0 -176
- package/dist/docs/references/reference-agents-getDefaultGenerateOptions.md +0 -36
- package/dist/docs/references/reference-agents-getDefaultOptions.md +0 -34
- package/dist/docs/references/reference-agents-getDefaultStreamOptions.md +0 -36
- package/dist/docs/references/reference-agents-getDescription.md +0 -21
- package/dist/docs/references/reference-agents-getInstructions.md +0 -34
- package/dist/docs/references/reference-agents-getLLM.md +0 -37
- package/dist/docs/references/reference-agents-getMemory.md +0 -34
- package/dist/docs/references/reference-agents-getModel.md +0 -34
- package/dist/docs/references/reference-agents-getTools.md +0 -29
- package/dist/docs/references/reference-agents-getVoice.md +0 -34
- package/dist/docs/references/reference-agents-listAgents.md +0 -35
- package/dist/docs/references/reference-agents-listScorers.md +0 -34
- package/dist/docs/references/reference-agents-listTools.md +0 -34
- package/dist/docs/references/reference-agents-listWorkflows.md +0 -34
- package/dist/docs/references/reference-agents-network.md +0 -134
- package/dist/docs/references/reference-ai-sdk-chat-route.md +0 -82
- package/dist/docs/references/reference-ai-sdk-network-route.md +0 -74
- package/dist/docs/references/reference-ai-sdk-to-ai-sdk-stream.md +0 -232
- package/dist/docs/references/reference-ai-sdk-with-mastra.md +0 -59
- package/dist/docs/references/reference-ai-sdk-workflow-route.md +0 -79
- package/dist/docs/references/reference-auth-auth0.md +0 -73
- package/dist/docs/references/reference-auth-clerk.md +0 -36
- package/dist/docs/references/reference-auth-firebase.md +0 -80
- package/dist/docs/references/reference-auth-jwt.md +0 -26
- package/dist/docs/references/reference-auth-supabase.md +0 -33
- package/dist/docs/references/reference-auth-workos.md +0 -84
- package/dist/docs/references/reference-client-js-agents.md +0 -438
- package/dist/docs/references/reference-configuration.md +0 -749
- package/dist/docs/references/reference-core-addGateway.md +0 -42
- package/dist/docs/references/reference-core-getAgent.md +0 -21
- package/dist/docs/references/reference-core-getAgentById.md +0 -21
- package/dist/docs/references/reference-core-getDeployer.md +0 -22
- package/dist/docs/references/reference-core-getGateway.md +0 -38
- package/dist/docs/references/reference-core-getGatewayById.md +0 -41
- package/dist/docs/references/reference-core-getLogger.md +0 -22
- package/dist/docs/references/reference-core-getMCPServer.md +0 -45
- package/dist/docs/references/reference-core-getMCPServerById.md +0 -53
- package/dist/docs/references/reference-core-getMemory.md +0 -50
- package/dist/docs/references/reference-core-getScorer.md +0 -54
- package/dist/docs/references/reference-core-getScorerById.md +0 -54
- package/dist/docs/references/reference-core-getServer.md +0 -22
- package/dist/docs/references/reference-core-getStorage.md +0 -22
- package/dist/docs/references/reference-core-getStoredAgentById.md +0 -89
- package/dist/docs/references/reference-core-getTelemetry.md +0 -22
- package/dist/docs/references/reference-core-getVector.md +0 -22
- package/dist/docs/references/reference-core-getWorkflow.md +0 -40
- package/dist/docs/references/reference-core-listAgents.md +0 -21
- package/dist/docs/references/reference-core-listGateways.md +0 -40
- package/dist/docs/references/reference-core-listLogs.md +0 -38
- package/dist/docs/references/reference-core-listLogsByRunId.md +0 -36
- package/dist/docs/references/reference-core-listMCPServers.md +0 -51
- package/dist/docs/references/reference-core-listMemory.md +0 -56
- package/dist/docs/references/reference-core-listScorers.md +0 -29
- package/dist/docs/references/reference-core-listStoredAgents.md +0 -93
- package/dist/docs/references/reference-core-listVectors.md +0 -22
- package/dist/docs/references/reference-core-listWorkflows.md +0 -21
- package/dist/docs/references/reference-core-mastra-class.md +0 -66
- package/dist/docs/references/reference-core-mastra-model-gateway.md +0 -153
- package/dist/docs/references/reference-core-setLogger.md +0 -26
- package/dist/docs/references/reference-core-setStorage.md +0 -27
- package/dist/docs/references/reference-datasets-addItem.md +0 -35
- package/dist/docs/references/reference-datasets-addItems.md +0 -33
- package/dist/docs/references/reference-datasets-compareExperiments.md +0 -48
- package/dist/docs/references/reference-datasets-create.md +0 -49
- package/dist/docs/references/reference-datasets-dataset.md +0 -78
- package/dist/docs/references/reference-datasets-datasets-manager.md +0 -84
- package/dist/docs/references/reference-datasets-delete.md +0 -23
- package/dist/docs/references/reference-datasets-deleteExperiment.md +0 -25
- package/dist/docs/references/reference-datasets-deleteItem.md +0 -25
- package/dist/docs/references/reference-datasets-deleteItems.md +0 -27
- package/dist/docs/references/reference-datasets-get.md +0 -29
- package/dist/docs/references/reference-datasets-getDetails.md +0 -45
- package/dist/docs/references/reference-datasets-getExperiment.md +0 -28
- package/dist/docs/references/reference-datasets-getItem.md +0 -31
- package/dist/docs/references/reference-datasets-getItemHistory.md +0 -29
- package/dist/docs/references/reference-datasets-list.md +0 -29
- package/dist/docs/references/reference-datasets-listExperimentResults.md +0 -37
- package/dist/docs/references/reference-datasets-listExperiments.md +0 -31
- package/dist/docs/references/reference-datasets-listItems.md +0 -44
- package/dist/docs/references/reference-datasets-listVersions.md +0 -31
- package/dist/docs/references/reference-datasets-startExperiment.md +0 -60
- package/dist/docs/references/reference-datasets-startExperimentAsync.md +0 -41
- package/dist/docs/references/reference-datasets-update.md +0 -46
- package/dist/docs/references/reference-datasets-updateItem.md +0 -36
- package/dist/docs/references/reference-evals-answer-relevancy.md +0 -105
- package/dist/docs/references/reference-evals-answer-similarity.md +0 -99
- package/dist/docs/references/reference-evals-bias.md +0 -120
- package/dist/docs/references/reference-evals-completeness.md +0 -137
- package/dist/docs/references/reference-evals-content-similarity.md +0 -101
- package/dist/docs/references/reference-evals-context-precision.md +0 -196
- package/dist/docs/references/reference-evals-create-scorer.md +0 -270
- package/dist/docs/references/reference-evals-faithfulness.md +0 -114
- package/dist/docs/references/reference-evals-hallucination.md +0 -220
- package/dist/docs/references/reference-evals-keyword-coverage.md +0 -128
- package/dist/docs/references/reference-evals-mastra-scorer.md +0 -123
- package/dist/docs/references/reference-evals-run-evals.md +0 -138
- package/dist/docs/references/reference-evals-scorer-utils.md +0 -330
- package/dist/docs/references/reference-evals-textual-difference.md +0 -113
- package/dist/docs/references/reference-evals-tone-consistency.md +0 -119
- package/dist/docs/references/reference-evals-toxicity.md +0 -123
- package/dist/docs/references/reference-harness-harness-class.md +0 -645
- package/dist/docs/references/reference-logging-pino-logger.md +0 -117
- package/dist/docs/references/reference-memory-deleteMessages.md +0 -40
- package/dist/docs/references/reference-memory-memory-class.md +0 -147
- package/dist/docs/references/reference-memory-observational-memory.md +0 -565
- package/dist/docs/references/reference-observability-tracing-bridges-otel.md +0 -131
- package/dist/docs/references/reference-observability-tracing-configuration.md +0 -178
- package/dist/docs/references/reference-observability-tracing-exporters-console-exporter.md +0 -138
- package/dist/docs/references/reference-observability-tracing-exporters-datadog.md +0 -116
- package/dist/docs/references/reference-observability-tracing-instances.md +0 -109
- package/dist/docs/references/reference-observability-tracing-interfaces.md +0 -749
- package/dist/docs/references/reference-observability-tracing-processors-sensitive-data-filter.md +0 -144
- package/dist/docs/references/reference-observability-tracing-spans.md +0 -224
- package/dist/docs/references/reference-processors-batch-parts-processor.md +0 -61
- package/dist/docs/references/reference-processors-language-detector.md +0 -81
- package/dist/docs/references/reference-processors-message-history-processor.md +0 -85
- package/dist/docs/references/reference-processors-moderation-processor.md +0 -104
- package/dist/docs/references/reference-processors-pii-detector.md +0 -107
- package/dist/docs/references/reference-processors-processor-interface.md +0 -525
- package/dist/docs/references/reference-processors-prompt-injection-detector.md +0 -71
- package/dist/docs/references/reference-processors-semantic-recall-processor.md +0 -123
- package/dist/docs/references/reference-processors-system-prompt-scrubber.md +0 -80
- package/dist/docs/references/reference-processors-token-limiter-processor.md +0 -113
- package/dist/docs/references/reference-processors-tool-call-filter.md +0 -85
- package/dist/docs/references/reference-processors-tool-search-processor.md +0 -113
- package/dist/docs/references/reference-processors-unicode-normalizer.md +0 -62
- package/dist/docs/references/reference-processors-working-memory-processor.md +0 -154
- package/dist/docs/references/reference-rag-database-config.md +0 -264
- package/dist/docs/references/reference-rag-embeddings.md +0 -92
- package/dist/docs/references/reference-server-mastra-server.md +0 -298
- package/dist/docs/references/reference-server-register-api-route.md +0 -249
- package/dist/docs/references/reference-storage-cloudflare-d1.md +0 -218
- package/dist/docs/references/reference-storage-composite.md +0 -235
- package/dist/docs/references/reference-storage-lance.md +0 -131
- package/dist/docs/references/reference-storage-libsql.md +0 -135
- package/dist/docs/references/reference-storage-mongodb.md +0 -262
- package/dist/docs/references/reference-storage-mssql.md +0 -155
- package/dist/docs/references/reference-storage-overview.md +0 -121
- package/dist/docs/references/reference-storage-postgresql.md +0 -529
- package/dist/docs/references/reference-storage-upstash.md +0 -160
- package/dist/docs/references/reference-streaming-ChunkType.md +0 -292
- package/dist/docs/references/reference-streaming-agents-MastraModelOutput.md +0 -182
- package/dist/docs/references/reference-streaming-agents-streamLegacy.md +0 -142
- package/dist/docs/references/reference-streaming-workflows-observeStream.md +0 -42
- package/dist/docs/references/reference-streaming-workflows-resumeStream.md +0 -61
- package/dist/docs/references/reference-streaming-workflows-stream.md +0 -88
- package/dist/docs/references/reference-streaming-workflows-timeTravelStream.md +0 -142
- package/dist/docs/references/reference-templates-overview.md +0 -194
- package/dist/docs/references/reference-tools-create-tool.md +0 -237
- package/dist/docs/references/reference-tools-graph-rag-tool.md +0 -185
- package/dist/docs/references/reference-tools-mcp-client.md +0 -962
- package/dist/docs/references/reference-tools-mcp-server.md +0 -1275
- package/dist/docs/references/reference-tools-vector-query-tool.md +0 -459
- package/dist/docs/references/reference-vectors-libsql.md +0 -305
- package/dist/docs/references/reference-vectors-mongodb.md +0 -295
- package/dist/docs/references/reference-vectors-pg.md +0 -408
- package/dist/docs/references/reference-vectors-upstash.md +0 -294
- package/dist/docs/references/reference-voice-composite-voice.md +0 -121
- package/dist/docs/references/reference-voice-mastra-voice.md +0 -313
- package/dist/docs/references/reference-voice-voice.addInstructions.md +0 -56
- package/dist/docs/references/reference-voice-voice.addTools.md +0 -67
- package/dist/docs/references/reference-voice-voice.connect.md +0 -94
- package/dist/docs/references/reference-voice-voice.events.md +0 -37
- package/dist/docs/references/reference-voice-voice.listen.md +0 -164
- package/dist/docs/references/reference-voice-voice.on.md +0 -111
- package/dist/docs/references/reference-voice-voice.speak.md +0 -157
- package/dist/docs/references/reference-workflows-run-methods-cancel.md +0 -86
- package/dist/docs/references/reference-workflows-run-methods-restart.md +0 -33
- package/dist/docs/references/reference-workflows-run-methods-resume.md +0 -59
- package/dist/docs/references/reference-workflows-run-methods-start.md +0 -58
- package/dist/docs/references/reference-workflows-run-methods-startAsync.md +0 -67
- package/dist/docs/references/reference-workflows-run-methods-timeTravel.md +0 -142
- package/dist/docs/references/reference-workflows-run.md +0 -59
- package/dist/docs/references/reference-workflows-step.md +0 -119
- package/dist/docs/references/reference-workflows-workflow-methods-branch.md +0 -25
- package/dist/docs/references/reference-workflows-workflow-methods-commit.md +0 -17
- package/dist/docs/references/reference-workflows-workflow-methods-create-run.md +0 -63
- package/dist/docs/references/reference-workflows-workflow-methods-dountil.md +0 -25
- package/dist/docs/references/reference-workflows-workflow-methods-dowhile.md +0 -25
- package/dist/docs/references/reference-workflows-workflow-methods-foreach.md +0 -118
- package/dist/docs/references/reference-workflows-workflow-methods-map.md +0 -93
- package/dist/docs/references/reference-workflows-workflow-methods-parallel.md +0 -21
- package/dist/docs/references/reference-workflows-workflow-methods-sleep.md +0 -35
- package/dist/docs/references/reference-workflows-workflow-methods-sleepUntil.md +0 -35
- package/dist/docs/references/reference-workflows-workflow-methods-then.md +0 -21
- package/dist/docs/references/reference-workflows-workflow.md +0 -157
- package/dist/docs/references/reference-workspace-filesystem.md +0 -202
- package/dist/docs/references/reference-workspace-local-filesystem.md +0 -327
- package/dist/docs/references/reference-workspace-local-sandbox.md +0 -285
- package/dist/docs/references/reference-workspace-sandbox.md +0 -81
- package/dist/docs/references/reference-workspace-workspace-class.md +0 -226
- package/dist/docs/references/reference.md +0 -276
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
# Speech-to-Speech Capabilities in Mastra
|
|
2
|
-
|
|
3
|
-
## Introduction
|
|
4
|
-
|
|
5
|
-
Speech-to-Speech (STS) in Mastra provides a standardized interface for real-time interactions across multiple providers. STS enables continuous bidirectional audio communication through listening to events from Realtime models. Unlike separate TTS and STT operations, STS maintains an open connection that processes speech continuously in both directions.
|
|
6
|
-
|
|
7
|
-
## Configuration
|
|
8
|
-
|
|
9
|
-
- **`apiKey`**: Your OpenAI API key. Falls back to the `OPENAI_API_KEY` environment variable.
|
|
10
|
-
- **`model`**: The model ID to use for real-time voice interactions (e.g., `gpt-5.1-realtime`).
|
|
11
|
-
- **`speaker`**: The default voice ID for speech synthesis. This allows you to specify which voice to use for the speech output.
|
|
12
|
-
|
|
13
|
-
```typescript
|
|
14
|
-
const voice = new OpenAIRealtimeVoice({
|
|
15
|
-
apiKey: "your-openai-api-key",
|
|
16
|
-
model: "gpt-5.1-realtime",
|
|
17
|
-
speaker: "alloy", // Default voice
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
// If using default settings the configuration can be simplified to:
|
|
21
|
-
const voice = new OpenAIRealtimeVoice();
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Using STS
|
|
25
|
-
|
|
26
|
-
```typescript
|
|
27
|
-
import { Agent } from "@mastra/core/agent";
|
|
28
|
-
import { OpenAIRealtimeVoice } from "@mastra/voice-openai-realtime";
|
|
29
|
-
import { playAudio, getMicrophoneStream } from "@mastra/node-audio";
|
|
30
|
-
|
|
31
|
-
const agent = new Agent({
|
|
32
|
-
id: "agent",
|
|
33
|
-
name: "OpenAI Realtime Agent",
|
|
34
|
-
instructions: `You are a helpful assistant with real-time voice capabilities.`,
|
|
35
|
-
model: "openai/gpt-5.1",
|
|
36
|
-
voice: new OpenAIRealtimeVoice(),
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
// Connect to the voice service
|
|
40
|
-
await agent.voice.connect();
|
|
41
|
-
|
|
42
|
-
// Listen for agent audio responses
|
|
43
|
-
agent.voice.on("speaker", ({ audio }) => {
|
|
44
|
-
playAudio(audio);
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
// Initiate the conversation
|
|
48
|
-
await agent.voice.speak("How can I help you today?");
|
|
49
|
-
|
|
50
|
-
// Send continuous audio from the microphone
|
|
51
|
-
const micStream = getMicrophoneStream();
|
|
52
|
-
await agent.voice.send(micStream);
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
For integrating Speech-to-Speech capabilities with agents, refer to the [Adding Voice to Agents](https://mastra.ai/docs/agents/adding-voice) documentation.
|
|
56
|
-
|
|
57
|
-
## Google Gemini Live (Realtime)
|
|
58
|
-
|
|
59
|
-
```typescript
|
|
60
|
-
import { Agent } from "@mastra/core/agent";
|
|
61
|
-
import { GeminiLiveVoice } from "@mastra/voice-google-gemini-live";
|
|
62
|
-
import { playAudio, getMicrophoneStream } from "@mastra/node-audio";
|
|
63
|
-
|
|
64
|
-
const agent = new Agent({
|
|
65
|
-
id: "agent",
|
|
66
|
-
name: "Gemini Live Agent",
|
|
67
|
-
instructions:
|
|
68
|
-
"You are a helpful assistant with real-time voice capabilities.",
|
|
69
|
-
// Model used for text generation; voice provider handles realtime audio
|
|
70
|
-
model: "openai/gpt-5.1",
|
|
71
|
-
voice: new GeminiLiveVoice({
|
|
72
|
-
apiKey: process.env.GOOGLE_API_KEY,
|
|
73
|
-
model: "gemini-2.0-flash-exp",
|
|
74
|
-
speaker: "Puck",
|
|
75
|
-
debug: true,
|
|
76
|
-
// Vertex AI option:
|
|
77
|
-
// vertexAI: true,
|
|
78
|
-
// project: 'your-gcp-project',
|
|
79
|
-
// location: 'us-central1',
|
|
80
|
-
// serviceAccountKeyFile: '/path/to/service-account.json',
|
|
81
|
-
}),
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
await agent.voice.connect();
|
|
85
|
-
|
|
86
|
-
agent.voice.on("speaker", ({ audio }) => {
|
|
87
|
-
playAudio(audio);
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
agent.voice.on("writing", ({ role, text }) => {
|
|
91
|
-
console.log(`${role}: ${text}`);
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
await agent.voice.speak("How can I help you today?");
|
|
95
|
-
|
|
96
|
-
const micStream = getMicrophoneStream();
|
|
97
|
-
await agent.voice.send(micStream);
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
Note:
|
|
101
|
-
|
|
102
|
-
- Live API requires `GOOGLE_API_KEY`. Vertex AI requires project/location and service account credentials.
|
|
103
|
-
- Events: `speaker` (audio stream), `writing` (text), `turnComplete`, `usage`, and `error`.
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
# Speech-to-Text (STT)
|
|
2
|
-
|
|
3
|
-
Speech-to-Text (STT) in Mastra provides a standardized interface for converting audio input into text across multiple service providers. STT helps create voice-enabled applications that can respond to human speech, enabling hands-free interaction, accessibility for users with disabilities, and more natural human-computer interfaces.
|
|
4
|
-
|
|
5
|
-
## Configuration
|
|
6
|
-
|
|
7
|
-
To use STT in Mastra, you need to provide a `listeningModel` when initializing the voice provider. This includes parameters such as:
|
|
8
|
-
|
|
9
|
-
- **`name`**: The specific STT model to use.
|
|
10
|
-
- **`apiKey`**: Your API key for authentication.
|
|
11
|
-
- **Provider-specific options**: Additional options that may be required or supported by the specific voice provider.
|
|
12
|
-
|
|
13
|
-
**Note**: All of these parameters are optional. You can use the default settings provided by the voice provider, which will depend on the specific provider you are using.
|
|
14
|
-
|
|
15
|
-
```typescript
|
|
16
|
-
const voice = new OpenAIVoice({
|
|
17
|
-
listeningModel: {
|
|
18
|
-
name: "whisper-1",
|
|
19
|
-
apiKey: process.env.OPENAI_API_KEY,
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
// If using default settings the configuration can be simplified to:
|
|
24
|
-
const voice = new OpenAIVoice();
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Available Providers
|
|
28
|
-
|
|
29
|
-
Mastra supports several Speech-to-Text providers, each with their own capabilities and strengths:
|
|
30
|
-
|
|
31
|
-
- [**OpenAI**](https://mastra.ai/reference/voice/openai) - High-accuracy transcription with Whisper models
|
|
32
|
-
- [**Azure**](https://mastra.ai/reference/voice/azure) - Microsoft's speech recognition with enterprise-grade reliability
|
|
33
|
-
- [**ElevenLabs**](https://mastra.ai/reference/voice/elevenlabs) - Advanced speech recognition with support for multiple languages
|
|
34
|
-
- [**Google**](https://mastra.ai/reference/voice/google) - Google's speech recognition with extensive language support
|
|
35
|
-
- [**Cloudflare**](https://mastra.ai/reference/voice/cloudflare) - Edge-optimized speech recognition for low-latency applications
|
|
36
|
-
- [**Deepgram**](https://mastra.ai/reference/voice/deepgram) - AI-powered speech recognition with high accuracy for various accents
|
|
37
|
-
- [**Sarvam**](https://mastra.ai/reference/voice/sarvam) - Specialized in Indic languages and accents
|
|
38
|
-
|
|
39
|
-
Each provider is implemented as a separate package that you can install as needed:
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
pnpm add @mastra/voice-openai@latest # Example for OpenAI
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Using the Listen Method
|
|
46
|
-
|
|
47
|
-
The primary method for STT is the `listen()` method, which converts spoken audio into text. Here's how to use it:
|
|
48
|
-
|
|
49
|
-
```typescript
|
|
50
|
-
import { Agent } from "@mastra/core/agent";
|
|
51
|
-
import { OpenAIVoice } from "@mastra/voice-openai";
|
|
52
|
-
import { getMicrophoneStream } from "@mastra/node-audio";
|
|
53
|
-
|
|
54
|
-
const voice = new OpenAIVoice();
|
|
55
|
-
|
|
56
|
-
const agent = new Agent({
|
|
57
|
-
id: "voice-agent",
|
|
58
|
-
name: "Voice Agent",
|
|
59
|
-
instructions:
|
|
60
|
-
"You are a voice assistant that provides recommendations based on user input.",
|
|
61
|
-
model: "openai/gpt-5.1",
|
|
62
|
-
voice,
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
const audioStream = getMicrophoneStream(); // Assume this function gets audio input
|
|
66
|
-
|
|
67
|
-
const transcript = await agent.voice.listen(audioStream, {
|
|
68
|
-
filetype: "m4a", // Optional: specify the audio file type
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
console.log(`User said: ${transcript}`);
|
|
72
|
-
|
|
73
|
-
const { text } = await agent.generate(
|
|
74
|
-
`Based on what the user said, provide them a recommendation: ${transcript}`,
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
console.log(`Recommendation: ${text}`);
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
Check out the [Adding Voice to Agents](https://mastra.ai/docs/agents/adding-voice) documentation to learn how to use STT in an agent.
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
# Text-to-Speech (TTS)
|
|
2
|
-
|
|
3
|
-
Text-to-Speech (TTS) in Mastra offers a unified API for synthesizing spoken audio from text using various providers. By incorporating TTS into your applications, you can enhance user experience with natural voice interactions, improve accessibility for users with visual impairments, and create more engaging multimodal interfaces.
|
|
4
|
-
|
|
5
|
-
TTS is a core component of any voice application. Combined with STT (Speech-to-Text), it forms the foundation of voice interaction systems. Newer models support STS ([Speech-to-Speech](https://mastra.ai/docs/voice/speech-to-speech)) which can be used for real-time interactions but come at high cost ($).
|
|
6
|
-
|
|
7
|
-
## Configuration
|
|
8
|
-
|
|
9
|
-
To use TTS in Mastra, you need to provide a `speechModel` when initializing the voice provider. This includes parameters such as:
|
|
10
|
-
|
|
11
|
-
- **`name`**: The specific TTS model to use.
|
|
12
|
-
- **`apiKey`**: Your API key for authentication.
|
|
13
|
-
- **Provider-specific options**: Additional options that may be required or supported by the specific voice provider.
|
|
14
|
-
|
|
15
|
-
The **`speaker`** option allows you to select different voices for speech synthesis. Each provider offers a variety of voice options with distinct characteristics for **Voice diversity**, **Quality**, **Voice personality**, and **Multilingual support**
|
|
16
|
-
|
|
17
|
-
**Note**: All of these parameters are optional. You can use the default settings provided by the voice provider, which will depend on the specific provider you are using.
|
|
18
|
-
|
|
19
|
-
```typescript
|
|
20
|
-
const voice = new OpenAIVoice({
|
|
21
|
-
speechModel: {
|
|
22
|
-
name: "tts-1-hd",
|
|
23
|
-
apiKey: process.env.OPENAI_API_KEY,
|
|
24
|
-
},
|
|
25
|
-
speaker: "alloy",
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
// If using default settings the configuration can be simplified to:
|
|
29
|
-
const voice = new OpenAIVoice();
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Available Providers
|
|
33
|
-
|
|
34
|
-
Mastra supports a wide range of Text-to-Speech providers, each with their own unique capabilities and voice options. You can choose the provider that best suits your application's needs:
|
|
35
|
-
|
|
36
|
-
- [**OpenAI**](https://mastra.ai/reference/voice/openai) - High-quality voices with natural intonation and expression
|
|
37
|
-
- [**Azure**](https://mastra.ai/reference/voice/azure) - Microsoft's speech service with a wide range of voices and languages
|
|
38
|
-
- [**ElevenLabs**](https://mastra.ai/reference/voice/elevenlabs) - Ultra-realistic voices with emotion and fine-grained control
|
|
39
|
-
- [**PlayAI**](https://mastra.ai/reference/voice/playai) - Specialized in natural-sounding voices with various styles
|
|
40
|
-
- [**Google**](https://mastra.ai/reference/voice/google) - Google's speech synthesis with multilingual support
|
|
41
|
-
- [**Cloudflare**](https://mastra.ai/reference/voice/cloudflare) - Edge-optimized speech synthesis for low-latency applications
|
|
42
|
-
- [**Deepgram**](https://mastra.ai/reference/voice/deepgram) - AI-powered speech technology with high accuracy
|
|
43
|
-
- [**Speechify**](https://mastra.ai/reference/voice/speechify) - Text-to-speech optimized for readability and accessibility
|
|
44
|
-
- [**Sarvam**](https://mastra.ai/reference/voice/sarvam) - Specialized in Indic languages and accents
|
|
45
|
-
- [**Murf**](https://mastra.ai/reference/voice/murf) - Studio-quality voice overs with customizable parameters
|
|
46
|
-
|
|
47
|
-
Each provider is implemented as a separate package that you can install as needed:
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
pnpm add @mastra/voice-openai@latest # Example for OpenAI
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## Using the Speak Method
|
|
54
|
-
|
|
55
|
-
The primary method for TTS is the `speak()` method, which converts text to speech. This method can accept options that allows you to specify the speaker and other provider-specific options. Here's how to use it:
|
|
56
|
-
|
|
57
|
-
```typescript
|
|
58
|
-
import { Agent } from "@mastra/core/agent";
|
|
59
|
-
import { OpenAIVoice } from "@mastra/voice-openai";
|
|
60
|
-
|
|
61
|
-
const voice = new OpenAIVoice();
|
|
62
|
-
|
|
63
|
-
const agent = new Agent({
|
|
64
|
-
id: "voice-agent",
|
|
65
|
-
name: "Voice Agent",
|
|
66
|
-
instructions:
|
|
67
|
-
"You are a voice assistant that can help users with their tasks.",
|
|
68
|
-
model: "openai/gpt-5.1",
|
|
69
|
-
voice,
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
const { text } = await agent.generate("What color is the sky?");
|
|
73
|
-
|
|
74
|
-
// Convert text to speech to an Audio Stream
|
|
75
|
-
const readableStream = await voice.speak(text, {
|
|
76
|
-
speaker: "default", // Optional: specify a speaker
|
|
77
|
-
properties: {
|
|
78
|
-
speed: 1.0, // Optional: adjust speech speed
|
|
79
|
-
pitch: "default", // Optional: specify pitch if supported
|
|
80
|
-
},
|
|
81
|
-
});
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
Check out the [Adding Voice to Agents](https://mastra.ai/docs/agents/adding-voice) documentation to learn how to use TTS in an agent.
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
# Agents and Tools
|
|
2
|
-
|
|
3
|
-
Workflow steps can call agents to leverage LLM reasoning or call tools for type-safe logic. You can either invoke them from within a step's `execute` function or compose them directly as steps using `createStep()`.
|
|
4
|
-
|
|
5
|
-
## Using agents in workflows
|
|
6
|
-
|
|
7
|
-
Use agents in workflow steps when you need reasoning, language generation, or other LLM-based tasks. Call from a step's `execute` function for more control over the agent call (e.g., track message history or return structured output). Compose agents as steps when you don't need to modify how the agent is invoked.
|
|
8
|
-
|
|
9
|
-
### Calling agents
|
|
10
|
-
|
|
11
|
-
Call agents inside a step's `execute` function using `.generate()` or `.stream()`. This lets you modify the agent call and handle the response before passing it to the next step.
|
|
12
|
-
|
|
13
|
-
```typescript
|
|
14
|
-
const step1 = createStep({
|
|
15
|
-
execute: async ({ inputData, mastra }) => {
|
|
16
|
-
const { message } = inputData;
|
|
17
|
-
|
|
18
|
-
const testAgent = mastra.getAgent("testAgent");
|
|
19
|
-
const response = await testAgent.generate(
|
|
20
|
-
`Convert this message into bullet points: ${message}`,
|
|
21
|
-
{
|
|
22
|
-
memory: {
|
|
23
|
-
thread: "user-123",
|
|
24
|
-
resource: "test-123",
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
return {
|
|
30
|
-
list: response.text,
|
|
31
|
-
};
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### Agents as steps
|
|
37
|
-
|
|
38
|
-
Compose an agent as a step using `createStep()` when you don't need to modify the agent call. Use `.map()` to transform the previous step's output into a `prompt` the agent can use.
|
|
39
|
-
|
|
40
|
-

|
|
41
|
-
|
|
42
|
-
```typescript
|
|
43
|
-
import { testAgent } from "../agents/test-agent";
|
|
44
|
-
|
|
45
|
-
const step1 = createStep(testAgent);
|
|
46
|
-
|
|
47
|
-
export const testWorkflow = createWorkflow({
|
|
48
|
-
})
|
|
49
|
-
.map(async ({ inputData }) => {
|
|
50
|
-
const { message } = inputData;
|
|
51
|
-
return {
|
|
52
|
-
prompt: `Convert this message into bullet points: ${message}`,
|
|
53
|
-
};
|
|
54
|
-
})
|
|
55
|
-
.then(step1)
|
|
56
|
-
.then(step2)
|
|
57
|
-
.commit();
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
> **Info:** Visit [Input Data Mapping](https://mastra.ai/docs/workflows/control-flow) for more information.
|
|
61
|
-
|
|
62
|
-
When no `structuredOutput` option is provided, Mastra agents use a default schema that expects a `prompt` string as input and returns a `text` string as output:
|
|
63
|
-
|
|
64
|
-
```json
|
|
65
|
-
{
|
|
66
|
-
inputSchema: {
|
|
67
|
-
prompt: string
|
|
68
|
-
},
|
|
69
|
-
outputSchema: {
|
|
70
|
-
text: string
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### Agents with structured output
|
|
76
|
-
|
|
77
|
-
When you need the agent to return structured data instead of plain text, pass the `structuredOutput` option to `createStep()`. The step's output schema will match your provided schema, enabling type-safe chaining to subsequent steps.
|
|
78
|
-
|
|
79
|
-
```typescript
|
|
80
|
-
const articleSchema = z.object({
|
|
81
|
-
title: z.string(),
|
|
82
|
-
summary: z.string(),
|
|
83
|
-
tags: z.array(z.string()),
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
const agentStep = createStep(testAgent, {
|
|
87
|
-
structuredOutput: { schema: articleSchema },
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
// Next step receives typed structured data
|
|
91
|
-
const processStep = createStep({
|
|
92
|
-
id: "process",
|
|
93
|
-
inputSchema: articleSchema, // Matches agent's outputSchema
|
|
94
|
-
outputSchema: z.object({ tagCount: z.number() }),
|
|
95
|
-
execute: async ({ inputData }) => ({
|
|
96
|
-
tagCount: inputData.tags.length, // Fully typed
|
|
97
|
-
}),
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
export const testWorkflow = createWorkflow({})
|
|
101
|
-
.map(async ({ inputData }) => ({
|
|
102
|
-
prompt: `Generate an article about: ${inputData.topic}`,
|
|
103
|
-
}))
|
|
104
|
-
.then(agentStep)
|
|
105
|
-
.then(processStep)
|
|
106
|
-
.commit();
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
The `structuredOutput.schema` option accepts any Zod schema. The agent will generate output conforming to this schema, and the step's `outputSchema` will be automatically set to match.
|
|
110
|
-
|
|
111
|
-
> **Info:** Visit [Structured Output](https://mastra.ai/docs/agents/structured-output) for more options like error handling strategies and streaming with structured output.
|
|
112
|
-
|
|
113
|
-
## Using tools in workflows
|
|
114
|
-
|
|
115
|
-
Use tools in workflow steps to leverage existing tool logic. Call from a step's `execute` function when you need to prepare context or process responses. Compose tools as steps when you don't need to modify how the tool is used.
|
|
116
|
-
|
|
117
|
-
### Calling tools
|
|
118
|
-
|
|
119
|
-
Call tools inside a step's `execute` function using `.execute()`. This gives you more control over the tool's input context, or process its response before passing it to the next step.
|
|
120
|
-
|
|
121
|
-
```typescript
|
|
122
|
-
import { testTool } from "../tools/test-tool";
|
|
123
|
-
|
|
124
|
-
const step2 = createStep({
|
|
125
|
-
execute: async ({ inputData, requestContext }) => {
|
|
126
|
-
const { formatted } = inputData;
|
|
127
|
-
|
|
128
|
-
const response = await testTool.execute(
|
|
129
|
-
{ text: formatted },
|
|
130
|
-
{ requestContext },
|
|
131
|
-
);
|
|
132
|
-
|
|
133
|
-
return {
|
|
134
|
-
emphasized: response.emphasized,
|
|
135
|
-
};
|
|
136
|
-
},
|
|
137
|
-
});
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
> **Info:** Visit [Calling Tools](https://mastra.ai/docs/workflows/agents-and-tools) for more examples.
|
|
141
|
-
|
|
142
|
-
### Tools as steps
|
|
143
|
-
|
|
144
|
-
Compose a tool as a step using `createStep()` when the previous step's output matches the tool's input context. You can use `.map()` to transform the previous step's output if they don't.
|
|
145
|
-
|
|
146
|
-

|
|
147
|
-
|
|
148
|
-
```typescript
|
|
149
|
-
import { testTool } from "../tools/test-tool";
|
|
150
|
-
|
|
151
|
-
const step2 = createStep(testTool);
|
|
152
|
-
|
|
153
|
-
export const testWorkflow = createWorkflow({})
|
|
154
|
-
.then(step1)
|
|
155
|
-
.map(async ({ inputData }) => {
|
|
156
|
-
const { formatted } = inputData;
|
|
157
|
-
return {
|
|
158
|
-
text: formatted,
|
|
159
|
-
};
|
|
160
|
-
})
|
|
161
|
-
.then(step2)
|
|
162
|
-
.commit();
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
> **Info:** Visit [Input Data Mapping](https://mastra.ai/docs/workflows/control-flow) for more information.
|
|
166
|
-
|
|
167
|
-
## Related
|
|
168
|
-
|
|
169
|
-
- [Using Agents](https://mastra.ai/docs/agents/overview)
|
|
170
|
-
- [MCP Overview](https://mastra.ai/docs/mcp/overview)
|