@mastra/mcp-docs-server 0.13.37 → 0.13.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +2 -0
- package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +2 -0
- package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +8 -8
- package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +2 -0
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +23 -23
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +69 -69
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +25 -25
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +27 -27
- package/.docs/organized/changelogs/%40mastra%2Freact.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +23 -23
- package/.docs/organized/changelogs/create-mastra.md +5 -5
- package/.docs/organized/changelogs/mastra.md +17 -17
- package/.docs/raw/agents/adding-voice.mdx +20 -9
- package/.docs/raw/agents/agent-memory.mdx +55 -39
- package/.docs/raw/agents/guardrails.mdx +68 -61
- package/.docs/raw/agents/networks.mdx +50 -46
- package/.docs/raw/agents/overview.mdx +125 -88
- package/.docs/raw/agents/using-tools.mdx +14 -15
- package/.docs/raw/auth/auth0.mdx +28 -27
- package/.docs/raw/auth/clerk.mdx +22 -20
- package/.docs/raw/auth/firebase.mdx +42 -39
- package/.docs/raw/auth/index.mdx +1 -1
- package/.docs/raw/auth/jwt.mdx +18 -16
- package/.docs/raw/auth/supabase.mdx +20 -18
- package/.docs/raw/auth/workos.mdx +32 -26
- package/.docs/raw/community/contributing-templates.mdx +7 -7
- package/.docs/raw/community/discord.mdx +2 -2
- package/.docs/raw/community/licensing.mdx +1 -1
- package/.docs/raw/course/03-agent-memory/26-updating-mastra-export-comprehensive.md +0 -32
- package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +41 -22
- package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +48 -29
- package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +52 -24
- package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +86 -55
- package/.docs/raw/deployment/cloud-providers/index.mdx +16 -13
- package/.docs/raw/deployment/monorepo.mdx +32 -42
- package/.docs/raw/deployment/overview.mdx +15 -15
- package/.docs/raw/deployment/server-deployment.mdx +18 -23
- package/.docs/raw/deployment/serverless-platforms/cloudflare-deployer.mdx +16 -17
- package/.docs/raw/deployment/serverless-platforms/index.mdx +15 -12
- package/.docs/raw/deployment/serverless-platforms/netlify-deployer.mdx +14 -23
- package/.docs/raw/deployment/serverless-platforms/vercel-deployer.mdx +16 -23
- package/.docs/raw/deployment/web-framework.mdx +14 -14
- package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +138 -145
- package/.docs/raw/frameworks/agentic-uis/assistant-ui.mdx +54 -43
- package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +51 -36
- package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +161 -120
- package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +59 -48
- package/.docs/raw/frameworks/servers/express.mdx +45 -44
- package/.docs/raw/frameworks/web-frameworks/astro.mdx +245 -162
- package/.docs/raw/frameworks/web-frameworks/next-js.mdx +112 -69
- package/.docs/raw/frameworks/web-frameworks/sveltekit.mdx +189 -164
- package/.docs/raw/frameworks/web-frameworks/vite-react.mdx +94 -81
- package/.docs/raw/getting-started/installation.mdx +164 -133
- package/.docs/raw/getting-started/mcp-docs-server.mdx +36 -39
- package/.docs/raw/getting-started/project-structure.mdx +34 -42
- package/.docs/raw/getting-started/studio.mdx +40 -58
- package/.docs/raw/getting-started/templates.mdx +22 -27
- package/.docs/raw/index.mdx +9 -9
- package/.docs/raw/mastra-cloud/dashboard.mdx +10 -10
- package/.docs/raw/mastra-cloud/observability.mdx +7 -8
- package/.docs/raw/mastra-cloud/overview.mdx +16 -22
- package/.docs/raw/mastra-cloud/setting-up.mdx +33 -20
- package/.docs/raw/memory/conversation-history.mdx +2 -2
- package/.docs/raw/memory/overview.mdx +21 -23
- package/.docs/raw/memory/semantic-recall.mdx +14 -13
- package/.docs/raw/memory/storage/memory-with-libsql.mdx +27 -28
- package/.docs/raw/memory/storage/memory-with-pg.mdx +26 -26
- package/.docs/raw/memory/storage/memory-with-upstash.mdx +26 -27
- package/.docs/raw/memory/threads-and-resources.mdx +23 -20
- package/.docs/raw/memory/working-memory.mdx +27 -38
- package/.docs/raw/observability/ai-tracing/exporters/arize.mdx +30 -29
- package/.docs/raw/observability/ai-tracing/exporters/braintrust.mdx +8 -9
- package/.docs/raw/observability/ai-tracing/exporters/cloud.mdx +17 -16
- package/.docs/raw/observability/ai-tracing/exporters/default.mdx +31 -32
- package/.docs/raw/observability/ai-tracing/exporters/langfuse.mdx +18 -17
- package/.docs/raw/observability/ai-tracing/exporters/langsmith.mdx +14 -14
- package/.docs/raw/observability/ai-tracing/exporters/otel.mdx +56 -46
- package/.docs/raw/observability/ai-tracing/overview.mdx +145 -122
- package/.docs/raw/observability/ai-tracing/processors/sensitive-data-filter.mdx +57 -36
- package/.docs/raw/observability/logging.mdx +14 -17
- package/.docs/raw/observability/nextjs-tracing.mdx +5 -5
- package/.docs/raw/observability/otel-tracing.mdx +17 -18
- package/.docs/raw/observability/overview.mdx +14 -10
- package/.docs/raw/rag/chunking-and-embedding.mdx +10 -8
- package/.docs/raw/rag/overview.mdx +5 -5
- package/.docs/raw/rag/retrieval.mdx +125 -107
- package/.docs/raw/rag/vector-databases.mdx +232 -223
- package/.docs/raw/reference/agents/agent.mdx +54 -41
- package/.docs/raw/reference/agents/generate.mdx +367 -261
- package/.docs/raw/reference/agents/generateLegacy.mdx +260 -178
- package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +7 -5
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +7 -5
- package/.docs/raw/reference/agents/getDescription.mdx +3 -2
- package/.docs/raw/reference/agents/getInstructions.mdx +7 -5
- package/.docs/raw/reference/agents/getLLM.mdx +11 -7
- package/.docs/raw/reference/agents/getMemory.mdx +7 -5
- package/.docs/raw/reference/agents/getModel.mdx +7 -5
- package/.docs/raw/reference/agents/getScorers.mdx +7 -5
- package/.docs/raw/reference/agents/getTools.mdx +7 -5
- package/.docs/raw/reference/agents/getVoice.mdx +7 -5
- package/.docs/raw/reference/agents/getWorkflows.mdx +7 -5
- package/.docs/raw/reference/agents/listAgents.mdx +6 -4
- package/.docs/raw/reference/agents/network.mdx +171 -116
- package/.docs/raw/reference/auth/auth0.mdx +18 -14
- package/.docs/raw/reference/auth/clerk.mdx +15 -12
- package/.docs/raw/reference/auth/firebase.mdx +23 -16
- package/.docs/raw/reference/auth/jwt.mdx +7 -6
- package/.docs/raw/reference/auth/supabase.mdx +13 -10
- package/.docs/raw/reference/auth/workos.mdx +17 -13
- package/.docs/raw/reference/cli/create-mastra.mdx +61 -44
- package/.docs/raw/reference/cli/mastra.mdx +11 -11
- package/.docs/raw/reference/client-js/agents.mdx +40 -43
- package/.docs/raw/reference/client-js/error-handling.mdx +1 -1
- package/.docs/raw/reference/client-js/logs.mdx +1 -1
- package/.docs/raw/reference/client-js/mastra-client.mdx +21 -13
- package/.docs/raw/reference/client-js/memory.mdx +6 -2
- package/.docs/raw/reference/client-js/observability.mdx +10 -9
- package/.docs/raw/reference/client-js/telemetry.mdx +1 -1
- package/.docs/raw/reference/client-js/tools.mdx +1 -1
- package/.docs/raw/reference/client-js/vectors.mdx +1 -1
- package/.docs/raw/reference/client-js/workflows-legacy.mdx +1 -1
- package/.docs/raw/reference/client-js/workflows.mdx +7 -7
- package/.docs/raw/reference/core/getAgent.mdx +6 -5
- package/.docs/raw/reference/core/getAgentById.mdx +5 -4
- package/.docs/raw/reference/core/getAgents.mdx +3 -3
- package/.docs/raw/reference/core/getDeployer.mdx +4 -3
- package/.docs/raw/reference/core/getLogger.mdx +4 -3
- package/.docs/raw/reference/core/getLogs.mdx +10 -6
- package/.docs/raw/reference/core/getLogsByRunId.mdx +8 -5
- package/.docs/raw/reference/core/getMCPServer.mdx +8 -5
- package/.docs/raw/reference/core/getMCPServers.mdx +4 -3
- package/.docs/raw/reference/core/getMemory.mdx +4 -3
- package/.docs/raw/reference/core/getScorer.mdx +15 -12
- package/.docs/raw/reference/core/getScorerByName.mdx +12 -9
- package/.docs/raw/reference/core/getScorers.mdx +3 -2
- package/.docs/raw/reference/core/getServer.mdx +4 -3
- package/.docs/raw/reference/core/getStorage.mdx +4 -3
- package/.docs/raw/reference/core/getTelemetry.mdx +4 -3
- package/.docs/raw/reference/core/getVector.mdx +6 -4
- package/.docs/raw/reference/core/getVectors.mdx +4 -3
- package/.docs/raw/reference/core/getWorkflow.mdx +7 -4
- package/.docs/raw/reference/core/getWorkflows.mdx +5 -3
- package/.docs/raw/reference/core/mastra-class.mdx +16 -16
- package/.docs/raw/reference/core/setLogger.mdx +6 -4
- package/.docs/raw/reference/core/setStorage.mdx +4 -4
- package/.docs/raw/reference/core/setTelemetry.mdx +4 -3
- package/.docs/raw/reference/deployer/cloudflare.mdx +11 -7
- package/.docs/raw/reference/deployer/deployer.mdx +2 -1
- package/.docs/raw/reference/deployer/netlify.mdx +4 -4
- package/.docs/raw/reference/deployer/vercel.mdx +6 -6
- package/.docs/raw/reference/evals/answer-relevancy.mdx +4 -5
- package/.docs/raw/reference/evals/bias.mdx +4 -5
- package/.docs/raw/reference/evals/completeness.mdx +4 -5
- package/.docs/raw/reference/evals/content-similarity.mdx +4 -5
- package/.docs/raw/reference/evals/context-position.mdx +4 -5
- package/.docs/raw/reference/evals/context-precision.mdx +4 -5
- package/.docs/raw/reference/evals/context-relevancy.mdx +4 -5
- package/.docs/raw/reference/evals/contextual-recall.mdx +4 -5
- package/.docs/raw/reference/evals/faithfulness.mdx +4 -5
- package/.docs/raw/reference/evals/hallucination.mdx +4 -6
- package/.docs/raw/reference/evals/keyword-coverage.mdx +4 -5
- package/.docs/raw/reference/evals/prompt-alignment.mdx +4 -6
- package/.docs/raw/reference/evals/summarization.mdx +4 -6
- package/.docs/raw/reference/evals/textual-difference.mdx +4 -5
- package/.docs/raw/reference/evals/tone-consistency.mdx +4 -7
- package/.docs/raw/reference/evals/toxicity.mdx +4 -5
- package/.docs/raw/reference/index.mdx +3 -3
- package/.docs/raw/reference/legacyWorkflows/after.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/afterEvent.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/commit.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/createRun.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/else.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/events.mdx +7 -7
- package/.docs/raw/reference/legacyWorkflows/execute.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/if.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/resume.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/resumeWithEvent.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/snapshots.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/start.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/step-class.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/step-condition.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/step-function.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/step-options.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/step-retries.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/suspend.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/then.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/until.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/watch.mdx +3 -3
- package/.docs/raw/reference/legacyWorkflows/while.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/workflow.mdx +7 -7
- package/.docs/raw/reference/memory/createThread.mdx +10 -10
- package/.docs/raw/reference/memory/deleteMessages.mdx +7 -5
- package/.docs/raw/reference/memory/getThreadById.mdx +6 -5
- package/.docs/raw/reference/memory/getThreadsByResourceId.mdx +11 -10
- package/.docs/raw/reference/memory/getThreadsByResourceIdPaginated.mdx +10 -9
- package/.docs/raw/reference/memory/{Memory.mdx → memory-class.mdx} +53 -46
- package/.docs/raw/reference/memory/query.mdx +39 -25
- package/.docs/raw/reference/observability/ai-tracing/ai-tracing.mdx +9 -5
- package/.docs/raw/reference/observability/ai-tracing/configuration.mdx +26 -22
- package/.docs/raw/reference/observability/ai-tracing/exporters/arize.mdx +16 -12
- package/.docs/raw/reference/observability/ai-tracing/exporters/braintrust.mdx +14 -14
- package/.docs/raw/reference/observability/ai-tracing/exporters/cloud-exporter.mdx +16 -11
- package/.docs/raw/reference/observability/ai-tracing/exporters/console-exporter.mdx +10 -6
- package/.docs/raw/reference/observability/ai-tracing/exporters/default-exporter.mdx +23 -15
- package/.docs/raw/reference/observability/ai-tracing/exporters/langfuse.mdx +6 -6
- package/.docs/raw/reference/observability/ai-tracing/exporters/langsmith.mdx +13 -13
- package/.docs/raw/reference/observability/ai-tracing/exporters/otel.mdx +44 -36
- package/.docs/raw/reference/observability/ai-tracing/interfaces.mdx +115 -106
- package/.docs/raw/reference/observability/ai-tracing/processors/sensitive-data-filter.mdx +37 -32
- package/.docs/raw/reference/observability/ai-tracing/span.mdx +29 -26
- package/.docs/raw/reference/observability/logging/pino-logger.mdx +13 -15
- package/.docs/raw/reference/observability/otel-tracing/otel-config.mdx +2 -2
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-ax.mdx +3 -3
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-phoenix.mdx +2 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/dash0.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/index.mdx +12 -14
- package/.docs/raw/reference/observability/otel-tracing/providers/keywordsai.mdx +3 -3
- package/.docs/raw/reference/observability/otel-tracing/providers/laminar.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/langfuse.mdx +4 -4
- package/.docs/raw/reference/observability/otel-tracing/providers/langsmith.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/langwatch.mdx +2 -2
- package/.docs/raw/reference/observability/otel-tracing/providers/new-relic.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/signoz.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/traceloop.mdx +1 -1
- package/.docs/raw/reference/processors/batch-parts-processor.mdx +13 -10
- package/.docs/raw/reference/processors/language-detector.mdx +27 -17
- package/.docs/raw/reference/processors/moderation-processor.mdx +26 -17
- package/.docs/raw/reference/processors/pii-detector.mdx +28 -18
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +25 -17
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +26 -17
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +22 -15
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +13 -12
- package/.docs/raw/reference/rag/chunk.mdx +41 -23
- package/.docs/raw/reference/rag/database-config.mdx +56 -38
- package/.docs/raw/reference/rag/document.mdx +1 -1
- package/.docs/raw/reference/rag/embeddings.mdx +1 -1
- package/.docs/raw/reference/rag/extract-params.mdx +1 -1
- package/.docs/raw/reference/rag/graph-rag.mdx +1 -1
- package/.docs/raw/reference/rag/metadata-filters.mdx +23 -26
- package/.docs/raw/reference/rag/rerank.mdx +1 -1
- package/.docs/raw/reference/rag/rerankWithScorer.mdx +2 -2
- package/.docs/raw/reference/scorers/answer-relevancy.mdx +35 -17
- package/.docs/raw/reference/scorers/answer-similarity.mdx +84 -68
- package/.docs/raw/reference/scorers/bias.mdx +22 -19
- package/.docs/raw/reference/scorers/completeness.mdx +21 -16
- package/.docs/raw/reference/scorers/content-similarity.mdx +12 -10
- package/.docs/raw/reference/scorers/context-precision.mdx +73 -64
- package/.docs/raw/reference/scorers/context-relevance.mdx +142 -126
- package/.docs/raw/reference/scorers/create-scorer.mdx +93 -61
- package/.docs/raw/reference/scorers/faithfulness.mdx +21 -13
- package/.docs/raw/reference/scorers/hallucination.mdx +17 -12
- package/.docs/raw/reference/scorers/keyword-coverage.mdx +32 -27
- package/.docs/raw/reference/scorers/mastra-scorer.mdx +39 -33
- package/.docs/raw/reference/scorers/noise-sensitivity.mdx +203 -152
- package/.docs/raw/reference/scorers/prompt-alignment.mdx +186 -132
- package/.docs/raw/reference/scorers/run-experiment.mdx +40 -31
- package/.docs/raw/reference/scorers/textual-difference.mdx +25 -26
- package/.docs/raw/reference/scorers/tone-consistency.mdx +29 -26
- package/.docs/raw/reference/scorers/tool-call-accuracy.mdx +180 -176
- package/.docs/raw/reference/scorers/toxicity.mdx +35 -31
- package/.docs/raw/reference/storage/cloudflare-d1.mdx +1 -1
- package/.docs/raw/reference/storage/cloudflare.mdx +1 -1
- package/.docs/raw/reference/storage/dynamodb.mdx +1 -1
- package/.docs/raw/reference/storage/lance.mdx +1 -1
- package/.docs/raw/reference/storage/libsql.mdx +2 -2
- package/.docs/raw/reference/storage/mongodb.mdx +4 -5
- package/.docs/raw/reference/storage/mssql.mdx +5 -4
- package/.docs/raw/reference/storage/postgresql.mdx +35 -33
- package/.docs/raw/reference/storage/upstash.mdx +6 -5
- package/.docs/raw/reference/streaming/ChunkType.mdx +788 -314
- package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +265 -109
- package/.docs/raw/reference/streaming/agents/stream.mdx +375 -266
- package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +233 -162
- package/.docs/raw/reference/streaming/workflows/observeStream.mdx +4 -4
- package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +5 -5
- package/.docs/raw/reference/streaming/workflows/resumeStreamVNext.mdx +24 -20
- package/.docs/raw/reference/streaming/workflows/stream.mdx +35 -26
- package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +36 -27
- package/.docs/raw/reference/templates/overview.mdx +16 -39
- package/.docs/raw/reference/tools/client.mdx +1 -1
- package/.docs/raw/reference/tools/create-tool.mdx +45 -35
- package/.docs/raw/reference/tools/document-chunker-tool.mdx +2 -2
- package/.docs/raw/reference/tools/graph-rag-tool.mdx +12 -12
- package/.docs/raw/reference/tools/mcp-client.mdx +70 -64
- package/.docs/raw/reference/tools/mcp-server.mdx +91 -78
- package/.docs/raw/reference/tools/vector-query-tool.mdx +48 -38
- package/.docs/raw/reference/vectors/astra.mdx +1 -1
- package/.docs/raw/reference/vectors/chroma.mdx +25 -19
- package/.docs/raw/reference/vectors/couchbase.mdx +4 -4
- package/.docs/raw/reference/vectors/lance.mdx +5 -6
- package/.docs/raw/reference/vectors/libsql.mdx +1 -1
- package/.docs/raw/reference/vectors/mongodb.mdx +1 -1
- package/.docs/raw/reference/vectors/opensearch.mdx +1 -1
- package/.docs/raw/reference/vectors/pg.mdx +8 -4
- package/.docs/raw/reference/vectors/pinecone.mdx +1 -1
- package/.docs/raw/reference/vectors/qdrant.mdx +1 -1
- package/.docs/raw/reference/vectors/s3vectors.mdx +35 -27
- package/.docs/raw/reference/vectors/turbopuffer.mdx +1 -1
- package/.docs/raw/reference/vectors/upstash.mdx +33 -25
- package/.docs/raw/reference/vectors/vectorize.mdx +1 -1
- package/.docs/raw/reference/voice/azure.mdx +1 -1
- package/.docs/raw/reference/voice/cloudflare.mdx +1 -1
- package/.docs/raw/reference/voice/composite-voice.mdx +1 -1
- package/.docs/raw/reference/voice/deepgram.mdx +1 -1
- package/.docs/raw/reference/voice/elevenlabs.mdx +1 -1
- package/.docs/raw/reference/voice/google-gemini-live.mdx +6 -4
- package/.docs/raw/reference/voice/google.mdx +1 -1
- package/.docs/raw/reference/voice/mastra-voice.mdx +1 -1
- package/.docs/raw/reference/voice/murf.mdx +1 -1
- package/.docs/raw/reference/voice/openai-realtime.mdx +1 -1
- package/.docs/raw/reference/voice/openai.mdx +1 -1
- package/.docs/raw/reference/voice/playai.mdx +1 -1
- package/.docs/raw/reference/voice/sarvam.mdx +1 -1
- package/.docs/raw/reference/voice/speechify.mdx +1 -1
- package/.docs/raw/reference/voice/voice.addInstructions.mdx +1 -1
- package/.docs/raw/reference/voice/voice.addTools.mdx +1 -1
- package/.docs/raw/reference/voice/voice.answer.mdx +1 -1
- package/.docs/raw/reference/voice/voice.close.mdx +1 -1
- package/.docs/raw/reference/voice/voice.connect.mdx +1 -1
- package/.docs/raw/reference/voice/voice.events.mdx +1 -1
- package/.docs/raw/reference/voice/voice.getSpeakers.mdx +23 -30
- package/.docs/raw/reference/voice/voice.listen.mdx +1 -1
- package/.docs/raw/reference/voice/voice.off.mdx +1 -1
- package/.docs/raw/reference/voice/voice.on.mdx +1 -1
- package/.docs/raw/reference/voice/voice.send.mdx +1 -1
- package/.docs/raw/reference/voice/voice.speak.mdx +1 -1
- package/.docs/raw/reference/voice/voice.updateConfig.mdx +1 -1
- package/.docs/raw/reference/workflows/run-methods/cancel.mdx +4 -3
- package/.docs/raw/reference/workflows/run-methods/resume.mdx +49 -34
- package/.docs/raw/reference/workflows/run-methods/start.mdx +43 -31
- package/.docs/raw/reference/workflows/run-methods/watch.mdx +7 -8
- package/.docs/raw/reference/workflows/run.mdx +7 -10
- package/.docs/raw/reference/workflows/step.mdx +15 -12
- package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +7 -7
- package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/map.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +5 -5
- package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +3 -3
- package/.docs/raw/reference/workflows/workflow.mdx +13 -10
- package/.docs/raw/scorers/custom-scorers.mdx +58 -48
- package/.docs/raw/scorers/evals-old-api/custom-eval.mdx +6 -8
- package/.docs/raw/scorers/evals-old-api/overview.mdx +8 -8
- package/.docs/raw/scorers/evals-old-api/running-in-ci.mdx +9 -9
- package/.docs/raw/scorers/evals-old-api/textual-evals.mdx +5 -5
- package/.docs/raw/scorers/off-the-shelf-scorers.mdx +3 -1
- package/.docs/raw/scorers/overview.mdx +20 -19
- package/.docs/raw/server-db/custom-api-routes.mdx +8 -8
- package/.docs/raw/server-db/mastra-client.mdx +56 -54
- package/.docs/raw/server-db/middleware.mdx +11 -7
- package/.docs/raw/server-db/production-server.mdx +5 -7
- package/.docs/raw/server-db/runtime-context.mdx +41 -38
- package/.docs/raw/server-db/storage.mdx +82 -87
- package/.docs/raw/streaming/events.mdx +24 -16
- package/.docs/raw/streaming/overview.mdx +17 -18
- package/.docs/raw/streaming/tool-streaming.mdx +9 -10
- package/.docs/raw/streaming/workflow-streaming.mdx +14 -12
- package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -2
- package/.docs/raw/tools-mcp/mcp-overview.mdx +92 -102
- package/.docs/raw/tools-mcp/overview.mdx +9 -14
- package/.docs/raw/voice/overview.mdx +273 -250
- package/.docs/raw/voice/speech-to-speech.mdx +14 -12
- package/.docs/raw/voice/speech-to-text.mdx +2 -2
- package/.docs/raw/voice/text-to-speech.mdx +2 -2
- package/.docs/raw/workflows/agents-and-tools.mdx +29 -28
- package/.docs/raw/workflows/control-flow.mdx +24 -24
- package/.docs/raw/workflows/error-handling.mdx +15 -17
- package/.docs/raw/workflows/human-in-the-loop.mdx +39 -39
- package/.docs/raw/workflows/inngest-workflow.mdx +33 -29
- package/.docs/raw/workflows/input-data-mapping.mdx +9 -9
- package/.docs/raw/workflows/overview.mdx +60 -60
- package/.docs/raw/workflows/snapshots.mdx +54 -36
- package/.docs/raw/workflows/suspend-and-resume.mdx +52 -57
- package/.docs/raw/workflows-legacy/control-flow.mdx +15 -17
- package/.docs/raw/workflows-legacy/dynamic-workflows.mdx +3 -1
- package/.docs/raw/workflows-legacy/error-handling.mdx +8 -6
- package/.docs/raw/workflows-legacy/nested-workflows.mdx +6 -0
- package/.docs/raw/workflows-legacy/overview.mdx +28 -26
- package/.docs/raw/workflows-legacy/runtime-variables.mdx +4 -2
- package/.docs/raw/workflows-legacy/steps.mdx +5 -3
- package/.docs/raw/workflows-legacy/suspend-and-resume.mdx +10 -8
- package/.docs/raw/workflows-legacy/variables.mdx +10 -8
- package/CHANGELOG.md +14 -0
- package/package.json +5 -5
- package/.docs/raw/memory/storage/memory-with-mongodb.mdx +0 -148
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "
|
|
2
|
+
title: "Memory with Upstash | Memory | Mastra Docs"
|
|
3
3
|
description: Example for how to use Mastra's memory system with Upstash Redis storage and vector capabilities.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -11,7 +11,7 @@ This example demonstrates how to use Mastra's memory system with Upstash as the
|
|
|
11
11
|
|
|
12
12
|
This example uses the `openai` model and requires both Upstash Redis and Upstash Vector services. Make sure to add the following to your `.env` file:
|
|
13
13
|
|
|
14
|
-
```bash
|
|
14
|
+
```bash title=".env" copy
|
|
15
15
|
OPENAI_API_KEY=<your-api-key>
|
|
16
16
|
UPSTASH_REDIS_REST_URL=<your-redis-url>
|
|
17
17
|
UPSTASH_REDIS_REST_TOKEN=<your-redis-token>
|
|
@@ -31,7 +31,7 @@ npm install @mastra/upstash
|
|
|
31
31
|
|
|
32
32
|
To add Upstash memory to an agent use the `Memory` class and create a new `storage` key using `UpstashStore` and a new `vector` key using `UpstashVector`. The configuration can point to either a remote service or a local setup.
|
|
33
33
|
|
|
34
|
-
```typescript
|
|
34
|
+
```typescript title="src/mastra/agents/example-upstash-agent.ts" showLineNumbers copy
|
|
35
35
|
import { Memory } from "@mastra/memory";
|
|
36
36
|
import { Agent } from "@mastra/core/agent";
|
|
37
37
|
import { openai } from "@ai-sdk/openai";
|
|
@@ -39,23 +39,21 @@ import { UpstashStore } from "@mastra/upstash";
|
|
|
39
39
|
|
|
40
40
|
export const upstashAgent = new Agent({
|
|
41
41
|
name: "upstash-agent",
|
|
42
|
-
instructions:
|
|
42
|
+
instructions:
|
|
43
|
+
"You are an AI agent with the ability to automatically recall memories from previous interactions.",
|
|
43
44
|
model: openai("gpt-4o"),
|
|
44
45
|
memory: new Memory({
|
|
45
46
|
storage: new UpstashStore({
|
|
46
47
|
url: process.env.UPSTASH_REDIS_REST_URL!,
|
|
47
|
-
token: process.env.UPSTASH_REDIS_REST_TOKEN
|
|
48
|
+
token: process.env.UPSTASH_REDIS_REST_TOKEN!,
|
|
48
49
|
}),
|
|
49
50
|
options: {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
})
|
|
51
|
+
generateTitle: true,
|
|
52
|
+
},
|
|
53
|
+
}),
|
|
55
54
|
});
|
|
56
55
|
```
|
|
57
56
|
|
|
58
|
-
|
|
59
57
|
## Local embeddings with fastembed
|
|
60
58
|
|
|
61
59
|
Embeddings are numeric vectors used by memory’s `semanticRecall` to retrieve related messages by meaning (not keywords). This setup uses `@mastra/fastembed` to generate vector embeddings.
|
|
@@ -68,7 +66,7 @@ npm install @mastra/fastembed
|
|
|
68
66
|
|
|
69
67
|
Add the following to your agent:
|
|
70
68
|
|
|
71
|
-
```typescript
|
|
69
|
+
```typescript title="src/mastra/agents/example-upstash-agent.ts" showLineNumbers copy
|
|
72
70
|
import { Memory } from "@mastra/memory";
|
|
73
71
|
import { Agent } from "@mastra/core/agent";
|
|
74
72
|
import { openai } from "@ai-sdk/openai";
|
|
@@ -77,26 +75,27 @@ import { fastembed } from "@mastra/fastembed";
|
|
|
77
75
|
|
|
78
76
|
export const upstashAgent = new Agent({
|
|
79
77
|
name: "upstash-agent",
|
|
80
|
-
instructions:
|
|
78
|
+
instructions:
|
|
79
|
+
"You are an AI agent with the ability to automatically recall memories from previous interactions.",
|
|
81
80
|
model: openai("gpt-4o"),
|
|
82
81
|
memory: new Memory({
|
|
83
82
|
storage: new UpstashStore({
|
|
84
83
|
url: process.env.UPSTASH_REDIS_REST_URL!,
|
|
85
|
-
token: process.env.UPSTASH_REDIS_REST_TOKEN
|
|
84
|
+
token: process.env.UPSTASH_REDIS_REST_TOKEN!,
|
|
86
85
|
}),
|
|
87
86
|
vector: new UpstashVector({
|
|
88
87
|
url: process.env.UPSTASH_VECTOR_REST_URL!,
|
|
89
|
-
token: process.env.UPSTASH_VECTOR_REST_TOKEN
|
|
88
|
+
token: process.env.UPSTASH_VECTOR_REST_TOKEN!,
|
|
90
89
|
}),
|
|
91
90
|
embedder: fastembed,
|
|
92
91
|
options: {
|
|
93
92
|
lastMessages: 10,
|
|
94
93
|
semanticRecall: {
|
|
95
94
|
topK: 3,
|
|
96
|
-
messageRange: 2
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
})
|
|
95
|
+
messageRange: 2,
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
}),
|
|
100
99
|
});
|
|
101
100
|
```
|
|
102
101
|
|
|
@@ -104,7 +103,7 @@ export const upstashAgent = new Agent({
|
|
|
104
103
|
|
|
105
104
|
Use `memoryOptions` to scope recall for this request. Set `lastMessages: 5` to limit recency-based recall, and use `semanticRecall` to fetch the `topK: 3` most relevant messages, including `messageRange: 2` neighboring messages for context around each match.
|
|
106
105
|
|
|
107
|
-
```typescript
|
|
106
|
+
```typescript title="src/test-upstash-agent.ts" showLineNumbers copy
|
|
108
107
|
import "dotenv/config";
|
|
109
108
|
|
|
110
109
|
import { mastra } from "./mastra";
|
|
@@ -117,8 +116,8 @@ const agent = mastra.getAgent("upstashAgent");
|
|
|
117
116
|
const message = await agent.stream("My name is Mastra", {
|
|
118
117
|
memory: {
|
|
119
118
|
thread: threadId,
|
|
120
|
-
resource: resourceId
|
|
121
|
-
}
|
|
119
|
+
resource: resourceId,
|
|
120
|
+
},
|
|
122
121
|
});
|
|
123
122
|
|
|
124
123
|
await message.textStream.pipeTo(new WritableStream());
|
|
@@ -126,15 +125,15 @@ await message.textStream.pipeTo(new WritableStream());
|
|
|
126
125
|
const stream = await agent.stream("What's my name?", {
|
|
127
126
|
memory: {
|
|
128
127
|
thread: threadId,
|
|
129
|
-
resource: resourceId
|
|
128
|
+
resource: resourceId,
|
|
130
129
|
},
|
|
131
130
|
memoryOptions: {
|
|
132
131
|
lastMessages: 5,
|
|
133
132
|
semanticRecall: {
|
|
134
133
|
topK: 3,
|
|
135
|
-
messageRange: 2
|
|
136
|
-
}
|
|
137
|
-
}
|
|
134
|
+
messageRange: 2,
|
|
135
|
+
},
|
|
136
|
+
},
|
|
138
137
|
});
|
|
139
138
|
|
|
140
139
|
for await (const chunk of stream.textStream) {
|
|
@@ -144,4 +143,4 @@ for await (const chunk of stream.textStream) {
|
|
|
144
143
|
|
|
145
144
|
## Related
|
|
146
145
|
|
|
147
|
-
- [Calling Agents](
|
|
146
|
+
- [Calling Agents](/examples/agents/calling-agents)
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "Memory
|
|
2
|
+
title: "Memory threads and resources | Memory | Mastra Docs"
|
|
3
3
|
description: "Learn how Mastra's memory system works with working memory, conversation history, and semantic recall."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import { Callout } from "nextra/components";
|
|
7
|
-
|
|
8
6
|
# Memory threads and resources
|
|
9
7
|
|
|
10
8
|
Mastra organizes memory into threads, which are records that group related interactions, using two identifiers:
|
|
@@ -12,26 +10,28 @@ Mastra organizes memory into threads, which are records that group related inter
|
|
|
12
10
|
1. **`thread`**: A globally unique ID representing the conversation (e.g., `support_123`). Must be unique across all resources.
|
|
13
11
|
2. **`resource`**: The user or entity that owns the thread (e.g., `user_123`, `org_456`).
|
|
14
12
|
|
|
15
|
-
The `resource` is especially important for [resource-scoped memory](./working-memory
|
|
13
|
+
The `resource` is especially important for [resource-scoped memory](./working-memory#resource-scoped-memory), which allows memory to persist across all threads associated with the same user or entity.
|
|
16
14
|
|
|
17
15
|
```typescript {4} showLineNumbers
|
|
18
16
|
const stream = await agent.stream("message for agent", {
|
|
19
17
|
memory: {
|
|
20
18
|
thread: "user-123",
|
|
21
|
-
resource: "test-123"
|
|
22
|
-
}
|
|
19
|
+
resource: "test-123",
|
|
20
|
+
},
|
|
23
21
|
});
|
|
24
22
|
```
|
|
25
23
|
|
|
26
|
-
|
|
24
|
+
:::warning
|
|
25
|
+
|
|
27
26
|
Even with memory configured, agents won’t store or recall information unless both `thread` and `resource` are provided.
|
|
28
|
-
|
|
27
|
+
|
|
28
|
+
:::
|
|
29
29
|
|
|
30
30
|
> Mastra Playground sets `thread` and `resource` IDs automatically. In your own application, you must provide them manually as part of each `.generate()` or `.stream()` call.
|
|
31
31
|
|
|
32
32
|
### Thread title generation
|
|
33
33
|
|
|
34
|
-
Mastra can automatically generate descriptive thread titles based on the user's first message. Enable
|
|
34
|
+
Mastra can automatically generate descriptive thread titles based on the user's first message. Enable it by setting `generateTitle` to `true`. This improves organization and makes it easier to display conversations in your UI.
|
|
35
35
|
|
|
36
36
|
```typescript {3-7} showLineNumbers
|
|
37
37
|
export const testAgent = new Agent({
|
|
@@ -41,11 +41,11 @@ export const testAgent = new Agent({
|
|
|
41
41
|
generateTitle: true,
|
|
42
42
|
}
|
|
43
43
|
},
|
|
44
|
-
})
|
|
44
|
+
}),
|
|
45
45
|
});
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
> Title generation runs asynchronously after the agent responds and does not affect response time. See the [full configuration reference](
|
|
48
|
+
> Title generation runs asynchronously after the agent responds and does not affect response time. See the [full configuration reference](/reference/memory/memory-class) for details and examples.
|
|
49
49
|
|
|
50
50
|
#### Optimizing title generation
|
|
51
51
|
|
|
@@ -59,11 +59,12 @@ export const testAgent = new Agent({
|
|
|
59
59
|
threads: {
|
|
60
60
|
generateTitle: {
|
|
61
61
|
model: openai("gpt-4.1-nano"),
|
|
62
|
-
instructions:
|
|
62
|
+
instructions:
|
|
63
|
+
"Generate a concise title based on the user's first message",
|
|
63
64
|
},
|
|
64
65
|
},
|
|
65
|
-
}
|
|
66
|
-
})
|
|
66
|
+
},
|
|
67
|
+
}),
|
|
67
68
|
});
|
|
68
69
|
```
|
|
69
70
|
|
|
@@ -80,15 +81,17 @@ export const testAgent = new Agent({
|
|
|
80
81
|
generateTitle: {
|
|
81
82
|
model: ({ runtimeContext }) => {
|
|
82
83
|
const userTier = runtimeContext.get("userTier");
|
|
83
|
-
return userTier === "premium"
|
|
84
|
+
return userTier === "premium"
|
|
85
|
+
? openai("gpt-4.1")
|
|
86
|
+
: openai("gpt-4.1-nano");
|
|
84
87
|
},
|
|
85
88
|
instructions: ({ runtimeContext }) => {
|
|
86
89
|
const language = runtimeContext.get("userLanguage") || "English";
|
|
87
90
|
return `Generate a concise, engaging title in ${language} based on the user's first message.`;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
})
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
}),
|
|
93
96
|
});
|
|
94
97
|
```
|
|
@@ -3,23 +3,23 @@ title: "Working Memory | Memory | Mastra Docs"
|
|
|
3
3
|
description: "Learn how to configure working memory in Mastra to store persistent user data, preferences."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import
|
|
6
|
+
import Youtube from "@site/src/components/YouTube-player";
|
|
7
7
|
|
|
8
8
|
# Working Memory
|
|
9
9
|
|
|
10
|
-
While [conversation history](/docs/memory/
|
|
10
|
+
While [conversation history](/docs/memory/conversation-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
|
|
|
14
14
|
This is useful for maintaining ongoing state that's always relevant and should always be available to the agent.
|
|
15
15
|
|
|
16
16
|
Working memory can persist at two different scopes:
|
|
17
|
+
|
|
17
18
|
- **Thread-scoped** (default): Memory is isolated per conversation thread
|
|
18
19
|
- **Resource-scoped**: Memory persists across all conversation threads for the same user
|
|
19
20
|
|
|
20
21
|
**Important:** Switching between scopes means the agent won't see memory from the other scope - thread-scoped memory is completely separate from resource-scoped memory.
|
|
21
22
|
|
|
22
|
-
|
|
23
23
|
## Quick Start
|
|
24
24
|
|
|
25
25
|
Here's a minimal example of setting up an agent with working memory:
|
|
@@ -90,13 +90,11 @@ const memory = new Memory({
|
|
|
90
90
|
options: {
|
|
91
91
|
workingMemory: {
|
|
92
92
|
enabled: true,
|
|
93
|
-
scope:
|
|
93
|
+
scope: "thread", // Memory is isolated per thread
|
|
94
94
|
template: `# User Profile
|
|
95
95
|
- **Name**:
|
|
96
|
-
- **Location**:
|
|
97
96
|
- **Interests**:
|
|
98
|
-
- **
|
|
99
|
-
- **Long-term Goals**:
|
|
97
|
+
- **Current Goal**:
|
|
100
98
|
`,
|
|
101
99
|
},
|
|
102
100
|
},
|
|
@@ -104,27 +102,17 @@ const memory = new Memory({
|
|
|
104
102
|
```
|
|
105
103
|
|
|
106
104
|
**Use cases:**
|
|
107
|
-
- Personal assistants that remember user preferences
|
|
108
|
-
- Customer service bots that maintain customer context
|
|
109
|
-
- Educational applications that track student progress
|
|
110
|
-
|
|
111
|
-
### Usage with Agents
|
|
112
|
-
|
|
113
|
-
When using resource-scoped memory, make sure to pass the `resourceId` parameter:
|
|
114
105
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
threadId: "conversation-123",
|
|
119
|
-
resourceId: "user-alice-456" // Same user across different threads
|
|
120
|
-
});
|
|
121
|
-
```
|
|
106
|
+
- Different conversations about separate topics
|
|
107
|
+
- Temporary or session-specific information
|
|
108
|
+
- Workflows where each thread needs working memory but threads are ephemeral and not related to each other
|
|
122
109
|
|
|
123
110
|
## Storage Adapter Support
|
|
124
111
|
|
|
125
112
|
Resource-scoped working memory requires specific storage adapters that support the `mastra_resources` table:
|
|
126
113
|
|
|
127
114
|
### ✅ Supported Storage Adapters
|
|
115
|
+
|
|
128
116
|
- **LibSQL** (`@mastra/libsql`)
|
|
129
117
|
- **PostgreSQL** (`@mastra/pg`)
|
|
130
118
|
- **Upstash** (`@mastra/upstash`)
|
|
@@ -222,18 +210,20 @@ Working memory can also be defined using a structured schema instead of a Markdo
|
|
|
222
210
|
### Example: Schema-Based Working Memory
|
|
223
211
|
|
|
224
212
|
```typescript
|
|
225
|
-
import { z } from
|
|
226
|
-
import { Memory } from
|
|
213
|
+
import { z } from "zod";
|
|
214
|
+
import { Memory } from "@mastra/memory";
|
|
227
215
|
|
|
228
216
|
const userProfileSchema = z.object({
|
|
229
217
|
name: z.string().optional(),
|
|
230
218
|
location: z.string().optional(),
|
|
231
219
|
timezone: z.string().optional(),
|
|
232
|
-
preferences: z
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
220
|
+
preferences: z
|
|
221
|
+
.object({
|
|
222
|
+
communicationStyle: z.string().optional(),
|
|
223
|
+
projectGoal: z.string().optional(),
|
|
224
|
+
deadlines: z.array(z.string()).optional(),
|
|
225
|
+
})
|
|
226
|
+
.optional(),
|
|
237
227
|
});
|
|
238
228
|
|
|
239
229
|
const memory = new Memory({
|
|
@@ -311,7 +301,7 @@ While agents typically update working memory through the `updateWorkingMemory` t
|
|
|
311
301
|
|
|
312
302
|
When creating a thread, you can provide initial working memory through the metadata's `workingMemory` key:
|
|
313
303
|
|
|
314
|
-
```typescript
|
|
304
|
+
```typescript title="src/app/medical-consultation.ts" showLineNumbers copy
|
|
315
305
|
// Create a thread with initial working memory
|
|
316
306
|
const thread = await memory.createThread({
|
|
317
307
|
threadId: "thread-123",
|
|
@@ -324,14 +314,14 @@ const thread = await memory.createThread({
|
|
|
324
314
|
- Allergies: Penicillin
|
|
325
315
|
- Current Medications: None
|
|
326
316
|
- Medical History: Hypertension (controlled)
|
|
327
|
-
|
|
328
|
-
}
|
|
317
|
+
`,
|
|
318
|
+
},
|
|
329
319
|
});
|
|
330
320
|
|
|
331
321
|
// The agent will now have access to this information in all messages
|
|
332
322
|
await agent.generate("What's my blood type?", {
|
|
333
323
|
threadId: thread.id,
|
|
334
|
-
resourceId: "user-456"
|
|
324
|
+
resourceId: "user-456",
|
|
335
325
|
});
|
|
336
326
|
// Response: "Your blood type is O+."
|
|
337
327
|
```
|
|
@@ -340,7 +330,7 @@ await agent.generate("What's my blood type?", {
|
|
|
340
330
|
|
|
341
331
|
You can also update an existing thread's working memory:
|
|
342
332
|
|
|
343
|
-
```typescript
|
|
333
|
+
```typescript title="src/app/medical-consultation.ts" showLineNumbers copy
|
|
344
334
|
// Update thread metadata to add/modify working memory
|
|
345
335
|
await memory.updateThread({
|
|
346
336
|
id: "thread-123",
|
|
@@ -353,8 +343,8 @@ await memory.updateThread({
|
|
|
353
343
|
- Allergies: Penicillin, Ibuprofen // Updated
|
|
354
344
|
- Current Medications: Lisinopril 10mg daily // Added
|
|
355
345
|
- Medical History: Hypertension (controlled)
|
|
356
|
-
|
|
357
|
-
}
|
|
346
|
+
`,
|
|
347
|
+
},
|
|
358
348
|
});
|
|
359
349
|
```
|
|
360
350
|
|
|
@@ -362,17 +352,16 @@ await memory.updateThread({
|
|
|
362
352
|
|
|
363
353
|
Alternatively, use the `updateWorkingMemory` method directly:
|
|
364
354
|
|
|
365
|
-
```typescript
|
|
355
|
+
```typescript title="src/app/medical-consultation.ts" showLineNumbers copy
|
|
366
356
|
await memory.updateWorkingMemory({
|
|
367
357
|
threadId: "thread-123",
|
|
368
358
|
resourceId: "user-456", // Required for resource-scoped memory
|
|
369
|
-
workingMemory: "Updated memory content..."
|
|
359
|
+
workingMemory: "Updated memory content...",
|
|
370
360
|
});
|
|
371
361
|
```
|
|
372
362
|
|
|
373
363
|
## Examples
|
|
374
364
|
|
|
375
|
-
- [Basic working memory](/examples/memory/working-memory-basic)
|
|
376
365
|
- [Working memory with template](/examples/memory/working-memory-template)
|
|
377
366
|
- [Working memory with schema](/examples/memory/working-memory-schema)
|
|
378
367
|
- [Per-resource working memory](https://github.com/mastra-ai/mastra/tree/main/examples/memory-per-resource-example) - Complete example showing resource-scoped memory persistence
|
|
@@ -3,8 +3,6 @@ title: "Arize Exporter | AI Tracing | Observability | Mastra Docs"
|
|
|
3
3
|
description: "Send AI traces to Arize Phoenix or Arize AX using OpenTelemetry and OpenInference"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import { Callout } from "nextra/components";
|
|
7
|
-
|
|
8
6
|
# Arize Exporter
|
|
9
7
|
|
|
10
8
|
[Arize](https://arize.com/) provides observability platforms for AI applications through [Phoenix](https://phoenix.arize.com/) (open-source) and [Arize AX](https://arize.com/generative-ai/) (enterprise). The Arize exporter sends AI traces using OpenTelemetry and [OpenInference](https://github.com/Arize-ai/openinference/tree/main/spec) semantic conventions, compatible with any OpenTelemetry platform that supports OpenInference.
|
|
@@ -12,6 +10,7 @@ import { Callout } from "nextra/components";
|
|
|
12
10
|
## When to Use Arize
|
|
13
11
|
|
|
14
12
|
Arize is ideal when you need:
|
|
13
|
+
|
|
15
14
|
- **OpenInference standards** - Industry-standard semantic conventions for AI traces
|
|
16
15
|
- **Flexible deployment** - Self-hosted Phoenix or managed Arize AX
|
|
17
16
|
- **OpenTelemetry compatibility** - Works with any OTLP-compatible platform
|
|
@@ -37,7 +36,7 @@ Phoenix is an open-source observability platform that can be self-hosted or used
|
|
|
37
36
|
3. **API Key**: Optional for unauthenticated instances, required for Phoenix Cloud
|
|
38
37
|
4. **Environment Variables**: Set your configuration
|
|
39
38
|
|
|
40
|
-
```bash
|
|
39
|
+
```bash title=".env"
|
|
41
40
|
PHOENIX_ENDPOINT=http://localhost:6006/v1/traces # Or your Phoenix Cloud URL
|
|
42
41
|
PHOENIX_API_KEY=your-api-key # Optional for local instances
|
|
43
42
|
PHOENIX_PROJECT_NAME=mastra-service # Optional, defaults to 'mastra-service'
|
|
@@ -45,7 +44,7 @@ PHOENIX_PROJECT_NAME=mastra-service # Optional, defaults to 'mastra-service'
|
|
|
45
44
|
|
|
46
45
|
#### Basic Setup
|
|
47
46
|
|
|
48
|
-
```typescript
|
|
47
|
+
```typescript title="src/mastra/index.ts"
|
|
49
48
|
import { Mastra } from "@mastra/core";
|
|
50
49
|
import { ArizeExporter } from "@mastra/arize";
|
|
51
50
|
|
|
@@ -53,7 +52,7 @@ export const mastra = new Mastra({
|
|
|
53
52
|
observability: {
|
|
54
53
|
configs: {
|
|
55
54
|
arize: {
|
|
56
|
-
serviceName: process.env.PHOENIX_PROJECT_NAME ||
|
|
55
|
+
serviceName: process.env.PHOENIX_PROJECT_NAME || "mastra-service",
|
|
57
56
|
exporters: [
|
|
58
57
|
new ArizeExporter({
|
|
59
58
|
endpoint: process.env.PHOENIX_ENDPOINT!,
|
|
@@ -67,7 +66,8 @@ export const mastra = new Mastra({
|
|
|
67
66
|
});
|
|
68
67
|
```
|
|
69
68
|
|
|
70
|
-
|
|
69
|
+
:::info
|
|
70
|
+
|
|
71
71
|
**Quick Start with Docker**
|
|
72
72
|
|
|
73
73
|
Test locally with an in-memory Phoenix instance:
|
|
@@ -79,7 +79,8 @@ docker run --pull=always -d --name arize-phoenix -p 6006:6006 \
|
|
|
79
79
|
```
|
|
80
80
|
|
|
81
81
|
Set `PHOENIX_ENDPOINT=http://localhost:6006/v1/traces` and run your Mastra agent to see traces at [localhost:6006](http://localhost:6006).
|
|
82
|
-
|
|
82
|
+
|
|
83
|
+
:::
|
|
83
84
|
|
|
84
85
|
### Arize AX Setup
|
|
85
86
|
|
|
@@ -92,7 +93,7 @@ Arize AX is an enterprise observability platform with advanced features for prod
|
|
|
92
93
|
3. **API Key**: Generate in Arize AX settings
|
|
93
94
|
4. **Environment Variables**: Set your credentials
|
|
94
95
|
|
|
95
|
-
```bash
|
|
96
|
+
```bash title=".env"
|
|
96
97
|
ARIZE_SPACE_ID=your-space-id
|
|
97
98
|
ARIZE_API_KEY=your-api-key
|
|
98
99
|
ARIZE_PROJECT_NAME=mastra-service # Optional
|
|
@@ -100,7 +101,7 @@ ARIZE_PROJECT_NAME=mastra-service # Optional
|
|
|
100
101
|
|
|
101
102
|
#### Basic Setup
|
|
102
103
|
|
|
103
|
-
```typescript
|
|
104
|
+
```typescript title="src/mastra/index.ts"
|
|
104
105
|
import { Mastra } from "@mastra/core";
|
|
105
106
|
import { ArizeExporter } from "@mastra/arize";
|
|
106
107
|
|
|
@@ -108,7 +109,7 @@ export const mastra = new Mastra({
|
|
|
108
109
|
observability: {
|
|
109
110
|
configs: {
|
|
110
111
|
arize: {
|
|
111
|
-
serviceName: process.env.ARIZE_PROJECT_NAME ||
|
|
112
|
+
serviceName: process.env.ARIZE_PROJECT_NAME || "mastra-service",
|
|
112
113
|
exporters: [
|
|
113
114
|
new ArizeExporter({
|
|
114
115
|
apiKey: process.env.ARIZE_API_KEY!,
|
|
@@ -131,31 +132,31 @@ The Arize exporter supports advanced configuration for fine-tuning OpenTelemetry
|
|
|
131
132
|
```typescript
|
|
132
133
|
new ArizeExporter({
|
|
133
134
|
// Phoenix Configuration
|
|
134
|
-
endpoint:
|
|
135
|
+
endpoint: "https://your-collector.example.com/v1/traces", // Required for Phoenix
|
|
135
136
|
|
|
136
137
|
// Arize AX Configuration
|
|
137
|
-
spaceId:
|
|
138
|
+
spaceId: "your-space-id", // Required for Arize AX
|
|
138
139
|
|
|
139
140
|
// Shared Configuration
|
|
140
|
-
apiKey:
|
|
141
|
-
projectName:
|
|
141
|
+
apiKey: "your-api-key", // Required for authenticated endpoints
|
|
142
|
+
projectName: "mastra-service", // Optional project name
|
|
142
143
|
|
|
143
144
|
// Optional OTLP settings
|
|
144
145
|
headers: {
|
|
145
|
-
|
|
146
|
+
"x-custom-header": "value", // Additional headers for OTLP requests
|
|
146
147
|
},
|
|
147
148
|
|
|
148
149
|
// Debug and performance tuning
|
|
149
|
-
logLevel:
|
|
150
|
-
batchSize: 512,
|
|
151
|
-
timeout: 30000,
|
|
150
|
+
logLevel: "debug", // Logging: debug | info | warn | error
|
|
151
|
+
batchSize: 512, // Batch size before exporting spans
|
|
152
|
+
timeout: 30000, // Timeout in ms before exporting spans
|
|
152
153
|
|
|
153
154
|
// Custom resource attributes
|
|
154
155
|
resourceAttributes: {
|
|
155
|
-
|
|
156
|
-
|
|
156
|
+
"deployment.environment": process.env.NODE_ENV,
|
|
157
|
+
"service.version": process.env.APP_VERSION,
|
|
157
158
|
},
|
|
158
|
-
})
|
|
159
|
+
});
|
|
159
160
|
```
|
|
160
161
|
|
|
161
162
|
### Batch Processing Options
|
|
@@ -168,9 +169,9 @@ new ArizeExporter({
|
|
|
168
169
|
apiKey: process.env.PHOENIX_API_KEY,
|
|
169
170
|
|
|
170
171
|
// Batch processing configuration
|
|
171
|
-
batchSize: 512,
|
|
172
|
-
timeout: 30000,
|
|
173
|
-
})
|
|
172
|
+
batchSize: 512, // Number of spans to batch (default: 512)
|
|
173
|
+
timeout: 30000, // Max time in ms to wait before export (default: 30000)
|
|
174
|
+
});
|
|
174
175
|
```
|
|
175
176
|
|
|
176
177
|
### Resource Attributes
|
|
@@ -181,12 +182,12 @@ Add custom attributes to all exported spans:
|
|
|
181
182
|
new ArizeExporter({
|
|
182
183
|
endpoint: process.env.PHOENIX_ENDPOINT!,
|
|
183
184
|
resourceAttributes: {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
185
|
+
"deployment.environment": process.env.NODE_ENV,
|
|
186
|
+
"service.namespace": "production",
|
|
187
|
+
"service.instance.id": process.env.HOSTNAME,
|
|
188
|
+
"custom.attribute": "value",
|
|
188
189
|
},
|
|
189
|
-
})
|
|
190
|
+
});
|
|
190
191
|
```
|
|
191
192
|
|
|
192
193
|
## OpenInference Semantic Conventions
|
|
@@ -3,8 +3,6 @@ title: "Braintrust Exporter | AI Tracing | Observability | Mastra Docs"
|
|
|
3
3
|
description: "Send AI traces to Braintrust for evaluation and monitoring"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import { Callout } from "nextra/components";
|
|
7
|
-
|
|
8
6
|
# Braintrust Exporter
|
|
9
7
|
|
|
10
8
|
[Braintrust](https://www.braintrust.dev/) is an evaluation and monitoring platform that helps you measure and improve LLM application quality. The Braintrust exporter sends your AI traces to Braintrust, enabling systematic evaluation, scoring, and experimentation.
|
|
@@ -12,6 +10,7 @@ import { Callout } from "nextra/components";
|
|
|
12
10
|
## When to Use Braintrust
|
|
13
11
|
|
|
14
12
|
Braintrust excels at:
|
|
13
|
+
|
|
15
14
|
- **Evaluation workflows** - Systematic quality measurement
|
|
16
15
|
- **Experiment tracking** - Compare model versions and prompts
|
|
17
16
|
- **Dataset management** - Curate test cases and golden datasets
|
|
@@ -33,14 +32,14 @@ npm install @mastra/braintrust
|
|
|
33
32
|
3. **API Key**: Generate in Braintrust Settings → API Keys
|
|
34
33
|
4. **Environment Variables**: Set your credentials:
|
|
35
34
|
|
|
36
|
-
```bash
|
|
35
|
+
```bash title=".env"
|
|
37
36
|
BRAINTRUST_API_KEY=sk-xxxxxxxxxxxxxxxx
|
|
38
37
|
BRAINTRUST_PROJECT_NAME=my-project # Optional, defaults to 'mastra-tracing'
|
|
39
38
|
```
|
|
40
39
|
|
|
41
40
|
### Basic Setup
|
|
42
41
|
|
|
43
|
-
```typescript
|
|
42
|
+
```typescript title="src/mastra/index.ts"
|
|
44
43
|
import { Mastra } from "@mastra/core";
|
|
45
44
|
import { BraintrustExporter } from "@mastra/braintrust";
|
|
46
45
|
|
|
@@ -48,7 +47,7 @@ export const mastra = new Mastra({
|
|
|
48
47
|
observability: {
|
|
49
48
|
configs: {
|
|
50
49
|
braintrust: {
|
|
51
|
-
serviceName:
|
|
50
|
+
serviceName: "my-service",
|
|
52
51
|
exporters: [
|
|
53
52
|
new BraintrustExporter({
|
|
54
53
|
apiKey: process.env.BRAINTRUST_API_KEY,
|
|
@@ -69,10 +68,10 @@ new BraintrustExporter({
|
|
|
69
68
|
apiKey: process.env.BRAINTRUST_API_KEY!,
|
|
70
69
|
|
|
71
70
|
// Optional settings
|
|
72
|
-
projectName:
|
|
73
|
-
endpoint:
|
|
74
|
-
logLevel:
|
|
75
|
-
})
|
|
71
|
+
projectName: "my-project", // Default: 'mastra-tracing'
|
|
72
|
+
endpoint: "https://api.braintrust.dev", // Custom endpoint if needed
|
|
73
|
+
logLevel: "info", // Diagnostic logging: debug | info | warn | error
|
|
74
|
+
});
|
|
76
75
|
```
|
|
77
76
|
|
|
78
77
|
## Related
|