@mastra/mcp-docs-server 0.13.37 → 0.13.39-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.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%2Fagent-builder.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Fastra.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fauth.md +6 -0
- package/.docs/organized/changelogs/%40mastra%2Fchroma.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +38 -38
- package/.docs/organized/changelogs/%40mastra%2Fcloud.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +88 -88
- package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +28 -28
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +27 -27
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +27 -27
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +27 -27
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +59 -59
- package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fevals.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Ffastembed.md +6 -0
- package/.docs/organized/changelogs/%40mastra%2Flance.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Flibsql.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Floggers.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +25 -25
- package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fmcp.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fmemory.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fmssql.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fopensearch.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fpg.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +48 -48
- package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Frag.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Freact.md +24 -24
- package/.docs/organized/changelogs/%40mastra%2Fs3vectors.md +9 -0
- package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +6 -0
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +40 -40
- package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fupstash.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-gladia.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +11 -1
- package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +11 -11
- package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +10 -10
- package/.docs/organized/changelogs/create-mastra.md +11 -11
- package/.docs/organized/changelogs/mastra.md +34 -34
- 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 +126 -89
- 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/02-agent-tools-mcp/04-initializing-mcp-tools.md +2 -2
- package/.docs/raw/course/03-agent-memory/18-advanced-configuration-semantic-recall.md +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 +130 -121
- 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 +60 -49
- package/.docs/raw/frameworks/servers/express.mdx +46 -45
- 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 +171 -130
- package/.docs/raw/frameworks/web-frameworks/vite-react.mdx +94 -81
- package/.docs/raw/getting-started/installation.mdx +165 -134
- 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 +42 -50
- package/.docs/raw/getting-started/templates.mdx +18 -15
- package/.docs/raw/index.mdx +9 -9
- package/.docs/raw/mastra-cloud/dashboard.mdx +12 -12
- package/.docs/raw/mastra-cloud/observability.mdx +9 -10
- package/.docs/raw/mastra-cloud/overview.mdx +17 -23
- 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 +22 -24
- package/.docs/raw/memory/semantic-recall.mdx +16 -17
- 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 +24 -21
- 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 +37 -38
- 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 +151 -128
- 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 +15 -11
- 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 +56 -43
- 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/listScorers.mdx +69 -0
- package/.docs/raw/reference/agents/listTools.mdx +69 -0
- package/.docs/raw/reference/agents/listWorkflows.mdx +69 -0
- 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 +41 -44
- package/.docs/raw/reference/client-js/error-handling.mdx +1 -1
- package/.docs/raw/reference/client-js/logs.mdx +2 -2
- package/.docs/raw/reference/client-js/mastra-client.mdx +28 -20
- package/.docs/raw/reference/client-js/memory.mdx +7 -3
- 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 +2 -2
- 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 +8 -8
- 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 +13 -10
- 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/listAgents.mdx +35 -0
- package/.docs/raw/reference/core/listLogs.mdx +96 -0
- package/.docs/raw/reference/core/listLogsByRunId.mdx +87 -0
- package/.docs/raw/reference/core/listScorers.mdx +43 -0
- package/.docs/raw/reference/core/listWorkflows.mdx +45 -0
- 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} +55 -47
- package/.docs/raw/reference/memory/query.mdx +39 -25
- package/.docs/raw/reference/observability/ai-tracing/ai-tracing.mdx +9 -6
- 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 +116 -107
- 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 +4 -4
- 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 +3 -4
- package/.docs/raw/reference/processors/language-detector.mdx +6 -8
- package/.docs/raw/reference/processors/moderation-processor.mdx +36 -11
- package/.docs/raw/reference/processors/pii-detector.mdx +34 -9
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +6 -8
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +14 -10
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +3 -5
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +3 -4
- package/.docs/raw/reference/rag/chunk.mdx +41 -23
- package/.docs/raw/reference/rag/database-config.mdx +56 -38
- 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 +41 -32
- 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 +8 -7
- 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 +25 -21
- package/.docs/raw/reference/streaming/workflows/stream.mdx +36 -27
- package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +37 -28
- 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 +78 -72
- 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 +7 -5
- 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 +16 -13
- 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 +74 -3
- 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 +12 -23
- 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 +23 -22
- 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 +15 -11
- 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 +10 -15
- 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 +27 -30
- package/.docs/raw/workflows/control-flow.mdx +213 -170
- 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 +35 -31
- package/.docs/raw/workflows/overview.mdx +108 -56
- package/.docs/raw/workflows/snapshots.mdx +54 -36
- package/.docs/raw/workflows/suspend-and-resume.mdx +52 -65
- 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 +24 -0
- package/package.json +5 -5
- package/.docs/raw/memory/storage/memory-with-mongodb.mdx +0 -148
- package/.docs/raw/workflows/input-data-mapping.mdx +0 -107
|
@@ -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,43 @@ 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
|
-
<
|
|
33
|
+
<Tabs>
|
|
34
|
+
<TabItem value="npm" label="npm">
|
|
34
35
|
```bash copy
|
|
35
36
|
npm install @mastra/ai-sdk
|
|
36
37
|
```
|
|
37
|
-
</
|
|
38
|
-
<
|
|
38
|
+
</TabItem>
|
|
39
|
+
<TabItem value="pnpm" label="pnpm">
|
|
39
40
|
```bash copy
|
|
40
41
|
pnpm add @mastra/ai-sdk
|
|
41
42
|
```
|
|
42
|
-
</
|
|
43
|
-
<
|
|
43
|
+
</TabItem>
|
|
44
|
+
<TabItem value="yarn" label="yarn">
|
|
44
45
|
```bash copy
|
|
45
46
|
yarn add @mastra/ai-sdk
|
|
46
47
|
```
|
|
47
|
-
</
|
|
48
|
-
<
|
|
48
|
+
</TabItem>
|
|
49
|
+
<TabItem value="bun" label="bun">
|
|
49
50
|
```bash copy
|
|
50
51
|
bun add @mastra/ai-sdk
|
|
51
52
|
```
|
|
52
|
-
</
|
|
53
|
+
</TabItem>
|
|
53
54
|
</Tabs>
|
|
54
55
|
|
|
55
56
|
### `chatRoute()`
|
|
56
57
|
|
|
57
58
|
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
59
|
|
|
59
|
-
```typescript
|
|
60
|
-
import { Mastra } from
|
|
61
|
-
import { chatRoute } from
|
|
60
|
+
```typescript title="src/mastra/index.ts" copy
|
|
61
|
+
import { Mastra } from "@mastra/core/mastra";
|
|
62
|
+
import { chatRoute } from "@mastra/ai-sdk";
|
|
62
63
|
|
|
63
64
|
export const mastra = new Mastra({
|
|
64
65
|
server: {
|
|
65
66
|
apiRoutes: [
|
|
66
67
|
chatRoute({
|
|
67
|
-
path:
|
|
68
|
-
agent:
|
|
68
|
+
path: "/chat",
|
|
69
|
+
agent: "weatherAgent",
|
|
69
70
|
}),
|
|
70
71
|
],
|
|
71
72
|
},
|
|
@@ -75,51 +76,49 @@ export const mastra = new Mastra({
|
|
|
75
76
|
Once you have your `/chat` API route set up, you can call the `useChat()` hook in your application.
|
|
76
77
|
|
|
77
78
|
```typescript
|
|
78
|
-
const { error, status, sendMessage, messages, regenerate, stop } =
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
});
|
|
79
|
+
const { error, status, sendMessage, messages, regenerate, stop } = useChat({
|
|
80
|
+
transport: new DefaultChatTransport({
|
|
81
|
+
api: "http://localhost:4111/chat",
|
|
82
|
+
}),
|
|
83
|
+
});
|
|
84
84
|
```
|
|
85
85
|
|
|
86
86
|
Pass extra agent stream execution options:
|
|
87
87
|
|
|
88
88
|
```typescript
|
|
89
|
-
const { error, status, sendMessage, messages, regenerate, stop } =
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
resource: "user-1"
|
|
101
|
-
}
|
|
89
|
+
const { error, status, sendMessage, messages, regenerate, stop } = useChat({
|
|
90
|
+
transport: new DefaultChatTransport({
|
|
91
|
+
api: "http://localhost:4111/chat",
|
|
92
|
+
prepareSendMessagesRequest({ messages }) {
|
|
93
|
+
return {
|
|
94
|
+
body: {
|
|
95
|
+
messages,
|
|
96
|
+
// Pass memory config
|
|
97
|
+
memory: {
|
|
98
|
+
thread: "user-1",
|
|
99
|
+
resource: "user-1",
|
|
102
100
|
},
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
})
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
},
|
|
104
|
+
}),
|
|
105
|
+
});
|
|
107
106
|
```
|
|
108
107
|
|
|
109
108
|
### `workflowRoute()`
|
|
110
109
|
|
|
111
110
|
Use the `workflowRoute()` utility to create a route handler that automatically formats the workflow stream into an AI SDK-compatible format.
|
|
112
111
|
|
|
113
|
-
```typescript
|
|
114
|
-
import { Mastra } from
|
|
115
|
-
import { workflowRoute } from
|
|
112
|
+
```typescript title="src/mastra/index.ts" copy
|
|
113
|
+
import { Mastra } from "@mastra/core/mastra";
|
|
114
|
+
import { workflowRoute } from "@mastra/ai-sdk";
|
|
116
115
|
|
|
117
116
|
export const mastra = new Mastra({
|
|
118
117
|
server: {
|
|
119
118
|
apiRoutes: [
|
|
120
119
|
workflowRoute({
|
|
121
|
-
path:
|
|
122
|
-
agent:
|
|
120
|
+
path: "/workflow",
|
|
121
|
+
agent: "weatherAgent",
|
|
123
122
|
}),
|
|
124
123
|
],
|
|
125
124
|
},
|
|
@@ -129,37 +128,36 @@ export const mastra = new Mastra({
|
|
|
129
128
|
Once you have your `/workflow` API route set up, you can call the `useChat()` hook in your application.
|
|
130
129
|
|
|
131
130
|
```typescript
|
|
132
|
-
const { error, status, sendMessage, messages, regenerate, stop } =
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
});
|
|
131
|
+
const { error, status, sendMessage, messages, regenerate, stop } = useChat({
|
|
132
|
+
transport: new DefaultChatTransport({
|
|
133
|
+
api: "http://localhost:4111/workflow",
|
|
134
|
+
prepareSendMessagesRequest({ messages }) {
|
|
135
|
+
return {
|
|
136
|
+
body: {
|
|
137
|
+
inputData: {
|
|
138
|
+
city: messages[messages.length - 1].parts[0].text,
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
};
|
|
142
|
+
},
|
|
143
|
+
}),
|
|
144
|
+
});
|
|
147
145
|
```
|
|
148
146
|
|
|
149
147
|
### `networkRoute()`
|
|
150
148
|
|
|
151
149
|
Use the `networkRoute()` utility to create a route handler that automatically formats the agent network stream into an AI SDK-compatible format.
|
|
152
150
|
|
|
153
|
-
```typescript
|
|
154
|
-
import { Mastra } from
|
|
155
|
-
import { networkRoute } from
|
|
151
|
+
```typescript title="src/mastra/index.ts" copy
|
|
152
|
+
import { Mastra } from "@mastra/core/mastra";
|
|
153
|
+
import { networkRoute } from "@mastra/ai-sdk";
|
|
156
154
|
|
|
157
155
|
export const mastra = new Mastra({
|
|
158
156
|
server: {
|
|
159
157
|
apiRoutes: [
|
|
160
158
|
networkRoute({
|
|
161
|
-
path:
|
|
162
|
-
agent:
|
|
159
|
+
path: "/network",
|
|
160
|
+
agent: "weatherAgent",
|
|
163
161
|
}),
|
|
164
162
|
],
|
|
165
163
|
},
|
|
@@ -169,12 +167,11 @@ export const mastra = new Mastra({
|
|
|
169
167
|
Once you have your `/network` API route set up, you can call the `useChat()` hook in your application.
|
|
170
168
|
|
|
171
169
|
```typescript
|
|
172
|
-
const { error, status, sendMessage, messages, regenerate, stop } =
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
});
|
|
170
|
+
const { error, status, sendMessage, messages, regenerate, stop } = useChat({
|
|
171
|
+
transport: new DefaultChatTransport({
|
|
172
|
+
api: "http://localhost:4111/network",
|
|
173
|
+
}),
|
|
174
|
+
});
|
|
178
175
|
```
|
|
179
176
|
|
|
180
177
|
### Custom UI
|
|
@@ -192,7 +189,7 @@ The `@mastra/ai-sdk` package transforms and emits Mastra streams (e.g workflow,
|
|
|
192
189
|
|
|
193
190
|
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
191
|
|
|
195
|
-
```typescript
|
|
192
|
+
```typescript title="app/page.tsx" copy
|
|
196
193
|
"use client";
|
|
197
194
|
|
|
198
195
|
import { useChat } from "@ai-sdk/react";
|
|
@@ -228,16 +225,16 @@ export default function Page() {
|
|
|
228
225
|
}
|
|
229
226
|
```
|
|
230
227
|
|
|
231
|
-
```typescript
|
|
228
|
+
```typescript title="ui/agent-tool.ts" copy
|
|
232
229
|
import { Tool, ToolContent, ToolHeader, ToolOutput } from "../ai-elements/tool";
|
|
233
230
|
import type { AgentDataPart } from "@mastra/ai-sdk";
|
|
234
231
|
|
|
235
232
|
export const AgentTool = ({ id, text, status }: AgentDataPart) => {
|
|
236
233
|
return (
|
|
237
234
|
<Tool>
|
|
238
|
-
<ToolHeader
|
|
239
|
-
type={`${id}`}
|
|
240
|
-
state={status === 'finished' ? 'output-available' : 'input-available'}
|
|
235
|
+
<ToolHeader
|
|
236
|
+
type={`${id}`}
|
|
237
|
+
state={status === 'finished' ? 'output-available' : 'input-available'}
|
|
241
238
|
/>
|
|
242
239
|
<ToolContent>
|
|
243
240
|
<ToolOutput output={text} />
|
|
@@ -246,7 +243,9 @@ export const AgentTool = ({ id, text, status }: AgentDataPart) => {
|
|
|
246
243
|
);
|
|
247
244
|
};
|
|
248
245
|
```
|
|
246
|
+
|
|
249
247
|
### Custom Tool streaming
|
|
248
|
+
|
|
250
249
|
To stream custom data parts from within your tool execution function, use the
|
|
251
250
|
`writer.custom()` method.
|
|
252
251
|
|
|
@@ -283,10 +282,10 @@ For more information about tool streaming see [Tool streaming documentation](/do
|
|
|
283
282
|
|
|
284
283
|
To manually transform Mastra's streams to AI SDK-compatible format, use the `toAISdkFormat()` utility.
|
|
285
284
|
|
|
286
|
-
```typescript
|
|
285
|
+
```typescript title="app/api/chat/route.ts" copy {3,13}
|
|
287
286
|
import { mastra } from "../../mastra";
|
|
288
|
-
import { createUIMessageStream, createUIMessageStreamResponse } from
|
|
289
|
-
import { toAISdkFormat } from
|
|
287
|
+
import { createUIMessageStream, createUIMessageStreamResponse } from "ai";
|
|
288
|
+
import { toAISdkFormat } from "@mastra/ai-sdk";
|
|
290
289
|
|
|
291
290
|
export async function POST(req: Request) {
|
|
292
291
|
const { messages } = await req.json();
|
|
@@ -296,7 +295,7 @@ export async function POST(req: Request) {
|
|
|
296
295
|
// Transform stream into AI SDK format and create UI messages stream
|
|
297
296
|
const uiMessageStream = createUIMessageStream({
|
|
298
297
|
execute: async ({ writer }) => {
|
|
299
|
-
for await (const part of toAISdkFormat(stream, { from:
|
|
298
|
+
for await (const part of toAISdkFormat(stream, { from: "agent" })!) {
|
|
300
299
|
writer.write(part);
|
|
301
300
|
}
|
|
302
301
|
},
|
|
@@ -313,27 +312,34 @@ export async function POST(req: Request) {
|
|
|
313
312
|
|
|
314
313
|
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
314
|
|
|
316
|
-
```typescript
|
|
317
|
-
import { createUIMessageStream } from
|
|
318
|
-
import { toAISdkFormat } from
|
|
319
|
-
import type { ChunkType, MastraModelOutput } from
|
|
315
|
+
```typescript title="client-stream-to-ai-sdk.ts" copy
|
|
316
|
+
import { createUIMessageStream } from "ai";
|
|
317
|
+
import { toAISdkFormat } from "@mastra/ai-sdk";
|
|
318
|
+
import type { ChunkType, MastraModelOutput } from "@mastra/core/stream";
|
|
320
319
|
|
|
321
320
|
// Client SDK agent stream
|
|
322
|
-
const response = await agent.stream({
|
|
321
|
+
const response = await agent.stream({
|
|
322
|
+
messages: "What is the weather in Tokyo",
|
|
323
|
+
});
|
|
323
324
|
|
|
324
325
|
const chunkStream: ReadableStream<ChunkType> = new ReadableStream<ChunkType>({
|
|
325
326
|
start(controller) {
|
|
326
|
-
response
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
327
|
+
response
|
|
328
|
+
.processDataStream({
|
|
329
|
+
onChunk: async (chunk) => {
|
|
330
|
+
controller.enqueue(chunk as ChunkType);
|
|
331
|
+
},
|
|
332
|
+
})
|
|
333
|
+
.finally(() => controller.close());
|
|
331
334
|
},
|
|
332
335
|
});
|
|
333
336
|
|
|
334
337
|
const uiMessageStream = createUIMessageStream({
|
|
335
338
|
execute: async ({ writer }) => {
|
|
336
|
-
for await (const part of toAISdkFormat(
|
|
339
|
+
for await (const part of toAISdkFormat(
|
|
340
|
+
chunkStream as unknown as MastraModelOutput,
|
|
341
|
+
{ from: "agent" },
|
|
342
|
+
)) {
|
|
337
343
|
writer.write(part);
|
|
338
344
|
}
|
|
339
345
|
},
|
|
@@ -350,35 +356,34 @@ Mastra supports AI SDK UI hooks for connecting frontend components directly to a
|
|
|
350
356
|
|
|
351
357
|
Install the required AI SDK React package:
|
|
352
358
|
|
|
353
|
-
<Tabs
|
|
354
|
-
<
|
|
359
|
+
<Tabs>
|
|
360
|
+
<TabItem value="npm" label="npm">
|
|
355
361
|
```bash copy
|
|
356
362
|
npm install @ai-sdk/react
|
|
357
363
|
```
|
|
358
|
-
</
|
|
359
|
-
<
|
|
364
|
+
</TabItem>
|
|
365
|
+
<TabItem value="pnpm" label="pnpm">
|
|
360
366
|
```bash copy
|
|
361
367
|
pnpm add @ai-sdk/react
|
|
362
368
|
```
|
|
363
|
-
</
|
|
364
|
-
<
|
|
369
|
+
</TabItem>
|
|
370
|
+
<TabItem value="yarn" label="yarn">
|
|
365
371
|
```bash copy
|
|
366
372
|
yarn add @ai-sdk/react
|
|
367
373
|
```
|
|
368
|
-
</
|
|
369
|
-
<
|
|
374
|
+
</TabItem>
|
|
375
|
+
<TabItem value="bun" label="bun">
|
|
370
376
|
```bash copy
|
|
371
377
|
bun add @ai-sdk/react
|
|
372
378
|
```
|
|
373
|
-
</
|
|
379
|
+
</TabItem>
|
|
374
380
|
</Tabs>
|
|
375
381
|
|
|
376
|
-
|
|
377
382
|
### Using `useChat()`
|
|
378
383
|
|
|
379
384
|
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
385
|
|
|
381
|
-
```typescript {8-12}
|
|
386
|
+
```typescript {8-12} title="app/test/chat.tsx" copy
|
|
382
387
|
"use client";
|
|
383
388
|
|
|
384
389
|
import { useChat } from "@ai-sdk/react";
|
|
@@ -411,25 +416,25 @@ export function Chat() {
|
|
|
411
416
|
|
|
412
417
|
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
418
|
|
|
414
|
-
```typescript
|
|
419
|
+
```typescript title="app/api/chat/route.ts" copy
|
|
415
420
|
import { mastra } from "../../mastra";
|
|
416
421
|
|
|
417
422
|
export async function POST(req: Request) {
|
|
418
423
|
const { messages } = await req.json();
|
|
419
424
|
const myAgent = mastra.getAgent("weatherAgent");
|
|
420
|
-
const stream = await myAgent.stream(messages, { format:
|
|
425
|
+
const stream = await myAgent.stream(messages, { format: "aisdk" });
|
|
421
426
|
|
|
422
|
-
return stream.toUIMessageStreamResponse()
|
|
427
|
+
return stream.toUIMessageStreamResponse();
|
|
423
428
|
}
|
|
424
429
|
```
|
|
425
430
|
|
|
426
|
-
> When using `useChat()` with agent memory, refer to the [Agent Memory section](/docs/agents/agent-memory
|
|
431
|
+
> When using `useChat()` with agent memory, refer to the [Agent Memory section](/docs/agents/agent-memory) for key implementation details.
|
|
427
432
|
|
|
428
433
|
### Using `useCompletion()`
|
|
429
434
|
|
|
430
435
|
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
436
|
|
|
432
|
-
```typescript {6-8}
|
|
437
|
+
```typescript {6-8} title="app/test/completion.tsx" copy
|
|
433
438
|
"use client";
|
|
434
439
|
|
|
435
440
|
import { useCompletion } from "@ai-sdk/react";
|
|
@@ -452,15 +457,17 @@ export function Completion() {
|
|
|
452
457
|
|
|
453
458
|
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
459
|
|
|
455
|
-
```typescript
|
|
460
|
+
```typescript title="app/api/completion/route.ts" copy
|
|
456
461
|
import { mastra } from "../../../mastra";
|
|
457
462
|
|
|
458
463
|
export async function POST(req: Request) {
|
|
459
464
|
const { prompt } = await req.json();
|
|
460
465
|
const myAgent = mastra.getAgent("weatherAgent");
|
|
461
|
-
const stream = await myAgent.stream([{ role: "user", content: prompt }], {
|
|
466
|
+
const stream = await myAgent.stream([{ role: "user", content: prompt }], {
|
|
467
|
+
format: "aisdk",
|
|
468
|
+
});
|
|
462
469
|
|
|
463
|
-
return stream.toUIMessageStreamResponse()
|
|
470
|
+
return stream.toUIMessageStreamResponse();
|
|
464
471
|
}
|
|
465
472
|
```
|
|
466
473
|
|
|
@@ -468,7 +475,7 @@ export async function POST(req: Request) {
|
|
|
468
475
|
|
|
469
476
|
`sendMessage()` allows you to pass additional data from the frontend to Mastra. This data can then be used on the server as `RuntimeContext`.
|
|
470
477
|
|
|
471
|
-
```typescript {16-26}
|
|
478
|
+
```typescript {16-26} title="app/test/chat-extra.tsx" copy
|
|
472
479
|
"use client";
|
|
473
480
|
|
|
474
481
|
import { useChat } from "@ai-sdk/react";
|
|
@@ -509,7 +516,7 @@ export function ChatExtra() {
|
|
|
509
516
|
}
|
|
510
517
|
```
|
|
511
518
|
|
|
512
|
-
```typescript {8,12}
|
|
519
|
+
```typescript {8,12} title="app/api/chat-extra/route.ts" copy
|
|
513
520
|
import { mastra } from "../../../mastra";
|
|
514
521
|
import { RuntimeContext } from "@mastra/core/runtime-context";
|
|
515
522
|
|
|
@@ -525,7 +532,10 @@ export async function POST(req: Request) {
|
|
|
525
532
|
}
|
|
526
533
|
}
|
|
527
534
|
|
|
528
|
-
const stream = await myAgent.stream(messages, {
|
|
535
|
+
const stream = await myAgent.stream(messages, {
|
|
536
|
+
runtimeContext,
|
|
537
|
+
format: "aisdk",
|
|
538
|
+
});
|
|
529
539
|
return stream.toUIMessageStreamResponse();
|
|
530
540
|
}
|
|
531
541
|
```
|
|
@@ -534,7 +544,7 @@ export async function POST(req: Request) {
|
|
|
534
544
|
|
|
535
545
|
You can also populate the `RuntimeContext` by reading custom data in a server middleware:
|
|
536
546
|
|
|
537
|
-
```typescript {8,17}
|
|
547
|
+
```typescript {8,17} title="mastra/index.ts" copy
|
|
538
548
|
import { Mastra } from "@mastra/core/mastra";
|
|
539
549
|
|
|
540
550
|
export const mastra = new Mastra({
|
|
@@ -554,8 +564,7 @@ export const mastra = new Mastra({
|
|
|
554
564
|
runtimeContext.set(key, value);
|
|
555
565
|
}
|
|
556
566
|
}
|
|
557
|
-
} catch {
|
|
558
|
-
}
|
|
567
|
+
} catch {}
|
|
559
568
|
}
|
|
560
569
|
await next();
|
|
561
570
|
},
|
|
@@ -584,13 +593,13 @@ Mastra automatically handles AI SDK v4 data using its internal `MessageList` cla
|
|
|
584
593
|
For cases where you need to manually convert messages between AI SDK and Mastra formats, use the `convertMessages()` utility:
|
|
585
594
|
|
|
586
595
|
```typescript
|
|
587
|
-
import { convertMessages } from
|
|
596
|
+
import { convertMessages } from "@mastra/core/agent";
|
|
588
597
|
|
|
589
598
|
// Convert AI SDK v4 messages to v5
|
|
590
|
-
const aiv5Messages = convertMessages(aiv4Messages).to(
|
|
599
|
+
const aiv5Messages = convertMessages(aiv4Messages).to("AIV5.UI");
|
|
591
600
|
|
|
592
601
|
// Convert Mastra messages to AI SDK v5
|
|
593
|
-
const aiv5Messages = convertMessages(mastraMessages).to(
|
|
602
|
+
const aiv5Messages = convertMessages(mastraMessages).to("AIV5.Core");
|
|
594
603
|
|
|
595
604
|
// Supported output formats:
|
|
596
605
|
// 'Mastra.V2', 'AIV4.UI', 'AIV5.UI', 'AIV5.Core', 'AIV5.Model'
|
|
@@ -606,7 +615,7 @@ When using tools with TypeScript in AI SDK v5, Mastra provides type inference he
|
|
|
606
615
|
|
|
607
616
|
The `InferUITool` type helper infers the input and output types of a single Mastra tool:
|
|
608
617
|
|
|
609
|
-
```typescript
|
|
618
|
+
```typescript title="app/types.ts" copy
|
|
610
619
|
import { InferUITool, createTool } from "@mastra/core/tools";
|
|
611
620
|
import { z } from "zod";
|
|
612
621
|
|
|
@@ -641,7 +650,7 @@ type WeatherUITool = InferUITool<typeof weatherTool>;
|
|
|
641
650
|
|
|
642
651
|
The `InferUITools` type helper infers the input and output types of multiple tools:
|
|
643
652
|
|
|
644
|
-
```typescript
|
|
653
|
+
```typescript title="app/mastra/tools.ts" copy
|
|
645
654
|
import { InferUITools, createTool } from "@mastra/core/tools";
|
|
646
655
|
import { z } from "zod";
|
|
647
656
|
|