@mastra/mcp-docs-server 1.0.0-beta.2 → 1.0.0-beta.3
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/%40mastra%2Fagent-builder.md +9 -9
- package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +26 -26
- package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fcodemod.md +6 -0
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +163 -163
- package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +12 -12
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +26 -26
- package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +14 -14
- package/.docs/organized/changelogs/%40mastra%2Fevals.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Flance.md +14 -14
- package/.docs/organized/changelogs/%40mastra%2Flibsql.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Floggers.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fmcp.md +12 -12
- package/.docs/organized/changelogs/%40mastra%2Fmemory.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fmssql.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fpg.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +34 -34
- package/.docs/organized/changelogs/%40mastra%2Frag.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Freact.md +8 -8
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fupstash.md +14 -14
- package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +12 -12
- package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +10 -10
- package/.docs/organized/changelogs/create-mastra.md +15 -15
- package/.docs/organized/changelogs/mastra.md +37 -37
- package/.docs/organized/code-examples/ai-elements.md +1 -1
- package/.docs/organized/code-examples/ai-sdk-useChat.md +1 -1
- package/.docs/organized/code-examples/ai-sdk-v5.md +1 -1
- package/.docs/organized/code-examples/assistant-ui.md +1 -1
- package/.docs/organized/code-examples/bird-checker-with-express.md +1 -1
- package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +1 -1
- package/.docs/organized/code-examples/bird-checker-with-nextjs.md +1 -1
- package/.docs/organized/code-examples/client-side-tools.md +1 -1
- package/.docs/organized/code-examples/crypto-chatbot.md +1 -1
- package/.docs/organized/code-examples/fireworks-r1.md +1 -1
- package/.docs/organized/code-examples/heads-up-game.md +1 -1
- package/.docs/organized/code-examples/mcp-configuration.md +0 -3
- package/.docs/organized/code-examples/memory-per-resource-example.md +1 -1
- package/.docs/organized/code-examples/openapi-spec-writer.md +1 -1
- package/.docs/organized/code-examples/quick-start.md +1 -1
- package/.docs/organized/code-examples/stock-price-tool.md +1 -21
- package/.docs/organized/code-examples/workflow-ai-recruiter.md +1 -1
- package/.docs/organized/code-examples/workflow-with-inline-steps.md +1 -1
- package/.docs/organized/code-examples/workflow-with-memory.md +1 -1
- package/.docs/organized/code-examples/workflow-with-separate-steps.md +1 -1
- package/.docs/organized/code-examples/workflow-with-suspend-resume.md +1 -1
- package/.docs/raw/agents/adding-voice.mdx +1 -1
- package/.docs/raw/agents/agent-memory.mdx +1 -1
- package/.docs/raw/agents/guardrails.mdx +1 -1
- package/.docs/raw/agents/human-in-the-loop-with-tools.mdx +90 -0
- package/.docs/raw/agents/networks.mdx +1 -1
- package/.docs/raw/agents/overview.mdx +8 -13
- package/.docs/raw/agents/using-tools.mdx +10 -9
- package/.docs/raw/auth/auth0.mdx +1 -1
- package/.docs/raw/auth/clerk.mdx +1 -1
- package/.docs/raw/auth/firebase.mdx +1 -1
- package/.docs/raw/auth/index.mdx +1 -1
- package/.docs/raw/auth/jwt.mdx +1 -1
- package/.docs/raw/auth/supabase.mdx +1 -1
- package/.docs/raw/auth/workos.mdx +1 -1
- package/.docs/raw/community/contributing-templates.mdx +1 -1
- package/.docs/raw/community/discord.mdx +2 -2
- package/.docs/raw/community/licensing.mdx +1 -1
- package/.docs/raw/deployment/{server-deployment.mdx → building-mastra.mdx} +4 -4
- package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +2 -2
- package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +3 -3
- package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +2 -2
- package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/cloudflare-deployer.mdx +1 -1
- package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +2 -2
- package/.docs/raw/deployment/cloud-providers/index.mdx +8 -4
- package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/netlify-deployer.mdx +1 -1
- package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/vercel-deployer.mdx +1 -1
- package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/dashboard.mdx +3 -3
- package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/observability.mdx +2 -2
- package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/overview.mdx +3 -3
- package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/setting-up.mdx +4 -4
- package/.docs/raw/deployment/monorepo.mdx +3 -3
- package/.docs/raw/deployment/overview.mdx +5 -5
- package/.docs/raw/deployment/web-framework.mdx +1 -1
- package/.docs/raw/evals/{off-the-shelf-scorers.mdx → built-in-scorers.mdx} +17 -15
- package/.docs/raw/evals/custom-scorers.mdx +1 -1
- package/.docs/raw/evals/overview.mdx +3 -3
- package/.docs/raw/evals/running-in-ci.mdx +2 -2
- package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +11 -128
- package/.docs/raw/frameworks/agentic-uis/assistant-ui.mdx +71 -19
- package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +8 -29
- package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +91 -267
- package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +3 -3
- package/.docs/raw/frameworks/servers/express.mdx +1 -1
- package/.docs/raw/frameworks/web-frameworks/astro.mdx +1 -1
- package/.docs/raw/frameworks/web-frameworks/next-js.mdx +1 -1
- package/.docs/raw/frameworks/web-frameworks/sveltekit.mdx +1 -1
- package/.docs/raw/frameworks/web-frameworks/vite-react.mdx +1 -1
- package/.docs/raw/getting-started/mcp-docs-server.mdx +6 -6
- package/.docs/raw/getting-started/project-structure.mdx +1 -1
- package/.docs/raw/getting-started/quickstart.mdx +27 -0
- package/.docs/raw/getting-started/studio.mdx +3 -3
- package/.docs/raw/getting-started/templates.mdx +1 -1
- package/.docs/raw/guides/guide/ai-recruiter.mdx +1 -1
- package/.docs/raw/guides/guide/chef-michel.mdx +1 -1
- package/.docs/raw/{getting-started/installation.mdx → guides/guide/manual-install.mdx} +6 -80
- package/.docs/raw/guides/guide/notes-mcp-server.mdx +2 -2
- package/.docs/raw/guides/guide/research-assistant.mdx +2 -2
- package/.docs/raw/guides/guide/stock-agent.mdx +1 -1
- package/.docs/raw/guides/guide/web-search.mdx +1 -1
- package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +119 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/mastra.mdx +1 -1
- package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +9 -1
- package/.docs/raw/guides/migrations/upgrade-to-v1/tools.mdx +60 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +12 -0
- package/.docs/raw/guides/quickstarts/nextjs.mdx +18 -17
- package/.docs/raw/guides/quickstarts/standalone-server.mdx +86 -0
- package/.docs/raw/index.mdx +3 -3
- package/.docs/raw/logging.mdx +7 -7
- package/.docs/raw/mcp/overview.mdx +360 -0
- package/.docs/raw/mcp/publishing-mcp-server.mdx +139 -0
- package/.docs/raw/memory/conversation-history.mdx +1 -1
- package/.docs/raw/memory/memory-processors.mdx +1 -1
- package/.docs/raw/memory/overview.mdx +1 -1
- package/.docs/raw/memory/semantic-recall.mdx +1 -1
- package/.docs/raw/memory/storage/memory-with-libsql.mdx +1 -4
- package/.docs/raw/memory/storage/memory-with-mongodb.mdx +1 -1
- package/.docs/raw/memory/storage/memory-with-pg.mdx +1 -4
- package/.docs/raw/memory/storage/memory-with-upstash.mdx +1 -4
- package/.docs/raw/memory/threads-and-resources.mdx +1 -1
- package/.docs/raw/memory/working-memory.mdx +1 -1
- package/.docs/raw/observability/overview.mdx +2 -2
- package/.docs/raw/observability/tracing/exporters/arize.mdx +1 -1
- package/.docs/raw/observability/tracing/exporters/braintrust.mdx +1 -1
- package/.docs/raw/observability/tracing/exporters/cloud.mdx +2 -2
- package/.docs/raw/observability/tracing/exporters/default.mdx +1 -1
- package/.docs/raw/observability/tracing/exporters/langfuse.mdx +1 -1
- package/.docs/raw/observability/tracing/exporters/langsmith.mdx +1 -1
- package/.docs/raw/observability/tracing/exporters/otel.mdx +1 -1
- package/.docs/raw/observability/tracing/overview.mdx +2 -2
- package/.docs/raw/observability/tracing/processors/sensitive-data-filter.mdx +2 -2
- package/.docs/raw/rag/overview.mdx +1 -1
- package/.docs/raw/rag/retrieval.mdx +1 -1
- package/.docs/raw/rag/vector-databases.mdx +1 -1
- package/.docs/raw/reference/agents/agent.mdx +1 -2
- package/.docs/raw/reference/agents/generate.mdx +1 -1
- package/.docs/raw/reference/agents/generateLegacy.mdx +1 -1
- package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +1 -1
- package/.docs/raw/reference/agents/getDefaultOptions.mdx +1 -1
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +1 -1
- package/.docs/raw/reference/agents/getDescription.mdx +1 -1
- package/.docs/raw/reference/agents/getInstructions.mdx +1 -1
- package/.docs/raw/reference/agents/getLLM.mdx +1 -1
- package/.docs/raw/reference/agents/getMemory.mdx +1 -1
- package/.docs/raw/reference/agents/getModel.mdx +1 -1
- package/.docs/raw/reference/agents/getTools.mdx +69 -0
- package/.docs/raw/reference/agents/getVoice.mdx +1 -1
- package/.docs/raw/reference/agents/listAgents.mdx +1 -1
- package/.docs/raw/reference/agents/listScorers.mdx +1 -1
- package/.docs/raw/reference/agents/listTools.mdx +2 -2
- package/.docs/raw/reference/agents/listWorkflows.mdx +1 -1
- package/.docs/raw/reference/agents/network.mdx +1 -1
- package/.docs/raw/reference/auth/auth0.mdx +1 -1
- package/.docs/raw/reference/auth/clerk.mdx +1 -1
- package/.docs/raw/reference/auth/firebase.mdx +1 -1
- package/.docs/raw/reference/auth/jwt.mdx +1 -1
- package/.docs/raw/reference/auth/supabase.mdx +1 -1
- package/.docs/raw/reference/auth/workos.mdx +1 -1
- package/.docs/raw/reference/cli/create-mastra.mdx +1 -1
- package/.docs/raw/reference/cli/mastra.mdx +4 -4
- package/.docs/raw/reference/client-js/agents.mdx +1 -1
- 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 +2 -2
- package/.docs/raw/reference/client-js/memory.mdx +1 -1
- package/.docs/raw/reference/client-js/observability.mdx +1 -1
- 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.mdx +1 -1
- package/.docs/raw/reference/core/addGateway.mdx +59 -0
- package/.docs/raw/reference/core/getAgent.mdx +1 -1
- package/.docs/raw/reference/core/getAgentById.mdx +1 -1
- package/.docs/raw/reference/core/getDeployer.mdx +1 -1
- package/.docs/raw/reference/core/getGateway.mdx +59 -0
- package/.docs/raw/reference/core/getGatewayById.mdx +62 -0
- package/.docs/raw/reference/core/getLogger.mdx +1 -1
- package/.docs/raw/reference/core/getMCPServer.mdx +2 -2
- package/.docs/raw/reference/core/getMCPServerById.mdx +2 -2
- package/.docs/raw/reference/core/getScorer.mdx +1 -1
- package/.docs/raw/reference/core/getScorerById.mdx +1 -1
- package/.docs/raw/reference/core/getServer.mdx +2 -2
- package/.docs/raw/reference/core/getStorage.mdx +1 -1
- package/.docs/raw/reference/core/getTelemetry.mdx +1 -1
- package/.docs/raw/reference/core/getVector.mdx +1 -1
- package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
- package/.docs/raw/reference/core/listAgents.mdx +1 -1
- package/.docs/raw/reference/core/listGateways.mdx +53 -0
- package/.docs/raw/reference/core/listLogs.mdx +1 -1
- package/.docs/raw/reference/core/listLogsByRunId.mdx +1 -1
- package/.docs/raw/reference/core/listMCPServers.mdx +2 -2
- package/.docs/raw/reference/core/listScorers.mdx +1 -1
- package/.docs/raw/reference/core/listVectors.mdx +1 -1
- package/.docs/raw/reference/core/listWorkflows.mdx +1 -1
- package/.docs/raw/reference/core/mastra-class.mdx +9 -1
- package/.docs/raw/reference/core/mastra-model-gateway.mdx +241 -0
- package/.docs/raw/reference/core/setLogger.mdx +1 -1
- package/.docs/raw/reference/core/setStorage.mdx +1 -1
- package/.docs/raw/reference/core/setTelemetry.mdx +1 -1
- package/.docs/raw/reference/deployer/cloudflare.mdx +1 -1
- package/.docs/raw/reference/deployer/deployer.mdx +1 -1
- package/.docs/raw/reference/deployer/netlify.mdx +1 -1
- package/.docs/raw/reference/deployer/vercel.mdx +1 -1
- package/.docs/raw/reference/evals/answer-relevancy.mdx +1 -1
- package/.docs/raw/reference/evals/answer-similarity.mdx +1 -1
- package/.docs/raw/reference/evals/bias.mdx +1 -1
- package/.docs/raw/reference/evals/completeness.mdx +1 -1
- package/.docs/raw/reference/evals/content-similarity.mdx +1 -1
- package/.docs/raw/reference/evals/context-precision.mdx +1 -1
- package/.docs/raw/reference/evals/context-relevance.mdx +1 -1
- package/.docs/raw/reference/evals/create-scorer.mdx +1 -1
- package/.docs/raw/reference/evals/faithfulness.mdx +1 -1
- package/.docs/raw/reference/evals/hallucination.mdx +1 -1
- package/.docs/raw/reference/evals/keyword-coverage.mdx +1 -1
- package/.docs/raw/reference/evals/mastra-scorer.mdx +1 -1
- package/.docs/raw/reference/evals/noise-sensitivity.mdx +1 -1
- package/.docs/raw/reference/evals/prompt-alignment.mdx +1 -1
- package/.docs/raw/reference/evals/run-evals.mdx +1 -1
- package/.docs/raw/reference/evals/textual-difference.mdx +1 -1
- package/.docs/raw/reference/evals/tone-consistency.mdx +1 -1
- package/.docs/raw/reference/evals/tool-call-accuracy.mdx +1 -1
- package/.docs/raw/reference/evals/toxicity.mdx +1 -1
- package/.docs/raw/reference/logging/pino-logger.mdx +2 -2
- package/.docs/raw/reference/memory/createThread.mdx +1 -1
- package/.docs/raw/reference/memory/deleteMessages.mdx +1 -1
- package/.docs/raw/reference/memory/getThreadById.mdx +1 -1
- package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +1 -1
- package/.docs/raw/reference/memory/memory-class.mdx +1 -1
- package/.docs/raw/reference/memory/query.mdx +1 -1
- package/.docs/raw/reference/memory/recall.mdx +1 -1
- package/.docs/raw/reference/observability/tracing/configuration.mdx +2 -2
- package/.docs/raw/reference/observability/tracing/exporters/arize.mdx +1 -1
- package/.docs/raw/reference/observability/tracing/exporters/braintrust.mdx +1 -1
- package/.docs/raw/reference/observability/tracing/exporters/cloud-exporter.mdx +1 -1
- package/.docs/raw/reference/observability/tracing/exporters/console-exporter.mdx +1 -1
- package/.docs/raw/reference/observability/tracing/exporters/default-exporter.mdx +1 -1
- package/.docs/raw/reference/observability/tracing/exporters/langfuse.mdx +1 -1
- package/.docs/raw/reference/observability/tracing/exporters/langsmith.mdx +1 -1
- package/.docs/raw/reference/observability/tracing/exporters/otel.mdx +1 -1
- package/.docs/raw/reference/observability/tracing/instances.mdx +2 -2
- package/.docs/raw/reference/observability/tracing/interfaces.mdx +2 -2
- package/.docs/raw/reference/observability/tracing/processors/sensitive-data-filter.mdx +1 -1
- package/.docs/raw/reference/observability/tracing/spans.mdx +2 -2
- package/.docs/raw/reference/processors/batch-parts-processor.mdx +1 -1
- package/.docs/raw/reference/processors/language-detector.mdx +1 -1
- package/.docs/raw/reference/processors/moderation-processor.mdx +1 -1
- package/.docs/raw/reference/processors/pii-detector.mdx +1 -1
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +1 -1
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +1 -1
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +1 -1
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +1 -1
- package/.docs/raw/reference/rag/chunk.mdx +1 -1
- package/.docs/raw/reference/rag/database-config.mdx +1 -1
- 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 +1 -1
- package/.docs/raw/reference/rag/rerank.mdx +1 -1
- package/.docs/raw/reference/rag/rerankWithScorer.mdx +1 -1
- 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 +1 -1
- package/.docs/raw/reference/storage/mongodb.mdx +1 -1
- package/.docs/raw/reference/storage/mssql.mdx +1 -1
- package/.docs/raw/reference/storage/postgresql.mdx +1 -1
- package/.docs/raw/reference/storage/upstash.mdx +1 -1
- package/.docs/raw/reference/streaming/ChunkType.mdx +1 -1
- package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +1 -1
- package/.docs/raw/reference/streaming/agents/stream.mdx +1 -1
- package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +1 -1
- package/.docs/raw/reference/streaming/workflows/observeStream.mdx +1 -1
- package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +1 -1
- package/.docs/raw/reference/streaming/workflows/resumeStreamVNext.mdx +1 -1
- package/.docs/raw/reference/streaming/workflows/stream.mdx +1 -1
- package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +1 -1
- package/.docs/raw/reference/templates/overview.mdx +1 -1
- package/.docs/raw/reference/tools/client.mdx +1 -1
- package/.docs/raw/reference/tools/create-tool.mdx +3 -4
- package/.docs/raw/reference/tools/document-chunker-tool.mdx +1 -1
- package/.docs/raw/reference/tools/graph-rag-tool.mdx +2 -2
- package/.docs/raw/reference/tools/mcp-client.mdx +1 -1
- package/.docs/raw/reference/tools/mcp-server.mdx +6 -6
- package/.docs/raw/reference/tools/vector-query-tool.mdx +2 -2
- package/.docs/raw/reference/vectors/astra.mdx +1 -1
- package/.docs/raw/reference/vectors/chroma.mdx +1 -1
- package/.docs/raw/reference/vectors/couchbase.mdx +1 -1
- package/.docs/raw/reference/vectors/lance.mdx +1 -1
- 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 +1 -1
- package/.docs/raw/reference/vectors/pinecone.mdx +22 -2
- package/.docs/raw/reference/vectors/qdrant.mdx +1 -1
- package/.docs/raw/reference/vectors/s3vectors.mdx +1 -1
- package/.docs/raw/reference/vectors/turbopuffer.mdx +1 -1
- package/.docs/raw/reference/vectors/upstash.mdx +1 -1
- package/.docs/raw/reference/vectors/vectorize.mdx +1 -1
- package/.docs/raw/reference/voice/azure.mdx +96 -81
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/.docs/raw/reference/workflows/run-methods/resume.mdx +1 -1
- package/.docs/raw/reference/workflows/run-methods/start.mdx +1 -1
- package/.docs/raw/reference/workflows/run.mdx +1 -1
- package/.docs/raw/reference/workflows/step.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/map.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow.mdx +2 -2
- package/.docs/raw/server-db/custom-api-routes.mdx +1 -1
- package/.docs/raw/server-db/mastra-client.mdx +2 -2
- package/.docs/raw/server-db/{production-server.mdx → mastra-server.mdx} +2 -2
- package/.docs/raw/server-db/middleware.mdx +31 -31
- package/.docs/raw/server-db/request-context.mdx +3 -3
- package/.docs/raw/server-db/storage.mdx +1 -1
- package/.docs/raw/streaming/events.mdx +1 -1
- package/.docs/raw/streaming/overview.mdx +1 -1
- package/.docs/raw/streaming/tool-streaming.mdx +1 -1
- package/.docs/raw/streaming/workflow-streaming.mdx +1 -1
- package/.docs/raw/tools-mcp/advanced-usage.mdx +1 -1
- package/.docs/raw/tools-mcp/mcp-overview.mdx +1 -1
- package/.docs/raw/tools-mcp/overview.mdx +1 -1
- package/.docs/raw/voice/overview.mdx +1 -1
- package/.docs/raw/voice/speech-to-speech.mdx +1 -1
- package/.docs/raw/voice/speech-to-text.mdx +1 -1
- package/.docs/raw/voice/text-to-speech.mdx +1 -1
- package/.docs/raw/workflows/agents-and-tools.mdx +2 -4
- package/.docs/raw/workflows/control-flow.mdx +6 -1
- package/.docs/raw/workflows/error-handling.mdx +4 -4
- package/.docs/raw/workflows/human-in-the-loop.mdx +160 -213
- package/.docs/raw/workflows/inngest-workflow.mdx +1 -1
- package/.docs/raw/workflows/input-data-mapping.mdx +1 -1
- package/.docs/raw/workflows/overview.mdx +10 -2
- package/.docs/raw/workflows/snapshots.mdx +4 -3
- package/.docs/raw/workflows/suspend-and-resume.mdx +72 -224
- package/CHANGELOG.md +16 -0
- package/dist/stdio.js +11 -9
- package/package.json +10 -14
- package/.docs/raw/deployment/serverless-platforms/index.mdx +0 -58
|
@@ -1,271 +1,218 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "Human-in-the-loop | Workflows
|
|
3
|
-
description:
|
|
2
|
+
title: "Human-in-the-loop (HITL) | Workflows"
|
|
3
|
+
description: "Human-in-the-loop workflows in Mastra allow you to pause execution for manual approvals, reviews, or user input before continuing."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
# Human-in-the-loop (HITL)
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
Some workflows need to pause for human input before continuing. When a workflow is [suspended](/docs/v1/workflows/suspend-and-resume#pausing-a-workflow-with-suspend), it can return a message explaining why it paused and what’s needed to proceed. The workflow can then either [resume](#resuming-workflows-with-human-input) or [bail](#handling-human-rejection-with-bail) based on the input received. This approach works well for manual approvals, rejections, gated decisions, or any step that requires human oversight.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
## Pausing workflows for human input
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Human-in-the-loop input works much like [pausing a workflow](/docs/v1/workflows/suspend-and-resume) using `suspend()`. The key difference is that when human input is required, you can return `suspend()` with a payload that provides context or guidance to the user on how to continue.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+

|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
```typescript {12-17,22-26} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
17
|
+
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
18
|
+
import { z } from "zod";
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
const step1 = createStep({
|
|
21
|
+
id: "step-1",
|
|
22
|
+
inputSchema: z.object({
|
|
23
|
+
userEmail: z.string()
|
|
24
|
+
}),
|
|
25
|
+
outputSchema: z.object({
|
|
26
|
+
output: z.string()
|
|
27
|
+
}),
|
|
28
|
+
resumeSchema: z.object({
|
|
29
|
+
approved: z.boolean()
|
|
30
|
+
}),
|
|
31
|
+
suspendSchema: z.object({
|
|
32
|
+
reason: z.string()
|
|
33
|
+
}),
|
|
34
|
+
execute: async ({ inputData, resumeData, suspend }) => {
|
|
35
|
+
const { userEmail } = inputData;
|
|
36
|
+
const { approved } = resumeData ?? {};
|
|
21
37
|
|
|
22
|
-
|
|
38
|
+
if (!approved) {
|
|
39
|
+
return await suspend({
|
|
40
|
+
reason: "Human approval required."
|
|
41
|
+
});
|
|
42
|
+
}
|
|
23
43
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
44
|
+
return {
|
|
45
|
+
output: `Email sent to ${userEmail}`
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
});
|
|
27
49
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
```typescript title="src/mastra/agents/example-famous-person-agent.ts" showLineNumbers copy
|
|
33
|
-
import { openai } from "@ai-sdk/openai";
|
|
34
|
-
import { Agent } from "@mastra/core/agent";
|
|
35
|
-
import { Memory } from "@mastra/memory";
|
|
36
|
-
import { LibSQLVector } from "@mastra/libsql";
|
|
37
|
-
|
|
38
|
-
export const famousPersonAgent = new Agent({
|
|
39
|
-
id: "famous-person-generator",
|
|
40
|
-
name: "Famous Person Generator",
|
|
41
|
-
instructions: `You are a famous person generator for a "Heads Up" guessing game.
|
|
42
|
-
|
|
43
|
-
Generate the name of a well-known famous person who:
|
|
44
|
-
- Is recognizable to most people
|
|
45
|
-
- Has distinctive characteristics that can be described with yes/no questions
|
|
46
|
-
- Is appropriate for all audiences
|
|
47
|
-
- Has a clear, unambiguous name
|
|
48
|
-
|
|
49
|
-
IMPORTANT: Use your memory to check what famous people you've already suggested and NEVER repeat a person you've already suggested.
|
|
50
|
-
|
|
51
|
-
Examples: Albert Einstein, Beyoncé, Leonardo da Vinci, Oprah Winfrey, Michael Jordan
|
|
52
|
-
|
|
53
|
-
Return only the person's name, nothing else.`,
|
|
54
|
-
model: openai("gpt-4o"),
|
|
55
|
-
memory: new Memory({
|
|
56
|
-
vector: new LibSQLVector({
|
|
57
|
-
id: 'workflow-vector',
|
|
58
|
-
connectionUrl: "file:../mastra.db",
|
|
59
|
-
}),
|
|
60
|
-
embedder: openai.embedding("text-embedding-3-small"),
|
|
61
|
-
options: {
|
|
62
|
-
lastMessages: 5,
|
|
63
|
-
semanticRecall: {
|
|
64
|
-
topK: 10,
|
|
65
|
-
messageRange: 1,
|
|
66
|
-
},
|
|
67
|
-
},
|
|
50
|
+
export const testWorkflow = createWorkflow({
|
|
51
|
+
id: "test-workflow",
|
|
52
|
+
inputSchema: z.object({
|
|
53
|
+
userEmail: z.string()
|
|
68
54
|
}),
|
|
69
|
-
|
|
55
|
+
outputSchema: z.object({
|
|
56
|
+
output: z.string()
|
|
57
|
+
})
|
|
58
|
+
})
|
|
59
|
+
.then(step1)
|
|
60
|
+
.commit();
|
|
70
61
|
```
|
|
71
62
|
|
|
72
|
-
|
|
63
|
+
## Providing user feedback
|
|
64
|
+
|
|
65
|
+
When a workflow is suspended, you can access the payload returned by `suspend()` by identifying the suspended step and reading its `suspendPayload`.
|
|
66
|
+
|
|
67
|
+
```typescript {12} title="src/test-workflow.ts" showLineNumbers copy
|
|
68
|
+
const workflow = mastra.getWorkflow("testWorkflow");
|
|
69
|
+
const run = await workflow.createRunAsync();
|
|
70
|
+
|
|
71
|
+
const result = await run.start({
|
|
72
|
+
inputData: {
|
|
73
|
+
userEmail: "alex@example.com"
|
|
74
|
+
}
|
|
75
|
+
});
|
|
73
76
|
|
|
74
|
-
|
|
77
|
+
if (result.status === "suspended") {
|
|
78
|
+
const suspendStep = result.suspended[0];
|
|
79
|
+
const suspendedPayload = result.steps[suspendStep[0]].suspendPayload;
|
|
75
80
|
|
|
76
|
-
|
|
81
|
+
console.log(suspendedPayload);
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
**Example output**
|
|
77
85
|
|
|
78
|
-
|
|
79
|
-
import { openai } from "@ai-sdk/openai";
|
|
80
|
-
import { Agent } from "@mastra/core/agent";
|
|
86
|
+
The data returned by the step can include a reason and help the user understand what’s needed to resume the workflow.
|
|
81
87
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
instructions: `You are a helpful game assistant for a "Heads Up" guessing game.
|
|
88
|
+
```typescript
|
|
89
|
+
{ reason: 'Confirm to send email.' }
|
|
90
|
+
```
|
|
86
91
|
|
|
87
|
-
|
|
92
|
+
## Resuming workflows with human input
|
|
88
93
|
|
|
89
|
-
|
|
90
|
-
- Answer truthfully based on the famous person provided
|
|
91
|
-
- Keep responses concise and friendly
|
|
92
|
-
- NEVER mention the person's name, even if it seems natural
|
|
93
|
-
- NEVER reveal gender, nationality, or other characteristics unless specifically asked about them
|
|
94
|
-
- Answer yes/no questions with clear "Yes" or "No" responses
|
|
95
|
-
- Be consistent - same question asked differently should get the same answer
|
|
96
|
-
- Ask for clarification if a question is unclear
|
|
97
|
-
- If multiple questions are asked at once, ask them to ask one at a time
|
|
94
|
+
As with [restarting a workflow](/docs/v1/workflows/suspend-and-resume#restarting-a-workflow-with-resume), use `resume()` with `resumeData` to continue a workflow after receiving input from a human. The workflow resumes from the step where it was paused.
|
|
98
95
|
|
|
99
|
-
|
|
100
|
-
- If correct: Congratulate them warmly
|
|
101
|
-
- If incorrect: Politely correct them and encourage them to try again
|
|
96
|
+

|
|
102
97
|
|
|
103
|
-
|
|
98
|
+
```typescript {13} showLineNumbers copy
|
|
99
|
+
const workflow = mastra.getWorkflow("testWorkflow");
|
|
100
|
+
const run = await workflow.createRunAsync();
|
|
104
101
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
102
|
+
await run.start({
|
|
103
|
+
inputData: {
|
|
104
|
+
userEmail: "alex@example.com"
|
|
105
|
+
}
|
|
109
106
|
});
|
|
107
|
+
|
|
108
|
+
const handleResume = async () => {
|
|
109
|
+
const result = await run.resume({
|
|
110
|
+
step: "step-1",
|
|
111
|
+
resumeData: { approved: true }
|
|
112
|
+
});
|
|
113
|
+
};
|
|
110
114
|
```
|
|
111
115
|
|
|
112
|
-
|
|
116
|
+
### Handling human rejection with `bail()`
|
|
113
117
|
|
|
114
|
-
|
|
118
|
+
Use `bail()` to stop workflow execution at a step without triggering an error. This can be useful when a human explicitly rejects an action. The workflow completes with a `success` status, and any logic after the call to `bail()` is skipped.
|
|
115
119
|
|
|
116
|
-
|
|
120
|
+
```typescript {7-11} showLineNumbers copy
|
|
121
|
+
const step1 = createStep({
|
|
122
|
+
// ...
|
|
123
|
+
execute: async ({ inputData, resumeData, suspend, bail }) => {
|
|
124
|
+
const { userEmail } = inputData;
|
|
125
|
+
const { approved } = resumeData ?? {};
|
|
117
126
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
127
|
+
if (approved === false) {
|
|
128
|
+
return bail({
|
|
129
|
+
reason: "User rejected the request."
|
|
130
|
+
});
|
|
131
|
+
}
|
|
121
132
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
execute: async ({ mastra }) => {
|
|
133
|
-
const agent = mastra.getAgent("famousPersonAgent");
|
|
134
|
-
const response = await agent.generate("Generate a famous person's name", {
|
|
135
|
-
temperature: 1.2,
|
|
136
|
-
topP: 0.9,
|
|
137
|
-
memory: {
|
|
138
|
-
resource: "heads-up-game",
|
|
139
|
-
thread: "famous-person-generator",
|
|
140
|
-
},
|
|
141
|
-
});
|
|
142
|
-
const famousPerson = response.text.trim();
|
|
143
|
-
return { famousPerson, guessCount: 0 };
|
|
144
|
-
},
|
|
133
|
+
if (!approved) {
|
|
134
|
+
return await suspend({
|
|
135
|
+
reason: "Human approval required."
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return {
|
|
140
|
+
message: `Email sent to ${userEmail}`
|
|
141
|
+
};
|
|
142
|
+
}
|
|
145
143
|
});
|
|
144
|
+
```
|
|
146
145
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
146
|
+
## Multi-turn human input
|
|
147
|
+
|
|
148
|
+
For workflows that require input at multiple stages, the suspend pattern remains the same. Each step defines a `resumeSchema`, and `suspendSchema` typically with a reason that can be used to provide user feedback.
|
|
149
|
+
|
|
150
|
+
```typescript {11-16,21-25} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
|
|
151
|
+
const step1 = createStep({...});
|
|
152
|
+
|
|
153
|
+
const step2 = createStep({
|
|
154
|
+
id: "step-2",
|
|
150
155
|
inputSchema: z.object({
|
|
151
|
-
|
|
152
|
-
|
|
156
|
+
message: z.string()
|
|
157
|
+
}),
|
|
158
|
+
outputSchema: z.object({
|
|
159
|
+
output: z.string()
|
|
153
160
|
}),
|
|
154
161
|
resumeSchema: z.object({
|
|
155
|
-
|
|
162
|
+
approved: z.boolean()
|
|
156
163
|
}),
|
|
157
164
|
suspendSchema: z.object({
|
|
158
|
-
|
|
159
|
-
}),
|
|
160
|
-
outputSchema: z.object({
|
|
161
|
-
famousPerson: z.string(),
|
|
162
|
-
gameWon: z.boolean(),
|
|
163
|
-
agentResponse: z.string(),
|
|
164
|
-
guessCount: z.number(),
|
|
165
|
+
reason: z.string()
|
|
165
166
|
}),
|
|
166
|
-
execute: async ({ inputData,
|
|
167
|
-
|
|
168
|
-
const {
|
|
167
|
+
execute: async ({ inputData, resumeData, suspend }) => {
|
|
168
|
+
const { message } = inputData;
|
|
169
|
+
const { approved } = resumeData ?? {};
|
|
169
170
|
|
|
170
|
-
if (!
|
|
171
|
+
if (!approved) {
|
|
171
172
|
return await suspend({
|
|
172
|
-
|
|
173
|
-
"I'm thinking of a famous person. Ask me yes/no questions to figure out who it is!",
|
|
173
|
+
reason: "Human approval required."
|
|
174
174
|
});
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
The user said: "${userMessage}"
|
|
182
|
-
Please respond appropriately. If this is a guess, tell me if it's correct.
|
|
183
|
-
`,
|
|
184
|
-
{
|
|
185
|
-
structuredOutput: {
|
|
186
|
-
schema: z.object({
|
|
187
|
-
response: z.string(),
|
|
188
|
-
gameWon: z.boolean(),
|
|
189
|
-
}),
|
|
190
|
-
},
|
|
191
|
-
},
|
|
192
|
-
);
|
|
193
|
-
|
|
194
|
-
const { response: agentResponse, gameWon } = response.object;
|
|
195
|
-
|
|
196
|
-
guessCount++;
|
|
197
|
-
|
|
198
|
-
return { famousPerson, gameWon, agentResponse, guessCount };
|
|
199
|
-
},
|
|
177
|
+
return {
|
|
178
|
+
output: `${message} - Deleted`
|
|
179
|
+
};
|
|
180
|
+
}
|
|
200
181
|
});
|
|
201
182
|
|
|
202
|
-
const
|
|
203
|
-
id: "
|
|
204
|
-
description: "Handle game win logic",
|
|
183
|
+
export const testWorkflow = createWorkflow({
|
|
184
|
+
id: "test-workflow",
|
|
205
185
|
inputSchema: z.object({
|
|
206
|
-
|
|
207
|
-
gameWon: z.boolean(),
|
|
208
|
-
agentResponse: z.string(),
|
|
209
|
-
guessCount: z.number(),
|
|
186
|
+
userEmail: z.string()
|
|
210
187
|
}),
|
|
211
188
|
outputSchema: z.object({
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
guessCount: z.number(),
|
|
215
|
-
}),
|
|
216
|
-
execute: async ({ inputData }) => {
|
|
217
|
-
const { famousPerson, gameWon, guessCount } = inputData;
|
|
218
|
-
|
|
219
|
-
console.log("famousPerson: ", famousPerson);
|
|
220
|
-
console.log("gameWon: ", gameWon);
|
|
221
|
-
console.log("guessCount: ", guessCount);
|
|
222
|
-
|
|
223
|
-
return { famousPerson, gameWon, guessCount };
|
|
224
|
-
},
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
export const headsUpWorkflow = createWorkflow({
|
|
228
|
-
id: "heads-up-workflow",
|
|
229
|
-
inputSchema: z.object({
|
|
230
|
-
start: z.boolean(),
|
|
231
|
-
}),
|
|
232
|
-
outputSchema: z.object({
|
|
233
|
-
famousPerson: z.string(),
|
|
234
|
-
gameWon: z.boolean(),
|
|
235
|
-
guessCount: z.number(),
|
|
236
|
-
}),
|
|
189
|
+
output: z.string()
|
|
190
|
+
})
|
|
237
191
|
})
|
|
238
|
-
.then(
|
|
239
|
-
.
|
|
240
|
-
.then(winStep)
|
|
192
|
+
.then(step1)
|
|
193
|
+
.then(step2)
|
|
241
194
|
.commit();
|
|
242
195
|
```
|
|
243
196
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
});
|
|
197
|
+
Each step must be resumed in sequence, with a separate call to `resume()` for each suspended step. This approach helps manage multi-step approvals with consistent UI feedback and clear input handling at each stage.
|
|
198
|
+
|
|
199
|
+
```typescript {4,11} showLineNumbers copy
|
|
200
|
+
const handleResume = async () => {
|
|
201
|
+
const result = await run.resume({
|
|
202
|
+
step: "step-1",
|
|
203
|
+
resumeData: { approved: true }
|
|
204
|
+
});
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
const handleDelete = async () => {
|
|
208
|
+
const result = await run.resume({
|
|
209
|
+
step: "step-2",
|
|
210
|
+
resumeData: { approved: true }
|
|
211
|
+
});
|
|
212
|
+
};
|
|
261
213
|
```
|
|
262
214
|
|
|
263
|
-
<GithubLink
|
|
264
|
-
marginTop="mt-16"
|
|
265
|
-
link="https://github.com/mastra-ai/mastra/blob/main/examples/heads-up-game/"
|
|
266
|
-
/>
|
|
267
|
-
|
|
268
215
|
## Related
|
|
269
216
|
|
|
270
|
-
- [Running Workflows](./overview#running-workflows)
|
|
271
217
|
- [Control Flow](/docs/v1/workflows/control-flow)
|
|
218
|
+
- [Suspend & Resume](/docs/v1/workflows/suspend-and-resume)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "Workflows overview | Workflows
|
|
2
|
+
title: "Workflows overview | Workflows"
|
|
3
3
|
description: "Workflows in Mastra help you orchestrate complex sequences of tasks with features like branching, parallel execution, resource suspension, and more."
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -260,7 +260,12 @@ for await (const chunk of result.stream) {
|
|
|
260
260
|
</TabItem>
|
|
261
261
|
</Tabs>
|
|
262
262
|
|
|
263
|
-
|
|
263
|
+
|
|
264
|
+
### Workflow status types
|
|
265
|
+
|
|
266
|
+
When running a workflow, its `status` can be `running`, `suspended`, `success`, or `failed`.
|
|
267
|
+
|
|
268
|
+
### Workflow output
|
|
264
269
|
|
|
265
270
|
The workflow output includes the full execution lifecycle, showing the input and output for each step. It also includes the status of each step, the overall workflow status, and the final result. This gives you clear insight into how data moved through the workflow, what each step produced, and how the workflow completed.
|
|
266
271
|
|
|
@@ -330,3 +335,6 @@ Use [Studio](/docs/v1/getting-started/studio) to easily run workflows with diffe
|
|
|
330
335
|
|
|
331
336
|
For a closer look at workflows, see our [Workflow Guide](/guides/v1/guide/ai-recruiter), which walks through the core concepts with a practical example.
|
|
332
337
|
|
|
338
|
+
- [Control Flow](/docs/v1/workflows/control-flow)
|
|
339
|
+
- [Suspend & Resume](/docs/v1/workflows/suspend-and-resume)
|
|
340
|
+
- [Error Handling](/docs/v1/workflows/error-handling)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "Snapshots | Workflows
|
|
2
|
+
title: "Snapshots | Workflows"
|
|
3
3
|
description: "Learn how to save and resume workflow execution state with snapshots in Mastra"
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -266,5 +266,6 @@ if (result.status === "suspended") {
|
|
|
266
266
|
|
|
267
267
|
## Related
|
|
268
268
|
|
|
269
|
-
- [
|
|
270
|
-
- [
|
|
269
|
+
- [Control Flow](/docs/v1/workflows/control-flow)
|
|
270
|
+
- [Suspend & Resume](/docs/v1/workflows/suspend-and-resume)
|
|
271
|
+
- [Human-in-the-loop](/docs/v1/workflows/human-in-the-loop)
|