@mastra/mcp-docs-server 1.0.0-beta.13 → 1.0.0-beta.15
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 +27 -27
- package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +78 -78
- package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +195 -195
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +173 -173
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +195 -195
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +195 -195
- package/.docs/organized/changelogs/%40mastra%2Fconvex.md +248 -0
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +338 -338
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +33 -33
- 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 +195 -195
- package/.docs/organized/changelogs/%40mastra%2Fevals.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Ffastembed.md +6 -0
- package/.docs/organized/changelogs/%40mastra%2Flance.md +195 -195
- package/.docs/organized/changelogs/%40mastra%2Flibsql.md +195 -195
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fmemory.md +139 -139
- package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +219 -219
- package/.docs/organized/changelogs/%40mastra%2Fmssql.md +219 -219
- package/.docs/organized/changelogs/%40mastra%2Fpg.md +235 -235
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +102 -102
- package/.docs/organized/changelogs/%40mastra%2Frag.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Freact.md +77 -70
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +218 -218
- package/.docs/organized/changelogs/%40mastra%2Fupstash.md +195 -195
- package/.docs/organized/changelogs/create-mastra.md +13 -13
- package/.docs/organized/changelogs/mastra.md +56 -56
- package/.docs/organized/code-examples/agent-v6.md +210 -0
- package/.docs/organized/code-examples/ai-elements.md +1 -1
- package/.docs/organized/code-examples/client-side-tools.md +1 -1
- package/.docs/raw/agents/adding-voice.mdx +10 -6
- package/.docs/raw/agents/agent-approval.mdx +5 -6
- package/.docs/raw/agents/agent-memory.mdx +22 -30
- package/.docs/raw/agents/guardrails.mdx +60 -50
- package/.docs/raw/agents/networks.mdx +8 -12
- package/.docs/raw/agents/overview.mdx +39 -23
- package/.docs/raw/agents/processors.mdx +20 -19
- package/.docs/raw/agents/structured-output.mdx +11 -7
- package/.docs/raw/agents/using-tools.mdx +4 -5
- package/.docs/raw/deployment/mastra-server.mdx +3 -3
- package/.docs/raw/deployment/overview.mdx +7 -1
- package/.docs/raw/deployment/web-framework.mdx +4 -6
- package/.docs/raw/deployment/workflow-runners.mdx +14 -0
- 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/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 +30 -30
- 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/guides/deployment/amazon-ec2.mdx +9 -9
- package/.docs/raw/guides/deployment/aws-lambda.mdx +11 -11
- package/.docs/raw/guides/deployment/azure-app-services.mdx +2 -2
- package/.docs/raw/guides/deployment/cloudflare-deployer.mdx +5 -6
- package/.docs/raw/guides/deployment/digital-ocean.mdx +10 -10
- package/.docs/raw/guides/deployment/index.mdx +1 -1
- package/.docs/raw/guides/deployment/inngest.mdx +444 -0
- package/.docs/raw/guides/deployment/netlify-deployer.mdx +4 -4
- package/.docs/raw/guides/deployment/vercel-deployer.mdx +5 -6
- package/.docs/raw/guides/getting-started/astro.mdx +292 -451
- package/.docs/raw/guides/getting-started/express.mdx +7 -7
- package/.docs/raw/guides/getting-started/hono.mdx +18 -18
- package/.docs/raw/guides/getting-started/next-js.mdx +19 -20
- 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 +21 -21
- 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 +13 -13
- 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/memory.mdx +11 -3
- package/.docs/raw/guides/migrations/upgrade-to-v1/processors.mdx +11 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +41 -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/mastra-cloud/deployment.mdx +39 -0
- package/.docs/raw/mastra-cloud/observability.mdx +9 -15
- package/.docs/raw/mastra-cloud/overview.mdx +14 -44
- package/.docs/raw/mastra-cloud/setup.mdx +64 -0
- package/.docs/raw/mastra-cloud/studio.mdx +35 -0
- 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 +9 -10
- package/.docs/raw/observability/overview.mdx +0 -1
- package/.docs/raw/observability/tracing/bridges/otel.mdx +2 -2
- 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 +6 -6
- package/.docs/raw/rag/graph-rag.mdx +7 -7
- package/.docs/raw/rag/overview.mdx +1 -1
- package/.docs/raw/rag/retrieval.mdx +21 -22
- package/.docs/raw/rag/vector-databases.mdx +22 -22
- 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 +2 -2
- package/.docs/raw/reference/agents/getDefaultOptions.mdx +2 -2
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +2 -2
- package/.docs/raw/reference/agents/getDescription.mdx +1 -1
- package/.docs/raw/reference/agents/getInstructions.mdx +2 -2
- package/.docs/raw/reference/agents/getLLM.mdx +2 -2
- package/.docs/raw/reference/agents/getMemory.mdx +2 -2
- package/.docs/raw/reference/agents/getModel.mdx +2 -2
- 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 +2 -2
- 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 +2 -2
- package/.docs/raw/reference/ai-sdk/handle-chat-stream.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/handle-network-stream.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/handle-workflow-stream.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/network-route.mdx +2 -2
- 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 +3 -3
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-v5-messages.mdx +3 -3
- package/.docs/raw/reference/ai-sdk/with-mastra.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/workflow-route.mdx +2 -2
- package/.docs/raw/reference/auth/auth0.mdx +1 -2
- package/.docs/raw/reference/auth/clerk.mdx +1 -2
- package/.docs/raw/reference/auth/firebase.mdx +2 -4
- package/.docs/raw/reference/auth/jwt.mdx +1 -2
- package/.docs/raw/reference/auth/supabase.mdx +1 -2
- package/.docs/raw/reference/auth/workos.mdx +1 -2
- package/.docs/raw/reference/cli/create-mastra.mdx +10 -10
- package/.docs/raw/reference/cli/mastra.mdx +9 -9
- package/.docs/raw/reference/client-js/agents.mdx +1 -2
- package/.docs/raw/reference/client-js/mastra-client.mdx +1 -1
- 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 +1 -1
- 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 +40 -19
- 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/extract-params.mdx +2 -2
- package/.docs/raw/reference/rag/metadata-filters.mdx +7 -7
- package/.docs/raw/reference/server/create-route.mdx +13 -13
- package/.docs/raw/reference/server/express-adapter.mdx +6 -7
- package/.docs/raw/reference/server/hono-adapter.mdx +6 -7
- package/.docs/raw/reference/server/mastra-server.mdx +20 -20
- package/.docs/raw/reference/storage/cloudflare-d1.mdx +7 -5
- 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 +6 -5
- package/.docs/raw/reference/storage/libsql.mdx +72 -54
- package/.docs/raw/reference/storage/mongodb.mdx +84 -9
- package/.docs/raw/reference/storage/mssql.mdx +8 -6
- package/.docs/raw/{memory → reference}/storage/overview.mdx +12 -110
- package/.docs/raw/reference/storage/postgresql.mdx +82 -9
- package/.docs/raw/reference/storage/upstash.mdx +74 -2
- package/.docs/raw/reference/streaming/agents/stream.mdx +5 -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 +2 -2
- 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 +1 -4
- package/.docs/raw/reference/tools/vector-query-tool.mdx +1 -1
- 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 +2 -2
- 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 +3 -3
- 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 +3 -3
- package/.docs/raw/server/auth/auth0.mdx +20 -14
- package/.docs/raw/server/auth/clerk.mdx +16 -9
- package/.docs/raw/server/auth/firebase.mdx +21 -15
- package/.docs/raw/server/auth/jwt.mdx +14 -7
- package/.docs/raw/server/auth/supabase.mdx +16 -9
- package/.docs/raw/server/auth/workos.mdx +19 -13
- package/.docs/raw/server/custom-adapters.mdx +10 -10
- package/.docs/raw/server/custom-api-routes.mdx +2 -4
- package/.docs/raw/server/mastra-client.mdx +24 -13
- package/.docs/raw/server/mastra-server.mdx +3 -3
- package/.docs/raw/server/middleware.mdx +7 -7
- package/.docs/raw/server/request-context.mdx +31 -30
- package/.docs/raw/server/server-adapters.mdx +6 -6
- 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 +9 -10
- package/.docs/raw/voice/overview.mdx +2 -2
- 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 +15 -22
- package/.docs/raw/workflows/human-in-the-loop.mdx +6 -7
- package/.docs/raw/workflows/input-data-mapping.mdx +7 -7
- package/.docs/raw/workflows/overview.mdx +34 -23
- package/.docs/raw/workflows/snapshots.mdx +16 -45
- 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 +16 -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 +3 -3
- package/.docs/raw/mastra-cloud/dashboard.mdx +0 -96
- package/.docs/raw/mastra-cloud/setting-up.mdx +0 -102
- 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
- package/.docs/raw/workflows/inngest-workflow.mdx +0 -363
|
@@ -7,20 +7,19 @@ description: "Learn how to use semantic recall in Mastra to retrieve relevant me
|
|
|
7
7
|
|
|
8
8
|
If you ask your friend what they did last weekend, they will search in their memory for events associated with "last weekend" and then tell you what they did. That's sort of like how semantic recall works in Mastra.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
:::tip[Watch 📹]
|
|
11
|
+
|
|
12
|
+
What semantic recall is, how it works, and how to configure it in Mastra → [YouTube (5 minutes)](https://youtu.be/UVZtK8cK8xQ)
|
|
13
|
+
|
|
14
|
+
:::
|
|
11
15
|
|
|
12
16
|
## How Semantic Recall Works
|
|
13
17
|
|
|
14
|
-
Semantic recall is RAG-based search that helps agents maintain context across longer interactions when messages are no longer within [recent
|
|
18
|
+
Semantic recall is RAG-based search that helps agents maintain context across longer interactions when messages are no longer within [recent message history](./message-history).
|
|
15
19
|
|
|
16
20
|
It uses vector embeddings of messages for similarity search, integrates with various vector stores, and has configurable context windows around retrieved messages.
|
|
17
21
|
|
|
18
|
-
|
|
19
|
-
<img
|
|
20
|
-
src="/img/semantic-recall.png"
|
|
21
|
-
alt="Diagram showing Mastra Memory semantic recall"
|
|
22
|
-
width={800}
|
|
23
|
-
/>
|
|
22
|
+

|
|
24
23
|
|
|
25
24
|
When it's enabled, new messages are used to query a vector DB for semantically similar messages.
|
|
26
25
|
|
|
@@ -30,7 +29,7 @@ After getting a response from the LLM, all new messages (user, assistant, and to
|
|
|
30
29
|
|
|
31
30
|
Semantic recall is enabled by default, so if you give your agent memory it will be included:
|
|
32
31
|
|
|
33
|
-
```typescript {
|
|
32
|
+
```typescript {9}
|
|
34
33
|
import { Agent } from "@mastra/core/agent";
|
|
35
34
|
import { Memory } from "@mastra/memory";
|
|
36
35
|
|
|
@@ -43,33 +42,11 @@ const agent = new Agent({
|
|
|
43
42
|
});
|
|
44
43
|
```
|
|
45
44
|
|
|
46
|
-
##
|
|
47
|
-
|
|
48
|
-
The three main parameters that control semantic recall behavior are:
|
|
49
|
-
|
|
50
|
-
1. **topK**: How many semantically similar messages to retrieve
|
|
51
|
-
2. **messageRange**: How much surrounding context to include with each match
|
|
52
|
-
3. **scope**: Whether to search within the current thread or across all threads owned by a resource (the default is resource scope).
|
|
53
|
-
|
|
54
|
-
```typescript {5-7}
|
|
55
|
-
const agent = new Agent({
|
|
56
|
-
memory: new Memory({
|
|
57
|
-
options: {
|
|
58
|
-
semanticRecall: {
|
|
59
|
-
topK: 3, // Retrieve 3 most similar messages
|
|
60
|
-
messageRange: 2, // Include 2 messages before and after each match
|
|
61
|
-
scope: "resource", // Search across all threads for this user (default setting if omitted)
|
|
62
|
-
},
|
|
63
|
-
},
|
|
64
|
-
}),
|
|
65
|
-
});
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### Storage configuration
|
|
45
|
+
## Storage configuration
|
|
69
46
|
|
|
70
47
|
Semantic recall relies on a [storage and vector db](/reference/v1/memory/memory-class) to store messages and their embeddings.
|
|
71
48
|
|
|
72
|
-
```ts {8-
|
|
49
|
+
```ts {8-16}
|
|
73
50
|
import { Memory } from "@mastra/memory";
|
|
74
51
|
import { Agent } from "@mastra/core/agent";
|
|
75
52
|
import { LibSQLStore, LibSQLVector } from "@mastra/libsql";
|
|
@@ -90,14 +67,49 @@ const agent = new Agent({
|
|
|
90
67
|
});
|
|
91
68
|
```
|
|
92
69
|
|
|
93
|
-
|
|
70
|
+
Each vector store page below includes installation instructions, configuration parameters, and usage examples:
|
|
71
|
+
|
|
72
|
+
- [Astra](/reference/v1/vectors/astra)
|
|
73
|
+
- [Chroma](/reference/v1/vectors/chroma)
|
|
74
|
+
- [Cloudflare Vectorize](/reference/v1/vectors/vectorize)
|
|
75
|
+
- [Convex](/reference/v1/vectors/convex)
|
|
76
|
+
- [Couchbase](/reference/v1/vectors/couchbase)
|
|
77
|
+
- [DuckDB](/reference/v1/vectors/duckdb)
|
|
78
|
+
- [Elasticsearch](/reference/v1/vectors/elasticsearch)
|
|
79
|
+
- [LanceDB](/reference/v1/vectors/lance)
|
|
80
|
+
- [libSQL](/reference/v1/vectors/libsql)
|
|
81
|
+
- [MongoDB](/reference/v1/vectors/mongodb)
|
|
82
|
+
- [OpenSearch](/reference/v1/vectors/opensearch)
|
|
83
|
+
- [Pinecone](/reference/v1/vectors/pinecone)
|
|
84
|
+
- [PostgreSQL](/reference/v1/vectors/pg)
|
|
85
|
+
- [Qdrant](/reference/v1/vectors/qdrant)
|
|
86
|
+
- [S3 Vectors](/reference/v1/vectors/s3vectors)
|
|
87
|
+
- [Turbopuffer](/reference/v1/vectors/turbopuffer)
|
|
88
|
+
- [Upstash](/reference/v1/vectors/upstash)
|
|
89
|
+
|
|
90
|
+
## Recall configuration
|
|
91
|
+
|
|
92
|
+
The three main parameters that control semantic recall behavior are:
|
|
94
93
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
94
|
+
1. **topK**: How many semantically similar messages to retrieve
|
|
95
|
+
2. **messageRange**: How much surrounding context to include with each match
|
|
96
|
+
3. **scope**: Whether to search within the current thread or across all threads owned by a resource (the default is resource scope).
|
|
97
|
+
|
|
98
|
+
```typescript {5-7}
|
|
99
|
+
const agent = new Agent({
|
|
100
|
+
memory: new Memory({
|
|
101
|
+
options: {
|
|
102
|
+
semanticRecall: {
|
|
103
|
+
topK: 3, // Retrieve 3 most similar messages
|
|
104
|
+
messageRange: 2, // Include 2 messages before and after each match
|
|
105
|
+
scope: "resource", // Search across all threads for this user (default setting if omitted)
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
}),
|
|
109
|
+
});
|
|
110
|
+
```
|
|
99
111
|
|
|
100
|
-
|
|
112
|
+
## Embedder configuration
|
|
101
113
|
|
|
102
114
|
Semantic recall relies on an [embedding model](/reference/v1/memory/memory-class) to convert messages into embeddings. Mastra supports embedding models through the model router using `provider/model` strings, or you can use any [embedding model](https://sdk.vercel.ai/docs/ai-sdk-core/embeddings) compatible with the AI SDK.
|
|
103
115
|
|
|
@@ -112,7 +124,6 @@ import { ModelRouterEmbeddingModel } from "@mastra/core/llm";
|
|
|
112
124
|
|
|
113
125
|
const agent = new Agent({
|
|
114
126
|
memory: new Memory({
|
|
115
|
-
// ... other memory options
|
|
116
127
|
embedder: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
|
|
117
128
|
}),
|
|
118
129
|
});
|
|
@@ -136,7 +147,6 @@ import { ModelRouterEmbeddingModel } from "@mastra/core/llm";
|
|
|
136
147
|
|
|
137
148
|
const agent = new Agent({
|
|
138
149
|
memory: new Memory({
|
|
139
|
-
// ... other memory options
|
|
140
150
|
embedder: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
|
|
141
151
|
}),
|
|
142
152
|
});
|
|
@@ -146,32 +156,31 @@ const agent = new Agent({
|
|
|
146
156
|
|
|
147
157
|
To use FastEmbed (a local embedding model), install `@mastra/fastembed`:
|
|
148
158
|
|
|
149
|
-
```bash npm2yarn
|
|
159
|
+
```bash npm2yarn
|
|
150
160
|
npm install @mastra/fastembed@beta
|
|
151
161
|
```
|
|
152
162
|
|
|
153
163
|
Then configure it in your memory:
|
|
154
164
|
|
|
155
|
-
```ts {3,
|
|
165
|
+
```ts {3,7}
|
|
156
166
|
import { Memory } from "@mastra/memory";
|
|
157
167
|
import { Agent } from "@mastra/core/agent";
|
|
158
168
|
import { fastembed } from "@mastra/fastembed";
|
|
159
169
|
|
|
160
170
|
const agent = new Agent({
|
|
161
171
|
memory: new Memory({
|
|
162
|
-
// ... other memory options
|
|
163
172
|
embedder: fastembed,
|
|
164
173
|
}),
|
|
165
174
|
});
|
|
166
175
|
```
|
|
167
176
|
|
|
168
|
-
|
|
177
|
+
## PostgreSQL Index Optimization
|
|
169
178
|
|
|
170
179
|
When using PostgreSQL as your vector store, you can optimize semantic recall performance by configuring the vector index. This is particularly important for large-scale deployments with thousands of messages.
|
|
171
180
|
|
|
172
181
|
PostgreSQL supports both IVFFlat and HNSW indexes. By default, Mastra creates an IVFFlat index, but HNSW indexes typically provide better performance, especially with OpenAI embeddings which use inner product distance.
|
|
173
182
|
|
|
174
|
-
```typescript {
|
|
183
|
+
```typescript {18-23}
|
|
175
184
|
import { Memory } from "@mastra/memory";
|
|
176
185
|
import { PgStore, PgVector } from "@mastra/pg";
|
|
177
186
|
|
|
@@ -203,7 +212,7 @@ const agent = new Agent({
|
|
|
203
212
|
|
|
204
213
|
For detailed information about index configuration options and performance tuning, see the [PgVector configuration guide](/reference/v1/vectors/pg#index-configuration-guide).
|
|
205
214
|
|
|
206
|
-
|
|
215
|
+
## Disabling
|
|
207
216
|
|
|
208
217
|
There is a performance impact to using semantic recall. New messages are converted into embeddings and used to query a vector database before new messages are sent to the LLM.
|
|
209
218
|
|
|
@@ -221,11 +230,11 @@ const agent = new Agent({
|
|
|
221
230
|
|
|
222
231
|
You might want to disable semantic recall in scenarios like:
|
|
223
232
|
|
|
224
|
-
- When
|
|
233
|
+
- When message history provides sufficient context for the current conversation.
|
|
225
234
|
- In performance-sensitive applications, like realtime two-way audio, where the added latency of creating embeddings and running vector queries is noticeable.
|
|
226
235
|
|
|
227
236
|
## Viewing Recalled Messages
|
|
228
237
|
|
|
229
|
-
When tracing is enabled, any messages retrieved via semantic recall will appear in the agent
|
|
238
|
+
When tracing is enabled, any messages retrieved via semantic recall will appear in the agent's trace output, alongside recent message history (if configured).
|
|
230
239
|
|
|
231
240
|
For more info on viewing message traces, see [Viewing Retrieved Messages](./overview#viewing-retrieved-messages).
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Storage | Memory"
|
|
3
|
+
description: Configure storage for Mastra's memory system to persist conversations, workflows, and traces.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Storage
|
|
7
|
+
|
|
8
|
+
For Mastra to remember previous interactions, you must configure a storage adapter. Mastra is designed to work with your preferred database provider - choose from the [supported providers](#supported-providers) and pass it to your Mastra instance.
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
import { Mastra } from "@mastra/core";
|
|
13
|
+
import { LibSQLStore } from "@mastra/libsql";
|
|
14
|
+
|
|
15
|
+
const mastra = new Mastra({
|
|
16
|
+
storage: new LibSQLStore({
|
|
17
|
+
id: 'mastra-storage',
|
|
18
|
+
url: "file:./mastra.db",
|
|
19
|
+
}),
|
|
20
|
+
});
|
|
21
|
+
```
|
|
22
|
+
On first interaction, Mastra automatically creates the necessary tables following the [core schema](/reference/v1/storage/overview#core-schema). This includes tables for messages, threads, resources, workflows, traces, and evaluation datasets.
|
|
23
|
+
|
|
24
|
+
## Supported Providers
|
|
25
|
+
|
|
26
|
+
Each provider page includes installation instructions, configuration parameters, and usage examples:
|
|
27
|
+
|
|
28
|
+
- [libSQL Storage](/reference/v1/storage/libsql)
|
|
29
|
+
- [PostgreSQL Storage](/reference/v1/storage/postgresql)
|
|
30
|
+
- [MongoDB Storage](/reference/v1/storage/mongodb)
|
|
31
|
+
- [Upstash Storage](/reference/v1/storage/upstash)
|
|
32
|
+
- [Cloudflare D1](/reference/v1/storage/cloudflare-d1)
|
|
33
|
+
- [Cloudflare Durable Objects](/reference/v1/storage/cloudflare)
|
|
34
|
+
- [Convex](/reference/v1/storage/convex)
|
|
35
|
+
- [DynamoDB](/reference/v1/storage/dynamodb)
|
|
36
|
+
- [LanceDB](/reference/v1/storage/lance)
|
|
37
|
+
- [Microsoft SQL Server](/reference/v1/storage/mssql)
|
|
38
|
+
|
|
39
|
+
:::tip
|
|
40
|
+
libSQL is the easiest way to get started because it doesn’t require running a separate database server
|
|
41
|
+
:::
|
|
42
|
+
|
|
43
|
+
## Configuration Scope
|
|
44
|
+
|
|
45
|
+
You can configure storage at two different scopes:
|
|
46
|
+
|
|
47
|
+
### Instance-level storage
|
|
48
|
+
|
|
49
|
+
Add storage to your Mastra instance so all agents share the same memory provider:
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
import { Mastra } from "@mastra/core";
|
|
53
|
+
import { PostgresStore } from "@mastra/pg";
|
|
54
|
+
|
|
55
|
+
const mastra = new Mastra({
|
|
56
|
+
storage: new PostgresStore({
|
|
57
|
+
id: 'mastra-storage',
|
|
58
|
+
connectionString: process.env.DATABASE_URL,
|
|
59
|
+
}),
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
// All agents automatically use this storage
|
|
63
|
+
const agent1 = new Agent({ memory: new Memory() });
|
|
64
|
+
const agent2 = new Agent({ memory: new Memory() });
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Agent-level storage
|
|
68
|
+
|
|
69
|
+
Add storage to a specific agent when you need data boundaries or compliance requirements:
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
import { Agent } from "@mastra/core/agent";
|
|
73
|
+
import { Memory } from "@mastra/memory";
|
|
74
|
+
import { PostgresStore } from "@mastra/pg";
|
|
75
|
+
|
|
76
|
+
const agent = new Agent({
|
|
77
|
+
memory: new Memory({
|
|
78
|
+
storage: new PostgresStore({
|
|
79
|
+
id: 'agent-storage',
|
|
80
|
+
connectionString: process.env.AGENT_DATABASE_URL,
|
|
81
|
+
}),
|
|
82
|
+
}),
|
|
83
|
+
});
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
This is useful when different agents need to store data in separate databases for security, compliance, or organizational reasons.
|
|
87
|
+
|
|
88
|
+
## Threads and Resources
|
|
89
|
+
|
|
90
|
+
Mastra organizes memory into threads using two identifiers:
|
|
91
|
+
|
|
92
|
+
- **Thread**: A conversation session containing a sequence of messages (e.g., `convo_123`)
|
|
93
|
+
- **Resource**: An identifier for the entity the thread belongs to, typically a user (e.g., `user_123`)
|
|
94
|
+
|
|
95
|
+
Both identifiers are required for agents to store and recall information:
|
|
96
|
+
|
|
97
|
+
```typescript
|
|
98
|
+
const stream = await agent.stream("message for agent", {
|
|
99
|
+
memory: {
|
|
100
|
+
thread: "convo_123",
|
|
101
|
+
resource: "user_123",
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
:::note
|
|
107
|
+
[Studio](/docs/v1/getting-started/studio) automatically generates a thread and resource ID for you. Remember to to pass these explicitly when calling `stream` or `generate` yourself.
|
|
108
|
+
:::
|
|
109
|
+
|
|
110
|
+
### Thread title generation
|
|
111
|
+
|
|
112
|
+
Mastra can automatically generate descriptive thread titles based on the user's first message.
|
|
113
|
+
|
|
114
|
+
Use this option when implementing a ChatGPT-style chat interface to render a title alongside each thread in the conversation list (for example, in a sidebar) derived from the thread’s initial user message.
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
export const testAgent = new Agent({
|
|
118
|
+
memory: new Memory({
|
|
119
|
+
options: {
|
|
120
|
+
generateTitle: true,
|
|
121
|
+
},
|
|
122
|
+
}),
|
|
123
|
+
});
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Title generation runs asynchronously after the agent responds and does not affect response time.
|
|
127
|
+
|
|
128
|
+
To optimize cost or behavior, provide a smaller `model` and custom `instructions`:
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
export const testAgent = new Agent({
|
|
132
|
+
memory: new Memory({
|
|
133
|
+
options: {
|
|
134
|
+
threads: {
|
|
135
|
+
generateTitle: {
|
|
136
|
+
model: "openai/gpt-4o-mini",
|
|
137
|
+
instructions: "Generate a concise title based on the user's first message",
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
}),
|
|
142
|
+
});
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Semantic recall
|
|
146
|
+
|
|
147
|
+
Semantic recall uses vector embeddings to retrieve relevant past messages based on meaning rather than recency. This requires a vector database instance, which can be configured at the instance or agent level.
|
|
148
|
+
|
|
149
|
+
The vector database doesn't have to be the same as your storage provider. For example, you might use PostgreSQL for storage and Pinecone for vectors:
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
import { Mastra } from "@mastra/core";
|
|
153
|
+
import { Agent } from "@mastra/core/agent";
|
|
154
|
+
import { Memory } from "@mastra/memory";
|
|
155
|
+
import { PostgresStore } from "@mastra/pg";
|
|
156
|
+
import { PineconeVector } from "@mastra/pinecone";
|
|
157
|
+
|
|
158
|
+
// Instance-level vector configuration
|
|
159
|
+
const mastra = new Mastra({
|
|
160
|
+
storage: new PostgresStore({
|
|
161
|
+
id: 'mastra-storage',
|
|
162
|
+
connectionString: process.env.DATABASE_URL,
|
|
163
|
+
}),
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
// Agent-level vector configuration
|
|
167
|
+
const agent = new Agent({
|
|
168
|
+
memory: new Memory({
|
|
169
|
+
vector: new PineconeVector({
|
|
170
|
+
id: 'agent-vector',
|
|
171
|
+
apiKey: process.env.PINECONE_API_KEY,
|
|
172
|
+
environment: process.env.PINECONE_ENVIRONMENT,
|
|
173
|
+
indexName: 'agent-embeddings',
|
|
174
|
+
}),
|
|
175
|
+
options: {
|
|
176
|
+
semanticRecall: {
|
|
177
|
+
topK: 5,
|
|
178
|
+
messageRange: 2,
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
}),
|
|
182
|
+
});
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
We support all popular vector providers including [Pinecone](/reference/v1/vectors/pinecone), [Chroma](/reference/v1/vectors/chroma), [Qdrant](/reference/v1/vectors/qdrant), and many more.
|
|
186
|
+
|
|
187
|
+
For more information on configuring semantic recall, see the [Semantic Recall](./semantic-recall) documentation.
|
|
188
|
+
|
|
@@ -7,7 +7,7 @@ import YouTube from "@site/src/components/YouTube-player";
|
|
|
7
7
|
|
|
8
8
|
# Working Memory
|
|
9
9
|
|
|
10
|
-
While [
|
|
10
|
+
While [message history](/docs/v1/memory/message-history) and [semantic recall](./semantic-recall) help agents remember conversations, working memory allows them to maintain persistent information about users across interactions.
|
|
11
11
|
|
|
12
12
|
Think of it as the agent's active thoughts or scratchpad – the key information they keep available about the user or task. It's similar to how a person would naturally remember someone's name, preferences, or important details during a conversation.
|
|
13
13
|
|
|
@@ -24,7 +24,7 @@ Working memory can persist at two different scopes:
|
|
|
24
24
|
|
|
25
25
|
Here's a minimal example of setting up an agent with working memory:
|
|
26
26
|
|
|
27
|
-
```typescript {11-
|
|
27
|
+
```typescript {11-15}
|
|
28
28
|
import { Agent } from "@mastra/core/agent";
|
|
29
29
|
import { Memory } from "@mastra/memory";
|
|
30
30
|
|
|
@@ -126,9 +126,9 @@ const memory = new Memory({
|
|
|
126
126
|
|
|
127
127
|
Resource-scoped working memory requires specific storage adapters that support the `mastra_resources` table:
|
|
128
128
|
|
|
129
|
-
###
|
|
129
|
+
### Supported Storage Adapters
|
|
130
130
|
|
|
131
|
-
- **
|
|
131
|
+
- **libSQL** (`@mastra/libsql`)
|
|
132
132
|
- **PostgreSQL** (`@mastra/pg`)
|
|
133
133
|
- **Upstash** (`@mastra/upstash`)
|
|
134
134
|
- **MongoDB** (`@mastra/mongodb`)
|
|
@@ -325,7 +325,7 @@ While agents typically update working memory through the `updateWorkingMemory` t
|
|
|
325
325
|
|
|
326
326
|
When creating a thread, you can provide initial working memory through the metadata's `workingMemory` key:
|
|
327
327
|
|
|
328
|
-
```typescript title="src/app/medical-consultation.ts"
|
|
328
|
+
```typescript title="src/app/medical-consultation.ts"
|
|
329
329
|
// Create a thread with initial working memory
|
|
330
330
|
const thread = await memory.createThread({
|
|
331
331
|
threadId: "thread-123",
|
|
@@ -354,7 +354,7 @@ await agent.generate("What's my blood type?", {
|
|
|
354
354
|
|
|
355
355
|
You can also update an existing thread's working memory:
|
|
356
356
|
|
|
357
|
-
```typescript title="src/app/medical-consultation.ts"
|
|
357
|
+
```typescript title="src/app/medical-consultation.ts"
|
|
358
358
|
// Update thread metadata to add/modify working memory
|
|
359
359
|
await memory.updateThread({
|
|
360
360
|
id: "thread-123",
|
|
@@ -376,7 +376,7 @@ await memory.updateThread({
|
|
|
376
376
|
|
|
377
377
|
Alternatively, use the `updateWorkingMemory` method directly:
|
|
378
378
|
|
|
379
|
-
```typescript title="src/app/medical-consultation.ts"
|
|
379
|
+
```typescript title="src/app/medical-consultation.ts"
|
|
380
380
|
await memory.updateWorkingMemory({
|
|
381
381
|
threadId: "thread-123",
|
|
382
382
|
resourceId: "user-456", // Required for resource-scoped memory
|
|
@@ -13,12 +13,11 @@ When deploying to Mastra Cloud, logs are shown on the [Logs](/docs/v1/mastra-clo
|
|
|
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";
|
|
@@ -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/memory/storage
|
|
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
|