@mastra/mcp-docs-server 0.13.39 → 1.0.0-beta.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%2Fai-sdk-v4.md +1 -0
- package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +0 -10
- package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +0 -10
- package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +36 -36
- package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +0 -10
- package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +70 -70
- package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +40 -40
- package/.docs/organized/changelogs/%40mastra%2Fastra.md +19 -19
- package/.docs/organized/changelogs/%40mastra%2Fauth.md +4 -14
- package/.docs/organized/changelogs/%40mastra%2Fchroma.md +18 -18
- package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +199 -199
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +223 -223
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +190 -190
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +199 -199
- package/.docs/organized/changelogs/%40mastra%2Fcodemod.md +7 -0
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +214 -214
- package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +74 -74
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +67 -67
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +70 -70
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +67 -67
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +209 -209
- package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +191 -191
- package/.docs/organized/changelogs/%40mastra%2Fevals.md +34 -34
- package/.docs/organized/changelogs/%40mastra%2Ffastembed.md +5 -13
- package/.docs/organized/changelogs/%40mastra%2Flance.md +182 -182
- package/.docs/organized/changelogs/%40mastra%2Flibsql.md +199 -199
- package/.docs/organized/changelogs/%40mastra%2Floggers.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +58 -58
- package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fmcp.md +65 -65
- package/.docs/organized/changelogs/%40mastra%2Fmemory.md +228 -228
- package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +199 -199
- package/.docs/organized/changelogs/%40mastra%2Fmssql.md +206 -206
- package/.docs/organized/changelogs/%40mastra%2Fopensearch.md +19 -19
- package/.docs/organized/changelogs/%40mastra%2Fpg.md +197 -197
- package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +217 -217
- package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Frag.md +61 -61
- package/.docs/organized/changelogs/%40mastra%2Freact.md +70 -70
- package/.docs/organized/changelogs/%40mastra%2Fs3vectors.md +9 -17
- package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +6 -30
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +206 -206
- package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Fupstash.md +190 -190
- package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +18 -18
- package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +21 -21
- package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-gladia.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +56 -56
- package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +56 -56
- package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +20 -20
- package/.docs/organized/changelogs/create-mastra.md +33 -33
- package/.docs/organized/changelogs/mastra.md +86 -86
- package/.docs/organized/code-examples/a2a.md +4 -2
- package/.docs/organized/code-examples/agui.md +12 -9
- package/.docs/organized/code-examples/ai-sdk-useChat.md +12 -18
- package/.docs/organized/code-examples/ai-sdk-v5.md +4 -2
- package/.docs/organized/code-examples/bird-checker-with-express.md +5 -4
- package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +4 -3
- package/.docs/organized/code-examples/bird-checker-with-nextjs.md +4 -3
- package/.docs/organized/code-examples/client-side-tools.md +1 -0
- package/.docs/organized/code-examples/crypto-chatbot.md +1 -1
- package/.docs/organized/code-examples/experimental-auth-weather-agent.md +8 -177
- package/.docs/organized/code-examples/fireworks-r1.md +2 -2
- package/.docs/organized/code-examples/heads-up-game.md +10 -7
- package/.docs/organized/code-examples/mcp-configuration.md +5 -3
- package/.docs/organized/code-examples/mcp-registry-registry.md +3 -2
- package/.docs/organized/code-examples/memory-per-resource-example.md +4 -2
- package/.docs/organized/code-examples/memory-todo-agent.md +1 -0
- package/.docs/organized/code-examples/memory-with-context.md +2 -1
- package/.docs/organized/code-examples/memory-with-libsql.md +4 -2
- package/.docs/organized/code-examples/memory-with-mongodb.md +4 -2
- package/.docs/organized/code-examples/memory-with-pg.md +4 -2
- package/.docs/organized/code-examples/memory-with-processors.md +13 -8
- package/.docs/organized/code-examples/memory-with-upstash.md +5 -3
- package/.docs/organized/code-examples/openapi-spec-writer.md +32 -41
- package/.docs/organized/code-examples/quick-start.md +5 -32
- package/.docs/organized/code-examples/stock-price-tool.md +6 -5
- package/.docs/organized/code-examples/weather-agent.md +21 -16
- package/.docs/organized/code-examples/workflow-ai-recruiter.md +3 -2
- package/.docs/organized/code-examples/workflow-with-inline-steps.md +9 -12
- package/.docs/organized/code-examples/workflow-with-memory.md +16 -15
- package/.docs/organized/code-examples/workflow-with-separate-steps.md +2 -2
- package/.docs/organized/code-examples/workflow-with-suspend-resume.md +3 -2
- package/.docs/raw/agents/adding-voice.mdx +27 -22
- package/.docs/raw/agents/agent-memory.mdx +23 -15
- package/.docs/raw/agents/guardrails.mdx +33 -12
- package/.docs/raw/agents/networks.mdx +8 -4
- package/.docs/raw/agents/overview.mdx +21 -15
- package/.docs/raw/agents/using-tools.mdx +11 -8
- package/.docs/raw/auth/auth0.mdx +8 -8
- package/.docs/raw/auth/clerk.mdx +6 -6
- package/.docs/raw/auth/firebase.mdx +8 -8
- package/.docs/raw/auth/index.mdx +6 -6
- package/.docs/raw/auth/jwt.mdx +6 -6
- package/.docs/raw/auth/supabase.mdx +7 -7
- package/.docs/raw/auth/workos.mdx +8 -8
- package/.docs/raw/community/contributing-templates.mdx +3 -3
- package/.docs/raw/community/discord.mdx +1 -1
- package/.docs/raw/course/01-first-agent/08-exporting-your-agent.md +2 -1
- package/.docs/raw/course/01-first-agent/16-adding-memory-to-agent.md +2 -1
- package/.docs/raw/course/02-agent-tools-mcp/31-enhancing-memory-configuration.md +2 -0
- package/.docs/raw/course/03-agent-memory/04-creating-basic-memory-agent.md +1 -0
- package/.docs/raw/course/03-agent-memory/10-storage-configuration.md +2 -3
- package/.docs/raw/course/03-agent-memory/13-vector-store-configuration.md +2 -0
- package/.docs/raw/course/03-agent-memory/16-configuring-semantic-recall.md +2 -0
- package/.docs/raw/course/03-agent-memory/18-advanced-configuration-semantic-recall.md +1 -0
- package/.docs/raw/course/03-agent-memory/21-configuring-working-memory.md +2 -0
- package/.docs/raw/course/03-agent-memory/22-custom-working-memory-templates.md +1 -0
- package/.docs/raw/course/03-agent-memory/25-combining-memory-features.md +1 -0
- package/.docs/raw/course/03-agent-memory/27-creating-learning-assistant.md +1 -0
- package/.docs/raw/course/04-workflows/08-running-workflows-programmatically.md +2 -2
- package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +5 -5
- package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +7 -5
- package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +3 -3
- package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +4 -4
- package/.docs/raw/deployment/cloud-providers/index.mdx +11 -8
- package/.docs/raw/deployment/monorepo.mdx +2 -2
- package/.docs/raw/deployment/overview.mdx +2 -2
- package/.docs/raw/deployment/server-deployment.mdx +2 -10
- package/.docs/raw/deployment/serverless-platforms/cloudflare-deployer.mdx +4 -4
- package/.docs/raw/deployment/serverless-platforms/index.mdx +10 -7
- package/.docs/raw/deployment/serverless-platforms/netlify-deployer.mdx +4 -4
- package/.docs/raw/deployment/serverless-platforms/vercel-deployer.mdx +4 -4
- package/.docs/raw/deployment/web-framework.mdx +8 -8
- package/.docs/raw/{scorers → evals}/custom-scorers.mdx +6 -6
- package/.docs/raw/evals/off-the-shelf-scorers.mdx +50 -0
- package/.docs/raw/{scorers → evals}/overview.mdx +8 -8
- package/.docs/raw/evals/running-in-ci.mdx +113 -0
- package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +22 -21
- package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +8 -8
- package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +3 -0
- package/.docs/raw/frameworks/servers/express.mdx +10 -9
- package/.docs/raw/frameworks/web-frameworks/astro.mdx +6 -6
- package/.docs/raw/frameworks/web-frameworks/next-js.mdx +3 -3
- package/.docs/raw/frameworks/web-frameworks/sveltekit.mdx +4 -4
- package/.docs/raw/frameworks/web-frameworks/vite-react.mdx +2 -2
- package/.docs/raw/getting-started/installation.mdx +13 -12
- package/.docs/raw/getting-started/mcp-docs-server.mdx +1 -1
- package/.docs/raw/getting-started/project-structure.mdx +4 -4
- package/.docs/raw/getting-started/studio.mdx +8 -8
- package/.docs/raw/getting-started/templates.mdx +1 -1
- package/.docs/raw/guides/guide/ai-recruiter.mdx +264 -0
- package/.docs/raw/guides/guide/chef-michel.mdx +271 -0
- package/.docs/raw/guides/guide/notes-mcp-server.mdx +450 -0
- package/.docs/raw/guides/guide/research-assistant.mdx +389 -0
- package/.docs/raw/guides/guide/stock-agent.mdx +185 -0
- package/.docs/raw/guides/guide/web-search.mdx +291 -0
- package/.docs/raw/guides/index.mdx +43 -0
- package/.docs/raw/guides/migrations/agentnetwork.mdx +114 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/_template.mdx +50 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +265 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/cli.mdx +48 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +153 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/evals.mdx +230 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/mastra.mdx +171 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/mcp.mdx +114 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/memory.mdx +241 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +83 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/processors.mdx +62 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +270 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/tools.mdx +115 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/tracing.mdx +280 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/vectors.mdx +23 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/voice.mdx +39 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +178 -0
- package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +367 -0
- package/.docs/raw/index.mdx +9 -9
- package/.docs/raw/{observability/logging.mdx → logging.mdx} +4 -4
- package/.docs/raw/mastra-cloud/dashboard.mdx +2 -2
- package/.docs/raw/mastra-cloud/observability.mdx +6 -6
- package/.docs/raw/mastra-cloud/overview.mdx +2 -2
- package/.docs/raw/mastra-cloud/setting-up.mdx +4 -4
- package/.docs/raw/memory/conversation-history.mdx +1 -0
- package/.docs/raw/memory/memory-processors.mdx +4 -3
- package/.docs/raw/memory/overview.mdx +9 -5
- package/.docs/raw/memory/semantic-recall.mdx +12 -7
- package/.docs/raw/memory/storage/memory-with-libsql.mdx +10 -5
- package/.docs/raw/memory/storage/memory-with-pg.mdx +9 -4
- package/.docs/raw/memory/storage/memory-with-upstash.mdx +9 -4
- package/.docs/raw/memory/threads-and-resources.mdx +11 -13
- package/.docs/raw/memory/working-memory.mdx +30 -14
- package/.docs/raw/observability/overview.mdx +13 -30
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/arize.mdx +10 -18
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/braintrust.mdx +7 -16
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/cloud.mdx +11 -17
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/default.mdx +16 -20
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/langfuse.mdx +7 -16
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/langsmith.mdx +7 -16
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/otel.mdx +9 -18
- package/.docs/raw/observability/{ai-tracing → tracing}/overview.mdx +107 -142
- package/.docs/raw/observability/{ai-tracing → tracing}/processors/sensitive-data-filter.mdx +14 -13
- package/.docs/raw/rag/chunking-and-embedding.mdx +5 -5
- package/.docs/raw/rag/overview.mdx +3 -13
- package/.docs/raw/rag/retrieval.mdx +24 -12
- package/.docs/raw/rag/vector-databases.mdx +7 -1
- package/.docs/raw/reference/agents/agent.mdx +33 -28
- package/.docs/raw/reference/agents/generate.mdx +10 -10
- package/.docs/raw/reference/agents/generateLegacy.mdx +8 -8
- package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +21 -15
- package/.docs/raw/reference/agents/getDefaultOptions.mdx +69 -0
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +22 -16
- package/.docs/raw/reference/agents/getDescription.mdx +1 -1
- package/.docs/raw/reference/agents/getInstructions.mdx +8 -8
- package/.docs/raw/reference/agents/getLLM.mdx +9 -9
- package/.docs/raw/reference/agents/getMemory.mdx +9 -9
- package/.docs/raw/reference/agents/getModel.mdx +10 -10
- package/.docs/raw/reference/agents/getVoice.mdx +8 -8
- package/.docs/raw/reference/agents/listAgents.mdx +9 -9
- package/.docs/raw/reference/agents/listScorers.mdx +7 -7
- package/.docs/raw/reference/agents/listTools.mdx +7 -7
- package/.docs/raw/reference/agents/listWorkflows.mdx +7 -7
- package/.docs/raw/reference/agents/network.mdx +11 -10
- package/.docs/raw/reference/auth/auth0.mdx +4 -4
- package/.docs/raw/reference/auth/clerk.mdx +4 -4
- package/.docs/raw/reference/auth/firebase.mdx +6 -6
- package/.docs/raw/reference/auth/jwt.mdx +4 -4
- package/.docs/raw/reference/auth/supabase.mdx +4 -4
- package/.docs/raw/reference/auth/workos.mdx +4 -4
- package/.docs/raw/reference/cli/mastra.mdx +7 -7
- package/.docs/raw/reference/client-js/agents.mdx +6 -2
- package/.docs/raw/reference/client-js/mastra-client.mdx +7 -7
- package/.docs/raw/reference/client-js/memory.mdx +24 -16
- package/.docs/raw/reference/client-js/observability.mdx +11 -11
- package/.docs/raw/reference/client-js/workflows.mdx +6 -34
- package/.docs/raw/reference/core/getAgent.mdx +1 -1
- package/.docs/raw/reference/core/getAgentById.mdx +1 -1
- package/.docs/raw/reference/core/getDeployer.mdx +2 -2
- package/.docs/raw/reference/core/getLogger.mdx +2 -2
- package/.docs/raw/reference/core/getMCPServer.mdx +31 -15
- package/.docs/raw/reference/core/getMCPServerById.mdx +81 -0
- package/.docs/raw/reference/core/getScorer.mdx +3 -3
- package/.docs/raw/reference/core/getScorerById.mdx +79 -0
- package/.docs/raw/reference/core/getServer.mdx +2 -2
- package/.docs/raw/reference/core/getStorage.mdx +2 -2
- package/.docs/raw/reference/core/getTelemetry.mdx +2 -2
- package/.docs/raw/reference/core/getVector.mdx +2 -2
- package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
- package/.docs/raw/reference/core/listAgents.mdx +1 -1
- package/.docs/raw/reference/core/listLogs.mdx +2 -2
- package/.docs/raw/reference/core/listLogsByRunId.mdx +2 -2
- package/.docs/raw/reference/core/listMCPServers.mdx +65 -0
- package/.docs/raw/reference/core/listScorers.mdx +3 -3
- package/.docs/raw/reference/core/listVectors.mdx +36 -0
- package/.docs/raw/reference/core/listWorkflows.mdx +6 -6
- package/.docs/raw/reference/core/mastra-class.mdx +3 -2
- package/.docs/raw/reference/core/setLogger.mdx +2 -2
- package/.docs/raw/reference/core/setStorage.mdx +3 -2
- package/.docs/raw/reference/core/setTelemetry.mdx +2 -2
- package/.docs/raw/reference/deployer/cloudflare.mdx +2 -2
- package/.docs/raw/reference/deployer/deployer.mdx +0 -6
- package/.docs/raw/reference/deployer/netlify.mdx +2 -2
- package/.docs/raw/reference/deployer/vercel.mdx +3 -3
- package/.docs/raw/reference/evals/answer-relevancy.mdx +164 -126
- package/.docs/raw/reference/{scorers → evals}/answer-similarity.mdx +27 -27
- package/.docs/raw/reference/evals/bias.mdx +149 -115
- package/.docs/raw/reference/evals/completeness.mdx +148 -117
- package/.docs/raw/reference/evals/content-similarity.mdx +126 -113
- package/.docs/raw/reference/evals/context-precision.mdx +290 -133
- package/.docs/raw/reference/{scorers → evals}/context-relevance.mdx +6 -6
- package/.docs/raw/reference/{scorers → evals}/create-scorer.mdx +11 -11
- package/.docs/raw/reference/evals/faithfulness.mdx +163 -121
- package/.docs/raw/reference/evals/hallucination.mdx +159 -132
- package/.docs/raw/reference/evals/keyword-coverage.mdx +169 -125
- package/.docs/raw/reference/{scorers → evals}/mastra-scorer.mdx +5 -5
- package/.docs/raw/reference/{scorers → evals}/noise-sensitivity.mdx +9 -9
- package/.docs/raw/reference/evals/prompt-alignment.mdx +604 -182
- package/.docs/raw/reference/{scorers/run-experiment.mdx → evals/run-evals.mdx} +17 -18
- package/.docs/raw/reference/evals/textual-difference.mdx +149 -117
- package/.docs/raw/reference/evals/tone-consistency.mdx +149 -125
- package/.docs/raw/reference/{scorers → evals}/tool-call-accuracy.mdx +8 -6
- package/.docs/raw/reference/evals/toxicity.mdx +152 -96
- package/.docs/raw/reference/{observability/logging → logging}/pino-logger.mdx +2 -2
- package/.docs/raw/reference/memory/createThread.mdx +5 -5
- package/.docs/raw/reference/memory/deleteMessages.mdx +7 -7
- package/.docs/raw/reference/memory/getThreadById.mdx +4 -4
- package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +110 -0
- package/.docs/raw/reference/memory/memory-class.mdx +13 -9
- package/.docs/raw/reference/memory/query.mdx +58 -57
- package/.docs/raw/reference/memory/recall.mdx +185 -0
- package/.docs/raw/reference/observability/tracing/configuration.mdx +245 -0
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/arize.mdx +13 -13
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/braintrust.mdx +11 -8
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/cloud-exporter.mdx +21 -19
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/console-exporter.mdx +49 -17
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/default-exporter.mdx +42 -41
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/langfuse.mdx +10 -7
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/langsmith.mdx +10 -7
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/otel.mdx +5 -5
- package/.docs/raw/reference/observability/tracing/instances.mdx +168 -0
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/interfaces.mdx +115 -89
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/processors/sensitive-data-filter.mdx +3 -3
- package/.docs/raw/reference/observability/{ai-tracing/span.mdx → tracing/spans.mdx} +59 -41
- package/.docs/raw/reference/processors/batch-parts-processor.mdx +1 -1
- package/.docs/raw/reference/processors/language-detector.mdx +1 -1
- package/.docs/raw/reference/processors/moderation-processor.mdx +1 -1
- package/.docs/raw/reference/processors/pii-detector.mdx +1 -1
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +1 -1
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +1 -1
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +1 -1
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +1 -1
- package/.docs/raw/reference/rag/chunk.mdx +1 -8
- package/.docs/raw/reference/rag/database-config.mdx +7 -7
- package/.docs/raw/reference/rag/metadata-filters.mdx +14 -11
- package/.docs/raw/reference/storage/libsql.mdx +2 -0
- package/.docs/raw/reference/storage/mssql.mdx +5 -0
- package/.docs/raw/reference/storage/postgresql.mdx +6 -0
- package/.docs/raw/reference/storage/upstash.mdx +1 -0
- package/.docs/raw/reference/streaming/agents/stream.mdx +12 -12
- package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +8 -8
- package/.docs/raw/reference/streaming/workflows/observeStream.mdx +3 -3
- package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +3 -3
- package/.docs/raw/reference/streaming/workflows/resumeStreamVNext.mdx +6 -6
- package/.docs/raw/reference/streaming/workflows/stream.mdx +10 -10
- package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +11 -11
- package/.docs/raw/reference/templates/overview.mdx +2 -2
- package/.docs/raw/reference/tools/create-tool.mdx +52 -35
- package/.docs/raw/reference/tools/graph-rag-tool.mdx +15 -15
- package/.docs/raw/reference/tools/mcp-client.mdx +1 -1
- package/.docs/raw/reference/tools/mcp-server.mdx +119 -35
- package/.docs/raw/reference/tools/vector-query-tool.mdx +27 -26
- package/.docs/raw/reference/vectors/libsql.mdx +1 -0
- package/.docs/raw/reference/vectors/pg.mdx +3 -0
- package/.docs/raw/reference/vectors/upstash.mdx +1 -0
- package/.docs/raw/reference/voice/google-gemini-live.mdx +1 -1
- package/.docs/raw/reference/voice/voice.addTools.mdx +3 -3
- package/.docs/raw/reference/workflows/run-methods/cancel.mdx +4 -4
- package/.docs/raw/reference/workflows/run-methods/resume.mdx +14 -14
- package/.docs/raw/reference/workflows/run-methods/start.mdx +17 -17
- package/.docs/raw/reference/workflows/run.mdx +1 -8
- package/.docs/raw/reference/workflows/step.mdx +5 -5
- 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 -13
- package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/map.mdx +5 -0
- package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow.mdx +1 -1
- package/.docs/raw/server-db/custom-api-routes.mdx +2 -2
- package/.docs/raw/server-db/mastra-client.mdx +19 -18
- package/.docs/raw/server-db/middleware.mdx +7 -7
- package/.docs/raw/server-db/production-server.mdx +4 -4
- package/.docs/raw/server-db/{runtime-context.mdx → request-context.mdx} +46 -45
- package/.docs/raw/server-db/storage.mdx +29 -21
- package/.docs/raw/streaming/events.mdx +3 -3
- package/.docs/raw/streaming/overview.mdx +5 -5
- package/.docs/raw/streaming/tool-streaming.mdx +18 -17
- package/.docs/raw/streaming/workflow-streaming.mdx +1 -1
- package/.docs/raw/tools-mcp/advanced-usage.mdx +5 -4
- package/.docs/raw/tools-mcp/mcp-overview.mdx +32 -19
- package/.docs/raw/tools-mcp/overview.mdx +11 -11
- package/.docs/raw/voice/overview.mdx +63 -43
- package/.docs/raw/voice/speech-to-speech.mdx +5 -3
- package/.docs/raw/voice/speech-to-text.mdx +9 -8
- package/.docs/raw/voice/text-to-speech.mdx +12 -11
- package/.docs/raw/workflows/agents-and-tools.mdx +9 -5
- package/.docs/raw/workflows/control-flow.mdx +3 -3
- package/.docs/raw/workflows/error-handling.mdx +2 -21
- package/.docs/raw/workflows/human-in-the-loop.mdx +7 -4
- package/.docs/raw/workflows/inngest-workflow.mdx +2 -2
- package/.docs/raw/workflows/input-data-mapping.mdx +107 -0
- package/.docs/raw/workflows/overview.mdx +17 -16
- package/.docs/raw/workflows/snapshots.mdx +13 -11
- package/.docs/raw/workflows/suspend-and-resume.mdx +23 -15
- package/CHANGELOG.md +52 -57
- package/README.md +11 -2
- package/dist/{chunk-TUAHUTTB.js → chunk-5NJC7NRO.js} +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/prepare-docs/copy-raw.d.ts.map +1 -1
- package/dist/prepare-docs/prepare.js +1 -1
- package/dist/prompts/migration.d.ts +6 -0
- package/dist/prompts/migration.d.ts.map +1 -0
- package/dist/stdio.js +402 -30
- package/dist/tools/migration.d.ts +40 -0
- package/dist/tools/migration.d.ts.map +1 -0
- package/package.json +8 -12
- package/.docs/organized/changelogs/%40mastra%2Fcloud.md +0 -302
- package/.docs/raw/observability/nextjs-tracing.mdx +0 -109
- package/.docs/raw/observability/otel-tracing.mdx +0 -189
- package/.docs/raw/reference/agents/getScorers.mdx +0 -69
- package/.docs/raw/reference/agents/getTools.mdx +0 -69
- package/.docs/raw/reference/agents/getWorkflows.mdx +0 -69
- package/.docs/raw/reference/client-js/workflows-legacy.mdx +0 -143
- package/.docs/raw/reference/core/getAgents.mdx +0 -35
- package/.docs/raw/reference/core/getLogs.mdx +0 -96
- package/.docs/raw/reference/core/getLogsByRunId.mdx +0 -87
- package/.docs/raw/reference/core/getMCPServers.mdx +0 -36
- package/.docs/raw/reference/core/getMemory.mdx +0 -36
- package/.docs/raw/reference/core/getScorerByName.mdx +0 -78
- package/.docs/raw/reference/core/getScorers.mdx +0 -43
- package/.docs/raw/reference/core/getVectors.mdx +0 -36
- package/.docs/raw/reference/core/getWorkflows.mdx +0 -45
- package/.docs/raw/reference/evals/context-position.mdx +0 -197
- package/.docs/raw/reference/evals/context-relevancy.mdx +0 -196
- package/.docs/raw/reference/evals/contextual-recall.mdx +0 -196
- package/.docs/raw/reference/evals/summarization.mdx +0 -212
- package/.docs/raw/reference/legacyWorkflows/after.mdx +0 -89
- package/.docs/raw/reference/legacyWorkflows/afterEvent.mdx +0 -79
- package/.docs/raw/reference/legacyWorkflows/commit.mdx +0 -33
- package/.docs/raw/reference/legacyWorkflows/createRun.mdx +0 -76
- package/.docs/raw/reference/legacyWorkflows/else.mdx +0 -68
- package/.docs/raw/reference/legacyWorkflows/events.mdx +0 -305
- package/.docs/raw/reference/legacyWorkflows/execute.mdx +0 -110
- package/.docs/raw/reference/legacyWorkflows/if.mdx +0 -108
- package/.docs/raw/reference/legacyWorkflows/resume.mdx +0 -158
- package/.docs/raw/reference/legacyWorkflows/resumeWithEvent.mdx +0 -133
- package/.docs/raw/reference/legacyWorkflows/snapshots.mdx +0 -207
- package/.docs/raw/reference/legacyWorkflows/start.mdx +0 -87
- package/.docs/raw/reference/legacyWorkflows/step-class.mdx +0 -100
- package/.docs/raw/reference/legacyWorkflows/step-condition.mdx +0 -137
- package/.docs/raw/reference/legacyWorkflows/step-function.mdx +0 -93
- package/.docs/raw/reference/legacyWorkflows/step-options.mdx +0 -69
- package/.docs/raw/reference/legacyWorkflows/step-retries.mdx +0 -196
- package/.docs/raw/reference/legacyWorkflows/suspend.mdx +0 -70
- package/.docs/raw/reference/legacyWorkflows/then.mdx +0 -72
- package/.docs/raw/reference/legacyWorkflows/until.mdx +0 -168
- package/.docs/raw/reference/legacyWorkflows/watch.mdx +0 -124
- package/.docs/raw/reference/legacyWorkflows/while.mdx +0 -168
- package/.docs/raw/reference/legacyWorkflows/workflow.mdx +0 -234
- package/.docs/raw/reference/memory/getThreadsByResourceId.mdx +0 -79
- package/.docs/raw/reference/memory/getThreadsByResourceIdPaginated.mdx +0 -110
- package/.docs/raw/reference/observability/ai-tracing/ai-tracing.mdx +0 -185
- package/.docs/raw/reference/observability/ai-tracing/configuration.mdx +0 -238
- package/.docs/raw/reference/observability/otel-tracing/otel-config.mdx +0 -117
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-ax.mdx +0 -81
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-phoenix.mdx +0 -121
- package/.docs/raw/reference/observability/otel-tracing/providers/braintrust.mdx +0 -40
- package/.docs/raw/reference/observability/otel-tracing/providers/dash0.mdx +0 -40
- package/.docs/raw/reference/observability/otel-tracing/providers/index.mdx +0 -20
- package/.docs/raw/reference/observability/otel-tracing/providers/keywordsai.mdx +0 -73
- package/.docs/raw/reference/observability/otel-tracing/providers/laminar.mdx +0 -41
- package/.docs/raw/reference/observability/otel-tracing/providers/langfuse.mdx +0 -84
- package/.docs/raw/reference/observability/otel-tracing/providers/langsmith.mdx +0 -48
- package/.docs/raw/reference/observability/otel-tracing/providers/langwatch.mdx +0 -43
- package/.docs/raw/reference/observability/otel-tracing/providers/new-relic.mdx +0 -40
- package/.docs/raw/reference/observability/otel-tracing/providers/signoz.mdx +0 -40
- package/.docs/raw/reference/observability/otel-tracing/providers/traceloop.mdx +0 -40
- package/.docs/raw/reference/scorers/answer-relevancy.mdx +0 -227
- package/.docs/raw/reference/scorers/bias.mdx +0 -228
- package/.docs/raw/reference/scorers/completeness.mdx +0 -214
- package/.docs/raw/reference/scorers/content-similarity.mdx +0 -197
- package/.docs/raw/reference/scorers/context-precision.mdx +0 -352
- package/.docs/raw/reference/scorers/faithfulness.mdx +0 -241
- package/.docs/raw/reference/scorers/hallucination.mdx +0 -252
- package/.docs/raw/reference/scorers/keyword-coverage.mdx +0 -229
- package/.docs/raw/reference/scorers/prompt-alignment.mdx +0 -668
- package/.docs/raw/reference/scorers/textual-difference.mdx +0 -203
- package/.docs/raw/reference/scorers/tone-consistency.mdx +0 -211
- package/.docs/raw/reference/scorers/toxicity.mdx +0 -228
- package/.docs/raw/reference/workflows/run-methods/watch.mdx +0 -73
- package/.docs/raw/scorers/evals-old-api/custom-eval.mdx +0 -24
- package/.docs/raw/scorers/evals-old-api/overview.mdx +0 -106
- package/.docs/raw/scorers/evals-old-api/running-in-ci.mdx +0 -85
- package/.docs/raw/scorers/evals-old-api/textual-evals.mdx +0 -58
- package/.docs/raw/scorers/off-the-shelf-scorers.mdx +0 -50
- package/.docs/raw/workflows-legacy/control-flow.mdx +0 -774
- package/.docs/raw/workflows-legacy/dynamic-workflows.mdx +0 -239
- package/.docs/raw/workflows-legacy/error-handling.mdx +0 -187
- package/.docs/raw/workflows-legacy/nested-workflows.mdx +0 -360
- package/.docs/raw/workflows-legacy/overview.mdx +0 -182
- package/.docs/raw/workflows-legacy/runtime-variables.mdx +0 -156
- package/.docs/raw/workflows-legacy/steps.mdx +0 -115
- package/.docs/raw/workflows-legacy/suspend-and-resume.mdx +0 -406
- package/.docs/raw/workflows-legacy/variables.mdx +0 -318
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "
|
|
3
|
-
description: Learn how to use Mastra's
|
|
2
|
+
title: "Request Context | Server & DB | Mastra Docs"
|
|
3
|
+
description: Learn how to use Mastra's RequestContext to provide dynamic, request-specific configuration to agents.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Request Context
|
|
7
7
|
|
|
8
|
-
Agents, tools, and workflows can all accept `
|
|
8
|
+
Agents, tools, and workflows can all accept `RequestContext` as a parameter, making request-specific values available to the underlying primitives.
|
|
9
9
|
|
|
10
|
-
## When to use `
|
|
10
|
+
## When to use `RequestContext`
|
|
11
11
|
|
|
12
|
-
Use `
|
|
12
|
+
Use `RequestContext` when a primitive’s behavior should change based on runtime conditions. For example, you might switch models or storage backends based on user attributes, or adjust instructions and tool selection based on language.
|
|
13
13
|
|
|
14
14
|
:::note
|
|
15
15
|
|
|
16
|
-
**Note:** `
|
|
16
|
+
**Note:** `RequestContext` is primarily used for passing data into specific
|
|
17
17
|
requests. It's distinct from agent memory, which handles conversation
|
|
18
18
|
history and state persistence across multiple calls.
|
|
19
19
|
|
|
@@ -21,7 +21,7 @@ history and state persistence across multiple calls.
|
|
|
21
21
|
|
|
22
22
|
## Setting values
|
|
23
23
|
|
|
24
|
-
Pass `
|
|
24
|
+
Pass `requestContext` into an agent, network, workflow, or tool call to make values available to all underlying primitives during execution. Use `.set()` to define values before making the call.
|
|
25
25
|
|
|
26
26
|
The `.set()` method takes two arguments:
|
|
27
27
|
|
|
@@ -29,54 +29,54 @@ The `.set()` method takes two arguments:
|
|
|
29
29
|
2. **value**: The data to associate with that key.
|
|
30
30
|
|
|
31
31
|
```typescript showLineNumbers
|
|
32
|
-
import {
|
|
32
|
+
import { RequestContext } from "@mastra/core/request-context";
|
|
33
33
|
|
|
34
34
|
export type UserTier = {
|
|
35
35
|
"user-tier": "enterprise" | "pro";
|
|
36
36
|
};
|
|
37
37
|
|
|
38
|
-
const
|
|
39
|
-
|
|
38
|
+
const requestContext = new RequestContext<UserTier>();
|
|
39
|
+
requestContext.set("user-tier", "enterprise");
|
|
40
40
|
|
|
41
41
|
const agent = mastra.getAgent("weatherAgent");
|
|
42
42
|
await agent.generate("What's the weather in London?", {
|
|
43
|
-
|
|
43
|
+
requestContext,
|
|
44
44
|
});
|
|
45
45
|
|
|
46
46
|
const routingAgent = mastra.getAgent("routingAgent");
|
|
47
47
|
routingAgent.network("What's the weather in London?", {
|
|
48
|
-
|
|
48
|
+
requestContext,
|
|
49
49
|
});
|
|
50
50
|
|
|
51
|
-
const run = await mastra.getWorkflow("weatherWorkflow").
|
|
51
|
+
const run = await mastra.getWorkflow("weatherWorkflow").createRun();
|
|
52
52
|
await run.start({
|
|
53
53
|
inputData: {
|
|
54
54
|
location: "London",
|
|
55
55
|
},
|
|
56
|
-
|
|
56
|
+
requestContext,
|
|
57
57
|
});
|
|
58
58
|
await run.resume({
|
|
59
59
|
resumeData: {
|
|
60
60
|
city: "New York",
|
|
61
61
|
},
|
|
62
|
-
|
|
62
|
+
requestContext,
|
|
63
63
|
});
|
|
64
64
|
|
|
65
65
|
await weatherTool.execute({
|
|
66
66
|
context: {
|
|
67
67
|
location: "London",
|
|
68
68
|
},
|
|
69
|
-
|
|
69
|
+
requestContext,
|
|
70
70
|
});
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
### Setting values based on request headers
|
|
74
74
|
|
|
75
|
-
You can populate `
|
|
75
|
+
You can populate `requestContext` dynamically in server middleware by extracting information from the request. In this example, the `temperature-unit` is set based on the Cloudflare `CF-IPCountry` header to ensure responses match the user's locale.
|
|
76
76
|
|
|
77
77
|
```typescript title="src/mastra/index.ts" showLineNumbers copy
|
|
78
|
-
import { Mastra } from "@mastra/core
|
|
79
|
-
import {
|
|
78
|
+
import { Mastra } from "@mastra/core";
|
|
79
|
+
import { RequestContext } from "@mastra/core/request-context";
|
|
80
80
|
import { testWeatherAgent } from "./agents/test-weather-agent";
|
|
81
81
|
|
|
82
82
|
export const mastra = new Mastra({
|
|
@@ -85,9 +85,9 @@ export const mastra = new Mastra({
|
|
|
85
85
|
middleware: [
|
|
86
86
|
async (context, next) => {
|
|
87
87
|
const country = context.req.header("CF-IPCountry");
|
|
88
|
-
const
|
|
88
|
+
const requestContext = context.get("requestContext");
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
requestContext.set(
|
|
91
91
|
"temperature-unit",
|
|
92
92
|
country === "US" ? "fahrenheit" : "celsius",
|
|
93
93
|
);
|
|
@@ -99,11 +99,11 @@ export const mastra = new Mastra({
|
|
|
99
99
|
});
|
|
100
100
|
```
|
|
101
101
|
|
|
102
|
-
> See [Middleware](/docs/server-db/middleware) for how to use server middleware.
|
|
102
|
+
> See [Middleware](/docs/v1/server-db/middleware) for how to use server middleware.
|
|
103
103
|
|
|
104
104
|
## Accessing values with agents
|
|
105
105
|
|
|
106
|
-
You can access the `
|
|
106
|
+
You can access the `requestContext` argument from any supported configuration options in agents. These functions can be sync or `async`. Use the `.get()` method to read values from `requestContext`.
|
|
107
107
|
|
|
108
108
|
```typescript {7-8,15,18,21} title="src/mastra/agents/weather-agent.ts" showLineNumbers
|
|
109
109
|
export type UserTier = {
|
|
@@ -111,34 +111,35 @@ export type UserTier = {
|
|
|
111
111
|
};
|
|
112
112
|
|
|
113
113
|
export const weatherAgent = new Agent({
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
114
|
+
id: "weather-agent",
|
|
115
|
+
name: "Weather Agent",
|
|
116
|
+
instructions: async ({ requestContext }) => {
|
|
117
|
+
const userTier = requestContext.get("user-tier") as UserTier["user-tier"];
|
|
117
118
|
|
|
118
119
|
if (userTier === "enterprise") {
|
|
119
120
|
// ...
|
|
120
121
|
}
|
|
121
122
|
// ...
|
|
122
123
|
},
|
|
123
|
-
model: ({
|
|
124
|
+
model: ({ requestContext }) => {
|
|
124
125
|
// ...
|
|
125
126
|
},
|
|
126
|
-
tools: ({
|
|
127
|
+
tools: ({ requestContext }) => {
|
|
127
128
|
// ...
|
|
128
129
|
},
|
|
129
|
-
memory: ({
|
|
130
|
+
memory: ({ requestContext }) => {
|
|
130
131
|
// ...
|
|
131
132
|
},
|
|
132
133
|
});
|
|
133
134
|
```
|
|
134
135
|
|
|
135
|
-
You can also use `
|
|
136
|
+
You can also use `requestContext` with other options like `agents`, `workflows`, `scorers`, `inputProcessors`, and `outputProcessors`.
|
|
136
137
|
|
|
137
|
-
> See [Agent](/reference/agents/agent) for a full list of configuration options.
|
|
138
|
+
> See [Agent](/reference/v1/agents/agent) for a full list of configuration options.
|
|
138
139
|
|
|
139
140
|
## Accessing values from workflow steps
|
|
140
141
|
|
|
141
|
-
You can access the `
|
|
142
|
+
You can access the `requestContext` argument from a workflow step's `execute` function. This function can be sync or async. Use the `.get()` method to read values from `requestContext`.
|
|
142
143
|
|
|
143
144
|
```typescript {7-8} title="src/mastra/workflows/weather-workflow.ts" showLineNumbers copy
|
|
144
145
|
export type UserTier = {
|
|
@@ -147,8 +148,8 @@ export type UserTier = {
|
|
|
147
148
|
|
|
148
149
|
const stepOne = createStep({
|
|
149
150
|
id: "step-one",
|
|
150
|
-
execute: async ({
|
|
151
|
-
const userTier =
|
|
151
|
+
execute: async ({ requestContext }) => {
|
|
152
|
+
const userTier = requestContext.get("user-tier") as UserTier["user-tier"];
|
|
152
153
|
|
|
153
154
|
if (userTier === "enterprise") {
|
|
154
155
|
// ...
|
|
@@ -158,11 +159,11 @@ const stepOne = createStep({
|
|
|
158
159
|
});
|
|
159
160
|
```
|
|
160
161
|
|
|
161
|
-
> See [createStep()](/reference/workflows/step) for a full list of configuration options.
|
|
162
|
+
> See [createStep()](/reference/v1/workflows/step) for a full list of configuration options.
|
|
162
163
|
|
|
163
164
|
## Accessing values with tools
|
|
164
165
|
|
|
165
|
-
You can access the `
|
|
166
|
+
You can access the `requestContext` argument from a tool’s `execute` function. This function is `async`. Use the `.get()` method to read values from `requestContext`.
|
|
166
167
|
|
|
167
168
|
```typescript {7-8} title="src/mastra/tools/weather-tool.ts" showLineNumbers
|
|
168
169
|
export type UserTier = {
|
|
@@ -171,8 +172,8 @@ export type UserTier = {
|
|
|
171
172
|
|
|
172
173
|
export const weatherTool = createTool({
|
|
173
174
|
id: "weather-tool",
|
|
174
|
-
execute: async ({
|
|
175
|
-
const userTier =
|
|
175
|
+
execute: async ({ requestContext }) => {
|
|
176
|
+
const userTier = requestContext.get("user-tier") as UserTier["user-tier"];
|
|
176
177
|
|
|
177
178
|
if (userTier === "enterprise") {
|
|
178
179
|
// ...
|
|
@@ -182,12 +183,12 @@ export const weatherTool = createTool({
|
|
|
182
183
|
});
|
|
183
184
|
```
|
|
184
185
|
|
|
185
|
-
> See [createTool()](/reference/tools/create-tool) for a full list of configuration options.
|
|
186
|
+
> See [createTool()](/reference/v1/tools/create-tool) for a full list of configuration options.
|
|
186
187
|
|
|
187
188
|
## Related
|
|
188
189
|
|
|
189
|
-
- [
|
|
190
|
-
- [Agent
|
|
191
|
-
- [Workflow
|
|
192
|
-
- [Tool
|
|
193
|
-
- [Server Middleware
|
|
190
|
+
- [Request Context Example](/examples/v1/agents/request-context)
|
|
191
|
+
- [Agent Request Context](/docs/v1/agents/overview#using-requestcontext)
|
|
192
|
+
- [Workflow Request Context](../workflows/overview#using-requestcontext)
|
|
193
|
+
- [Tool Request Context](../tools-mcp/overview#using-requestcontext)
|
|
194
|
+
- [Server Middleware Request Context](/docs/v1/server-db/middleware)
|
|
@@ -31,11 +31,12 @@ Mastra provides different storage providers, but you can treat them as interchan
|
|
|
31
31
|
Mastra can be configured with a default storage option:
|
|
32
32
|
|
|
33
33
|
```typescript copy
|
|
34
|
-
import { Mastra } from "@mastra/core
|
|
34
|
+
import { Mastra } from "@mastra/core";
|
|
35
35
|
import { LibSQLStore } from "@mastra/libsql";
|
|
36
36
|
|
|
37
37
|
const mastra = new Mastra({
|
|
38
38
|
storage: new LibSQLStore({
|
|
39
|
+
id: 'mastra-storage',
|
|
39
40
|
url: "file:./mastra.db",
|
|
40
41
|
}),
|
|
41
42
|
});
|
|
@@ -246,8 +247,6 @@ Stores user-specific data for resource-scoped working memory. Each resource repr
|
|
|
246
247
|
]}
|
|
247
248
|
/>
|
|
248
249
|
|
|
249
|
-
**Note**: This table is only created and used by storage adapters that support resource-scoped working memory (LibSQL, PostgreSQL, Upstash). Other storage adapters will provide helpful error messages if resource-scoped memory is attempted.
|
|
250
|
-
|
|
251
250
|
</TabItem>
|
|
252
251
|
<TabItem value="workflows" label="Workflows">
|
|
253
252
|
When `suspend` is called on a workflow, its state is saved in the following format. When `resume` is called, that state is rehydrated.
|
|
@@ -474,37 +473,46 @@ Captures OpenTelemetry traces for monitoring and debugging.
|
|
|
474
473
|
|
|
475
474
|
### Querying Messages
|
|
476
475
|
|
|
477
|
-
Messages are stored in
|
|
476
|
+
Messages are stored in the `MastraDBMessage` format, which provides a consistent structure across the entire Mastra system:
|
|
478
477
|
|
|
479
478
|
```typescript copy
|
|
480
|
-
// Get messages
|
|
481
|
-
const
|
|
479
|
+
// Get messages for a thread with pagination
|
|
480
|
+
const result = await mastra
|
|
482
481
|
.getStorage()
|
|
483
|
-
.
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
482
|
+
.listMessages({
|
|
483
|
+
threadId: "your-thread-id",
|
|
484
|
+
page: 0,
|
|
485
|
+
perPage: 50
|
|
486
|
+
});
|
|
487
|
+
|
|
488
|
+
console.log(result.messages); // MastraDBMessage[]
|
|
489
|
+
console.log(result.total); // Total count
|
|
490
|
+
console.log(result.hasMore); // Whether more pages exist
|
|
491
|
+
|
|
492
|
+
// Get messages by their IDs
|
|
493
|
+
const messages = await mastra
|
|
487
494
|
.getStorage()
|
|
488
|
-
.
|
|
495
|
+
.listMessagesById({ messageIds: messageIdArr });
|
|
489
496
|
```
|
|
490
497
|
|
|
491
|
-
|
|
498
|
+
All message queries return `MastraDBMessage[]` format. If you need to convert messages to AI SDK formats for UI rendering, use the conversion utilities from `@mastra/ai-sdk/ui`:
|
|
492
499
|
|
|
493
500
|
```typescript copy
|
|
494
|
-
|
|
495
|
-
.getStorage()
|
|
496
|
-
.getMessagesById({ messageIds: messageIdArr, format: "v1" });
|
|
501
|
+
import { toAISdkV5Messages } from '@mastra/ai-sdk/ui';
|
|
497
502
|
|
|
498
|
-
const
|
|
503
|
+
const result = await mastra
|
|
499
504
|
.getStorage()
|
|
500
|
-
.
|
|
505
|
+
.listMessages({ threadId: "your-thread-id" });
|
|
506
|
+
|
|
507
|
+
// Convert to AI SDK v5 UIMessage format for UI rendering
|
|
508
|
+
const uiMessages = toAISdkV5Messages(result.messages);
|
|
501
509
|
```
|
|
502
510
|
|
|
503
511
|
## Storage Providers
|
|
504
512
|
|
|
505
513
|
Mastra supports the following providers:
|
|
506
514
|
|
|
507
|
-
- For local development, check out [LibSQL Storage](/reference/storage/libsql)
|
|
508
|
-
- For production, check out [PostgreSQL Storage](/reference/storage/postgresql)
|
|
509
|
-
- For serverless deployments, check out [Upstash Storage](/reference/storage/upstash)
|
|
510
|
-
- For document-based storage, check out [MongoDB Storage](/reference/storage/mongodb)
|
|
515
|
+
- For local development, check out [LibSQL Storage](/reference/v1/storage/libsql)
|
|
516
|
+
- For production, check out [PostgreSQL Storage](/reference/v1/storage/postgresql)
|
|
517
|
+
- For serverless deployments, check out [Upstash Storage](/reference/v1/storage/upstash)
|
|
518
|
+
- For document-based storage, check out [MongoDB Storage](/reference/v1/storage/mongodb)
|
|
@@ -56,7 +56,7 @@ for await (const chunk of stream) {
|
|
|
56
56
|
}
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
> See [Agent.stream()](/reference/streaming/agents/stream) for more information.
|
|
59
|
+
> See [Agent.stream()](/reference/v1/streaming/agents/stream) for more information.
|
|
60
60
|
|
|
61
61
|
### Example agent output
|
|
62
62
|
|
|
@@ -94,7 +94,7 @@ Iterate over the `stream` with a `for await` loop to inspect all emitted event c
|
|
|
94
94
|
```typescript {5,11} showLineNumbers copy
|
|
95
95
|
const testWorkflow = mastra.getWorkflow("testWorkflow");
|
|
96
96
|
|
|
97
|
-
const run = await testWorkflow.
|
|
97
|
+
const run = await testWorkflow.createRun();
|
|
98
98
|
|
|
99
99
|
const stream = await run.stream({
|
|
100
100
|
inputData: {
|
|
@@ -148,7 +148,7 @@ for await (const chunk of networkStream) {
|
|
|
148
148
|
}
|
|
149
149
|
```
|
|
150
150
|
|
|
151
|
-
> See [Agent.network()](/reference/agents/network) for more information.
|
|
151
|
+
> See [Agent.network()](/reference/v1/agents/network) for more information.
|
|
152
152
|
|
|
153
153
|
### Example network output
|
|
154
154
|
|
|
@@ -34,7 +34,7 @@ for await (const chunk of stream.textStream) {
|
|
|
34
34
|
}
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
> See [Agent.stream()](/reference/streaming/agents/stream) for more information.
|
|
37
|
+
> See [Agent.stream()](/reference/v1/streaming/agents/stream) for more information.
|
|
38
38
|
|
|
39
39
|
### Output from `Agent.stream()`
|
|
40
40
|
|
|
@@ -91,7 +91,7 @@ for await (const chunk of networkStream) {
|
|
|
91
91
|
}
|
|
92
92
|
```
|
|
93
93
|
|
|
94
|
-
> See [Agent.network()](/reference/agents/network) for more information.
|
|
94
|
+
> See [Agent.network()](/reference/v1/agents/network) for more information.
|
|
95
95
|
|
|
96
96
|
#### Network stream properties
|
|
97
97
|
|
|
@@ -119,14 +119,14 @@ console.log("Token usage:", await networkStream.usage);
|
|
|
119
119
|
|
|
120
120
|
## Streaming with workflows
|
|
121
121
|
|
|
122
|
-
Streaming from a workflow returns a sequence of structured events describing the run lifecycle, rather than incremental text chunks. This event-based format makes it possible to track and respond to workflow progress in real time once a run is created using `.
|
|
122
|
+
Streaming from a workflow returns a sequence of structured events describing the run lifecycle, rather than incremental text chunks. This event-based format makes it possible to track and respond to workflow progress in real time once a run is created using `.createRun()`.
|
|
123
123
|
|
|
124
124
|
### Using `Run.streamVNext()`
|
|
125
125
|
|
|
126
126
|
This is the experimental API. It returns a `ReadableStream` of events directly.
|
|
127
127
|
|
|
128
128
|
```typescript {3,9} showLineNumbers copy
|
|
129
|
-
const run = await testWorkflow.
|
|
129
|
+
const run = await testWorkflow.createRun();
|
|
130
130
|
|
|
131
131
|
const stream = await run.streamVNext({
|
|
132
132
|
inputData: {
|
|
@@ -172,5 +172,5 @@ A workflow stream provides access to various response properties:
|
|
|
172
172
|
## Related
|
|
173
173
|
|
|
174
174
|
- [Streaming events](./events)
|
|
175
|
-
- [Using Agents](/docs/agents/overview)
|
|
175
|
+
- [Using Agents](/docs/v1/agents/overview)
|
|
176
176
|
- [Workflows overview](../workflows/overview)
|
|
@@ -9,8 +9,8 @@ Tool streaming in Mastra enables tools to send incremental results while they ru
|
|
|
9
9
|
|
|
10
10
|
Streams can be written to in two main ways:
|
|
11
11
|
|
|
12
|
-
- **From within a tool**: every tool receives a `writer`
|
|
13
|
-
- **From an agent stream**: you can also pipe an agent
|
|
12
|
+
- **From within a tool**: every tool receives a `context.writer` object, which is a writable stream you can use to push updates as execution progresses.
|
|
13
|
+
- **From an agent stream**: you can also pipe an agent's `stream` output directly into a tool's writer, making it easy to chain agent responses into tool results without extra glue code.
|
|
14
14
|
|
|
15
15
|
By combining writable tool streams with agent streaming, you gain fine grained control over how intermediate results flow through your system and into the user experience.
|
|
16
16
|
|
|
@@ -25,16 +25,17 @@ import { Agent } from "@mastra/core/agent";
|
|
|
25
25
|
import { testTool } from "../tools/test-tool";
|
|
26
26
|
|
|
27
27
|
export const testAgent = new Agent({
|
|
28
|
-
|
|
28
|
+
id: "test-agent",
|
|
29
|
+
name: "Test Agent",
|
|
29
30
|
instructions: "You are a weather agent.",
|
|
30
31
|
model: openai("gpt-4o-mini"),
|
|
31
32
|
tools: { testTool },
|
|
32
33
|
});
|
|
33
34
|
```
|
|
34
35
|
|
|
35
|
-
### Using
|
|
36
|
+
### Using `context.writer`
|
|
36
37
|
|
|
37
|
-
The `writer`
|
|
38
|
+
The `context.writer` object is available in a tool's `execute` function and can be used to emit custom events, data, or values into the active stream. This enables tools to provide intermediate results or status updates while execution is still in progress.
|
|
38
39
|
|
|
39
40
|
:::warning
|
|
40
41
|
|
|
@@ -47,17 +48,17 @@ import { createTool } from "@mastra/core/tools";
|
|
|
47
48
|
|
|
48
49
|
export const testTool = createTool({
|
|
49
50
|
// ...
|
|
50
|
-
execute: async (
|
|
51
|
-
const { value } =
|
|
51
|
+
execute: async (inputData, context) => {
|
|
52
|
+
const { value } = inputData;
|
|
52
53
|
|
|
53
|
-
await writer?.write({
|
|
54
|
+
await context?.writer?.write({
|
|
54
55
|
type: "custom-event",
|
|
55
56
|
status: "pending"
|
|
56
57
|
});
|
|
57
58
|
|
|
58
59
|
const response = await fetch(...);
|
|
59
60
|
|
|
60
|
-
await writer?.write({
|
|
61
|
+
await context?.writer?.write({
|
|
61
62
|
type: "custom-event",
|
|
62
63
|
status: "success"
|
|
63
64
|
});
|
|
@@ -77,17 +78,17 @@ import { createTool } from "@mastra/core/tools";
|
|
|
77
78
|
|
|
78
79
|
export const testTool = createTool({
|
|
79
80
|
// ...
|
|
80
|
-
execute: async (
|
|
81
|
-
const { value } =
|
|
81
|
+
execute: async (inputData, context) => {
|
|
82
|
+
const { value } = inputData;
|
|
82
83
|
|
|
83
|
-
await writer?.custom({
|
|
84
|
+
await context?.writer?.custom({
|
|
84
85
|
type: "data-tool-progress",
|
|
85
86
|
status: "pending"
|
|
86
87
|
});
|
|
87
88
|
|
|
88
89
|
const response = await fetch(...);
|
|
89
90
|
|
|
90
|
-
await writer?.custom({
|
|
91
|
+
await context?.writer?.custom({
|
|
91
92
|
type: "data-tool-progress",
|
|
92
93
|
status: "success"
|
|
93
94
|
});
|
|
@@ -126,13 +127,13 @@ import { z } from "zod";
|
|
|
126
127
|
|
|
127
128
|
export const testTool = createTool({
|
|
128
129
|
// ...
|
|
129
|
-
execute: async (
|
|
130
|
-
const { city } =
|
|
130
|
+
execute: async (inputData, context) => {
|
|
131
|
+
const { city } = inputData;
|
|
131
132
|
|
|
132
|
-
const testAgent = mastra?.getAgent("testAgent");
|
|
133
|
+
const testAgent = context?.mastra?.getAgent("testAgent");
|
|
133
134
|
const stream = await testAgent?.stream(`What is the weather in ${city}?`);
|
|
134
135
|
|
|
135
|
-
await stream!.textStream.pipeTo(writer!);
|
|
136
|
+
await stream!.textStream.pipeTo(context?.writer!);
|
|
136
137
|
|
|
137
138
|
return {
|
|
138
139
|
value: await stream!.text,
|
|
@@ -64,7 +64,7 @@ Events written to the stream are included in the emitted chunks. These chunks ca
|
|
|
64
64
|
```typescript showLineNumbers copy
|
|
65
65
|
const testWorkflow = mastra.getWorkflow("testWorkflow");
|
|
66
66
|
|
|
67
|
-
const run = await testWorkflow.
|
|
67
|
+
const run = await testWorkflow.createRun();
|
|
68
68
|
|
|
69
69
|
const stream = await run.streamVNext({
|
|
70
70
|
inputData: {
|
|
@@ -23,20 +23,20 @@ export const longRunningTool = createTool({
|
|
|
23
23
|
id: "long-computation",
|
|
24
24
|
description: "Performs a potentially long computation",
|
|
25
25
|
inputSchema: z.object({ /* ... */ }),
|
|
26
|
-
execute: async (
|
|
26
|
+
execute: async (inputData, context) => {
|
|
27
27
|
// Example: Forwarding signal to fetch
|
|
28
28
|
const response = await fetch("https://api.example.com/data", {
|
|
29
|
-
signal: abortSignal, // Pass the signal here
|
|
29
|
+
signal: context?.abortSignal, // Pass the signal here
|
|
30
30
|
});
|
|
31
31
|
|
|
32
|
-
if (abortSignal?.aborted) {
|
|
32
|
+
if (context?.abortSignal?.aborted) {
|
|
33
33
|
console.log("Tool execution aborted.");
|
|
34
34
|
throw new Error("Aborted");
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
// Example: Checking signal during a loop
|
|
38
38
|
for (let i = 0; i < 1000000; i++) {
|
|
39
|
-
if (abortSignal?.aborted) {
|
|
39
|
+
if (context?.abortSignal?.aborted) {
|
|
40
40
|
console.log("Tool execution aborted during loop.");
|
|
41
41
|
throw new Error("Aborted");
|
|
42
42
|
}
|
|
@@ -115,6 +115,7 @@ import { vercelWeatherTool } from "../tools/vercelWeatherTool"; // Vercel AI SDK
|
|
|
115
115
|
import { mastraTool } from "../tools/mastraTool"; // Mastra createTool tool
|
|
116
116
|
|
|
117
117
|
export const mixedToolsAgent = new Agent({
|
|
118
|
+
id: "mixed-tools-agent",
|
|
118
119
|
name: "Mixed Tools Agent",
|
|
119
120
|
instructions: "You can use tools defined in different formats.",
|
|
120
121
|
model: openai("gpt-4o-mini"),
|