@mastra/mcp-docs-server 0.13.37 → 0.13.38
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/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +2 -0
- package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +2 -0
- package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +8 -8
- package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +2 -0
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +23 -23
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +69 -69
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +25 -25
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +27 -27
- package/.docs/organized/changelogs/%40mastra%2Freact.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +23 -23
- package/.docs/organized/changelogs/create-mastra.md +5 -5
- package/.docs/organized/changelogs/mastra.md +17 -17
- package/.docs/raw/agents/adding-voice.mdx +20 -9
- package/.docs/raw/agents/agent-memory.mdx +55 -39
- package/.docs/raw/agents/guardrails.mdx +68 -61
- package/.docs/raw/agents/networks.mdx +50 -46
- package/.docs/raw/agents/overview.mdx +125 -88
- package/.docs/raw/agents/using-tools.mdx +14 -15
- package/.docs/raw/auth/auth0.mdx +28 -27
- package/.docs/raw/auth/clerk.mdx +22 -20
- package/.docs/raw/auth/firebase.mdx +42 -39
- package/.docs/raw/auth/index.mdx +1 -1
- package/.docs/raw/auth/jwt.mdx +18 -16
- package/.docs/raw/auth/supabase.mdx +20 -18
- package/.docs/raw/auth/workos.mdx +32 -26
- package/.docs/raw/community/contributing-templates.mdx +7 -7
- package/.docs/raw/community/discord.mdx +2 -2
- package/.docs/raw/community/licensing.mdx +1 -1
- package/.docs/raw/course/03-agent-memory/26-updating-mastra-export-comprehensive.md +0 -32
- package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +41 -22
- package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +48 -29
- package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +52 -24
- package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +86 -55
- package/.docs/raw/deployment/cloud-providers/index.mdx +16 -13
- package/.docs/raw/deployment/monorepo.mdx +32 -42
- package/.docs/raw/deployment/overview.mdx +15 -15
- package/.docs/raw/deployment/server-deployment.mdx +18 -23
- package/.docs/raw/deployment/serverless-platforms/cloudflare-deployer.mdx +16 -17
- package/.docs/raw/deployment/serverless-platforms/index.mdx +15 -12
- package/.docs/raw/deployment/serverless-platforms/netlify-deployer.mdx +14 -23
- package/.docs/raw/deployment/serverless-platforms/vercel-deployer.mdx +16 -23
- package/.docs/raw/deployment/web-framework.mdx +14 -14
- package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +138 -145
- package/.docs/raw/frameworks/agentic-uis/assistant-ui.mdx +54 -43
- package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +51 -36
- package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +161 -120
- package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +59 -48
- package/.docs/raw/frameworks/servers/express.mdx +45 -44
- package/.docs/raw/frameworks/web-frameworks/astro.mdx +245 -162
- package/.docs/raw/frameworks/web-frameworks/next-js.mdx +112 -69
- package/.docs/raw/frameworks/web-frameworks/sveltekit.mdx +189 -164
- package/.docs/raw/frameworks/web-frameworks/vite-react.mdx +94 -81
- package/.docs/raw/getting-started/installation.mdx +164 -133
- package/.docs/raw/getting-started/mcp-docs-server.mdx +36 -39
- package/.docs/raw/getting-started/project-structure.mdx +34 -42
- package/.docs/raw/getting-started/studio.mdx +40 -58
- package/.docs/raw/getting-started/templates.mdx +22 -27
- package/.docs/raw/index.mdx +9 -9
- package/.docs/raw/mastra-cloud/dashboard.mdx +10 -10
- package/.docs/raw/mastra-cloud/observability.mdx +7 -8
- package/.docs/raw/mastra-cloud/overview.mdx +16 -22
- package/.docs/raw/mastra-cloud/setting-up.mdx +33 -20
- package/.docs/raw/memory/conversation-history.mdx +2 -2
- package/.docs/raw/memory/overview.mdx +21 -23
- package/.docs/raw/memory/semantic-recall.mdx +14 -13
- package/.docs/raw/memory/storage/memory-with-libsql.mdx +27 -28
- package/.docs/raw/memory/storage/memory-with-pg.mdx +26 -26
- package/.docs/raw/memory/storage/memory-with-upstash.mdx +26 -27
- package/.docs/raw/memory/threads-and-resources.mdx +23 -20
- package/.docs/raw/memory/working-memory.mdx +27 -38
- package/.docs/raw/observability/ai-tracing/exporters/arize.mdx +30 -29
- package/.docs/raw/observability/ai-tracing/exporters/braintrust.mdx +8 -9
- package/.docs/raw/observability/ai-tracing/exporters/cloud.mdx +17 -16
- package/.docs/raw/observability/ai-tracing/exporters/default.mdx +31 -32
- package/.docs/raw/observability/ai-tracing/exporters/langfuse.mdx +18 -17
- package/.docs/raw/observability/ai-tracing/exporters/langsmith.mdx +14 -14
- package/.docs/raw/observability/ai-tracing/exporters/otel.mdx +56 -46
- package/.docs/raw/observability/ai-tracing/overview.mdx +145 -122
- package/.docs/raw/observability/ai-tracing/processors/sensitive-data-filter.mdx +57 -36
- package/.docs/raw/observability/logging.mdx +14 -17
- package/.docs/raw/observability/nextjs-tracing.mdx +5 -5
- package/.docs/raw/observability/otel-tracing.mdx +17 -18
- package/.docs/raw/observability/overview.mdx +14 -10
- package/.docs/raw/rag/chunking-and-embedding.mdx +10 -8
- package/.docs/raw/rag/overview.mdx +5 -5
- package/.docs/raw/rag/retrieval.mdx +125 -107
- package/.docs/raw/rag/vector-databases.mdx +232 -223
- package/.docs/raw/reference/agents/agent.mdx +54 -41
- package/.docs/raw/reference/agents/generate.mdx +367 -261
- package/.docs/raw/reference/agents/generateLegacy.mdx +260 -178
- package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +7 -5
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +7 -5
- package/.docs/raw/reference/agents/getDescription.mdx +3 -2
- package/.docs/raw/reference/agents/getInstructions.mdx +7 -5
- package/.docs/raw/reference/agents/getLLM.mdx +11 -7
- package/.docs/raw/reference/agents/getMemory.mdx +7 -5
- package/.docs/raw/reference/agents/getModel.mdx +7 -5
- package/.docs/raw/reference/agents/getScorers.mdx +7 -5
- package/.docs/raw/reference/agents/getTools.mdx +7 -5
- package/.docs/raw/reference/agents/getVoice.mdx +7 -5
- package/.docs/raw/reference/agents/getWorkflows.mdx +7 -5
- package/.docs/raw/reference/agents/listAgents.mdx +6 -4
- package/.docs/raw/reference/agents/network.mdx +171 -116
- package/.docs/raw/reference/auth/auth0.mdx +18 -14
- package/.docs/raw/reference/auth/clerk.mdx +15 -12
- package/.docs/raw/reference/auth/firebase.mdx +23 -16
- package/.docs/raw/reference/auth/jwt.mdx +7 -6
- package/.docs/raw/reference/auth/supabase.mdx +13 -10
- package/.docs/raw/reference/auth/workos.mdx +17 -13
- package/.docs/raw/reference/cli/create-mastra.mdx +61 -44
- package/.docs/raw/reference/cli/mastra.mdx +11 -11
- package/.docs/raw/reference/client-js/agents.mdx +40 -43
- package/.docs/raw/reference/client-js/error-handling.mdx +1 -1
- package/.docs/raw/reference/client-js/logs.mdx +1 -1
- package/.docs/raw/reference/client-js/mastra-client.mdx +21 -13
- package/.docs/raw/reference/client-js/memory.mdx +6 -2
- package/.docs/raw/reference/client-js/observability.mdx +10 -9
- package/.docs/raw/reference/client-js/telemetry.mdx +1 -1
- package/.docs/raw/reference/client-js/tools.mdx +1 -1
- package/.docs/raw/reference/client-js/vectors.mdx +1 -1
- package/.docs/raw/reference/client-js/workflows-legacy.mdx +1 -1
- package/.docs/raw/reference/client-js/workflows.mdx +7 -7
- package/.docs/raw/reference/core/getAgent.mdx +6 -5
- package/.docs/raw/reference/core/getAgentById.mdx +5 -4
- package/.docs/raw/reference/core/getAgents.mdx +3 -3
- package/.docs/raw/reference/core/getDeployer.mdx +4 -3
- package/.docs/raw/reference/core/getLogger.mdx +4 -3
- package/.docs/raw/reference/core/getLogs.mdx +10 -6
- package/.docs/raw/reference/core/getLogsByRunId.mdx +8 -5
- package/.docs/raw/reference/core/getMCPServer.mdx +8 -5
- package/.docs/raw/reference/core/getMCPServers.mdx +4 -3
- package/.docs/raw/reference/core/getMemory.mdx +4 -3
- package/.docs/raw/reference/core/getScorer.mdx +15 -12
- package/.docs/raw/reference/core/getScorerByName.mdx +12 -9
- package/.docs/raw/reference/core/getScorers.mdx +3 -2
- package/.docs/raw/reference/core/getServer.mdx +4 -3
- package/.docs/raw/reference/core/getStorage.mdx +4 -3
- package/.docs/raw/reference/core/getTelemetry.mdx +4 -3
- package/.docs/raw/reference/core/getVector.mdx +6 -4
- package/.docs/raw/reference/core/getVectors.mdx +4 -3
- package/.docs/raw/reference/core/getWorkflow.mdx +7 -4
- package/.docs/raw/reference/core/getWorkflows.mdx +5 -3
- package/.docs/raw/reference/core/mastra-class.mdx +16 -16
- package/.docs/raw/reference/core/setLogger.mdx +6 -4
- package/.docs/raw/reference/core/setStorage.mdx +4 -4
- package/.docs/raw/reference/core/setTelemetry.mdx +4 -3
- package/.docs/raw/reference/deployer/cloudflare.mdx +11 -7
- package/.docs/raw/reference/deployer/deployer.mdx +2 -1
- package/.docs/raw/reference/deployer/netlify.mdx +4 -4
- package/.docs/raw/reference/deployer/vercel.mdx +6 -6
- package/.docs/raw/reference/evals/answer-relevancy.mdx +4 -5
- package/.docs/raw/reference/evals/bias.mdx +4 -5
- package/.docs/raw/reference/evals/completeness.mdx +4 -5
- package/.docs/raw/reference/evals/content-similarity.mdx +4 -5
- package/.docs/raw/reference/evals/context-position.mdx +4 -5
- package/.docs/raw/reference/evals/context-precision.mdx +4 -5
- package/.docs/raw/reference/evals/context-relevancy.mdx +4 -5
- package/.docs/raw/reference/evals/contextual-recall.mdx +4 -5
- package/.docs/raw/reference/evals/faithfulness.mdx +4 -5
- package/.docs/raw/reference/evals/hallucination.mdx +4 -6
- package/.docs/raw/reference/evals/keyword-coverage.mdx +4 -5
- package/.docs/raw/reference/evals/prompt-alignment.mdx +4 -6
- package/.docs/raw/reference/evals/summarization.mdx +4 -6
- package/.docs/raw/reference/evals/textual-difference.mdx +4 -5
- package/.docs/raw/reference/evals/tone-consistency.mdx +4 -7
- package/.docs/raw/reference/evals/toxicity.mdx +4 -5
- package/.docs/raw/reference/index.mdx +3 -3
- package/.docs/raw/reference/legacyWorkflows/after.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/afterEvent.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/commit.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/createRun.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/else.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/events.mdx +7 -7
- package/.docs/raw/reference/legacyWorkflows/execute.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/if.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/resume.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/resumeWithEvent.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/snapshots.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/start.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/step-class.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/step-condition.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/step-function.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/step-options.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/step-retries.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/suspend.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/then.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/until.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/watch.mdx +3 -3
- package/.docs/raw/reference/legacyWorkflows/while.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/workflow.mdx +7 -7
- package/.docs/raw/reference/memory/createThread.mdx +10 -10
- package/.docs/raw/reference/memory/deleteMessages.mdx +7 -5
- package/.docs/raw/reference/memory/getThreadById.mdx +6 -5
- package/.docs/raw/reference/memory/getThreadsByResourceId.mdx +11 -10
- package/.docs/raw/reference/memory/getThreadsByResourceIdPaginated.mdx +10 -9
- package/.docs/raw/reference/memory/{Memory.mdx → memory-class.mdx} +53 -46
- package/.docs/raw/reference/memory/query.mdx +39 -25
- package/.docs/raw/reference/observability/ai-tracing/ai-tracing.mdx +9 -5
- package/.docs/raw/reference/observability/ai-tracing/configuration.mdx +26 -22
- package/.docs/raw/reference/observability/ai-tracing/exporters/arize.mdx +16 -12
- package/.docs/raw/reference/observability/ai-tracing/exporters/braintrust.mdx +14 -14
- package/.docs/raw/reference/observability/ai-tracing/exporters/cloud-exporter.mdx +16 -11
- package/.docs/raw/reference/observability/ai-tracing/exporters/console-exporter.mdx +10 -6
- package/.docs/raw/reference/observability/ai-tracing/exporters/default-exporter.mdx +23 -15
- package/.docs/raw/reference/observability/ai-tracing/exporters/langfuse.mdx +6 -6
- package/.docs/raw/reference/observability/ai-tracing/exporters/langsmith.mdx +13 -13
- package/.docs/raw/reference/observability/ai-tracing/exporters/otel.mdx +44 -36
- package/.docs/raw/reference/observability/ai-tracing/interfaces.mdx +115 -106
- package/.docs/raw/reference/observability/ai-tracing/processors/sensitive-data-filter.mdx +37 -32
- package/.docs/raw/reference/observability/ai-tracing/span.mdx +29 -26
- package/.docs/raw/reference/observability/logging/pino-logger.mdx +13 -15
- package/.docs/raw/reference/observability/otel-tracing/otel-config.mdx +2 -2
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-ax.mdx +3 -3
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-phoenix.mdx +2 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/dash0.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/index.mdx +12 -14
- package/.docs/raw/reference/observability/otel-tracing/providers/keywordsai.mdx +3 -3
- package/.docs/raw/reference/observability/otel-tracing/providers/laminar.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/langfuse.mdx +4 -4
- package/.docs/raw/reference/observability/otel-tracing/providers/langsmith.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/langwatch.mdx +2 -2
- package/.docs/raw/reference/observability/otel-tracing/providers/new-relic.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/signoz.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/traceloop.mdx +1 -1
- package/.docs/raw/reference/processors/batch-parts-processor.mdx +13 -10
- package/.docs/raw/reference/processors/language-detector.mdx +27 -17
- package/.docs/raw/reference/processors/moderation-processor.mdx +26 -17
- package/.docs/raw/reference/processors/pii-detector.mdx +28 -18
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +25 -17
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +26 -17
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +22 -15
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +13 -12
- package/.docs/raw/reference/rag/chunk.mdx +41 -23
- package/.docs/raw/reference/rag/database-config.mdx +56 -38
- package/.docs/raw/reference/rag/document.mdx +1 -1
- package/.docs/raw/reference/rag/embeddings.mdx +1 -1
- package/.docs/raw/reference/rag/extract-params.mdx +1 -1
- package/.docs/raw/reference/rag/graph-rag.mdx +1 -1
- package/.docs/raw/reference/rag/metadata-filters.mdx +23 -26
- package/.docs/raw/reference/rag/rerank.mdx +1 -1
- package/.docs/raw/reference/rag/rerankWithScorer.mdx +2 -2
- package/.docs/raw/reference/scorers/answer-relevancy.mdx +35 -17
- package/.docs/raw/reference/scorers/answer-similarity.mdx +84 -68
- package/.docs/raw/reference/scorers/bias.mdx +22 -19
- package/.docs/raw/reference/scorers/completeness.mdx +21 -16
- package/.docs/raw/reference/scorers/content-similarity.mdx +12 -10
- package/.docs/raw/reference/scorers/context-precision.mdx +73 -64
- package/.docs/raw/reference/scorers/context-relevance.mdx +142 -126
- package/.docs/raw/reference/scorers/create-scorer.mdx +93 -61
- package/.docs/raw/reference/scorers/faithfulness.mdx +21 -13
- package/.docs/raw/reference/scorers/hallucination.mdx +17 -12
- package/.docs/raw/reference/scorers/keyword-coverage.mdx +32 -27
- package/.docs/raw/reference/scorers/mastra-scorer.mdx +39 -33
- package/.docs/raw/reference/scorers/noise-sensitivity.mdx +203 -152
- package/.docs/raw/reference/scorers/prompt-alignment.mdx +186 -132
- package/.docs/raw/reference/scorers/run-experiment.mdx +40 -31
- package/.docs/raw/reference/scorers/textual-difference.mdx +25 -26
- package/.docs/raw/reference/scorers/tone-consistency.mdx +29 -26
- package/.docs/raw/reference/scorers/tool-call-accuracy.mdx +180 -176
- package/.docs/raw/reference/scorers/toxicity.mdx +35 -31
- package/.docs/raw/reference/storage/cloudflare-d1.mdx +1 -1
- package/.docs/raw/reference/storage/cloudflare.mdx +1 -1
- package/.docs/raw/reference/storage/dynamodb.mdx +1 -1
- package/.docs/raw/reference/storage/lance.mdx +1 -1
- package/.docs/raw/reference/storage/libsql.mdx +2 -2
- package/.docs/raw/reference/storage/mongodb.mdx +4 -5
- package/.docs/raw/reference/storage/mssql.mdx +5 -4
- package/.docs/raw/reference/storage/postgresql.mdx +35 -33
- package/.docs/raw/reference/storage/upstash.mdx +6 -5
- package/.docs/raw/reference/streaming/ChunkType.mdx +788 -314
- package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +265 -109
- package/.docs/raw/reference/streaming/agents/stream.mdx +375 -266
- package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +233 -162
- package/.docs/raw/reference/streaming/workflows/observeStream.mdx +4 -4
- package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +5 -5
- package/.docs/raw/reference/streaming/workflows/resumeStreamVNext.mdx +24 -20
- package/.docs/raw/reference/streaming/workflows/stream.mdx +35 -26
- package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +36 -27
- package/.docs/raw/reference/templates/overview.mdx +16 -39
- package/.docs/raw/reference/tools/client.mdx +1 -1
- package/.docs/raw/reference/tools/create-tool.mdx +45 -35
- package/.docs/raw/reference/tools/document-chunker-tool.mdx +2 -2
- package/.docs/raw/reference/tools/graph-rag-tool.mdx +12 -12
- package/.docs/raw/reference/tools/mcp-client.mdx +70 -64
- package/.docs/raw/reference/tools/mcp-server.mdx +91 -78
- package/.docs/raw/reference/tools/vector-query-tool.mdx +48 -38
- package/.docs/raw/reference/vectors/astra.mdx +1 -1
- package/.docs/raw/reference/vectors/chroma.mdx +25 -19
- package/.docs/raw/reference/vectors/couchbase.mdx +4 -4
- package/.docs/raw/reference/vectors/lance.mdx +5 -6
- package/.docs/raw/reference/vectors/libsql.mdx +1 -1
- package/.docs/raw/reference/vectors/mongodb.mdx +1 -1
- package/.docs/raw/reference/vectors/opensearch.mdx +1 -1
- package/.docs/raw/reference/vectors/pg.mdx +8 -4
- package/.docs/raw/reference/vectors/pinecone.mdx +1 -1
- package/.docs/raw/reference/vectors/qdrant.mdx +1 -1
- package/.docs/raw/reference/vectors/s3vectors.mdx +35 -27
- package/.docs/raw/reference/vectors/turbopuffer.mdx +1 -1
- package/.docs/raw/reference/vectors/upstash.mdx +33 -25
- package/.docs/raw/reference/vectors/vectorize.mdx +1 -1
- package/.docs/raw/reference/voice/azure.mdx +1 -1
- package/.docs/raw/reference/voice/cloudflare.mdx +1 -1
- package/.docs/raw/reference/voice/composite-voice.mdx +1 -1
- package/.docs/raw/reference/voice/deepgram.mdx +1 -1
- package/.docs/raw/reference/voice/elevenlabs.mdx +1 -1
- package/.docs/raw/reference/voice/google-gemini-live.mdx +6 -4
- package/.docs/raw/reference/voice/google.mdx +1 -1
- package/.docs/raw/reference/voice/mastra-voice.mdx +1 -1
- package/.docs/raw/reference/voice/murf.mdx +1 -1
- package/.docs/raw/reference/voice/openai-realtime.mdx +1 -1
- package/.docs/raw/reference/voice/openai.mdx +1 -1
- package/.docs/raw/reference/voice/playai.mdx +1 -1
- package/.docs/raw/reference/voice/sarvam.mdx +1 -1
- package/.docs/raw/reference/voice/speechify.mdx +1 -1
- package/.docs/raw/reference/voice/voice.addInstructions.mdx +1 -1
- package/.docs/raw/reference/voice/voice.addTools.mdx +1 -1
- package/.docs/raw/reference/voice/voice.answer.mdx +1 -1
- package/.docs/raw/reference/voice/voice.close.mdx +1 -1
- package/.docs/raw/reference/voice/voice.connect.mdx +1 -1
- package/.docs/raw/reference/voice/voice.events.mdx +1 -1
- package/.docs/raw/reference/voice/voice.getSpeakers.mdx +23 -30
- package/.docs/raw/reference/voice/voice.listen.mdx +1 -1
- package/.docs/raw/reference/voice/voice.off.mdx +1 -1
- package/.docs/raw/reference/voice/voice.on.mdx +1 -1
- package/.docs/raw/reference/voice/voice.send.mdx +1 -1
- package/.docs/raw/reference/voice/voice.speak.mdx +1 -1
- package/.docs/raw/reference/voice/voice.updateConfig.mdx +1 -1
- package/.docs/raw/reference/workflows/run-methods/cancel.mdx +4 -3
- package/.docs/raw/reference/workflows/run-methods/resume.mdx +49 -34
- package/.docs/raw/reference/workflows/run-methods/start.mdx +43 -31
- package/.docs/raw/reference/workflows/run-methods/watch.mdx +7 -8
- package/.docs/raw/reference/workflows/run.mdx +7 -10
- package/.docs/raw/reference/workflows/step.mdx +15 -12
- package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +7 -7
- package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/map.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +5 -5
- package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +3 -3
- package/.docs/raw/reference/workflows/workflow.mdx +13 -10
- package/.docs/raw/scorers/custom-scorers.mdx +58 -48
- package/.docs/raw/scorers/evals-old-api/custom-eval.mdx +6 -8
- package/.docs/raw/scorers/evals-old-api/overview.mdx +8 -8
- package/.docs/raw/scorers/evals-old-api/running-in-ci.mdx +9 -9
- package/.docs/raw/scorers/evals-old-api/textual-evals.mdx +5 -5
- package/.docs/raw/scorers/off-the-shelf-scorers.mdx +3 -1
- package/.docs/raw/scorers/overview.mdx +20 -19
- package/.docs/raw/server-db/custom-api-routes.mdx +8 -8
- package/.docs/raw/server-db/mastra-client.mdx +56 -54
- package/.docs/raw/server-db/middleware.mdx +11 -7
- package/.docs/raw/server-db/production-server.mdx +5 -7
- package/.docs/raw/server-db/runtime-context.mdx +41 -38
- package/.docs/raw/server-db/storage.mdx +82 -87
- package/.docs/raw/streaming/events.mdx +24 -16
- package/.docs/raw/streaming/overview.mdx +17 -18
- package/.docs/raw/streaming/tool-streaming.mdx +9 -10
- package/.docs/raw/streaming/workflow-streaming.mdx +14 -12
- package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -2
- package/.docs/raw/tools-mcp/mcp-overview.mdx +92 -102
- package/.docs/raw/tools-mcp/overview.mdx +9 -14
- package/.docs/raw/voice/overview.mdx +273 -250
- package/.docs/raw/voice/speech-to-speech.mdx +14 -12
- package/.docs/raw/voice/speech-to-text.mdx +2 -2
- package/.docs/raw/voice/text-to-speech.mdx +2 -2
- package/.docs/raw/workflows/agents-and-tools.mdx +29 -28
- package/.docs/raw/workflows/control-flow.mdx +24 -24
- package/.docs/raw/workflows/error-handling.mdx +15 -17
- package/.docs/raw/workflows/human-in-the-loop.mdx +39 -39
- package/.docs/raw/workflows/inngest-workflow.mdx +33 -29
- package/.docs/raw/workflows/input-data-mapping.mdx +9 -9
- package/.docs/raw/workflows/overview.mdx +60 -60
- package/.docs/raw/workflows/snapshots.mdx +54 -36
- package/.docs/raw/workflows/suspend-and-resume.mdx +52 -57
- package/.docs/raw/workflows-legacy/control-flow.mdx +15 -17
- package/.docs/raw/workflows-legacy/dynamic-workflows.mdx +3 -1
- package/.docs/raw/workflows-legacy/error-handling.mdx +8 -6
- package/.docs/raw/workflows-legacy/nested-workflows.mdx +6 -0
- package/.docs/raw/workflows-legacy/overview.mdx +28 -26
- package/.docs/raw/workflows-legacy/runtime-variables.mdx +4 -2
- package/.docs/raw/workflows-legacy/steps.mdx +5 -3
- package/.docs/raw/workflows-legacy/suspend-and-resume.mdx +10 -8
- package/.docs/raw/workflows-legacy/variables.mdx +10 -8
- package/CHANGELOG.md +14 -0
- package/package.json +5 -5
- package/.docs/raw/memory/storage/memory-with-mongodb.mdx +0 -148
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Speech-to-Speech Capabilities in Mastra | Mastra Docs
|
|
2
|
+
title: "Speech-to-Speech Capabilities in Mastra | Voice | Mastra Docs"
|
|
3
3
|
description: Overview of speech-to-speech capabilities in Mastra, including real-time interactions and event-driven architecture.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -7,7 +7,7 @@ description: Overview of speech-to-speech capabilities in Mastra, including real
|
|
|
7
7
|
|
|
8
8
|
## Introduction
|
|
9
9
|
|
|
10
|
-
Speech-to-Speech (STS) in Mastra provides a standardized interface for real-time interactions across multiple providers.
|
|
10
|
+
Speech-to-Speech (STS) in Mastra provides a standardized interface for real-time interactions across multiple providers.
|
|
11
11
|
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.
|
|
12
12
|
|
|
13
13
|
## Configuration
|
|
@@ -57,7 +57,7 @@ const micStream = getMicrophoneStream();
|
|
|
57
57
|
await agent.voice.send(micStream);
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
For integrating Speech-to-Speech capabilities with agents, refer to the [Adding Voice to Agents](
|
|
60
|
+
For integrating Speech-to-Speech capabilities with agents, refer to the [Adding Voice to Agents](/docs/agents/adding-voice) documentation.
|
|
61
61
|
|
|
62
62
|
## Google Gemini Live (Realtime)
|
|
63
63
|
|
|
@@ -67,18 +67,19 @@ import { GeminiLiveVoice } from "@mastra/voice-google-gemini-live";
|
|
|
67
67
|
import { playAudio, getMicrophoneStream } from "@mastra/node-audio";
|
|
68
68
|
|
|
69
69
|
const agent = new Agent({
|
|
70
|
-
name:
|
|
71
|
-
instructions:
|
|
70
|
+
name: "Agent",
|
|
71
|
+
instructions:
|
|
72
|
+
"You are a helpful assistant with real-time voice capabilities.",
|
|
72
73
|
// Model used for text generation; voice provider handles realtime audio
|
|
73
74
|
model: openai("gpt-4o"),
|
|
74
75
|
voice: new GeminiLiveVoice({
|
|
75
76
|
apiKey: process.env.GOOGLE_API_KEY,
|
|
76
|
-
model:
|
|
77
|
-
speaker:
|
|
77
|
+
model: "gemini-2.0-flash-exp",
|
|
78
|
+
speaker: "Puck",
|
|
78
79
|
debug: true,
|
|
79
80
|
// Vertex AI option:
|
|
80
|
-
// vertexAI: true,
|
|
81
|
-
// project: 'your-gcp-project',
|
|
81
|
+
// vertexAI: true,
|
|
82
|
+
// project: 'your-gcp-project',
|
|
82
83
|
// location: 'us-central1',
|
|
83
84
|
// serviceAccountKeyFile: '/path/to/service-account.json',
|
|
84
85
|
}),
|
|
@@ -86,20 +87,21 @@ const agent = new Agent({
|
|
|
86
87
|
|
|
87
88
|
await agent.voice.connect();
|
|
88
89
|
|
|
89
|
-
agent.voice.on(
|
|
90
|
+
agent.voice.on("speaker", ({ audio }) => {
|
|
90
91
|
playAudio(audio);
|
|
91
92
|
});
|
|
92
93
|
|
|
93
|
-
agent.voice.on(
|
|
94
|
+
agent.voice.on("writing", ({ role, text }) => {
|
|
94
95
|
console.log(`${role}: ${text}`);
|
|
95
96
|
});
|
|
96
97
|
|
|
97
|
-
await agent.voice.speak(
|
|
98
|
+
await agent.voice.speak("How can I help you today?");
|
|
98
99
|
|
|
99
100
|
const micStream = getMicrophoneStream();
|
|
100
101
|
await agent.voice.send(micStream);
|
|
101
102
|
```
|
|
102
103
|
|
|
103
104
|
Note:
|
|
105
|
+
|
|
104
106
|
- Live API requires `GOOGLE_API_KEY`. Vertex AI requires project/location and service account credentials.
|
|
105
107
|
- Events: `speaker` (audio stream), `writing` (text), `turnComplete`, `usage`, and `error`.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Speech-to-Text (STT)
|
|
2
|
+
title: "Speech-to-Text (STT) | Voice | Mastra Docs"
|
|
3
3
|
description: Overview of Speech-to-Text capabilities in Mastra, including configuration, usage, and integration with voice providers.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -83,4 +83,4 @@ const { text } = await agent.generate(
|
|
|
83
83
|
console.log(`Recommendation: ${text}`);
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
-
Check out the [Adding Voice to Agents](
|
|
86
|
+
Check out the [Adding Voice to Agents](/docs/agents/adding-voice) documentation to learn how to use STT in an agent.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Text-to-Speech (TTS)
|
|
2
|
+
title: "Text-to-Speech (TTS) | Voice | Mastra Docs"
|
|
3
3
|
description: Overview of Text-to-Speech capabilities in Mastra, including configuration, usage, and integration with voice providers.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -87,4 +87,4 @@ const readableStream = await voice.speak(text, {
|
|
|
87
87
|
});
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
-
Check out the [Adding Voice to Agents](
|
|
90
|
+
Check out the [Adding Voice to Agents](/docs/agents/adding-voice) documentation to learn how to use TTS in an agent.
|
|
@@ -15,36 +15,39 @@ Use agents in workflow steps when you need reasoning, language generation, or ot
|
|
|
15
15
|
|
|
16
16
|
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.
|
|
17
17
|
|
|
18
|
-
```typescript {7-12}
|
|
18
|
+
```typescript {7-12} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
19
19
|
const step1 = createStep({
|
|
20
20
|
// ...
|
|
21
21
|
execute: async ({ inputData, mastra }) => {
|
|
22
22
|
const { message } = inputData;
|
|
23
23
|
|
|
24
24
|
const testAgent = mastra.getAgent("testAgent");
|
|
25
|
-
const response = await testAgent.generate(
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
const response = await testAgent.generate(
|
|
26
|
+
`Convert this message into bullet points: ${message}`,
|
|
27
|
+
{
|
|
28
|
+
memory: {
|
|
29
|
+
thread: "user-123",
|
|
30
|
+
resource: "test-123",
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
);
|
|
31
34
|
|
|
32
35
|
return {
|
|
33
|
-
list: response.text
|
|
36
|
+
list: response.text,
|
|
34
37
|
};
|
|
35
|
-
}
|
|
38
|
+
},
|
|
36
39
|
});
|
|
37
40
|
```
|
|
38
41
|
|
|
39
|
-
> See [Calling Agents](
|
|
42
|
+
> See [Calling Agents](/examples/agents/calling-agents) for more examples.
|
|
40
43
|
|
|
41
44
|
### Agents as steps
|
|
42
45
|
|
|
43
46
|
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.
|
|
44
47
|
|
|
45
|
-

|
|
46
49
|
|
|
47
|
-
```typescript {1,3,8-13}
|
|
50
|
+
```typescript {1,3,8-13} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
48
51
|
import { testAgent } from "../agents/test-agent";
|
|
49
52
|
|
|
50
53
|
const step1 = createStep(testAgent);
|
|
@@ -55,7 +58,7 @@ export const testWorkflow = createWorkflow({
|
|
|
55
58
|
.map(async ({ inputData }) => {
|
|
56
59
|
const { message } = inputData;
|
|
57
60
|
return {
|
|
58
|
-
prompt: `Convert this message into bullet points: ${message}
|
|
61
|
+
prompt: `Convert this message into bullet points: ${message}`,
|
|
59
62
|
};
|
|
60
63
|
})
|
|
61
64
|
.then(step1)
|
|
@@ -63,7 +66,7 @@ export const testWorkflow = createWorkflow({
|
|
|
63
66
|
.commit();
|
|
64
67
|
```
|
|
65
68
|
|
|
66
|
-
|
|
69
|
+
> See [Input Data Mapping](./input-data-mapping) for more information.
|
|
67
70
|
|
|
68
71
|
Mastra agents use a default schema that expects a `prompt` string as input and returns a `text` string as output:
|
|
69
72
|
|
|
@@ -78,7 +81,6 @@ Mastra agents use a default schema that expects a `prompt` string as input and r
|
|
|
78
81
|
}
|
|
79
82
|
```
|
|
80
83
|
|
|
81
|
-
|
|
82
84
|
## Using tools in workflows
|
|
83
85
|
|
|
84
86
|
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.
|
|
@@ -87,7 +89,7 @@ Use tools in workflow steps to leverage existing tool logic. Call from a step's
|
|
|
87
89
|
|
|
88
90
|
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.
|
|
89
91
|
|
|
90
|
-
```typescript {8-13,16}
|
|
92
|
+
```typescript {8-13,16} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
91
93
|
import { testTool } from "../tools/test-tool";
|
|
92
94
|
|
|
93
95
|
const step2 = createStep({
|
|
@@ -97,27 +99,27 @@ const step2 = createStep({
|
|
|
97
99
|
|
|
98
100
|
const response = await testTool.execute({
|
|
99
101
|
context: {
|
|
100
|
-
text: formatted
|
|
102
|
+
text: formatted,
|
|
101
103
|
},
|
|
102
|
-
runtimeContext
|
|
104
|
+
runtimeContext,
|
|
103
105
|
});
|
|
104
106
|
|
|
105
107
|
return {
|
|
106
|
-
emphasized: response.emphasized
|
|
108
|
+
emphasized: response.emphasized,
|
|
107
109
|
};
|
|
108
|
-
}
|
|
110
|
+
},
|
|
109
111
|
});
|
|
110
112
|
```
|
|
111
113
|
|
|
112
|
-
> See [Calling Tools](
|
|
114
|
+
> See [Calling Tools](/examples/workflows_legacy/using-a-tool-as-a-step) for more examples.
|
|
113
115
|
|
|
114
116
|
### Tools as steps
|
|
115
117
|
|
|
116
118
|
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.
|
|
117
119
|
|
|
118
|
-

|
|
119
121
|
|
|
120
|
-
```typescript {1,3,9-14}
|
|
122
|
+
```typescript {1,3,9-14} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
121
123
|
import { testTool } from "../tools/test-tool";
|
|
122
124
|
|
|
123
125
|
const step2 = createStep(testTool);
|
|
@@ -129,17 +131,16 @@ export const testWorkflow = createWorkflow({
|
|
|
129
131
|
.map(async ({ inputData }) => {
|
|
130
132
|
const { formatted } = inputData;
|
|
131
133
|
return {
|
|
132
|
-
text: formatted
|
|
134
|
+
text: formatted,
|
|
133
135
|
};
|
|
134
136
|
})
|
|
135
137
|
.then(step2)
|
|
136
138
|
.commit();
|
|
137
139
|
```
|
|
138
140
|
|
|
139
|
-
> See [Input Data Mapping](./input-data-mapping
|
|
141
|
+
> See [Input Data Mapping](./input-data-mapping) for more information.
|
|
140
142
|
|
|
141
143
|
## Related
|
|
142
144
|
|
|
143
|
-
- [Using Agents](
|
|
144
|
-
- [Using Tools](../tools-mcp/overview
|
|
145
|
-
|
|
145
|
+
- [Using Agents](/docs/agents/overview)
|
|
146
|
+
- [Using Tools](../tools-mcp/overview)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "
|
|
2
|
+
title: "Control Flow | Workflows | Mastra Docs"
|
|
3
3
|
description: "Control flow in Mastra workflows allows you to manage branching, merging, and conditions to construct workflows that meet your logic requirements."
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -8,15 +8,15 @@ description: "Control flow in Mastra workflows allows you to manage branching, m
|
|
|
8
8
|
When you build a workflow, you typically break down operations into smaller tasks that can be linked and reused. **Steps** provide a structured way to manage these tasks by defining inputs, outputs, and execution logic.
|
|
9
9
|
|
|
10
10
|
- If the schemas match, the `outputSchema` from each step is automatically passed to the `inputSchema` of the next step.
|
|
11
|
-
- If the schemas don't match, use [Input data mapping](./input-data-mapping
|
|
11
|
+
- If the schemas don't match, use [Input data mapping](./input-data-mapping) to transform the `outputSchema` into the expected `inputSchema`.
|
|
12
12
|
|
|
13
13
|
## Chaining steps with `.then()`
|
|
14
14
|
|
|
15
15
|
Chain steps to execute sequentially using `.then()`:
|
|
16
16
|
|
|
17
|
-
](/img/workflows/workflows-control-flow-then.jpg)
|
|
18
18
|
|
|
19
|
-
```typescript {8-9,4-5}
|
|
19
|
+
```typescript {8-9,4-5} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
20
20
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
21
21
|
import { z } from "zod";
|
|
22
22
|
|
|
@@ -35,9 +35,9 @@ This does what you'd expect: it executes `step1`, then it executes `step2`.
|
|
|
35
35
|
|
|
36
36
|
Execute steps simultaneously using `.parallel()`:
|
|
37
37
|
|
|
38
|
-
](/img/workflows/workflows-control-flow-parallel.jpg)
|
|
39
39
|
|
|
40
|
-
```typescript {9,4-5}
|
|
40
|
+
```typescript {9,4-5} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
41
41
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
42
42
|
import { z } from "zod";
|
|
43
43
|
|
|
@@ -53,7 +53,7 @@ export const testWorkflow = createWorkflow({...})
|
|
|
53
53
|
|
|
54
54
|
This executes `step1` and `step2` concurrently, then continues to `step3` after both complete.
|
|
55
55
|
|
|
56
|
-
> See [Parallel Execution with Steps](
|
|
56
|
+
> See [Parallel Execution with Steps](/examples/workflows_legacy/parallel-steps) for more information.
|
|
57
57
|
|
|
58
58
|
> 📹 Watch: How to run steps in parallel and optimize your Mastra workflow → [YouTube (3 minutes)](https://youtu.be/GQJxve5Hki4)
|
|
59
59
|
|
|
@@ -61,9 +61,9 @@ This executes `step1` and `step2` concurrently, then continues to `step3` after
|
|
|
61
61
|
|
|
62
62
|
Execute steps conditionally using `.branch()`:
|
|
63
63
|
|
|
64
|
-
](/img/workflows/workflows-control-flow-branch.jpg)
|
|
65
65
|
|
|
66
|
-
```typescript {8-11,4-5}
|
|
66
|
+
```typescript {8-11,4-5} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
67
67
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
68
68
|
import { z } from "zod";
|
|
69
69
|
|
|
@@ -80,7 +80,7 @@ export const testWorkflow = createWorkflow({...})
|
|
|
80
80
|
|
|
81
81
|
Branch conditions are evaluated sequentially, but steps with matching conditions are executed in parallel.
|
|
82
82
|
|
|
83
|
-
> See [Workflow with Conditional Branching](
|
|
83
|
+
> See [Workflow with Conditional Branching](/examples/workflows_legacy/conditional-branching) for more information.
|
|
84
84
|
|
|
85
85
|
## Looping steps
|
|
86
86
|
|
|
@@ -95,9 +95,9 @@ To ensure compatibility, the loop’s initial input must either match the shape
|
|
|
95
95
|
|
|
96
96
|
Executes step repeatedly while a condition is true.
|
|
97
97
|
|
|
98
|
-
](/img/workflows/workflows-control-flow-dowhile.jpg)
|
|
99
99
|
|
|
100
|
-
```typescript {7}
|
|
100
|
+
```typescript {7} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
101
101
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
102
102
|
import { z } from "zod";
|
|
103
103
|
|
|
@@ -112,9 +112,9 @@ export const testWorkflow = createWorkflow({...})
|
|
|
112
112
|
|
|
113
113
|
Executes step repeatedly until a condition becomes true.
|
|
114
114
|
|
|
115
|
-
](/img/workflows/workflows-control-flow-dountil.jpg)
|
|
116
116
|
|
|
117
|
-
```typescript {7}
|
|
117
|
+
```typescript {7} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
118
118
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
119
119
|
import { z } from "zod";
|
|
120
120
|
|
|
@@ -133,7 +133,7 @@ Loop conditions can be implemented in different ways depending on how you want t
|
|
|
133
133
|
|
|
134
134
|
The `inputData` for a loop step is the output of a previous step. Use the values in `inputData` to determine whether the loop should continue or stop.
|
|
135
135
|
|
|
136
|
-
```typescript {7}
|
|
136
|
+
```typescript {7} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
137
137
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
138
138
|
import { z } from "zod";
|
|
139
139
|
|
|
@@ -148,7 +148,7 @@ export const testWorkflow = createWorkflow({...})
|
|
|
148
148
|
|
|
149
149
|
The `iterationCount` tracks how many times the loop step has run. You can use this to limit the number of iterations and prevent infinite loops. Combine it with `inputData` values to stop the loop after a set number of attempts.
|
|
150
150
|
|
|
151
|
-
```typescript {7}
|
|
151
|
+
```typescript {7} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
152
152
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
153
153
|
import { z } from "zod";
|
|
154
154
|
|
|
@@ -163,7 +163,7 @@ export const testWorkflow = createWorkflow({...})
|
|
|
163
163
|
|
|
164
164
|
Use `iterationCount` to limit how many times a loop runs. If the count exceeds your threshold, throw an error to fail the step and stop the workflow.
|
|
165
165
|
|
|
166
|
-
```typescript {7}
|
|
166
|
+
```typescript {7} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
167
167
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
168
168
|
import { z } from "zod";
|
|
169
169
|
|
|
@@ -183,9 +183,9 @@ export const testWorkflow = createWorkflow({...})
|
|
|
183
183
|
|
|
184
184
|
Sequentially executes the same step for each item from the `inputSchema`.
|
|
185
185
|
|
|
186
|
-
](/img/workflows/workflows-control-flow-foreach.jpg)
|
|
187
187
|
|
|
188
|
-
```typescript {7}
|
|
188
|
+
```typescript {7} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
189
189
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
190
190
|
import { z } from "zod";
|
|
191
191
|
|
|
@@ -200,7 +200,7 @@ export const testWorkflow = createWorkflow({...})
|
|
|
200
200
|
|
|
201
201
|
Use `concurrency` to execute steps in parallel with a limit on the number of concurrent executions.
|
|
202
202
|
|
|
203
|
-
```typescript {7}
|
|
203
|
+
```typescript {7} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
204
204
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
205
205
|
import { z } from "zod";
|
|
206
206
|
|
|
@@ -215,7 +215,7 @@ export const testWorkflow = createWorkflow({...})
|
|
|
215
215
|
|
|
216
216
|
Use a nested workflow as a step by passing it to `.then()`. This runs each of its steps in sequence as part of the parent workflow.
|
|
217
217
|
|
|
218
|
-
```typescript {4,7}
|
|
218
|
+
```typescript {4,7} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
219
219
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
220
220
|
import { z } from "zod";
|
|
221
221
|
|
|
@@ -230,7 +230,7 @@ export const testWorkflow = createWorkflow({...})
|
|
|
230
230
|
|
|
231
231
|
Use `cloneWorkflow` to duplicate an existing workflow. This lets you reuse its structure while overriding parameters like `id`.
|
|
232
232
|
|
|
233
|
-
```typescript {6,10}
|
|
233
|
+
```typescript {6,10} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
234
234
|
import { createWorkflow, createStep, cloneWorkflow } from "@mastra/core/workflows";
|
|
235
235
|
import { z } from "zod";
|
|
236
236
|
|
|
@@ -248,13 +248,13 @@ export const testWorkflow = createWorkflow({...})
|
|
|
248
248
|
|
|
249
249
|
The following example demonstrates how to start a run with multiple inputs. Each input will pass through the `mapStep` sequentially.
|
|
250
250
|
|
|
251
|
-
```typescript {6}
|
|
251
|
+
```typescript {6} title="src/test-workflow.ts" showLineNumbers copy
|
|
252
252
|
import { mastra } from "./mastra";
|
|
253
253
|
|
|
254
254
|
const run = await mastra.getWorkflow("testWorkflow").createRunAsync();
|
|
255
255
|
|
|
256
256
|
const result = await run.start({
|
|
257
|
-
inputData: [{ number: 10 }, { number: 100 }, { number: 200 }]
|
|
257
|
+
inputData: [{ number: 10 }, { number: 100 }, { number: 200 }],
|
|
258
258
|
});
|
|
259
259
|
```
|
|
260
260
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "Error Handling
|
|
2
|
+
title: "Error Handling | Workflows | Mastra Docs"
|
|
3
3
|
description: "Learn how to handle errors in Mastra workflows using step retries, conditional branching, and monitoring."
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -11,7 +11,7 @@ Mastra provides a built-in retry mechanism for workflows or steps that fail due
|
|
|
11
11
|
|
|
12
12
|
You can configure retries at the workflow level, which applies to all steps in the workflow:
|
|
13
13
|
|
|
14
|
-
```typescript {8-11}
|
|
14
|
+
```typescript {8-11} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
15
15
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
16
16
|
import { z } from "zod";
|
|
17
17
|
|
|
@@ -32,7 +32,7 @@ export const testWorkflow = createWorkflow({
|
|
|
32
32
|
|
|
33
33
|
You can configure retries for individual steps using the `retries` property. This overrides the workflow-level retry configuration for that specific step:
|
|
34
34
|
|
|
35
|
-
```typescript {17}
|
|
35
|
+
```typescript {17} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
36
36
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
37
37
|
import { z } from "zod";
|
|
38
38
|
|
|
@@ -57,7 +57,7 @@ const step1 = createStep({
|
|
|
57
57
|
|
|
58
58
|
You can create alternative workflow paths based on the success or failure of previous steps using conditional logic:
|
|
59
59
|
|
|
60
|
-
```typescript {15,19,33-34}
|
|
60
|
+
```typescript {15,19,33-34} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
61
61
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
62
62
|
import { z } from "zod";
|
|
63
63
|
|
|
@@ -100,7 +100,7 @@ export const testWorkflow = createWorkflow({
|
|
|
100
100
|
|
|
101
101
|
Use `getStepResult()` to inspect a previous step’s results.
|
|
102
102
|
|
|
103
|
-
```typescript {10}
|
|
103
|
+
```typescript {10} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
104
104
|
import { createStep } from "@mastra/core/workflows";
|
|
105
105
|
import { z } from "zod";
|
|
106
106
|
|
|
@@ -123,7 +123,7 @@ const step2 = createStep({
|
|
|
123
123
|
|
|
124
124
|
Use `bail()` in a step to exit early with a successful result. This returns the provided payload as the step output and ends workflow execution.
|
|
125
125
|
|
|
126
|
-
```typescript {7}
|
|
126
|
+
```typescript {7} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
127
127
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
128
128
|
import { z } from "zod";
|
|
129
129
|
|
|
@@ -145,7 +145,7 @@ export const testWorkflow = createWorkflow({...})
|
|
|
145
145
|
|
|
146
146
|
Use `throw new Error()` in a step to exit with an error.
|
|
147
147
|
|
|
148
|
-
```typescript {7}
|
|
148
|
+
```typescript {7} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
149
149
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
150
150
|
import { z } from "zod";
|
|
151
151
|
|
|
@@ -167,7 +167,7 @@ export const testWorkflow = createWorkflow({...})
|
|
|
167
167
|
|
|
168
168
|
You can monitor workflows for errors using the `watch` method:
|
|
169
169
|
|
|
170
|
-
```typescript {11}
|
|
170
|
+
```typescript {11} title="src/test-workflow.ts" showLineNumbers copy
|
|
171
171
|
import { mastra } from "../src/mastra";
|
|
172
172
|
|
|
173
173
|
const workflow = mastra.getWorkflow("testWorkflow");
|
|
@@ -175,19 +175,18 @@ const run = await workflow.createRunAsync();
|
|
|
175
175
|
|
|
176
176
|
run.watch((event) => {
|
|
177
177
|
const {
|
|
178
|
-
payload: { currentStep }
|
|
178
|
+
payload: { currentStep },
|
|
179
179
|
} = event;
|
|
180
180
|
|
|
181
181
|
console.log(currentStep?.payload?.status);
|
|
182
182
|
});
|
|
183
|
-
|
|
184
183
|
```
|
|
185
184
|
|
|
186
185
|
## Monitor errors with `stream()`
|
|
187
186
|
|
|
188
187
|
You can monitor workflows for errors using `stream`:
|
|
189
188
|
|
|
190
|
-
```typescript {11}
|
|
189
|
+
```typescript {11} title="src/test-workflow.ts" showLineNumbers copy
|
|
191
190
|
import { mastra } from "../src/mastra";
|
|
192
191
|
|
|
193
192
|
const workflow = mastra.getWorkflow("testWorkflow");
|
|
@@ -196,18 +195,17 @@ const run = await workflow.createRunAsync();
|
|
|
196
195
|
|
|
197
196
|
const stream = await run.stream({
|
|
198
197
|
inputData: {
|
|
199
|
-
value: "initial data"
|
|
200
|
-
}
|
|
198
|
+
value: "initial data",
|
|
199
|
+
},
|
|
201
200
|
});
|
|
202
201
|
|
|
203
202
|
for await (const chunk of stream.stream) {
|
|
204
203
|
console.log(chunk.payload.output.stats);
|
|
205
204
|
}
|
|
206
|
-
|
|
207
205
|
```
|
|
208
206
|
|
|
209
207
|
## Related
|
|
210
208
|
|
|
211
|
-
- [Control Flow](./control-flow
|
|
212
|
-
- [Conditional Branching](./control-flow
|
|
213
|
-
- [Running Workflows](
|
|
209
|
+
- [Control Flow](./control-flow)
|
|
210
|
+
- [Conditional Branching](./control-flow#conditional-logic-with-branch)
|
|
211
|
+
- [Running Workflows](/examples/workflows_legacy/creating-a-workflow)
|