@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,9 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "Using
|
|
2
|
+
title: "Using Vercel AI SDK | Frameworks | Mastra Docs"
|
|
3
3
|
description: "Learn how Mastra leverages the Vercel AI SDK library and how you can leverage it further with Mastra"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import
|
|
6
|
+
import Tabs from "@theme/Tabs";
|
|
7
|
+
import TabItem from "@theme/TabItem";
|
|
7
8
|
|
|
8
9
|
# Using Vercel AI SDK
|
|
9
10
|
|
|
@@ -13,7 +14,7 @@ Mastra integrates with [Vercel's AI SDK](https://sdk.vercel.ai) to support model
|
|
|
13
14
|
|
|
14
15
|
When creating agents in Mastra, you can specify any AI SDK-supported model.
|
|
15
16
|
|
|
16
|
-
```typescript {6}
|
|
17
|
+
```typescript {6} title="agents/weather-agent.ts" copy
|
|
17
18
|
import { Agent } from "@mastra/core/agent";
|
|
18
19
|
|
|
19
20
|
export const weatherAgent = new Agent({
|
|
@@ -29,43 +30,35 @@ export const weatherAgent = new Agent({
|
|
|
29
30
|
|
|
30
31
|
The recommended way of using Mastra and AI SDK together is by installing the `@mastra/ai-sdk` package. `@mastra/ai-sdk` provides custom API routes and utilities for streaming Mastra agents in AI SDK-compatible formats. Including chat, workflow, and network route handlers, along with utilities and exported types for UI integrations.
|
|
31
32
|
|
|
32
|
-
<Tabs
|
|
33
|
-
<
|
|
34
|
-
```bash copy
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
yarn add @mastra/ai-sdk
|
|
46
|
-
```
|
|
47
|
-
</Tabs.Tab>
|
|
48
|
-
<Tabs.Tab>
|
|
49
|
-
```bash copy
|
|
50
|
-
bun add @mastra/ai-sdk
|
|
51
|
-
```
|
|
52
|
-
</Tabs.Tab>
|
|
33
|
+
<Tabs>
|
|
34
|
+
<TabItem value="npm" label="npm">
|
|
35
|
+
```bash copy npm install @mastra/ai-sdk ```
|
|
36
|
+
</TabItem>
|
|
37
|
+
<TabItem value="pnpm" label="pnpm">
|
|
38
|
+
```bash copy pnpm add @mastra/ai-sdk ```
|
|
39
|
+
</TabItem>
|
|
40
|
+
<TabItem value="yarn" label="yarn">
|
|
41
|
+
```bash copy yarn add @mastra/ai-sdk ```
|
|
42
|
+
</TabItem>
|
|
43
|
+
<TabItem value="bun" label="bun">
|
|
44
|
+
```bash copy bun add @mastra/ai-sdk ```
|
|
45
|
+
</TabItem>
|
|
53
46
|
</Tabs>
|
|
54
47
|
|
|
55
48
|
### `chatRoute()`
|
|
56
49
|
|
|
57
50
|
When setting up a [custom API route](/docs/server-db/custom-api-routes), use the `chatRoute()` utility to create a route handler that automatically formats the agent stream into an AI SDK-compatible format.
|
|
58
51
|
|
|
59
|
-
```typescript
|
|
60
|
-
import { Mastra } from
|
|
61
|
-
import { chatRoute } from
|
|
52
|
+
```typescript title="src/mastra/index.ts" copy
|
|
53
|
+
import { Mastra } from "@mastra/core/mastra";
|
|
54
|
+
import { chatRoute } from "@mastra/ai-sdk";
|
|
62
55
|
|
|
63
56
|
export const mastra = new Mastra({
|
|
64
57
|
server: {
|
|
65
58
|
apiRoutes: [
|
|
66
59
|
chatRoute({
|
|
67
|
-
path:
|
|
68
|
-
agent:
|
|
60
|
+
path: "/chat",
|
|
61
|
+
agent: "weatherAgent",
|
|
69
62
|
}),
|
|
70
63
|
],
|
|
71
64
|
},
|
|
@@ -75,51 +68,49 @@ export const mastra = new Mastra({
|
|
|
75
68
|
Once you have your `/chat` API route set up, you can call the `useChat()` hook in your application.
|
|
76
69
|
|
|
77
70
|
```typescript
|
|
78
|
-
const { error, status, sendMessage, messages, regenerate, stop } =
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
});
|
|
71
|
+
const { error, status, sendMessage, messages, regenerate, stop } = useChat({
|
|
72
|
+
transport: new DefaultChatTransport({
|
|
73
|
+
api: "http://localhost:4111/chat",
|
|
74
|
+
}),
|
|
75
|
+
});
|
|
84
76
|
```
|
|
85
77
|
|
|
86
78
|
Pass extra agent stream execution options:
|
|
87
79
|
|
|
88
80
|
```typescript
|
|
89
|
-
const { error, status, sendMessage, messages, regenerate, stop } =
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
resource: "user-1"
|
|
101
|
-
}
|
|
81
|
+
const { error, status, sendMessage, messages, regenerate, stop } = useChat({
|
|
82
|
+
transport: new DefaultChatTransport({
|
|
83
|
+
api: "http://localhost:4111/chat",
|
|
84
|
+
prepareSendMessagesRequest({ messages }) {
|
|
85
|
+
return {
|
|
86
|
+
body: {
|
|
87
|
+
messages,
|
|
88
|
+
// Pass memory config
|
|
89
|
+
memory: {
|
|
90
|
+
thread: "user-1",
|
|
91
|
+
resource: "user-1",
|
|
102
92
|
},
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
})
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
},
|
|
96
|
+
}),
|
|
97
|
+
});
|
|
107
98
|
```
|
|
108
99
|
|
|
109
100
|
### `workflowRoute()`
|
|
110
101
|
|
|
111
102
|
Use the `workflowRoute()` utility to create a route handler that automatically formats the workflow stream into an AI SDK-compatible format.
|
|
112
103
|
|
|
113
|
-
```typescript
|
|
114
|
-
import { Mastra } from
|
|
115
|
-
import { workflowRoute } from
|
|
104
|
+
```typescript title="src/mastra/index.ts" copy
|
|
105
|
+
import { Mastra } from "@mastra/core/mastra";
|
|
106
|
+
import { workflowRoute } from "@mastra/ai-sdk";
|
|
116
107
|
|
|
117
108
|
export const mastra = new Mastra({
|
|
118
109
|
server: {
|
|
119
110
|
apiRoutes: [
|
|
120
111
|
workflowRoute({
|
|
121
|
-
path:
|
|
122
|
-
agent:
|
|
112
|
+
path: "/workflow",
|
|
113
|
+
agent: "weatherAgent",
|
|
123
114
|
}),
|
|
124
115
|
],
|
|
125
116
|
},
|
|
@@ -129,37 +120,36 @@ export const mastra = new Mastra({
|
|
|
129
120
|
Once you have your `/workflow` API route set up, you can call the `useChat()` hook in your application.
|
|
130
121
|
|
|
131
122
|
```typescript
|
|
132
|
-
const { error, status, sendMessage, messages, regenerate, stop } =
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
});
|
|
123
|
+
const { error, status, sendMessage, messages, regenerate, stop } = useChat({
|
|
124
|
+
transport: new DefaultChatTransport({
|
|
125
|
+
api: "http://localhost:4111/workflow",
|
|
126
|
+
prepareSendMessagesRequest({ messages }) {
|
|
127
|
+
return {
|
|
128
|
+
body: {
|
|
129
|
+
inputData: {
|
|
130
|
+
city: messages[messages.length - 1].parts[0].text,
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
},
|
|
135
|
+
}),
|
|
136
|
+
});
|
|
147
137
|
```
|
|
148
138
|
|
|
149
139
|
### `networkRoute()`
|
|
150
140
|
|
|
151
141
|
Use the `networkRoute()` utility to create a route handler that automatically formats the agent network stream into an AI SDK-compatible format.
|
|
152
142
|
|
|
153
|
-
```typescript
|
|
154
|
-
import { Mastra } from
|
|
155
|
-
import { networkRoute } from
|
|
143
|
+
```typescript title="src/mastra/index.ts" copy
|
|
144
|
+
import { Mastra } from "@mastra/core/mastra";
|
|
145
|
+
import { networkRoute } from "@mastra/ai-sdk";
|
|
156
146
|
|
|
157
147
|
export const mastra = new Mastra({
|
|
158
148
|
server: {
|
|
159
149
|
apiRoutes: [
|
|
160
150
|
networkRoute({
|
|
161
|
-
path:
|
|
162
|
-
agent:
|
|
151
|
+
path: "/network",
|
|
152
|
+
agent: "weatherAgent",
|
|
163
153
|
}),
|
|
164
154
|
],
|
|
165
155
|
},
|
|
@@ -169,12 +159,11 @@ export const mastra = new Mastra({
|
|
|
169
159
|
Once you have your `/network` API route set up, you can call the `useChat()` hook in your application.
|
|
170
160
|
|
|
171
161
|
```typescript
|
|
172
|
-
const { error, status, sendMessage, messages, regenerate, stop } =
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
});
|
|
162
|
+
const { error, status, sendMessage, messages, regenerate, stop } = useChat({
|
|
163
|
+
transport: new DefaultChatTransport({
|
|
164
|
+
api: "http://localhost:4111/network",
|
|
165
|
+
}),
|
|
166
|
+
});
|
|
178
167
|
```
|
|
179
168
|
|
|
180
169
|
### Custom UI
|
|
@@ -192,7 +181,7 @@ The `@mastra/ai-sdk` package transforms and emits Mastra streams (e.g workflow,
|
|
|
192
181
|
|
|
193
182
|
Here's an example: For a [nested agent stream within a tool](/docs/streaming/tool-streaming#tool-using-an-agent), `data-tool-agent` UI message parts will be emitted and can be leveraged on the client as documented below:
|
|
194
183
|
|
|
195
|
-
```typescript
|
|
184
|
+
```typescript title="app/page.tsx" copy
|
|
196
185
|
"use client";
|
|
197
186
|
|
|
198
187
|
import { useChat } from "@ai-sdk/react";
|
|
@@ -228,16 +217,16 @@ export default function Page() {
|
|
|
228
217
|
}
|
|
229
218
|
```
|
|
230
219
|
|
|
231
|
-
```typescript
|
|
220
|
+
```typescript title="ui/agent-tool.ts" copy
|
|
232
221
|
import { Tool, ToolContent, ToolHeader, ToolOutput } from "../ai-elements/tool";
|
|
233
222
|
import type { AgentDataPart } from "@mastra/ai-sdk";
|
|
234
223
|
|
|
235
224
|
export const AgentTool = ({ id, text, status }: AgentDataPart) => {
|
|
236
225
|
return (
|
|
237
226
|
<Tool>
|
|
238
|
-
<ToolHeader
|
|
239
|
-
type={`${id}`}
|
|
240
|
-
state={status === 'finished' ? 'output-available' : 'input-available'}
|
|
227
|
+
<ToolHeader
|
|
228
|
+
type={`${id}`}
|
|
229
|
+
state={status === 'finished' ? 'output-available' : 'input-available'}
|
|
241
230
|
/>
|
|
242
231
|
<ToolContent>
|
|
243
232
|
<ToolOutput output={text} />
|
|
@@ -246,7 +235,9 @@ export const AgentTool = ({ id, text, status }: AgentDataPart) => {
|
|
|
246
235
|
);
|
|
247
236
|
};
|
|
248
237
|
```
|
|
238
|
+
|
|
249
239
|
### Custom Tool streaming
|
|
240
|
+
|
|
250
241
|
To stream custom data parts from within your tool execution function, use the
|
|
251
242
|
`writer.custom()` method.
|
|
252
243
|
|
|
@@ -283,10 +274,10 @@ For more information about tool streaming see [Tool streaming documentation](/do
|
|
|
283
274
|
|
|
284
275
|
To manually transform Mastra's streams to AI SDK-compatible format, use the `toAISdkFormat()` utility.
|
|
285
276
|
|
|
286
|
-
```typescript
|
|
277
|
+
```typescript title="app/api/chat/route.ts" copy {3,13}
|
|
287
278
|
import { mastra } from "../../mastra";
|
|
288
|
-
import { createUIMessageStream, createUIMessageStreamResponse } from
|
|
289
|
-
import { toAISdkFormat } from
|
|
279
|
+
import { createUIMessageStream, createUIMessageStreamResponse } from "ai";
|
|
280
|
+
import { toAISdkFormat } from "@mastra/ai-sdk";
|
|
290
281
|
|
|
291
282
|
export async function POST(req: Request) {
|
|
292
283
|
const { messages } = await req.json();
|
|
@@ -296,7 +287,7 @@ export async function POST(req: Request) {
|
|
|
296
287
|
// Transform stream into AI SDK format and create UI messages stream
|
|
297
288
|
const uiMessageStream = createUIMessageStream({
|
|
298
289
|
execute: async ({ writer }) => {
|
|
299
|
-
for await (const part of toAISdkFormat(stream, { from:
|
|
290
|
+
for await (const part of toAISdkFormat(stream, { from: "agent" })!) {
|
|
300
291
|
writer.write(part);
|
|
301
292
|
}
|
|
302
293
|
},
|
|
@@ -313,27 +304,34 @@ export async function POST(req: Request) {
|
|
|
313
304
|
|
|
314
305
|
If you have a client-side `response` from `agent.stream(...)` and want AI SDK-formatted parts without custom SSE parsing, wrap `response.processDataStream` into a `ReadableStream<ChunkType>` and pipe it through `toAISdkFormat`:
|
|
315
306
|
|
|
316
|
-
```typescript
|
|
317
|
-
import { createUIMessageStream } from
|
|
318
|
-
import { toAISdkFormat } from
|
|
319
|
-
import type { ChunkType, MastraModelOutput } from
|
|
307
|
+
```typescript title="client-stream-to-ai-sdk.ts" copy
|
|
308
|
+
import { createUIMessageStream } from "ai";
|
|
309
|
+
import { toAISdkFormat } from "@mastra/ai-sdk";
|
|
310
|
+
import type { ChunkType, MastraModelOutput } from "@mastra/core/stream";
|
|
320
311
|
|
|
321
312
|
// Client SDK agent stream
|
|
322
|
-
const response = await agent.stream({
|
|
313
|
+
const response = await agent.stream({
|
|
314
|
+
messages: "What is the weather in Tokyo",
|
|
315
|
+
});
|
|
323
316
|
|
|
324
317
|
const chunkStream: ReadableStream<ChunkType> = new ReadableStream<ChunkType>({
|
|
325
318
|
start(controller) {
|
|
326
|
-
response
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
319
|
+
response
|
|
320
|
+
.processDataStream({
|
|
321
|
+
onChunk: async (chunk) => {
|
|
322
|
+
controller.enqueue(chunk as ChunkType);
|
|
323
|
+
},
|
|
324
|
+
})
|
|
325
|
+
.finally(() => controller.close());
|
|
331
326
|
},
|
|
332
327
|
});
|
|
333
328
|
|
|
334
329
|
const uiMessageStream = createUIMessageStream({
|
|
335
330
|
execute: async ({ writer }) => {
|
|
336
|
-
for await (const part of toAISdkFormat(
|
|
331
|
+
for await (const part of toAISdkFormat(
|
|
332
|
+
chunkStream as unknown as MastraModelOutput,
|
|
333
|
+
{ from: "agent" },
|
|
334
|
+
)) {
|
|
337
335
|
writer.write(part);
|
|
338
336
|
}
|
|
339
337
|
},
|
|
@@ -350,35 +348,26 @@ Mastra supports AI SDK UI hooks for connecting frontend components directly to a
|
|
|
350
348
|
|
|
351
349
|
Install the required AI SDK React package:
|
|
352
350
|
|
|
353
|
-
<Tabs
|
|
354
|
-
<
|
|
355
|
-
```bash copy
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
yarn add @ai-sdk/react
|
|
367
|
-
```
|
|
368
|
-
</Tabs.Tab>
|
|
369
|
-
<Tabs.Tab>
|
|
370
|
-
```bash copy
|
|
371
|
-
bun add @ai-sdk/react
|
|
372
|
-
```
|
|
373
|
-
</Tabs.Tab>
|
|
351
|
+
<Tabs>
|
|
352
|
+
<TabItem value="npm" label="npm">
|
|
353
|
+
```bash copy npm install @ai-sdk/react ```
|
|
354
|
+
</TabItem>
|
|
355
|
+
<TabItem value="pnpm" label="pnpm">
|
|
356
|
+
```bash copy pnpm add @ai-sdk/react ```
|
|
357
|
+
</TabItem>
|
|
358
|
+
<TabItem value="yarn" label="yarn">
|
|
359
|
+
```bash copy yarn add @ai-sdk/react ```
|
|
360
|
+
</TabItem>
|
|
361
|
+
<TabItem value="bun" label="bun">
|
|
362
|
+
```bash copy bun add @ai-sdk/react ```
|
|
363
|
+
</TabItem>
|
|
374
364
|
</Tabs>
|
|
375
365
|
|
|
376
|
-
|
|
377
366
|
### Using `useChat()`
|
|
378
367
|
|
|
379
368
|
The `useChat()` hook handles real-time chat interactions between your frontend and a Mastra agent, enabling you to send prompts and receive streaming responses over HTTP.
|
|
380
369
|
|
|
381
|
-
```typescript {8-12}
|
|
370
|
+
```typescript {8-12} title="app/test/chat.tsx" copy
|
|
382
371
|
"use client";
|
|
383
372
|
|
|
384
373
|
import { useChat } from "@ai-sdk/react";
|
|
@@ -411,25 +400,25 @@ export function Chat() {
|
|
|
411
400
|
|
|
412
401
|
Requests sent using the `useChat()` hook are handled by a standard server route. This example shows how to define a POST route using a Next.js Route Handler.
|
|
413
402
|
|
|
414
|
-
```typescript
|
|
403
|
+
```typescript title="app/api/chat/route.ts" copy
|
|
415
404
|
import { mastra } from "../../mastra";
|
|
416
405
|
|
|
417
406
|
export async function POST(req: Request) {
|
|
418
407
|
const { messages } = await req.json();
|
|
419
408
|
const myAgent = mastra.getAgent("weatherAgent");
|
|
420
|
-
const stream = await myAgent.stream(messages, { format:
|
|
409
|
+
const stream = await myAgent.stream(messages, { format: "aisdk" });
|
|
421
410
|
|
|
422
|
-
return stream.toUIMessageStreamResponse()
|
|
411
|
+
return stream.toUIMessageStreamResponse();
|
|
423
412
|
}
|
|
424
413
|
```
|
|
425
414
|
|
|
426
|
-
> When using `useChat()` with agent memory, refer to the [Agent Memory section](/docs/agents/agent-memory
|
|
415
|
+
> When using `useChat()` with agent memory, refer to the [Agent Memory section](/docs/agents/agent-memory) for key implementation details.
|
|
427
416
|
|
|
428
417
|
### Using `useCompletion()`
|
|
429
418
|
|
|
430
419
|
The `useCompletion()` hook handles single-turn completions between your frontend and a Mastra agent, allowing you to send a prompt and receive a streamed response over HTTP.
|
|
431
420
|
|
|
432
|
-
```typescript {6-8}
|
|
421
|
+
```typescript {6-8} title="app/test/completion.tsx" copy
|
|
433
422
|
"use client";
|
|
434
423
|
|
|
435
424
|
import { useCompletion } from "@ai-sdk/react";
|
|
@@ -452,15 +441,17 @@ export function Completion() {
|
|
|
452
441
|
|
|
453
442
|
Requests sent using the `useCompletion()` hook are handled by a standard server route. This example shows how to define a POST route using a Next.js Route Handler.
|
|
454
443
|
|
|
455
|
-
```typescript
|
|
444
|
+
```typescript title="app/api/completion/route.ts" copy
|
|
456
445
|
import { mastra } from "../../../mastra";
|
|
457
446
|
|
|
458
447
|
export async function POST(req: Request) {
|
|
459
448
|
const { prompt } = await req.json();
|
|
460
449
|
const myAgent = mastra.getAgent("weatherAgent");
|
|
461
|
-
const stream = await myAgent.stream([{ role: "user", content: prompt }], {
|
|
450
|
+
const stream = await myAgent.stream([{ role: "user", content: prompt }], {
|
|
451
|
+
format: "aisdk",
|
|
452
|
+
});
|
|
462
453
|
|
|
463
|
-
return stream.toUIMessageStreamResponse()
|
|
454
|
+
return stream.toUIMessageStreamResponse();
|
|
464
455
|
}
|
|
465
456
|
```
|
|
466
457
|
|
|
@@ -468,7 +459,7 @@ export async function POST(req: Request) {
|
|
|
468
459
|
|
|
469
460
|
`sendMessage()` allows you to pass additional data from the frontend to Mastra. This data can then be used on the server as `RuntimeContext`.
|
|
470
461
|
|
|
471
|
-
```typescript {16-26}
|
|
462
|
+
```typescript {16-26} title="app/test/chat-extra.tsx" copy
|
|
472
463
|
"use client";
|
|
473
464
|
|
|
474
465
|
import { useChat } from "@ai-sdk/react";
|
|
@@ -509,7 +500,7 @@ export function ChatExtra() {
|
|
|
509
500
|
}
|
|
510
501
|
```
|
|
511
502
|
|
|
512
|
-
```typescript {8,12}
|
|
503
|
+
```typescript {8,12} title="app/api/chat-extra/route.ts" copy
|
|
513
504
|
import { mastra } from "../../../mastra";
|
|
514
505
|
import { RuntimeContext } from "@mastra/core/runtime-context";
|
|
515
506
|
|
|
@@ -525,7 +516,10 @@ export async function POST(req: Request) {
|
|
|
525
516
|
}
|
|
526
517
|
}
|
|
527
518
|
|
|
528
|
-
const stream = await myAgent.stream(messages, {
|
|
519
|
+
const stream = await myAgent.stream(messages, {
|
|
520
|
+
runtimeContext,
|
|
521
|
+
format: "aisdk",
|
|
522
|
+
});
|
|
529
523
|
return stream.toUIMessageStreamResponse();
|
|
530
524
|
}
|
|
531
525
|
```
|
|
@@ -534,7 +528,7 @@ export async function POST(req: Request) {
|
|
|
534
528
|
|
|
535
529
|
You can also populate the `RuntimeContext` by reading custom data in a server middleware:
|
|
536
530
|
|
|
537
|
-
```typescript {8,17}
|
|
531
|
+
```typescript {8,17} title="mastra/index.ts" copy
|
|
538
532
|
import { Mastra } from "@mastra/core/mastra";
|
|
539
533
|
|
|
540
534
|
export const mastra = new Mastra({
|
|
@@ -554,8 +548,7 @@ export const mastra = new Mastra({
|
|
|
554
548
|
runtimeContext.set(key, value);
|
|
555
549
|
}
|
|
556
550
|
}
|
|
557
|
-
} catch {
|
|
558
|
-
}
|
|
551
|
+
} catch {}
|
|
559
552
|
}
|
|
560
553
|
await next();
|
|
561
554
|
},
|
|
@@ -584,13 +577,13 @@ Mastra automatically handles AI SDK v4 data using its internal `MessageList` cla
|
|
|
584
577
|
For cases where you need to manually convert messages between AI SDK and Mastra formats, use the `convertMessages()` utility:
|
|
585
578
|
|
|
586
579
|
```typescript
|
|
587
|
-
import { convertMessages } from
|
|
580
|
+
import { convertMessages } from "@mastra/core/agent";
|
|
588
581
|
|
|
589
582
|
// Convert AI SDK v4 messages to v5
|
|
590
|
-
const aiv5Messages = convertMessages(aiv4Messages).to(
|
|
583
|
+
const aiv5Messages = convertMessages(aiv4Messages).to("AIV5.UI");
|
|
591
584
|
|
|
592
585
|
// Convert Mastra messages to AI SDK v5
|
|
593
|
-
const aiv5Messages = convertMessages(mastraMessages).to(
|
|
586
|
+
const aiv5Messages = convertMessages(mastraMessages).to("AIV5.Core");
|
|
594
587
|
|
|
595
588
|
// Supported output formats:
|
|
596
589
|
// 'Mastra.V2', 'AIV4.UI', 'AIV5.UI', 'AIV5.Core', 'AIV5.Model'
|
|
@@ -606,7 +599,7 @@ When using tools with TypeScript in AI SDK v5, Mastra provides type inference he
|
|
|
606
599
|
|
|
607
600
|
The `InferUITool` type helper infers the input and output types of a single Mastra tool:
|
|
608
601
|
|
|
609
|
-
```typescript
|
|
602
|
+
```typescript title="app/types.ts" copy
|
|
610
603
|
import { InferUITool, createTool } from "@mastra/core/tools";
|
|
611
604
|
import { z } from "zod";
|
|
612
605
|
|
|
@@ -641,7 +634,7 @@ type WeatherUITool = InferUITool<typeof weatherTool>;
|
|
|
641
634
|
|
|
642
635
|
The `InferUITools` type helper infers the input and output types of multiple tools:
|
|
643
636
|
|
|
644
|
-
```typescript
|
|
637
|
+
```typescript title="app/mastra/tools.ts" copy
|
|
645
638
|
import { InferUITools, createTool } from "@mastra/core/tools";
|
|
646
639
|
import { z } from "zod";
|
|
647
640
|
|