@mastra/mcp-docs-server 1.0.0-beta.11 → 1.0.0-beta.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +29 -29
- package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +51 -51
- package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +45 -45
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +180 -180
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +39 -39
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +39 -39
- package/.docs/organized/changelogs/%40mastra%2Fconvex.md +68 -0
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +331 -331
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +31 -31
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +41 -41
- package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +39 -39
- package/.docs/organized/changelogs/%40mastra%2Ffastembed.md +6 -0
- package/.docs/organized/changelogs/%40mastra%2Flance.md +39 -39
- package/.docs/organized/changelogs/%40mastra%2Flibsql.md +45 -45
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +24 -24
- package/.docs/organized/changelogs/%40mastra%2Fmemory.md +24 -24
- package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +39 -39
- package/.docs/organized/changelogs/%40mastra%2Fmssql.md +39 -39
- package/.docs/organized/changelogs/%40mastra%2Fpg.md +45 -45
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +96 -96
- package/.docs/organized/changelogs/%40mastra%2Frag.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Freact.md +49 -2
- package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +6 -0
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +122 -122
- package/.docs/organized/changelogs/%40mastra%2Fupstash.md +39 -39
- package/.docs/organized/changelogs/create-mastra.md +31 -31
- package/.docs/organized/changelogs/mastra.md +51 -51
- package/.docs/organized/code-examples/agent-v6.md +151 -0
- package/.docs/organized/code-examples/ai-elements.md +1 -1
- package/.docs/organized/code-examples/quick-start.md +0 -4
- package/.docs/organized/code-examples/stock-price-tool.md +21 -2
- package/.docs/raw/agents/adding-voice.mdx +2 -3
- package/.docs/raw/agents/agent-approval.mdx +139 -6
- package/.docs/raw/agents/agent-memory.mdx +24 -32
- package/.docs/raw/agents/guardrails.mdx +61 -51
- package/.docs/raw/agents/networks.mdx +9 -13
- package/.docs/raw/agents/overview.mdx +40 -24
- package/.docs/raw/agents/processors.mdx +20 -19
- package/.docs/raw/agents/structured-output.mdx +11 -7
- package/.docs/raw/agents/using-tools.mdx +5 -6
- package/.docs/raw/course/01-first-agent/07-creating-your-agent.md +1 -2
- package/.docs/raw/course/01-first-agent/12-connecting-tool-to-agent.md +1 -1
- package/.docs/raw/course/01-first-agent/16-adding-memory-to-agent.md +1 -2
- package/.docs/raw/course/02-agent-tools-mcp/05-updating-your-agent.md +1 -1
- package/.docs/raw/course/02-agent-tools-mcp/10-updating-agent-instructions-zapier.md +1 -1
- package/.docs/raw/course/02-agent-tools-mcp/16-updating-agent-instructions-github.md +1 -1
- package/.docs/raw/course/02-agent-tools-mcp/21-updating-agent-instructions-hackernews.md +1 -1
- package/.docs/raw/course/02-agent-tools-mcp/27-updating-agent-instructions-filesystem.md +1 -1
- package/.docs/raw/course/02-agent-tools-mcp/31-enhancing-memory-configuration.md +2 -2
- package/.docs/raw/course/03-agent-memory/04-creating-basic-memory-agent.md +1 -2
- package/.docs/raw/course/03-agent-memory/08-configuring-conversation-history.md +1 -2
- package/.docs/raw/course/03-agent-memory/16-configuring-semantic-recall.md +3 -4
- package/.docs/raw/course/03-agent-memory/21-configuring-working-memory.md +2 -3
- package/.docs/raw/course/03-agent-memory/22-custom-working-memory-templates.md +2 -3
- package/.docs/raw/course/03-agent-memory/25-combining-memory-features.md +1 -2
- package/.docs/raw/course/03-agent-memory/27-creating-learning-assistant.md +2 -3
- package/.docs/raw/course/04-workflows/11-creating-an-ai-agent.md +2 -3
- package/.docs/raw/deployment/cloud-providers.mdx +20 -0
- package/.docs/raw/deployment/{building-mastra.mdx → mastra-server.mdx} +5 -5
- package/.docs/raw/deployment/monorepo.mdx +23 -44
- package/.docs/raw/deployment/overview.mdx +32 -50
- package/.docs/raw/deployment/web-framework.mdx +15 -19
- package/.docs/raw/evals/custom-scorers.mdx +9 -6
- package/.docs/raw/evals/overview.mdx +3 -6
- package/.docs/raw/evals/running-in-ci.mdx +2 -2
- package/.docs/raw/getting-started/manual-install.mdx +20 -20
- package/.docs/raw/getting-started/mcp-docs-server.mdx +2 -2
- package/.docs/raw/getting-started/start.mdx +10 -1
- package/.docs/raw/getting-started/studio.mdx +1 -1
- package/.docs/raw/guides/agent-frameworks/ai-sdk.mdx +4 -4
- package/.docs/raw/guides/build-your-ui/ai-sdk-ui.mdx +1033 -79
- package/.docs/raw/guides/build-your-ui/assistant-ui.mdx +8 -8
- package/.docs/raw/guides/build-your-ui/copilotkit.mdx +11 -11
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/amazon-ec2.mdx +9 -9
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/aws-lambda.mdx +13 -16
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/azure-app-services.mdx +5 -7
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/cloudflare-deployer.mdx +8 -5
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/digital-ocean.mdx +12 -15
- package/.docs/raw/guides/deployment/index.mdx +32 -0
- package/.docs/raw/guides/deployment/inngest.mdx +386 -0
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/netlify-deployer.mdx +7 -3
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/vercel-deployer.mdx +8 -5
- package/.docs/raw/guides/getting-started/astro.mdx +292 -451
- package/.docs/raw/guides/getting-started/express.mdx +72 -153
- package/.docs/raw/guides/getting-started/hono.mdx +227 -0
- package/.docs/raw/guides/getting-started/next-js.mdx +170 -61
- package/.docs/raw/guides/getting-started/quickstart.mdx +4 -4
- package/.docs/raw/guides/getting-started/sveltekit.mdx +238 -409
- package/.docs/raw/guides/getting-started/vite-react.mdx +317 -147
- package/.docs/raw/guides/guide/ai-recruiter.mdx +10 -10
- package/.docs/raw/guides/guide/chef-michel.mdx +9 -11
- package/.docs/raw/guides/guide/notes-mcp-server.mdx +15 -15
- package/.docs/raw/guides/guide/research-assistant.mdx +17 -17
- package/.docs/raw/guides/guide/stock-agent.mdx +5 -5
- package/.docs/raw/guides/guide/web-search.mdx +8 -8
- package/.docs/raw/guides/guide/whatsapp-chat-bot.mdx +7 -7
- package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +2 -2
- package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +1 -1
- package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +17 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +6 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +0 -2
- package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +21 -23
- package/.docs/raw/index.mdx +2 -2
- package/.docs/raw/{deployment/mastra-cloud → mastra-cloud}/dashboard.mdx +2 -6
- package/.docs/raw/{deployment/mastra-cloud → mastra-cloud}/observability.mdx +1 -5
- package/.docs/raw/{deployment/mastra-cloud → mastra-cloud}/overview.mdx +2 -6
- package/.docs/raw/{deployment/mastra-cloud → mastra-cloud}/setting-up.mdx +8 -7
- package/.docs/raw/mcp/overview.mdx +31 -13
- package/.docs/raw/mcp/publishing-mcp-server.mdx +2 -2
- package/.docs/raw/memory/memory-processors.mdx +9 -9
- package/.docs/raw/memory/message-history.mdx +69 -0
- package/.docs/raw/memory/overview.mdx +34 -76
- package/.docs/raw/memory/semantic-recall.mdx +58 -49
- package/.docs/raw/memory/storage.mdx +188 -0
- package/.docs/raw/memory/working-memory.mdx +7 -7
- package/.docs/raw/observability/logging.mdx +10 -11
- package/.docs/raw/observability/overview.mdx +0 -1
- package/.docs/raw/observability/tracing/bridges/otel.mdx +2 -2
- package/.docs/raw/observability/tracing/exporters/cloud.mdx +1 -1
- package/.docs/raw/observability/tracing/exporters/default.mdx +3 -3
- package/.docs/raw/observability/tracing/exporters/langfuse.mdx +1 -2
- package/.docs/raw/observability/tracing/overview.mdx +23 -25
- package/.docs/raw/observability/tracing/processors/sensitive-data-filter.mdx +3 -3
- package/.docs/raw/rag/chunking-and-embedding.mdx +18 -31
- package/.docs/raw/rag/graph-rag.mdx +220 -0
- package/.docs/raw/rag/overview.mdx +2 -3
- package/.docs/raw/rag/retrieval.mdx +34 -51
- package/.docs/raw/rag/vector-databases.mdx +29 -25
- package/.docs/raw/reference/agents/agent.mdx +3 -3
- package/.docs/raw/reference/agents/generate.mdx +1 -1
- package/.docs/raw/reference/agents/generateLegacy.mdx +2 -2
- package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +3 -3
- package/.docs/raw/reference/agents/getDefaultOptions.mdx +3 -3
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +3 -3
- package/.docs/raw/reference/agents/getDescription.mdx +1 -1
- package/.docs/raw/reference/agents/getInstructions.mdx +3 -3
- package/.docs/raw/reference/agents/getLLM.mdx +3 -3
- package/.docs/raw/reference/agents/getMemory.mdx +3 -3
- package/.docs/raw/reference/agents/getModel.mdx +3 -3
- package/.docs/raw/reference/agents/getTools.mdx +2 -2
- package/.docs/raw/reference/agents/getVoice.mdx +2 -2
- package/.docs/raw/reference/agents/listAgents.mdx +2 -2
- package/.docs/raw/reference/agents/listScorers.mdx +3 -3
- package/.docs/raw/reference/agents/listTools.mdx +2 -2
- package/.docs/raw/reference/agents/listWorkflows.mdx +2 -2
- package/.docs/raw/reference/agents/network.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/chat-route.mdx +3 -3
- package/.docs/raw/reference/ai-sdk/handle-chat-stream.mdx +2 -2
- package/.docs/raw/reference/ai-sdk/handle-network-stream.mdx +2 -2
- package/.docs/raw/reference/ai-sdk/handle-workflow-stream.mdx +2 -2
- package/.docs/raw/reference/ai-sdk/network-route.mdx +3 -3
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-stream.mdx +6 -6
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-v4-messages.mdx +127 -0
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-v5-messages.mdx +107 -0
- package/.docs/raw/reference/ai-sdk/with-mastra.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/workflow-route.mdx +3 -3
- package/.docs/raw/reference/auth/auth0.mdx +2 -3
- package/.docs/raw/reference/auth/clerk.mdx +2 -3
- package/.docs/raw/reference/auth/firebase.mdx +3 -5
- package/.docs/raw/reference/auth/jwt.mdx +2 -3
- package/.docs/raw/reference/auth/supabase.mdx +2 -3
- package/.docs/raw/reference/auth/workos.mdx +2 -3
- package/.docs/raw/reference/cli/create-mastra.mdx +10 -10
- package/.docs/raw/reference/cli/mastra.mdx +10 -10
- package/.docs/raw/reference/client-js/agents.mdx +1 -2
- package/.docs/raw/reference/client-js/mastra-client.mdx +2 -2
- package/.docs/raw/reference/client-js/workflows.mdx +20 -0
- package/.docs/raw/reference/core/getAgent.mdx +1 -1
- package/.docs/raw/reference/core/getAgentById.mdx +1 -1
- package/.docs/raw/reference/core/getDeployer.mdx +1 -1
- package/.docs/raw/reference/core/getLogger.mdx +1 -1
- package/.docs/raw/reference/core/getMCPServer.mdx +1 -1
- package/.docs/raw/reference/core/getMCPServerById.mdx +1 -1
- package/.docs/raw/reference/core/getMemory.mdx +2 -2
- package/.docs/raw/reference/core/getServer.mdx +3 -3
- package/.docs/raw/reference/core/getStorage.mdx +2 -2
- package/.docs/raw/reference/core/getStoredAgentById.mdx +3 -3
- package/.docs/raw/reference/core/getTelemetry.mdx +1 -1
- package/.docs/raw/reference/core/getVector.mdx +1 -1
- package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
- package/.docs/raw/reference/core/listAgents.mdx +1 -1
- package/.docs/raw/reference/core/listLogs.mdx +1 -1
- package/.docs/raw/reference/core/listLogsByRunId.mdx +1 -1
- package/.docs/raw/reference/core/listMCPServers.mdx +1 -1
- package/.docs/raw/reference/core/listMemory.mdx +2 -2
- package/.docs/raw/reference/core/listStoredAgents.mdx +4 -4
- package/.docs/raw/reference/core/listVectors.mdx +1 -1
- package/.docs/raw/reference/core/listWorkflows.mdx +1 -1
- package/.docs/raw/reference/core/setLogger.mdx +1 -1
- package/.docs/raw/reference/core/setStorage.mdx +2 -2
- package/.docs/raw/reference/core/setTelemetry.mdx +1 -1
- package/.docs/raw/reference/deployer/cloudflare.mdx +1 -2
- package/.docs/raw/reference/deployer/deployer.mdx +0 -1
- package/.docs/raw/reference/deployer/netlify.mdx +1 -1
- package/.docs/raw/reference/deployer/vercel.mdx +2 -4
- package/.docs/raw/reference/evals/answer-relevancy.mdx +1 -1
- package/.docs/raw/reference/evals/answer-similarity.mdx +1 -1
- package/.docs/raw/reference/evals/bias.mdx +1 -1
- package/.docs/raw/reference/evals/completeness.mdx +1 -1
- package/.docs/raw/reference/evals/content-similarity.mdx +1 -1
- package/.docs/raw/reference/evals/context-precision.mdx +1 -1
- package/.docs/raw/reference/evals/faithfulness.mdx +1 -1
- package/.docs/raw/reference/evals/hallucination.mdx +1 -1
- package/.docs/raw/reference/evals/keyword-coverage.mdx +1 -1
- package/.docs/raw/reference/evals/prompt-alignment.mdx +7 -7
- package/.docs/raw/reference/evals/textual-difference.mdx +1 -1
- package/.docs/raw/reference/evals/tone-consistency.mdx +1 -1
- package/.docs/raw/reference/evals/tool-call-accuracy.mdx +10 -10
- package/.docs/raw/reference/evals/toxicity.mdx +1 -1
- package/.docs/raw/reference/logging/pino-logger.mdx +7 -8
- package/.docs/raw/reference/memory/createThread.mdx +2 -2
- package/.docs/raw/reference/memory/deleteMessages.mdx +2 -2
- package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +2 -2
- package/.docs/raw/reference/memory/memory-class.mdx +3 -3
- package/.docs/raw/reference/memory/query.mdx +2 -2
- package/.docs/raw/reference/memory/recall.mdx +2 -2
- package/.docs/raw/reference/observability/tracing/exporters/langfuse.mdx +1 -1
- package/.docs/raw/reference/processors/batch-parts-processor.mdx +2 -2
- package/.docs/raw/reference/processors/language-detector.mdx +2 -2
- package/.docs/raw/reference/processors/message-history-processor.mdx +2 -2
- package/.docs/raw/reference/processors/moderation-processor.mdx +3 -3
- package/.docs/raw/reference/processors/pii-detector.mdx +3 -3
- package/.docs/raw/reference/processors/processor-interface.mdx +13 -13
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +2 -2
- package/.docs/raw/reference/processors/semantic-recall-processor.mdx +2 -2
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +2 -2
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +2 -2
- package/.docs/raw/reference/processors/tool-call-filter.mdx +3 -3
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +2 -2
- package/.docs/raw/reference/processors/working-memory-processor.mdx +3 -3
- package/.docs/raw/reference/rag/chunk.mdx +1 -1
- package/.docs/raw/reference/rag/database-config.mdx +1 -1
- package/.docs/raw/reference/rag/extract-params.mdx +2 -2
- package/.docs/raw/reference/rag/metadata-filters.mdx +7 -7
- package/.docs/raw/reference/server/create-route.mdx +14 -14
- package/.docs/raw/reference/server/express-adapter.mdx +10 -11
- package/.docs/raw/reference/server/hono-adapter.mdx +10 -11
- package/.docs/raw/reference/server/mastra-server.mdx +22 -22
- package/.docs/raw/reference/server/routes.mdx +28 -1
- package/.docs/raw/reference/storage/cloudflare-d1.mdx +3 -3
- package/.docs/raw/reference/storage/cloudflare.mdx +2 -2
- package/.docs/raw/reference/storage/convex.mdx +6 -6
- package/.docs/raw/reference/storage/dynamodb.mdx +4 -4
- package/.docs/raw/reference/storage/lance.mdx +3 -3
- package/.docs/raw/reference/storage/libsql.mdx +69 -54
- package/.docs/raw/reference/storage/mongodb.mdx +80 -7
- package/.docs/raw/reference/storage/mssql.mdx +4 -4
- package/.docs/raw/{server-db/storage.mdx → reference/storage/overview.mdx} +13 -111
- package/.docs/raw/reference/storage/postgresql.mdx +78 -7
- package/.docs/raw/reference/storage/upstash.mdx +74 -2
- package/.docs/raw/reference/streaming/agents/stream.mdx +27 -5
- package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +2 -2
- package/.docs/raw/reference/streaming/workflows/observeStream.mdx +1 -1
- package/.docs/raw/reference/streaming/workflows/resumeStream.mdx +1 -1
- package/.docs/raw/reference/streaming/workflows/stream.mdx +35 -22
- package/.docs/raw/reference/streaming/workflows/timeTravelStream.mdx +4 -4
- package/.docs/raw/reference/templates/overview.mdx +1 -2
- package/.docs/raw/reference/tools/create-tool.mdx +24 -5
- package/.docs/raw/reference/tools/graph-rag-tool.mdx +3 -3
- package/.docs/raw/reference/tools/vector-query-tool.mdx +4 -4
- package/.docs/raw/reference/vectors/astra.mdx +3 -3
- package/.docs/raw/reference/vectors/chroma.mdx +3 -3
- package/.docs/raw/reference/vectors/convex.mdx +12 -12
- package/.docs/raw/reference/vectors/couchbase.mdx +5 -5
- package/.docs/raw/reference/vectors/duckdb.mdx +10 -10
- package/.docs/raw/reference/vectors/elasticsearch.mdx +4 -4
- package/.docs/raw/reference/vectors/lance.mdx +4 -4
- package/.docs/raw/reference/vectors/libsql.mdx +61 -11
- package/.docs/raw/reference/vectors/mongodb.mdx +58 -5
- package/.docs/raw/reference/vectors/pg.mdx +53 -6
- package/.docs/raw/reference/vectors/pinecone.mdx +3 -3
- package/.docs/raw/reference/vectors/qdrant.mdx +3 -3
- package/.docs/raw/reference/vectors/s3vectors.mdx +6 -6
- package/.docs/raw/reference/vectors/turbopuffer.mdx +4 -4
- package/.docs/raw/reference/vectors/upstash.mdx +55 -6
- package/.docs/raw/reference/vectors/vectorize.mdx +3 -3
- package/.docs/raw/reference/workflows/run-methods/cancel.mdx +2 -2
- package/.docs/raw/reference/workflows/run-methods/restart.mdx +1 -3
- package/.docs/raw/reference/workflows/run-methods/resume.mdx +2 -2
- package/.docs/raw/reference/workflows/run-methods/start.mdx +2 -2
- package/.docs/raw/reference/workflows/run-methods/startAsync.mdx +143 -0
- package/.docs/raw/reference/workflows/run-methods/timeTravel.mdx +5 -5
- package/.docs/raw/reference/workflows/run.mdx +1 -1
- package/.docs/raw/reference/workflows/step.mdx +3 -3
- package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +37 -2
- 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 +6 -6
- package/.docs/raw/reference/workflows/workflow-methods/map.mdx +7 -7
- 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 +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow.mdx +17 -3
- package/.docs/raw/{auth → server/auth}/auth0.mdx +20 -14
- package/.docs/raw/{auth → server/auth}/clerk.mdx +16 -9
- package/.docs/raw/{auth → server/auth}/firebase.mdx +21 -15
- package/.docs/raw/{auth → server/auth}/index.mdx +6 -6
- package/.docs/raw/{auth → server/auth}/jwt.mdx +14 -7
- package/.docs/raw/{auth → server/auth}/supabase.mdx +16 -9
- package/.docs/raw/{auth → server/auth}/workos.mdx +19 -13
- package/.docs/raw/{server-db → server}/custom-adapters.mdx +13 -13
- package/.docs/raw/{server-db → server}/custom-api-routes.mdx +3 -5
- package/.docs/raw/{server-db → server}/mastra-client.mdx +26 -15
- package/.docs/raw/{server-db → server}/mastra-server.mdx +8 -8
- package/.docs/raw/{server-db → server}/middleware.mdx +9 -9
- package/.docs/raw/{server-db → server}/request-context.mdx +33 -32
- package/.docs/raw/{server-db → server}/server-adapters.mdx +12 -12
- package/.docs/raw/streaming/events.mdx +14 -7
- package/.docs/raw/streaming/overview.mdx +21 -10
- package/.docs/raw/streaming/tool-streaming.mdx +6 -6
- package/.docs/raw/streaming/workflow-streaming.mdx +6 -8
- package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -2
- package/.docs/raw/tools-mcp/mcp-overview.mdx +31 -12
- package/.docs/raw/tools-mcp/overview.mdx +10 -11
- package/.docs/raw/voice/overview.mdx +1 -1
- package/.docs/raw/workflows/agents-and-tools.mdx +28 -19
- package/.docs/raw/workflows/control-flow.mdx +27 -40
- package/.docs/raw/workflows/error-handling.mdx +172 -18
- package/.docs/raw/workflows/human-in-the-loop.mdx +6 -7
- package/.docs/raw/workflows/inngest-workflow.mdx +8 -9
- package/.docs/raw/workflows/input-data-mapping.mdx +7 -7
- package/.docs/raw/workflows/overview.mdx +34 -23
- package/.docs/raw/workflows/snapshots.mdx +14 -44
- package/.docs/raw/workflows/suspend-and-resume.mdx +7 -7
- package/.docs/raw/workflows/time-travel.mdx +16 -16
- package/.docs/raw/workflows/workflow-state.mdx +5 -8
- package/CHANGELOG.md +23 -0
- package/dist/logger.d.ts +3 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/stdio.js +53 -0
- package/package.json +4 -4
- package/.docs/organized/changelogs/%40internal%2Fai-sdk-v4.md +0 -1
- package/.docs/raw/deployment/cloud-providers/index.mdx +0 -55
- package/.docs/raw/memory/conversation-history.mdx +0 -24
- package/.docs/raw/memory/storage/memory-with-libsql.mdx +0 -140
- package/.docs/raw/memory/storage/memory-with-mongodb.mdx +0 -150
- package/.docs/raw/memory/storage/memory-with-pg.mdx +0 -138
- package/.docs/raw/memory/storage/memory-with-upstash.mdx +0 -146
- package/.docs/raw/memory/threads-and-resources.mdx +0 -95
|
@@ -7,18 +7,17 @@ description: Learn how to use logging in Mastra to monitor execution, capture ap
|
|
|
7
7
|
|
|
8
8
|
Mastra's logging system captures function execution, input data, and output responses in a structured format.
|
|
9
9
|
|
|
10
|
-
When deploying to Mastra Cloud, logs are shown on the [Logs](/docs/v1/
|
|
10
|
+
When deploying to Mastra Cloud, logs are shown on the [Logs](/docs/v1/mastra-cloud/observability) page. In self-hosted or custom environments, logs can be directed to files or external services depending on the configured transports.
|
|
11
11
|
|
|
12
12
|
## Configuring logs with PinoLogger
|
|
13
13
|
|
|
14
14
|
When [initializing a new Mastra project](/guides/v1/getting-started/quickstart) using the CLI, `PinoLogger` is included by default.
|
|
15
15
|
|
|
16
|
-
```typescript title="src/mastra/index.ts"
|
|
16
|
+
```typescript title="src/mastra/index.ts"
|
|
17
17
|
import { Mastra } from "@mastra/core/mastra";
|
|
18
18
|
import { PinoLogger } from "@mastra/loggers";
|
|
19
19
|
|
|
20
20
|
export const mastra = new Mastra({
|
|
21
|
-
// ...
|
|
22
21
|
logger: new PinoLogger({
|
|
23
22
|
name: "Mastra",
|
|
24
23
|
level: "info",
|
|
@@ -26,7 +25,11 @@ export const mastra = new Mastra({
|
|
|
26
25
|
});
|
|
27
26
|
```
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
:::info
|
|
29
|
+
|
|
30
|
+
Visit [PinoLogger](/reference/v1/logging/pino-logger) for all available configuration options.
|
|
31
|
+
|
|
32
|
+
:::
|
|
30
33
|
|
|
31
34
|
## Customizing logs
|
|
32
35
|
|
|
@@ -36,14 +39,12 @@ Mastra provides access to a logger instance via the `mastra.getLogger()` method,
|
|
|
36
39
|
|
|
37
40
|
Within a workflow step, access the logger via the `mastra` parameter inside the `execute` function. This allows you to log messages relevant to the step’s execution.
|
|
38
41
|
|
|
39
|
-
```typescript {
|
|
42
|
+
```typescript {6-7} title="src/mastra/workflows/test-workflow.ts"
|
|
40
43
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
41
44
|
import { z } from "zod";
|
|
42
45
|
|
|
43
46
|
const step1 = createStep({
|
|
44
|
-
//...
|
|
45
47
|
execute: async ({ mastra }) => {
|
|
46
|
-
|
|
47
48
|
const logger = mastra.getLogger();
|
|
48
49
|
logger.info("workflow info log");
|
|
49
50
|
|
|
@@ -62,12 +63,11 @@ export const testWorkflow = createWorkflow({...})
|
|
|
62
63
|
|
|
63
64
|
Similarly, tools have access to the logger instance via the `mastra` parameter. Use this to log tool specific activity during execution.
|
|
64
65
|
|
|
65
|
-
```typescript {
|
|
66
|
+
```typescript {6-7} title="src/mastra/tools/test-tool.ts"
|
|
66
67
|
import { createTool } from "@mastra/core/tools";
|
|
67
68
|
import { z } from "zod";
|
|
68
69
|
|
|
69
70
|
export const testTool = createTool({
|
|
70
|
-
// ...
|
|
71
71
|
execute: async ({ mastra }) => {
|
|
72
72
|
const logger = mastra?.getLogger();
|
|
73
73
|
logger?.info("tool info log");
|
|
@@ -85,12 +85,11 @@ Logger methods accept an optional second argument for additional data. This can
|
|
|
85
85
|
|
|
86
86
|
In this example, the log message includes an object with a key of `agent` and a value of the `testAgent` instance.
|
|
87
87
|
|
|
88
|
-
```typescript {
|
|
88
|
+
```typescript {10} title="src/mastra/workflows/test-workflow.ts"
|
|
89
89
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
90
90
|
import { z } from "zod";
|
|
91
91
|
|
|
92
92
|
const step1 = createStep({
|
|
93
|
-
//...
|
|
94
93
|
execute: async ({ mastra }) => {
|
|
95
94
|
|
|
96
95
|
const testAgent = mastra.getAgent("testAgent");
|
|
@@ -70,7 +70,7 @@ Using the OtelBridge requires two steps:
|
|
|
70
70
|
|
|
71
71
|
Create an instrumentation file that initializes OTEL. This must run before your application code:
|
|
72
72
|
|
|
73
|
-
```typescript title="instrumentation.ts"
|
|
73
|
+
```typescript title="instrumentation.ts"
|
|
74
74
|
import { NodeSDK } from "@opentelemetry/sdk-node";
|
|
75
75
|
import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";
|
|
76
76
|
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto";
|
|
@@ -99,7 +99,7 @@ export { sdk };
|
|
|
99
99
|
|
|
100
100
|
Add the OtelBridge to your Mastra observability config:
|
|
101
101
|
|
|
102
|
-
```typescript title="src/mastra/index.ts"
|
|
102
|
+
```typescript title="src/mastra/index.ts"
|
|
103
103
|
import { Mastra } from "@mastra/core";
|
|
104
104
|
import { Observability } from "@mastra/observability";
|
|
105
105
|
import { OtelBridge } from "@mastra/otel-bridge";
|
|
@@ -112,4 +112,4 @@ CloudExporter uses intelligent batching to optimize network usage. Traces are bu
|
|
|
112
112
|
|
|
113
113
|
- [Tracing Overview](/docs/v1/observability/tracing/overview)
|
|
114
114
|
- [DefaultExporter](/docs/v1/observability/tracing/exporters/default)
|
|
115
|
-
- [Mastra Cloud Documentation](/docs/v1/
|
|
115
|
+
- [Mastra Cloud Documentation](/docs/v1/mastra-cloud/overview)
|
|
@@ -11,7 +11,7 @@ The `DefaultExporter` persists traces to your configured storage backend, making
|
|
|
11
11
|
|
|
12
12
|
### Prerequisites
|
|
13
13
|
|
|
14
|
-
1. **Storage Backend**: Configure a storage provider (
|
|
14
|
+
1. **Storage Backend**: Configure a storage provider (libSQL, PostgreSQL, etc.)
|
|
15
15
|
2. **Studio**: Install for viewing traces locally
|
|
16
16
|
|
|
17
17
|
### Basic Setup
|
|
@@ -102,7 +102,7 @@ If you set the strategy to `'auto'`, the `DefaultExporter` automatically selects
|
|
|
102
102
|
|
|
103
103
|
| Storage Provider | Preferred Strategy | Supported Strategies | Notes |
|
|
104
104
|
| ----------------------------------------------- | ------------------ | ----------------------------------------- | ------------------------------------- |
|
|
105
|
-
| **[
|
|
105
|
+
| **[libSQL](/reference/v1/storage/libsql)** | batch-with-updates | realtime, batch-with-updates, insert-only | Default storage, good for development |
|
|
106
106
|
| **[PostgreSQL](/reference/v1/storage/postgresql)** | batch-with-updates | batch-with-updates, insert-only | Recommended for production |
|
|
107
107
|
|
|
108
108
|
### Strategy Benefits
|
|
@@ -160,4 +160,4 @@ new DefaultExporter({
|
|
|
160
160
|
|
|
161
161
|
- [Tracing Overview](/docs/v1/observability/tracing/overview)
|
|
162
162
|
- [CloudExporter](/docs/v1/observability/tracing/exporters/cloud)
|
|
163
|
-
- [Storage Configuration](/docs/v1/
|
|
163
|
+
- [Storage Configuration](/docs/v1/memory/storage)
|
|
@@ -117,7 +117,6 @@ Use `withLangfusePrompt` with `buildTracingOptions` for the cleanest API:
|
|
|
117
117
|
|
|
118
118
|
```typescript title="src/agents/support-agent.ts"
|
|
119
119
|
import { Agent } from "@mastra/core/agent";
|
|
120
|
-
import { openai } from "@ai-sdk/openai";
|
|
121
120
|
import { buildTracingOptions } from "@mastra/observability";
|
|
122
121
|
import { withLangfusePrompt } from "@mastra/langfuse";
|
|
123
122
|
import { Langfuse } from "langfuse";
|
|
@@ -133,7 +132,7 @@ const prompt = await langfuse.getPrompt("customer-support");
|
|
|
133
132
|
export const supportAgent = new Agent({
|
|
134
133
|
name: "support-agent",
|
|
135
134
|
instructions: prompt.prompt, // Use the prompt text from Langfuse
|
|
136
|
-
model: openai
|
|
135
|
+
model: "openai/gpt-4o",
|
|
137
136
|
defaultGenerateOptions: {
|
|
138
137
|
tracingOptions: buildTracingOptions(withLangfusePrompt(prompt)),
|
|
139
138
|
## Using Tags
|
|
@@ -21,12 +21,11 @@ Traces are created by:
|
|
|
21
21
|
|
|
22
22
|
### Basic Config
|
|
23
23
|
|
|
24
|
-
```ts title="src/mastra/index.ts"
|
|
24
|
+
```ts title="src/mastra/index.ts"
|
|
25
25
|
import { Mastra } from "@mastra/core";
|
|
26
26
|
import { Observability } from "@mastra/observability";
|
|
27
27
|
|
|
28
28
|
export const mastra = new Mastra({
|
|
29
|
-
// ... other config
|
|
30
29
|
observability: new Observability({
|
|
31
30
|
default: { enabled: true }, // Enables DefaultExporter and CloudExporter
|
|
32
31
|
}),
|
|
@@ -50,7 +49,7 @@ When enabled, the default configuration automatically includes:
|
|
|
50
49
|
|
|
51
50
|
This default configuration is a minimal helper that equates to this more verbose configuration:
|
|
52
51
|
|
|
53
|
-
```ts title="src/mastra/index.ts"
|
|
52
|
+
```ts title="src/mastra/index.ts"
|
|
54
53
|
import {
|
|
55
54
|
Observability,
|
|
56
55
|
CloudExporter,
|
|
@@ -59,7 +58,6 @@ import {
|
|
|
59
58
|
} from "@mastra/observability";
|
|
60
59
|
|
|
61
60
|
export const mastra = new Mastra({
|
|
62
|
-
// ... other config
|
|
63
61
|
observability: new Observability({
|
|
64
62
|
configs: {
|
|
65
63
|
default: {
|
|
@@ -174,7 +172,7 @@ sampling: {
|
|
|
174
172
|
|
|
175
173
|
### Complete Example
|
|
176
174
|
|
|
177
|
-
```ts title="src/mastra/index.ts"
|
|
175
|
+
```ts title="src/mastra/index.ts"
|
|
178
176
|
export const mastra = new Mastra({
|
|
179
177
|
observability: new Observability({
|
|
180
178
|
configs: {
|
|
@@ -214,7 +212,7 @@ Note that only a single config can be used for a specific execution. But a singl
|
|
|
214
212
|
|
|
215
213
|
Use `configSelector` to choose the appropriate tracing configuration based on request context:
|
|
216
214
|
|
|
217
|
-
```ts title="src/mastra/index.ts"
|
|
215
|
+
```ts title="src/mastra/index.ts"
|
|
218
216
|
export const mastra = new Mastra({
|
|
219
217
|
observability: new Observability({
|
|
220
218
|
configs: {
|
|
@@ -259,7 +257,7 @@ export const mastra = new Mastra({
|
|
|
259
257
|
|
|
260
258
|
A common pattern is to select configurations based on deployment environment:
|
|
261
259
|
|
|
262
|
-
```ts title="src/mastra/index.ts"
|
|
260
|
+
```ts title="src/mastra/index.ts"
|
|
263
261
|
export const mastra = new Mastra({
|
|
264
262
|
observability: new Observability({
|
|
265
263
|
configs: {
|
|
@@ -293,7 +291,7 @@ export const mastra = new Mastra({
|
|
|
293
291
|
|
|
294
292
|
Having both the default config enabled and adding custom configs is an invalid configuration of Observability. Use either the default or custom config, but not both.
|
|
295
293
|
|
|
296
|
-
```ts title="src/mastra/index.ts"
|
|
294
|
+
```ts title="src/mastra/index.ts"
|
|
297
295
|
export const mastra = new Mastra({
|
|
298
296
|
observability: new Observability({
|
|
299
297
|
default: { enabled: true }, // This will always be used!
|
|
@@ -311,7 +309,7 @@ export const mastra = new Mastra({
|
|
|
311
309
|
|
|
312
310
|
When creating a custom config with external exporters, you might lose access to Studio and Cloud. To maintain access while adding external exporters, include the default exporters in your custom config:
|
|
313
311
|
|
|
314
|
-
```ts title="src/mastra/index.ts"
|
|
312
|
+
```ts title="src/mastra/index.ts"
|
|
315
313
|
import { DefaultExporter, CloudExporter } from "@mastra/observability";
|
|
316
314
|
import { ArizeExporter } from "@mastra/arize";
|
|
317
315
|
|
|
@@ -354,7 +352,7 @@ Custom metadata allows you to attach additional context to your traces, making i
|
|
|
354
352
|
|
|
355
353
|
You can add metadata to any span using the tracing context:
|
|
356
354
|
|
|
357
|
-
```ts
|
|
355
|
+
```ts
|
|
358
356
|
execute: async ({ inputData, tracingContext }) => {
|
|
359
357
|
const startTime = Date.now();
|
|
360
358
|
const response = await fetch(inputData.endpoint);
|
|
@@ -384,7 +382,7 @@ Instead of manually adding metadata to each span, you can configure Mastra to au
|
|
|
384
382
|
|
|
385
383
|
Define which RequestContext keys to extract in your tracing configuration. These keys will be automatically included as metadata for all spans created with this configuration:
|
|
386
384
|
|
|
387
|
-
```ts title="src/mastra/index.ts"
|
|
385
|
+
```ts title="src/mastra/index.ts"
|
|
388
386
|
export const mastra = new Mastra({
|
|
389
387
|
observability: new Observability({
|
|
390
388
|
configs: {
|
|
@@ -400,7 +398,7 @@ export const mastra = new Mastra({
|
|
|
400
398
|
|
|
401
399
|
Now when you execute agents or workflows with a RequestContext, these values are automatically extracted:
|
|
402
400
|
|
|
403
|
-
```ts
|
|
401
|
+
```ts
|
|
404
402
|
const requestContext = new RequestContext();
|
|
405
403
|
requestContext.set("userId", "user-123");
|
|
406
404
|
requestContext.set("environment", "production");
|
|
@@ -417,7 +415,7 @@ const result = await agent.generate({
|
|
|
417
415
|
|
|
418
416
|
You can add trace-specific keys using `tracingOptions.requestContextKeys`. These are merged with the configuration-level keys:
|
|
419
417
|
|
|
420
|
-
```ts
|
|
418
|
+
```ts
|
|
421
419
|
const requestContext = new RequestContext();
|
|
422
420
|
requestContext.set("userId", "user-123");
|
|
423
421
|
requestContext.set("environment", "production");
|
|
@@ -438,7 +436,7 @@ const result = await agent.generate({
|
|
|
438
436
|
|
|
439
437
|
Use dot notation to extract nested values from RequestContext:
|
|
440
438
|
|
|
441
|
-
```ts
|
|
439
|
+
```ts
|
|
442
440
|
export const mastra = new Mastra({
|
|
443
441
|
observability: new Observability({
|
|
444
442
|
configs: {
|
|
@@ -470,7 +468,7 @@ Tags are string labels that help you categorize and filter traces. Unlike metada
|
|
|
470
468
|
|
|
471
469
|
Use `tracingOptions.tags` to add tags when executing agents or workflows:
|
|
472
470
|
|
|
473
|
-
```ts
|
|
471
|
+
```ts
|
|
474
472
|
// With agents
|
|
475
473
|
const result = await agent.generate({
|
|
476
474
|
messages: [{ role: "user", content: "Hello" }],
|
|
@@ -500,7 +498,7 @@ const result = await run.start({
|
|
|
500
498
|
- **OtelBridge** - `mastra.tags` span attribute
|
|
501
499
|
- **Combinable with metadata**: You can use both `tags` and `metadata` in the same `tracingOptions`
|
|
502
500
|
|
|
503
|
-
```ts
|
|
501
|
+
```ts
|
|
504
502
|
const result = await agent.generate({
|
|
505
503
|
messages: [{ role: "user", content: "Analyze this" }],
|
|
506
504
|
tracingOptions: {
|
|
@@ -522,7 +520,7 @@ const result = await agent.generate({
|
|
|
522
520
|
|
|
523
521
|
When creating child spans within tools or workflow steps, you can pass the `requestContext` parameter to enable metadata extraction:
|
|
524
522
|
|
|
525
|
-
```ts
|
|
523
|
+
```ts
|
|
526
524
|
execute: async ({ tracingContext, requestContext }) => {
|
|
527
525
|
// Create child span WITH requestContext - gets metadata extraction
|
|
528
526
|
const dbSpan = tracingContext.currentSpan?.createChildSpan({
|
|
@@ -553,7 +551,7 @@ Child spans allow you to track fine-grained operations within your workflow step
|
|
|
553
551
|
|
|
554
552
|
Create child spans inside a tool call or workflow step to track specific operations:
|
|
555
553
|
|
|
556
|
-
```ts
|
|
554
|
+
```ts
|
|
557
555
|
execute: async ({ inputData, tracingContext }) => {
|
|
558
556
|
// Create another child span for the main database operation
|
|
559
557
|
const querySpan = tracingContext.currentSpan?.createChildSpan({
|
|
@@ -598,7 +596,7 @@ Span processors allow you to transform, filter, or enrich trace data before it's
|
|
|
598
596
|
|
|
599
597
|
You can create custom span processors by implementing the `SpanOutputProcessor` interface. Here's a simple example that converts all input text in spans to lowercase:
|
|
600
598
|
|
|
601
|
-
```ts title="src/processors/lowercase-input-processor.ts"
|
|
599
|
+
```ts title="src/processors/lowercase-input-processor.ts"
|
|
602
600
|
import type { SpanOutputProcessor, AnySpan } from "@mastra/observability";
|
|
603
601
|
|
|
604
602
|
export class LowercaseInputProcessor implements SpanOutputProcessor {
|
|
@@ -643,7 +641,7 @@ When you execute agents or workflows with tracing enabled, the response includes
|
|
|
643
641
|
|
|
644
642
|
Both `generate` and `stream` methods return the trace ID in their response:
|
|
645
643
|
|
|
646
|
-
```ts
|
|
644
|
+
```ts
|
|
647
645
|
// Using generate
|
|
648
646
|
const result = await agent.generate({
|
|
649
647
|
messages: [{ role: "user", content: "Hello" }],
|
|
@@ -663,7 +661,7 @@ console.log("Trace ID:", streamResult.traceId);
|
|
|
663
661
|
|
|
664
662
|
Workflow executions also return trace IDs:
|
|
665
663
|
|
|
666
|
-
```ts
|
|
664
|
+
```ts
|
|
667
665
|
// Create a workflow run
|
|
668
666
|
const run = await mastra.getWorkflow("myWorkflow").createRun();
|
|
669
667
|
|
|
@@ -703,7 +701,7 @@ When running Mastra agents or workflows within applications that have existing d
|
|
|
703
701
|
|
|
704
702
|
Use the `tracingOptions` parameter to specify the trace context from your parent system:
|
|
705
703
|
|
|
706
|
-
```ts
|
|
704
|
+
```ts
|
|
707
705
|
// Get trace context from your existing tracing system
|
|
708
706
|
const parentTraceId = getCurrentTraceId(); // Your tracing system
|
|
709
707
|
const parentSpanId = getCurrentSpanId(); // Your tracing system
|
|
@@ -723,7 +721,7 @@ const result = await agent.generate("Analyze this data", {
|
|
|
723
721
|
|
|
724
722
|
Integration with OpenTelemetry allows Mastra traces to appear seamlessly in your existing observability platform:
|
|
725
723
|
|
|
726
|
-
```ts
|
|
724
|
+
```ts
|
|
727
725
|
import { trace } from "@opentelemetry/api";
|
|
728
726
|
|
|
729
727
|
// Get the current OpenTelemetry span
|
|
@@ -744,7 +742,7 @@ if (spanContext) {
|
|
|
744
742
|
|
|
745
743
|
Workflows support the same pattern for trace propagation:
|
|
746
744
|
|
|
747
|
-
```ts
|
|
745
|
+
```ts
|
|
748
746
|
const workflow = mastra.getWorkflow("data-pipeline");
|
|
749
747
|
const run = await workflow.createRun();
|
|
750
748
|
|
|
@@ -775,7 +773,7 @@ This ensures tracing never crashes your application, even with malformed input.
|
|
|
775
773
|
|
|
776
774
|
Here's a complete example showing trace propagation in an Express application:
|
|
777
775
|
|
|
778
|
-
```ts
|
|
776
|
+
```ts
|
|
779
777
|
import { trace } from "@opentelemetry/api";
|
|
780
778
|
import express from "express";
|
|
781
779
|
|
|
@@ -11,7 +11,7 @@ The Sensitive Data Filter is a span processor that automatically redacts sensiti
|
|
|
11
11
|
|
|
12
12
|
By default, the Sensitive Data Filter is automatically enabled when you use the standard Mastra configuration:
|
|
13
13
|
|
|
14
|
-
```ts title="src/mastra/index.ts"
|
|
14
|
+
```ts title="src/mastra/index.ts"
|
|
15
15
|
export const mastra = new Mastra({
|
|
16
16
|
observability: new Observability({
|
|
17
17
|
default: { enabled: true }, // Automatically includes SensitiveDataFilter
|
|
@@ -63,7 +63,7 @@ When a sensitive field is detected, its value is replaced with `[REDACTED]` by d
|
|
|
63
63
|
|
|
64
64
|
You can customize which fields are redacted and how redaction appears:
|
|
65
65
|
|
|
66
|
-
```ts title="src/mastra/index.ts"
|
|
66
|
+
```ts title="src/mastra/index.ts"
|
|
67
67
|
import { SensitiveDataFilter, DefaultExporter, Observability } from "@mastra/observability";
|
|
68
68
|
|
|
69
69
|
export const mastra = new Mastra({
|
|
@@ -210,7 +210,7 @@ The Sensitive Data Filter is designed to be lightweight and efficient:
|
|
|
210
210
|
|
|
211
211
|
If you need to disable sensitive data filtering (not recommended for production):
|
|
212
212
|
|
|
213
|
-
```ts title="src/mastra/index.ts"
|
|
213
|
+
```ts title="src/mastra/index.ts"
|
|
214
214
|
export const mastra = new Mastra({
|
|
215
215
|
observability: new Observability({
|
|
216
216
|
configs: {
|
|
@@ -7,7 +7,7 @@ description: Guide on chunking and embedding documents in Mastra for efficient p
|
|
|
7
7
|
|
|
8
8
|
Before processing, create a MDocument instance from your content. You can initialize it from various formats:
|
|
9
9
|
|
|
10
|
-
```ts
|
|
10
|
+
```ts
|
|
11
11
|
const docFromText = MDocument.fromText("Your plain text content...");
|
|
12
12
|
const docFromHTML = MDocument.fromHTML("<html>Your HTML content...</html>");
|
|
13
13
|
const docFromMarkdown = MDocument.fromMarkdown("# Your Markdown content...");
|
|
@@ -28,11 +28,13 @@ Use `chunk` to split documents into manageable pieces. Mastra supports multiple
|
|
|
28
28
|
- `latex`: LaTeX structure-aware splitting
|
|
29
29
|
- `sentence`: Sentence-aware splitting
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
:::note
|
|
32
|
+
Each strategy accepts different parameters optimized for its chunking approach.
|
|
33
|
+
:::
|
|
32
34
|
|
|
33
35
|
Here's an example of how to use the `recursive` strategy:
|
|
34
36
|
|
|
35
|
-
```ts
|
|
37
|
+
```ts
|
|
36
38
|
const chunks = await doc.chunk({
|
|
37
39
|
strategy: "recursive",
|
|
38
40
|
maxSize: 512,
|
|
@@ -46,7 +48,7 @@ const chunks = await doc.chunk({
|
|
|
46
48
|
|
|
47
49
|
For text where preserving sentence structure is important, here's an example of how to use the `sentence` strategy:
|
|
48
50
|
|
|
49
|
-
```ts
|
|
51
|
+
```ts
|
|
50
52
|
const chunks = await doc.chunk({
|
|
51
53
|
strategy: "sentence",
|
|
52
54
|
maxSize: 450,
|
|
@@ -59,7 +61,7 @@ const chunks = await doc.chunk({
|
|
|
59
61
|
|
|
60
62
|
For markdown documents where preserving the semantic relationships between sections is important, here's an example of how to use the `semantic-markdown` strategy:
|
|
61
63
|
|
|
62
|
-
```ts
|
|
64
|
+
```ts
|
|
63
65
|
const chunks = await doc.chunk({
|
|
64
66
|
strategy: "semantic-markdown",
|
|
65
67
|
joinThreshold: 500,
|
|
@@ -67,19 +69,21 @@ const chunks = await doc.chunk({
|
|
|
67
69
|
});
|
|
68
70
|
```
|
|
69
71
|
|
|
70
|
-
|
|
72
|
+
:::note
|
|
73
|
+
Metadata extraction may use LLM calls, so ensure your API key is set.
|
|
74
|
+
:::
|
|
71
75
|
|
|
72
|
-
We go deeper into chunking strategies in our [chunk documentation](/reference/v1/rag/chunk).
|
|
76
|
+
We go deeper into chunking strategies in our [`chunk()` reference documentation](/reference/v1/rag/chunk).
|
|
73
77
|
|
|
74
78
|
## Step 2: Embedding Generation
|
|
75
79
|
|
|
76
|
-
Transform chunks into embeddings using your preferred provider. Mastra supports embedding models through the model router
|
|
80
|
+
Transform chunks into embeddings using your preferred provider. Mastra supports embedding models through the model router.
|
|
77
81
|
|
|
78
|
-
### Using the Model Router
|
|
82
|
+
### Using the Model Router
|
|
79
83
|
|
|
80
84
|
The simplest way is to use Mastra's model router with `provider/model` strings:
|
|
81
85
|
|
|
82
|
-
```ts
|
|
86
|
+
```ts
|
|
83
87
|
import { ModelRouterEmbeddingModel } from "@mastra/core/llm";
|
|
84
88
|
import { embedMany } from "ai";
|
|
85
89
|
|
|
@@ -89,27 +93,10 @@ const { embeddings } = await embedMany({
|
|
|
89
93
|
});
|
|
90
94
|
```
|
|
91
95
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
- **OpenAI**: `text-embedding-3-small`, `text-embedding-3-large`, `text-embedding-ada-002`
|
|
95
|
-
- **Google**: `gemini-embedding-001`, `text-embedding-004`
|
|
96
|
+
Mastra supports OpenAI and Google embedding models. For a complete list of supported embedding models, see the [embeddings reference](/reference/v1/rag/embeddings).
|
|
96
97
|
|
|
97
98
|
The model router automatically handles API key detection from environment variables.
|
|
98
99
|
|
|
99
|
-
### Using AI SDK Packages
|
|
100
|
-
|
|
101
|
-
You can also use AI SDK embedding models directly:
|
|
102
|
-
|
|
103
|
-
```ts showLineNumbers copy
|
|
104
|
-
import { embedMany } from "ai";
|
|
105
|
-
import { ModelRouterEmbeddingModel } from "@mastra/core/llm";
|
|
106
|
-
|
|
107
|
-
const { embeddings } = await embedMany({
|
|
108
|
-
model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
|
|
109
|
-
values: chunks.map((chunk) => chunk.text),
|
|
110
|
-
});
|
|
111
|
-
```
|
|
112
|
-
|
|
113
100
|
The embedding functions return vectors, arrays of numbers representing the semantic meaning of your text, ready for similarity searches in your vector database.
|
|
114
101
|
|
|
115
102
|
### Configuring Embedding Dimensions
|
|
@@ -147,15 +134,15 @@ const { embeddings } = await embedMany({
|
|
|
147
134
|
});
|
|
148
135
|
```
|
|
149
136
|
|
|
150
|
-
|
|
151
|
-
|
|
137
|
+
:::important[Vector Database Compatibility]
|
|
152
138
|
When storing embeddings, the vector database index must be configured to match the output size of your embedding model. If the dimensions do not match, you may get errors or data corruption.
|
|
139
|
+
:::
|
|
153
140
|
|
|
154
141
|
## Example: Complete Pipeline
|
|
155
142
|
|
|
156
143
|
Here's an example showing document processing and embedding generation with both providers:
|
|
157
144
|
|
|
158
|
-
```ts
|
|
145
|
+
```ts
|
|
159
146
|
import { embedMany } from "ai";
|
|
160
147
|
|
|
161
148
|
import { MDocument } from "@mastra/rag";
|