@mastra/mcp-docs-server 1.2.11 → 1.2.12-alpha.3
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/docs/agent-builder/access-control.md +3 -3
- package/.docs/docs/agent-builder/browser.md +1 -1
- package/.docs/docs/agent-builder/channels.md +1 -1
- package/.docs/docs/agent-builder/configuration.md +3 -3
- package/.docs/docs/agent-builder/deploying.md +2 -2
- package/.docs/docs/agent-builder/integrations.md +8 -8
- package/.docs/docs/agent-builder/memory.md +2 -2
- package/.docs/docs/agent-builder/overview.md +1 -1
- package/.docs/docs/agent-controller/channels.md +8 -6
- package/.docs/docs/agent-controller/modes.md +6 -6
- package/.docs/docs/agent-controller/overview.md +13 -9
- package/.docs/docs/agent-controller/session.md +27 -9
- package/.docs/docs/agent-controller/subagents.md +9 -6
- package/.docs/docs/agent-controller/threads-and-state.md +12 -8
- package/.docs/docs/agent-controller/tool-approvals.md +7 -3
- package/.docs/docs/agents/a2a.md +4 -2
- package/.docs/docs/agents/acp.md +5 -5
- package/.docs/docs/agents/agent-approval.md +13 -11
- package/.docs/docs/agents/code-mode.md +29 -6
- package/.docs/docs/agents/guardrails.md +8 -8
- package/.docs/docs/agents/networks.md +2 -2
- package/.docs/docs/agents/overview.md +9 -7
- package/.docs/docs/agents/processors.md +15 -15
- package/.docs/docs/agents/skills.md +6 -6
- package/.docs/docs/agents/structured-output.md +6 -6
- package/.docs/docs/agents/supervisor-agents.md +19 -13
- package/.docs/docs/agents/using-tools.md +48 -21
- package/.docs/docs/browser/agent-browser.md +4 -4
- package/.docs/docs/browser/browser-viewer.md +2 -2
- package/.docs/docs/browser/firecrawl.md +1 -1
- package/.docs/docs/browser/overview.md +2 -2
- package/.docs/docs/browser/recording.md +1 -1
- package/.docs/docs/browser/stagehand.md +7 -7
- package/.docs/docs/capabilities/channels/discord.md +1 -1
- package/.docs/docs/capabilities/channels/other-adapters.md +1 -1
- package/.docs/docs/capabilities/channels/overview.md +9 -5
- package/.docs/docs/capabilities/channels/slack.md +2 -2
- package/.docs/docs/capabilities/channels/teams.md +1 -1
- package/.docs/docs/capabilities/channels/telegram.md +1 -1
- package/.docs/docs/capabilities/channels/whatsapp.md +1 -1
- package/.docs/docs/deployment/mastra-server.md +1 -1
- package/.docs/docs/deployment/overview.md +6 -2
- package/.docs/docs/deployment/sandbox.md +3 -1
- package/.docs/docs/deployment/workers.md +137 -0
- package/.docs/docs/editor/overview.md +37 -31
- package/.docs/docs/editor/prompts.md +8 -4
- package/.docs/docs/editor/tools.md +3 -3
- package/.docs/docs/evals/built-in-scorers.md +4 -4
- package/.docs/docs/evals/custom-scorers.md +5 -5
- package/.docs/docs/evals/datasets/running-experiments.md +7 -7
- package/.docs/docs/evals/evals-with-memory.md +4 -4
- package/.docs/docs/evals/gates-and-verdicts.md +4 -4
- package/.docs/docs/evals/multi-turn.md +12 -12
- package/.docs/docs/evals/overview.md +6 -4
- package/.docs/docs/evals/quick-checks.md +2 -2
- package/.docs/docs/getting-started/build-with-ai.md +6 -4
- package/.docs/docs/getting-started/file-based-agents.md +6 -4
- package/.docs/docs/getting-started/manual-install.md +1 -1
- package/.docs/docs/index.md +9 -90
- package/.docs/docs/long-running-agents/background-tasks.md +10 -10
- package/.docs/docs/long-running-agents/durable-agents.md +46 -5
- package/.docs/docs/long-running-agents/goals.md +15 -11
- package/.docs/docs/long-running-agents/schedules.md +3 -3
- package/.docs/docs/long-running-agents/signal-providers.md +8 -6
- package/.docs/docs/long-running-agents/signals.md +9 -5
- package/.docs/docs/mastra-platform/configuration.md +3 -3
- package/.docs/docs/mastra-platform/database.md +8 -8
- package/.docs/docs/mastra-platform/deploy.md +8 -4
- package/.docs/docs/mastra-platform/environments.md +8 -4
- package/.docs/docs/mastra-platform/github.md +3 -1
- package/.docs/docs/mastra-platform/server.md +1 -1
- package/.docs/docs/mastra-platform/studio.md +2 -2
- package/.docs/docs/mastra-platform/workspace.md +6 -6
- package/.docs/docs/mcp/mcp-apps.md +1 -1
- package/.docs/docs/mcp/overview.md +9 -9
- package/.docs/docs/memory/memory-processors.md +10 -10
- package/.docs/docs/memory/message-history.md +11 -5
- package/.docs/docs/memory/multi-user-threads.md +6 -6
- package/.docs/docs/memory/observational-memory.md +27 -25
- package/.docs/docs/memory/overview.md +10 -10
- package/.docs/docs/memory/semantic-recall.md +3 -3
- package/.docs/docs/memory/working-memory.md +8 -8
- package/.docs/docs/observability/integrations/bridges/datadog.md +6 -6
- package/.docs/docs/observability/integrations/bridges/otel.md +5 -5
- package/.docs/docs/observability/integrations/exporters/datadog.md +1 -1
- package/.docs/docs/observability/integrations/exporters/laminar.md +1 -1
- package/.docs/docs/observability/integrations/exporters/langfuse.md +3 -3
- package/.docs/docs/observability/integrations/exporters/langsmith.md +4 -4
- package/.docs/docs/observability/integrations/exporters/mastra-platform.md +1 -1
- package/.docs/docs/observability/integrations/exporters/mastra-storage.md +1 -1
- package/.docs/docs/observability/integrations/exporters/otel.md +26 -4
- package/.docs/docs/observability/integrations/exporters/sentry.md +1 -1
- package/.docs/docs/observability/integrations/overview.md +1 -1
- package/.docs/docs/observability/integrations/processors/sensitive-data-filter.md +1 -1
- package/.docs/docs/observability/logging.md +1 -1
- package/.docs/docs/observability/metrics/overview.md +1 -1
- package/.docs/docs/observability/metrics/querying.md +8 -8
- package/.docs/docs/observability/overview.md +4 -4
- package/.docs/docs/observability/tracing/overview.md +18 -12
- package/.docs/docs/rag/chunking-and-embedding.md +1 -1
- package/.docs/docs/rag/graph-rag.md +7 -7
- package/.docs/docs/rag/overview.md +2 -2
- package/.docs/docs/rag/retrieval.md +18 -18
- package/.docs/docs/rag/vector-databases.md +2 -2
- package/.docs/docs/server/auth/composite-auth.md +2 -2
- package/.docs/docs/server/auth/fga.md +6 -6
- package/.docs/docs/server/auth/firebase.md +2 -2
- package/.docs/docs/server/auth/simple-auth.md +1 -1
- package/.docs/docs/server/auth/workers.md +133 -0
- package/.docs/docs/server/custom-adapters.md +4 -4
- package/.docs/docs/server/mastra-client.md +3 -3
- package/.docs/docs/server/mastra-server.md +2 -2
- package/.docs/docs/server/middleware.md +1 -1
- package/.docs/docs/server/pubsub.md +7 -4
- package/.docs/docs/server/request-context.md +11 -11
- package/.docs/docs/server/server-adapters.md +2 -2
- package/.docs/docs/storage/overview.md +2 -2
- package/.docs/docs/studio/auth.md +5 -5
- package/.docs/docs/studio/deployment.md +1 -1
- package/.docs/docs/studio/observability.md +2 -2
- package/.docs/docs/studio/overview.md +11 -9
- package/.docs/docs/voice/overview.md +26 -26
- package/.docs/docs/voice/realtime-voice.md +8 -8
- package/.docs/docs/voice/speech-to-speech.md +9 -9
- package/.docs/docs/voice/speech-to-text.md +3 -3
- package/.docs/docs/voice/text-to-speech.md +6 -6
- package/.docs/docs/what-is-mastra.md +161 -0
- package/.docs/docs/workflows/agents-and-tools.md +3 -3
- package/.docs/docs/workflows/control-flow.md +10 -8
- package/.docs/docs/workflows/error-handling.md +2 -2
- package/.docs/docs/workflows/overview.md +7 -6
- package/.docs/docs/workflows/scheduled-workflows.md +12 -12
- package/.docs/docs/workflows/snapshots.md +3 -3
- package/.docs/docs/workflows/suspend-and-resume.md +1 -1
- package/.docs/docs/workflows/time-travel.md +3 -1
- package/.docs/docs/workflows/workflow-state.md +1 -1
- package/.docs/docs/workspace/filesystem.md +10 -10
- package/.docs/docs/workspace/lsp.md +1 -1
- package/.docs/docs/workspace/overview.md +12 -12
- package/.docs/docs/workspace/sandbox.md +9 -7
- package/.docs/docs/workspace/search.md +3 -3
- package/.docs/docs/workspace/skills.md +7 -7
- package/.docs/guides/build-your-ui/ai-sdk-ui.md +6 -6
- package/.docs/guides/build-your-ui/copilotkit/generative-ui.md +9 -9
- package/.docs/guides/build-your-ui/copilotkit/overview.md +2 -2
- package/.docs/guides/build-your-ui/openui.md +2 -2
- package/.docs/guides/concepts/multi-agent-systems.md +5 -5
- package/.docs/guides/concepts/streaming.md +10 -10
- package/.docs/guides/deployment/amazon-ec2.md +1 -1
- package/.docs/guides/deployment/aws-lambda.md +1 -1
- package/.docs/guides/deployment/azure-app-services.md +1 -1
- package/.docs/guides/deployment/cloudflare.md +1 -1
- package/.docs/guides/deployment/inngest.md +6 -6
- package/.docs/guides/deployment/kubernetes.md +1 -1
- package/.docs/guides/deployment/mastra-workers.md +232 -0
- package/.docs/guides/deployment/temporal.md +1 -1
- package/.docs/guides/deployment/vercel.md +1 -1
- package/.docs/guides/getting-started/astro.md +1 -1
- package/.docs/guides/getting-started/electron.md +1 -1
- package/.docs/guides/getting-started/nestjs.md +5 -5
- package/.docs/guides/getting-started/vite-react.md +1 -1
- package/.docs/guides/guide/ai-recruiter.md +1 -1
- package/.docs/guides/guide/chef-michel.md +2 -2
- package/.docs/guides/guide/code-review-bot.md +2 -2
- package/.docs/guides/guide/coding-agent.md +5 -5
- package/.docs/guides/guide/dev-assistant.md +2 -2
- package/.docs/guides/guide/docs-manager.md +4 -4
- package/.docs/guides/guide/firecrawl.md +1 -1
- package/.docs/guides/guide/github-actions-pr-description.md +5 -5
- package/.docs/guides/guide/research-assistant.md +4 -4
- package/.docs/guides/guide/research-coordinator.md +5 -5
- package/.docs/guides/guide/signal-provider.md +1 -1
- package/.docs/guides/guide/slack-assistant.md +1 -1
- package/.docs/guides/guide/stock-agent.md +3 -3
- package/.docs/guides/guide/web-search.md +4 -4
- package/.docs/guides/guide/whatsapp-chat-bot.md +2 -2
- package/.docs/guides/index.md +1 -1
- package/.docs/guides/migrations/agentnetwork.md +4 -4
- package/.docs/guides/migrations/ai-sdk-v4-to-v5.md +1 -1
- package/.docs/guides/migrations/mastra-cloud.md +6 -6
- package/.docs/guides/migrations/network-to-supervisor.md +9 -9
- package/.docs/guides/migrations/upgrade-to-v1/agent.md +6 -6
- package/.docs/guides/migrations/upgrade-to-v1/cli.md +1 -1
- package/.docs/guides/migrations/upgrade-to-v1/client.md +3 -3
- package/.docs/guides/migrations/upgrade-to-v1/evals.md +2 -2
- package/.docs/guides/migrations/upgrade-to-v1/memory.md +1 -1
- package/.docs/guides/migrations/upgrade-to-v1/overview.md +3 -3
- package/.docs/guides/migrations/upgrade-to-v1/processors.md +1 -1
- package/.docs/guides/migrations/upgrade-to-v1/storage.md +11 -11
- package/.docs/guides/migrations/upgrade-to-v1/tools.md +3 -3
- package/.docs/guides/migrations/upgrade-to-v1/tracing.md +2 -2
- package/.docs/guides/migrations/upgrade-to-v1/voice.md +1 -1
- package/.docs/guides/migrations/upgrade-to-v1/workflows.md +1 -1
- package/.docs/guides/migrations/vnext-to-standard-apis.md +2 -2
- package/.docs/models/environment-variables.md +1 -0
- package/.docs/models/gateways/custom-gateways.md +3 -3
- package/.docs/models/gateways/openrouter.md +1 -3
- package/.docs/models/gateways/vercel.md +2 -1
- package/.docs/models/index.md +6 -6
- package/.docs/models/providers/baseten.md +1 -1
- package/.docs/models/providers/chutes.md +2 -1
- package/.docs/models/providers/crossmodel.md +2 -2
- package/.docs/models/providers/deepinfra.md +1 -1
- package/.docs/models/providers/hyper.md +3 -3
- package/.docs/models/providers/llmgateway.md +4 -3
- package/.docs/models/providers/modal.md +73 -0
- package/.docs/models/providers/wandb.md +2 -1
- package/.docs/models/providers.md +1 -0
- package/.docs/reference/acp/acp-agent.md +4 -4
- package/.docs/reference/acp/create-acp-tool.md +3 -3
- package/.docs/reference/agent-controller/agent-controller-class.md +36 -36
- package/.docs/reference/agent-controller/session.md +6 -6
- package/.docs/reference/agents/agent.md +14 -14
- package/.docs/reference/agents/channels.md +29 -13
- package/.docs/reference/agents/durable-agent.md +54 -5
- package/.docs/reference/agents/generate.md +3 -3
- package/.docs/reference/agents/generateLegacy.md +1 -1
- package/.docs/reference/agents/getDefaultOptions.md +1 -1
- package/.docs/reference/agents/getDefaultStreamOptions.md +1 -1
- package/.docs/reference/agents/getLLM.md +2 -2
- package/.docs/reference/agents/getMetadata.md +2 -2
- package/.docs/reference/agents/inngest-agent.md +1 -1
- package/.docs/reference/agents/listScorers.md +1 -1
- package/.docs/reference/agents/listSkills.md +1 -1
- package/.docs/reference/agents/listSuspendedRuns.md +2 -2
- package/.docs/reference/agents/network.md +1 -1
- package/.docs/reference/ai-sdk/chat-route.md +1 -1
- package/.docs/reference/ai-sdk/network-route.md +1 -1
- package/.docs/reference/ai-sdk/to-ai-sdk-messages.md +1 -1
- package/.docs/reference/ai-sdk/to-ai-sdk-v4-messages.md +1 -1
- package/.docs/reference/ai-sdk/to-ai-sdk-v5-messages.md +1 -1
- package/.docs/reference/ai-sdk/workflow-route.md +1 -1
- package/.docs/reference/ai-sdk/workflow-snapshot-to-stream.md +2 -2
- package/.docs/reference/auth/auth0.md +1 -1
- package/.docs/reference/auth/fga.md +2 -2
- package/.docs/reference/auth/google.md +2 -2
- package/.docs/reference/auth/okta.md +1 -1
- package/.docs/reference/auth/workos.md +2 -2
- package/.docs/reference/browser/agent-browser.md +3 -3
- package/.docs/reference/browser/browser-viewer.md +4 -4
- package/.docs/reference/browser/firecrawl-browser.md +1 -1
- package/.docs/reference/browser/mastra-browser.md +4 -4
- package/.docs/reference/browser/stagehand-browser.md +8 -8
- package/.docs/reference/channels/slack-provider.md +2 -2
- package/.docs/reference/cli/create-mastra.md +1 -1
- package/.docs/reference/cli/mastra.md +155 -24
- package/.docs/reference/client-js/agents.md +26 -9
- package/.docs/reference/client-js/memory.md +2 -2
- package/.docs/reference/client-js/workflows.md +1 -1
- package/.docs/reference/coding-agent/build-base-prompt.md +2 -2
- package/.docs/reference/coding-agent/create-coding-agent.md +2 -2
- package/.docs/reference/configuration.md +7 -7
- package/.docs/reference/core/getAgentById.md +1 -1
- package/.docs/reference/core/getMCPServer.md +1 -1
- package/.docs/reference/core/getScorer.md +1 -1
- package/.docs/reference/core/mastra-class.md +48 -1
- package/.docs/reference/core/mastra-model-gateway.md +1 -1
- package/.docs/reference/datasets/addItem.md +1 -1
- package/.docs/reference/datasets/listItems.md +1 -1
- package/.docs/reference/deployer/netlify.md +4 -4
- package/.docs/reference/deployer/vercel.md +7 -7
- package/.docs/reference/editor/agent-builder/agent-builder-options.md +4 -4
- package/.docs/reference/editor/agent-builder/builder-agent-defaults.md +6 -6
- package/.docs/reference/editor/agent-builder/builder-models.md +3 -3
- package/.docs/reference/editor/blob-store-provider.md +1 -1
- package/.docs/reference/editor/browser-provider.md +3 -3
- package/.docs/reference/editor/filesystem-provider.md +4 -4
- package/.docs/reference/editor/mastra-editor.md +5 -5
- package/.docs/reference/editor/processor-provider.md +3 -3
- package/.docs/reference/editor/sandbox-provider.md +4 -4
- package/.docs/reference/editor/storage-browser-ref.md +6 -6
- package/.docs/reference/editor/storage-workspace-ref.md +4 -4
- package/.docs/reference/editor/tool-provider.md +1 -1
- package/.docs/reference/evals/answer-relevancy.md +5 -5
- package/.docs/reference/evals/answer-similarity.md +1 -1
- package/.docs/reference/evals/bias.md +4 -4
- package/.docs/reference/evals/checks.md +3 -3
- package/.docs/reference/evals/completeness.md +5 -5
- package/.docs/reference/evals/content-similarity.md +5 -5
- package/.docs/reference/evals/context-precision.md +5 -5
- package/.docs/reference/evals/context-recall.md +11 -11
- package/.docs/reference/evals/context-relevance.md +15 -15
- package/.docs/reference/evals/create-scorer.md +1 -1
- package/.docs/reference/evals/faithfulness.md +4 -4
- package/.docs/reference/evals/filter-run.md +2 -2
- package/.docs/reference/evals/hallucination.md +11 -11
- package/.docs/reference/evals/keyword-coverage.md +6 -6
- package/.docs/reference/evals/mastra-scorer.md +2 -2
- package/.docs/reference/evals/noise-sensitivity.md +15 -15
- package/.docs/reference/evals/prompt-alignment.md +20 -20
- package/.docs/reference/evals/rubric.md +2 -2
- package/.docs/reference/evals/run-evals.md +3 -3
- package/.docs/reference/evals/scorer-utils.md +4 -4
- package/.docs/reference/evals/textual-difference.md +4 -4
- package/.docs/reference/evals/tool-call-accuracy.md +4 -4
- package/.docs/reference/evals/toxicity.md +5 -5
- package/.docs/reference/evals/trajectory-accuracy.md +10 -10
- package/.docs/reference/file-based-agents/config.md +3 -3
- package/.docs/reference/file-based-agents/instructions.md +3 -3
- package/.docs/reference/file-based-agents/logger.md +1 -1
- package/.docs/reference/file-based-agents/observability.md +1 -1
- package/.docs/reference/file-based-agents/processors.md +1 -1
- package/.docs/reference/file-based-agents/skills.md +1 -1
- package/.docs/reference/file-based-agents/storage.md +1 -1
- package/.docs/reference/file-based-agents/studio.md +1 -1
- package/.docs/reference/file-based-agents/subagents.md +4 -4
- package/.docs/reference/file-based-agents/tools.md +1 -1
- package/.docs/reference/file-based-agents/workspace.md +1 -1
- package/.docs/reference/index.md +2 -0
- package/.docs/reference/logging/pino-logger.md +3 -3
- package/.docs/reference/memory/clone-utilities.md +1 -1
- package/.docs/reference/memory/cloneThread.md +3 -3
- package/.docs/reference/memory/listThreads.md +1 -1
- package/.docs/reference/memory/memory-class.md +4 -4
- package/.docs/reference/memory/observational-memory.md +15 -15
- package/.docs/reference/memory/recall.md +2 -2
- package/.docs/reference/memory/serialized-memory-config.md +4 -4
- package/.docs/reference/memory/summarizeConversation.md +3 -3
- package/.docs/reference/memory/summarizeThread.md +3 -3
- package/.docs/reference/observability/feedback.md +1 -1
- package/.docs/reference/observability/metrics/automatic-metrics.md +7 -7
- package/.docs/reference/observability/tracing/bridges/datadog.md +2 -2
- package/.docs/reference/observability/tracing/exporters/cloud-exporter.md +3 -3
- package/.docs/reference/observability/tracing/exporters/default-exporter.md +1 -1
- package/.docs/reference/observability/tracing/exporters/langfuse.md +1 -1
- package/.docs/reference/observability/tracing/exporters/mastra-platform-exporter.md +4 -4
- package/.docs/reference/observability/tracing/exporters/mastra-storage-exporter.md +1 -1
- package/.docs/reference/observability/tracing/interfaces.md +1 -1
- package/.docs/reference/observability/tracing/processors/sensitive-data-filter.md +1 -1
- package/.docs/reference/observability/tracing/span-filtering.md +1 -1
- package/.docs/reference/processors/batch-parts-processor.md +1 -1
- package/.docs/reference/processors/cost-guard-processor.md +1 -1
- package/.docs/reference/processors/language-detector.md +1 -1
- package/.docs/reference/processors/message-history-processor.md +1 -1
- package/.docs/reference/processors/moderation-processor.md +2 -2
- package/.docs/reference/processors/pii-detector.md +3 -3
- package/.docs/reference/processors/processor-interface.md +13 -13
- package/.docs/reference/processors/prompt-injection-detector.md +2 -2
- package/.docs/reference/processors/provider-history-compat.md +1 -1
- package/.docs/reference/processors/regex-filter-processor.md +1 -1
- package/.docs/reference/processors/response-cache.md +8 -8
- package/.docs/reference/processors/semantic-recall-processor.md +1 -1
- package/.docs/reference/processors/skill-search-processor.md +1 -1
- package/.docs/reference/processors/system-prompt-scrubber.md +2 -2
- package/.docs/reference/processors/token-limiter-processor.md +4 -4
- package/.docs/reference/processors/tool-call-filter.md +2 -2
- package/.docs/reference/processors/tool-search-processor.md +9 -9
- package/.docs/reference/processors/unicode-normalizer.md +2 -2
- package/.docs/reference/processors/working-memory-processor.md +1 -1
- package/.docs/reference/project-structure.md +1 -1
- package/.docs/reference/pubsub/base.md +4 -4
- package/.docs/reference/pubsub/google-cloud-pubsub.md +2 -2
- package/.docs/reference/pubsub/lease-provider.md +4 -4
- package/.docs/reference/pubsub/redis-streams.md +1 -1
- package/.docs/reference/pubsub/unix-socket-pubsub.md +1 -1
- package/.docs/reference/rag/chunk.md +5 -5
- package/.docs/reference/rag/database-config.md +2 -2
- package/.docs/reference/rag/metadata-filters.md +2 -2
- package/.docs/reference/rag/rerank.md +1 -1
- package/.docs/reference/schedules/overview.md +1 -1
- package/.docs/reference/server/register-api-route.md +1 -1
- package/.docs/reference/server/routes.md +7 -7
- package/.docs/reference/signals/create-notification-inbox-tool.md +1 -1
- package/.docs/reference/signals/signal-provider.md +8 -8
- package/.docs/reference/storage/clickhouse.md +4 -4
- package/.docs/reference/storage/cloudflare-d1.md +4 -4
- package/.docs/reference/storage/convex.md +4 -4
- package/.docs/reference/storage/dsql.md +3 -3
- package/.docs/reference/storage/dynamodb.md +7 -7
- package/.docs/reference/storage/lance.md +1 -1
- package/.docs/reference/storage/mongodb.md +2 -2
- package/.docs/reference/storage/mssql.md +1 -1
- package/.docs/reference/storage/postgresql.md +2 -2
- package/.docs/reference/storage/redis.md +1 -1
- package/.docs/reference/storage/retention.md +33 -33
- package/.docs/reference/storage/spanner.md +8 -8
- package/.docs/reference/storage/upstash.md +1 -1
- package/.docs/reference/streaming/ChunkType.md +2 -2
- package/.docs/reference/streaming/agents/MastraModelOutput.md +1 -1
- package/.docs/reference/streaming/agents/stream.md +2 -2
- package/.docs/reference/streaming/agents/streamUntilIdle.md +2 -2
- package/.docs/reference/streaming/workflows/observeStream.md +1 -1
- package/.docs/reference/streaming/workflows/resumeStream.md +1 -1
- package/.docs/reference/streaming/workflows/stream.md +1 -1
- package/.docs/reference/streaming/workflows/timeTravelStream.md +2 -2
- package/.docs/reference/templates/overview.md +1 -1
- package/.docs/reference/tools/brightdata.md +1 -1
- package/.docs/reference/tools/create-code-mode.md +3 -3
- package/.docs/reference/tools/create-tool.md +1 -1
- package/.docs/reference/tools/graph-rag-tool.md +1 -1
- package/.docs/reference/tools/isolated-vm-transport.md +74 -0
- package/.docs/reference/tools/mcp-client.md +15 -15
- package/.docs/reference/tools/mcp-server.md +21 -21
- package/.docs/reference/tools/submit-plan-tool.md +1 -1
- package/.docs/reference/tools/tavily.md +1 -1
- package/.docs/reference/tools/vector-query-tool.md +5 -5
- package/.docs/reference/vectors/astra.md +1 -1
- package/.docs/reference/vectors/chroma.md +2 -2
- package/.docs/reference/vectors/convex.md +2 -2
- package/.docs/reference/vectors/couchbase.md +4 -4
- package/.docs/reference/vectors/libsql.md +2 -2
- package/.docs/reference/vectors/mongodb.md +3 -3
- package/.docs/reference/vectors/pg.md +5 -5
- package/.docs/reference/vectors/qdrant.md +2 -2
- package/.docs/reference/vectors/s3vectors.md +4 -4
- package/.docs/reference/vectors/turbopuffer.md +1 -1
- package/.docs/reference/vectors/upstash.md +1 -1
- package/.docs/reference/voice/aws-nova-sonic.md +1 -1
- package/.docs/reference/voice/azure.md +1 -1
- package/.docs/reference/voice/google-gemini-live.md +4 -4
- package/.docs/reference/voice/inworld-realtime.md +7 -7
- package/.docs/reference/voice/livekit.md +13 -13
- package/.docs/reference/voice/mistral.md +1 -1
- package/.docs/reference/voice/openai-realtime.md +1 -1
- package/.docs/reference/voice/sarvam.md +1 -1
- package/.docs/reference/voice/voice.addInstructions.md +1 -1
- package/.docs/reference/voice/voice.addTools.md +1 -1
- package/.docs/reference/voice/voice.events.md +1 -1
- package/.docs/reference/voice/voice.getSpeakers.md +2 -2
- package/.docs/reference/voice/voice.on.md +2 -2
- package/.docs/reference/voice/xai-realtime.md +2 -2
- package/.docs/reference/workers/overview.md +85 -0
- package/.docs/reference/workflows/run-methods/cancel.md +1 -1
- package/.docs/reference/workflows/run-methods/startAsync.md +1 -1
- package/.docs/reference/workflows/run-methods/timeTravel.md +1 -1
- package/.docs/reference/workflows/workflow-methods/foreach.md +1 -1
- package/.docs/reference/workflows/workflow-methods/sleep.md +1 -1
- package/.docs/reference/workflows/workflow-state-reader.md +2 -2
- package/.docs/reference/workspace/agentfs-filesystem.md +1 -1
- package/.docs/reference/workspace/apple-container-sandbox.md +2 -2
- package/.docs/reference/workspace/daytona-sandbox.md +3 -3
- package/.docs/reference/workspace/docker-sandbox.md +2 -2
- package/.docs/reference/workspace/e2b-sandbox.md +2 -2
- package/.docs/reference/workspace/files-sdk-filesystem.md +3 -3
- package/.docs/reference/workspace/google-drive-filesystem.md +4 -4
- package/.docs/reference/workspace/local-filesystem.md +3 -3
- package/.docs/reference/workspace/local-sandbox.md +3 -3
- package/.docs/reference/workspace/modal-sandbox.md +1 -1
- package/.docs/reference/workspace/platform-filesystem.md +3 -3
- package/.docs/reference/workspace/platform-sandbox.md +2 -2
- package/.docs/reference/workspace/process-manager.md +1 -1
- package/.docs/reference/workspace/railway-sandbox.md +4 -4
- package/.docs/reference/workspace/s3-filesystem.md +1 -1
- package/.docs/reference/workspace/sandbox.md +1 -1
- package/.docs/reference/workspace/vercel-sandbox.md +1 -1
- package/.docs/reference/workspace/workspace-class.md +10 -10
- package/CHANGELOG.md +21 -0
- package/package.json +3 -3
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
> **Beta:** This feature is in beta. Breaking changes may occur without a major version bump until the API is stable.
|
|
8
8
|
|
|
9
|
-
Signals are a way to interact with an agent through a thread. Instead of starting every interaction with `agent.stream()`, subscribe to a thread and send messages or signals. Mastra either wakes the agent when the thread is idle
|
|
9
|
+
Signals are a way to interact with an agent through a thread. Instead of starting every interaction with `agent.stream()`, subscribe to a thread and send messages or signals. Mastra either wakes the agent when the thread is idle or drops input into the running agent loop, or alternatively queues input for the next turn.
|
|
10
10
|
|
|
11
11
|
Use message APIs for user-authored input. Use `sendSignal()` for lower-level system context, such as background task notifications, policy reminders, or processor-generated context.
|
|
12
12
|
|
|
@@ -29,7 +29,7 @@ const agent = new Agent({
|
|
|
29
29
|
id: 'support-agent',
|
|
30
30
|
name: 'Support Agent',
|
|
31
31
|
instructions: 'Help the user compare options.',
|
|
32
|
-
model: 'openai/gpt-5.
|
|
32
|
+
model: 'openai/gpt-5.6-sol',
|
|
33
33
|
})
|
|
34
34
|
|
|
35
35
|
const thread = {
|
|
@@ -143,7 +143,7 @@ The model receives the signal as context like this:
|
|
|
143
143
|
<notification source="github" pr="123">PR #123 has a new review comment from User X about the API surface.</notification>
|
|
144
144
|
```
|
|
145
145
|
|
|
146
|
-
Use XML-safe `tagName` and attribute names. They can contain letters, numbers,
|
|
146
|
+
Use XML-safe `tagName` and attribute names. They can contain letters, numbers, shows, periods, and hyphens. They must start with a letter or underscore.
|
|
147
147
|
|
|
148
148
|
#### Storage support
|
|
149
149
|
|
|
@@ -320,7 +320,9 @@ Use `createNotificationInboxTool()` to give agents one tool for inbox actions in
|
|
|
320
320
|
|
|
321
321
|
Signals coordinate runs through a pub/sub backend. When a signal arrives on a backend that implements `LeaseProvider`, Mastra acquires a lease on the target thread so a single process owns the conversation at a time, then either wakes the agent or routes the input into the running loop. Backends without leasing fall back to a no-op that always grants ownership, which is fine in a single process but not across instances.
|
|
322
322
|
|
|
323
|
-
The default in-memory pub/sub can't cross instance boundaries. On serverless platforms like Vercel, or any multi-instance deployment, a follow-up signal can
|
|
323
|
+
The default in-memory pub/sub can't cross instance boundaries. On serverless platforms like Vercel, or any multi-instance deployment, a follow-up signal can be routed to a different instance than the one running the agent.
|
|
324
|
+
|
|
325
|
+
Without a shared pub/sub, that instance can't reach the active run and starts its own, leaving the original run untouched and the thread processed twice.
|
|
324
326
|
|
|
325
327
|
Configure a shared pub/sub backed by Redis Streams on the `Mastra` instance so leases and signals coordinate across instances:
|
|
326
328
|
|
|
@@ -360,7 +362,9 @@ If you call Mastra over HTTP directly, use `POST /api/agents/:agentId/send-messa
|
|
|
360
362
|
|
|
361
363
|
### Use the client SDK
|
|
362
364
|
|
|
363
|
-
The JavaScript client exposes thread signal APIs.
|
|
365
|
+
The JavaScript client exposes thread signal APIs.
|
|
366
|
+
|
|
367
|
+
Use `subscribeToThread()` before sending thread input so the client can render the stream that receives the input or wakes in response to it.
|
|
364
368
|
|
|
365
369
|
```typescript
|
|
366
370
|
const agent = client.getAgent('supportAgent')
|
|
@@ -34,7 +34,7 @@ A local env file is optional. [`mastra deploy`](https://mastra.ai/docs/mastra-pl
|
|
|
34
34
|
|
|
35
35
|
- **Managed variables**: Injected by platform resources like [hosted databases](https://mastra.ai/docs/mastra-platform/database). The platform defines these, and you can't edit them.
|
|
36
36
|
- **Stored variables**: Saved on the project or environment through the dashboard. Used as-is on every deploy with no local file needed.
|
|
37
|
-
- **Local env files**:
|
|
37
|
+
- **Local env files**: Deployments layer an explicit `--env-file` or the ambient `.env` and `.env.local` files on top. Variables from `.env.local` override those in `.env`.
|
|
38
38
|
|
|
39
39
|
To pin the deploy to a specific env file instead of relying on the default selection, pass `--env-file`:
|
|
40
40
|
|
|
@@ -59,11 +59,11 @@ The following environment variables configure the Observability product on the M
|
|
|
59
59
|
|
|
60
60
|
## Multiple environments
|
|
61
61
|
|
|
62
|
-
A single project runs the same codebase across multiple [environments](https://mastra.ai/docs/mastra-platform/environments), such as `production` and `staging`. Each environment has its own URL
|
|
62
|
+
A single project runs the same codebase across multiple [environments](https://mastra.ai/docs/mastra-platform/environments), such as `production` and `staging`. Each environment has its own URL and its own stored variables, plus its own deploy history. One `.mastra-project.json` file covers all of them:
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
65
|
mastra deploy --env production --yes
|
|
66
66
|
mastra deploy --env staging --env-file .env.staging --yes
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
> **Note:** Earlier platform versions required one project per environment. Environments replace that pattern, so keep one project and deploy to
|
|
69
|
+
> **Note:** Earlier platform versions required one project per environment. Environments replace that pattern, so keep one project and deploy to environments instead.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Hosted databases
|
|
4
4
|
|
|
5
|
-
Provision a fully managed database from the CLI or your [platform](https://mastra.ai/docs/mastra-platform/overview) project settings and attach it to your project. Mastra creates it with your provider
|
|
5
|
+
Provision a fully managed database from the CLI or your [platform](https://mastra.ai/docs/mastra-platform/overview) project settings and attach it to your project. Mastra creates it with your provider and stores credentials securely, plus injects connection details as runtime environment variables when the database is ready, so there are no connection strings to copy or configure.
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
mastra env db create --kind turso
|
|
@@ -12,15 +12,15 @@ mastra env db create --kind turso
|
|
|
12
12
|
|
|
13
13
|
Use a hosted database when your project needs durable storage that's managed by the platform, including:
|
|
14
14
|
|
|
15
|
-
- **Agent memory**: Persist conversation history
|
|
15
|
+
- **Agent memory**: Persist conversation history and working memory, plus semantic recall across sessions.
|
|
16
16
|
- **Application data**: Store and retrieve relational or structured data your project needs at runtime.
|
|
17
17
|
- **Vector search**: Store embeddings for Retrieval-Augmented Generation and semantic search.
|
|
18
18
|
|
|
19
19
|
## Providers
|
|
20
20
|
|
|
21
|
-
Hosted databases are available through two providers today
|
|
21
|
+
Hosted databases are available through two providers today, Turso and Postgres, with MongoDB coming soon. Pick one when you attach a database, then wire its injected variables into the matching Mastra storage adapter in your code.
|
|
22
22
|
|
|
23
|
-
Each provider injects a fixed set of variable names
|
|
23
|
+
Each provider injects a fixed set of variable names, for example, a single `DATABASE_URL` for Postgres and separate `TURSO_*` variables for Turso. Those names must be unique within each environment, which means an environment can use at most one database per provider. Attach Turso and Postgres to the same project when you need separate stores for different workloads.
|
|
24
24
|
|
|
25
25
|
For most agent-focused projects, **Turso** is the simplest starting point. It provides a lightweight, SQLite-compatible engine well suited to agent memory, conversation history, and per-tenant isolation. Choose **Postgres** when your workload needs full SQL, relational schemas, or structured application data beyond Mastra runtime state. **MongoDB** (_coming soon_) will add document storage and built-in vector search for workloads that don't map cleanly to SQL.
|
|
26
26
|
|
|
@@ -39,7 +39,7 @@ A database is attached at one of two scopes:
|
|
|
39
39
|
|
|
40
40
|
The scope is set when you attach the database and shown in `mastra env db list`.
|
|
41
41
|
|
|
42
|
-
The
|
|
42
|
+
The scopes can't overlap for the same provider. Because a project-scoped database already injects its variables into every environment, attaching an environment-scoped database of the same provider is rejected with a variable name conflict. To move from a shared database to per-environment databases, delete the project-scoped database first, then attach one database per environment. Deleting a database destroys it with the provider along with all of its data, export anything you need to keep before switching scopes. Environment-scoped databases on different environments never conflict, each deploy only receives the variables for its own environment.
|
|
43
43
|
|
|
44
44
|
## Attach with the CLI
|
|
45
45
|
|
|
@@ -60,7 +60,7 @@ mastra env db create --kind turso --shared
|
|
|
60
60
|
|
|
61
61
|
Supported kinds are `turso` and `neon` (Postgres). Useful flags:
|
|
62
62
|
|
|
63
|
-
- `--shared`: Attach a project-scoped database shared by every environment.
|
|
63
|
+
- `--shared`: Attach a project-scoped database shared by every environment. Can't be combined with an environment argument.
|
|
64
64
|
- `--name <name>`: Database name. Defaults to a name derived from the project slug.
|
|
65
65
|
- `--region <region>`: Provider region ID for project-scoped databases (for example `fra`). Environment-scoped databases are placed near the environment's region automatically, and an explicit `--region` is ignored.
|
|
66
66
|
- `--no-wait`: Return immediately instead of polling. Check progress later with `mastra env db show`.
|
|
@@ -74,7 +74,7 @@ mastra env db show <database>
|
|
|
74
74
|
mastra env db delete <database>
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
`mastra env db list` shows each database's kind, status, scope, and injected variable names. `mastra env db show` prints connection instructions with secret values masked
|
|
77
|
+
`mastra env db list` shows each database's kind, status, scope, and injected variable names. `mastra env db show` prints connection instructions with secret values masked. Pass `--show-secrets` to reveal them. `mastra env db delete` permanently deletes the database and all of its data with the provider. Creating and deleting databases requires the admin role in your organization.
|
|
78
78
|
|
|
79
79
|
## Attach from project settings
|
|
80
80
|
|
|
@@ -95,7 +95,7 @@ Databases attached from project settings are project-scoped. Use the [CLI](#atta
|
|
|
95
95
|
|
|
96
96
|
## Connect from your code
|
|
97
97
|
|
|
98
|
-
When a database is `ready`, the provider has finished provisioning and the platform has injected connection details as managed environment variables. Check status in **Project Settings → Database
|
|
98
|
+
When a database is `ready`, the provider has finished provisioning and the platform has injected connection details as managed environment variables. Check status in **Project Settings → Database**, each attached database shows `provisioning` while setup runs in the background, then `ready` when you can connect. Open a `ready` database to view its environment variables and a copy-pasteable code snippet. Wire those variables into a Mastra storage adapter, with no manual configuration required.
|
|
99
99
|
|
|
100
100
|
### Turso (LibSQL)
|
|
101
101
|
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
# Deploy to Mastra platform
|
|
4
4
|
|
|
5
|
-
[`mastra deploy`](https://mastra.ai/reference/cli/mastra) is the single command for
|
|
5
|
+
[`mastra deploy`](https://mastra.ai/reference/cli/mastra) is the single command for releasing a Mastra application to the [Mastra platform](https://mastra.ai/docs/mastra-platform/overview).
|
|
6
|
+
|
|
7
|
+
One command builds your project and validates it before anything includes, plus creates the platform project and environment on your first run, deploys, streams build logs, and prints your public URL once the deploy is serving traffic.
|
|
6
8
|
|
|
7
9
|
```bash
|
|
8
10
|
mastra deploy
|
|
@@ -73,7 +75,9 @@ The first deploy writes a `.mastra-project.json` file linking your directory to
|
|
|
73
75
|
mastra deploy --env staging
|
|
74
76
|
```
|
|
75
77
|
|
|
76
|
-
Each environment gets
|
|
78
|
+
Each environment gets a separate URL and environment variables. It can also have its own [hosted database](https://mastra.ai/docs/mastra-platform/database).
|
|
79
|
+
|
|
80
|
+
See [Environments](https://mastra.ai/docs/mastra-platform/environments) for the full model.
|
|
77
81
|
|
|
78
82
|
## Choose a region
|
|
79
83
|
|
|
@@ -87,7 +91,7 @@ The region is fixed when the environment is created. Databases attached to an en
|
|
|
87
91
|
|
|
88
92
|
## Preflight checks
|
|
89
93
|
|
|
90
|
-
Preflight validates the built output before anything
|
|
94
|
+
Preflight validates the built output before anything includes, and only flags issues in your own code:
|
|
91
95
|
|
|
92
96
|
- **Local storage paths**: A hard block. File-backed storage (for example `file:./mastra.db`) is lost on every deploy. Preflight passes when the path is guarded by an environment variable that's set locally, stored on the platform, or provided by a managed database:
|
|
93
97
|
|
|
@@ -120,7 +124,7 @@ Deploys resolve environment variables from three sources:
|
|
|
120
124
|
|
|
121
125
|
- **Managed variables**: Injected by platform resources like hosted databases (for example `TURSO_DATABASE_URL`). The platform defines these, and you can't edit them.
|
|
122
126
|
- **Stored variables**: Saved on the project or environment through the dashboard. Used as-is on every deploy with no local file needed.
|
|
123
|
-
- **Local env files**:
|
|
127
|
+
- **Local env files**: Deployments layer an explicit `--env-file` or the ambient `.env` and `.env.local` files on top.
|
|
124
128
|
|
|
125
129
|
```bash
|
|
126
130
|
mastra deploy --env staging --env-file .env.staging
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
# Environments
|
|
4
4
|
|
|
5
|
-
Every platform project contains one or more environments.
|
|
5
|
+
Every platform project contains one or more environments.
|
|
6
|
+
|
|
7
|
+
An environment is an isolated deployment target with its own URL, environment variables, and deploy history. It can also have its own [hosted database](https://mastra.ai/docs/mastra-platform/database).
|
|
8
|
+
|
|
9
|
+
Use environments to run `production`, `staging`, and preview versions of the same codebase inside a single project.
|
|
6
10
|
|
|
7
11
|
Your first [`mastra deploy`](https://mastra.ai/docs/mastra-platform/deploy) creates the `production` environment. Create more with the CLI or by deploying to a name that doesn't exist yet.
|
|
8
12
|
|
|
@@ -54,13 +58,13 @@ Variables are applied when a deploy starts. To apply changed variables to a runn
|
|
|
54
58
|
mastra env restart staging
|
|
55
59
|
```
|
|
56
60
|
|
|
57
|
-
To see the full set an environment's deploys actually run with
|
|
61
|
+
To see the full set an environment's deploys actually run with, environment-scoped and project-scoped values merged, with managed variables listed by name, pull them into a local env file:
|
|
58
62
|
|
|
59
63
|
```bash
|
|
60
64
|
mastra env vars pull staging --output .env.staging
|
|
61
65
|
```
|
|
62
66
|
|
|
63
|
-
Managed variable values are injected at deploy time and never written to the file
|
|
67
|
+
Managed variable values are injected at deploy time and never written to the file. They appear as name-only comments.
|
|
64
68
|
|
|
65
69
|
> **Note:** Environment variables don't override managed database variables. To point an environment at a different database, attach an [environment-scoped database](https://mastra.ai/docs/mastra-platform/database) instead.
|
|
66
70
|
|
|
@@ -86,7 +90,7 @@ mastra env db create staging --kind turso --name my-project-staging-db
|
|
|
86
90
|
|
|
87
91
|
If you'd rather share one database across every environment, attach it with `--shared` instead: `mastra env db create --kind turso --shared`.
|
|
88
92
|
|
|
89
|
-
An environment can only use one database per provider. If the project already has a shared (`--shared`) database of the same provider, attaching an environment-scoped one is rejected with a variable name conflict
|
|
93
|
+
An environment can only use one database per provider. If the project already has a shared (`--shared`) database of the same provider, attaching an environment-scoped one is rejected with a variable name conflict, delete the shared database with `mastra env db delete` first. Deleting a database destroys it with the provider along with all of its data, so export anything you need to keep. See [Hosted databases](https://mastra.ai/docs/mastra-platform/database) for the full scoping model.
|
|
90
94
|
|
|
91
95
|
## Delete an environment
|
|
92
96
|
|
|
@@ -25,7 +25,9 @@ The CLI flow (`mastra studio deploy` and `mastra server deploy`) is still availa
|
|
|
25
25
|
|
|
26
26
|
## Install the Mastra GitHub App
|
|
27
27
|
|
|
28
|
-
The integration is powered by the Mastra GitHub App.
|
|
28
|
+
The integration is powered by the Mastra GitHub App.
|
|
29
|
+
|
|
30
|
+
The App reads repository contents and listens for `push` events on the configured branches. It writes deploy status back as check runs.
|
|
29
31
|
|
|
30
32
|
1. In the [Mastra platform dashboard](https://projects.mastra.ai), open your organization settings. The page includes a **GitHub App** section.
|
|
31
33
|
|
|
@@ -128,7 +128,7 @@ Call `unref()` on the diagnostic interval so the helper itself doesn't keep the
|
|
|
128
128
|
|
|
129
129
|
### Keep a service running
|
|
130
130
|
|
|
131
|
-
Some applications
|
|
131
|
+
Some applications actually need the connections or tasks described above, such as a persistent database connection for low first-request latency, a background scheduler, or a long-lived stream. If your app requires any of these, don't force the service to sleep. Use the **Persistent Server add-on** to keep the service running continuously instead.
|
|
132
132
|
|
|
133
133
|
With the **Persistent Server add-on** enabled, the service stays awake even with no traffic, so persistent connections, scheduled tasks, and open streams keep working without being interrupted by idle sleep.
|
|
134
134
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Studio on Mastra platform
|
|
4
4
|
|
|
5
|
-
Studio on Mastra platform is a hosted visual workspace for testing agents
|
|
5
|
+
Studio on Mastra platform is a hosted visual workspace for testing agents and running workflows, plus inspecting traces. Use it when you want to share Studio with your team without hosting the Studio UI yourself.
|
|
6
6
|
|
|
7
7
|
You can deploy Studio from the CLI as shown below, or link a GitHub repository for push-to-deploy. See the [GitHub integration](https://mastra.ai/docs/mastra-platform/github) for the repository-linked flow.
|
|
8
8
|
|
|
@@ -50,7 +50,7 @@ On your first deploy, the CLI prompts you to create a new project or select an e
|
|
|
50
50
|
|
|
51
51
|
## How deploy works
|
|
52
52
|
|
|
53
|
-
The `mastra studio deploy` command builds your project
|
|
53
|
+
The `mastra studio deploy` command builds your project and compiles `src/mastra/` into `.mastra/output`. It packages that output as an artifact ZIP, then uploads and deploys it to a cloud sandbox.
|
|
54
54
|
|
|
55
55
|
A deploy transitions through **queued → uploading → starting → running** or **failed** if something goes wrong. If a sandbox is already running for your project, the platform updates it in place with no downtime. Otherwise, it creates a fresh sandbox. Your instance URL is assigned per project slug and remains stable across deploys.
|
|
56
56
|
|
|
@@ -7,7 +7,7 @@ A workspace gives an environment two things your agents can use at runtime:
|
|
|
7
7
|
- A **bucket** for filesystem storage, exposed to your code as [`PlatformFilesystem`](https://mastra.ai/reference/workspace/platform-filesystem).
|
|
8
8
|
- A **sandbox** for executing commands, exposed as [`PlatformSandbox`](https://mastra.ai/reference/workspace/platform-sandbox).
|
|
9
9
|
|
|
10
|
-
Workspaces are provisioned per [environment](https://mastra.ai/docs/mastra-platform/environments), so `production` and `staging` each get their own bucket and sandbox. The platform manages provisioning, credentials, and lifecycle
|
|
10
|
+
Workspaces are provisioned per [environment](https://mastra.ai/docs/mastra-platform/environments), so `production` and `staging` each get their own bucket and sandbox. The platform manages provisioning, credentials, and lifecycle. Your deploy code only needs to construct the providers.
|
|
11
11
|
|
|
12
12
|
## When workspaces are provisioned
|
|
13
13
|
|
|
@@ -15,7 +15,7 @@ New projects have workspaces enabled by default. When you create an environment,
|
|
|
15
15
|
|
|
16
16
|
Existing projects that haven't opted in show an **Enable workspaces** action in the Workspaces tab. Enabling provisions a bucket for every environment on the project.
|
|
17
17
|
|
|
18
|
-
If provisioning fails for an environment
|
|
18
|
+
If provisioning fails for an environment, for example while Railway is under load, the Workspaces tab shows the failure and offers a retry. The environment itself is still created. Only the workspace is unavailable until you retry.
|
|
19
19
|
|
|
20
20
|
## Use the workspace from your code
|
|
21
21
|
|
|
@@ -92,7 +92,7 @@ MASTRA_ENVIRONMENT_ID=your-environment-id
|
|
|
92
92
|
MASTRA_PLATFORM_BUCKET_NAME=your-bucket-name
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
`PlatformFilesystem` and `PlatformSandbox` behave the same locally as on the platform
|
|
95
|
+
`PlatformFilesystem` and `PlatformSandbox` behave the same locally as on the platform, they connect to the same bucket and sandbox pool for that environment. Use a `staging` or `preview` environment's variables for local runs if you want to keep production data isolated.
|
|
96
96
|
|
|
97
97
|
For a purely offline loop that never touches the platform, swap the providers for [`LocalFilesystem`](https://mastra.ai/reference/workspace/local-filesystem) and [`LocalSandbox`](https://mastra.ai/reference/workspace/local-sandbox) in a local build.
|
|
98
98
|
|
|
@@ -106,6 +106,6 @@ The Workspaces tab in your platform project shows, per environment:
|
|
|
106
106
|
|
|
107
107
|
## See also
|
|
108
108
|
|
|
109
|
-
- [`PlatformFilesystem`](https://mastra.ai/reference/workspace/platform-filesystem)
|
|
110
|
-
- [`PlatformSandbox`](https://mastra.ai/reference/workspace/platform-sandbox)
|
|
111
|
-
- [Environments](https://mastra.ai/docs/mastra-platform/environments)
|
|
109
|
+
- [`PlatformFilesystem`](https://mastra.ai/reference/workspace/platform-filesystem): reference for the filesystem provider.
|
|
110
|
+
- [`PlatformSandbox`](https://mastra.ai/reference/workspace/platform-sandbox): reference for the sandbox provider.
|
|
111
|
+
- [Environments](https://mastra.ai/docs/mastra-platform/environments): how environments scope workspaces, variables, and databases.
|
|
@@ -85,7 +85,7 @@ Visit [MCPServer reference](https://mastra.ai/reference/tools/mcp-server) for th
|
|
|
85
85
|
|
|
86
86
|
## Connecting MCP Apps to agents
|
|
87
87
|
|
|
88
|
-
Agents consume tools
|
|
88
|
+
Agents consume tools, they don't need to know about MCP servers. Pass tools to the agent's `tools` config, and register the MCP server at the Mastra level so Studio can resolve app resources.
|
|
89
89
|
|
|
90
90
|
```typescript
|
|
91
91
|
import { Agent } from '@mastra/core/agent'
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# MCP overview
|
|
4
4
|
|
|
5
|
-
Mastra supports the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction), an open standard for connecting AI agents to external tools and resources. It
|
|
5
|
+
Mastra supports the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction), an open standard for connecting AI agents to external tools and resources. It's a universal plugin system, enabling agents to call tools regardless of language or hosting environment.
|
|
6
6
|
|
|
7
7
|
Mastra can also be used to author MCP servers, exposing agents, tools, and other structured resources via the MCP interface. These can then be accessed by any system or agent that supports the protocol.
|
|
8
8
|
|
|
@@ -64,7 +64,7 @@ export const testMcpClient = new MCPClient({
|
|
|
64
64
|
|
|
65
65
|
Visit [MCPClient](https://mastra.ai/reference/tools/mcp-client) for a full list of configuration options.
|
|
66
66
|
|
|
67
|
-
> **Authentication:** For connecting to OAuth-protected MCP servers
|
|
67
|
+
> **Authentication:** For connecting to OAuth-protected MCP servers, including completing the browser-based authorization flow with `authenticate()`, see the [OAuth Authentication](https://mastra.ai/reference/tools/mcp-client) section.
|
|
68
68
|
|
|
69
69
|
## Using `MCPClient` with an agent
|
|
70
70
|
|
|
@@ -84,7 +84,7 @@ export const testAgent = new Agent({
|
|
|
84
84
|
- US National Weather Service
|
|
85
85
|
|
|
86
86
|
Answer questions using the information you find using the MCP Servers.`,
|
|
87
|
-
model: 'openai/gpt-5.
|
|
87
|
+
model: 'openai/gpt-5.6-sol',
|
|
88
88
|
tools: await testMcpClient.listTools(),
|
|
89
89
|
})
|
|
90
90
|
```
|
|
@@ -106,7 +106,7 @@ export const mcp = new MCPClient({
|
|
|
106
106
|
})
|
|
107
107
|
```
|
|
108
108
|
|
|
109
|
-
You can also pass a function to decide
|
|
109
|
+
You can also pass a function to decide per runtime-call. See the [MCPClient reference](https://mastra.ai/reference/tools/mcp-client) for the full API.
|
|
110
110
|
|
|
111
111
|
## Configuring `MCPServer`
|
|
112
112
|
|
|
@@ -147,14 +147,14 @@ export const mastra = new Mastra({
|
|
|
147
147
|
})
|
|
148
148
|
```
|
|
149
149
|
|
|
150
|
-
## Static and
|
|
150
|
+
## Static and runtime tools
|
|
151
151
|
|
|
152
152
|
`MCPClient` offers two approaches to retrieving tools from connected servers, suitable for different application architectures:
|
|
153
153
|
|
|
154
154
|
| Feature | Static Configuration (`await mcp.listTools()`) | Dynamic Configuration (`await mcp.listToolsets()`) |
|
|
155
155
|
| ----------------- | ---------------------------------------------- | ---------------------------------------------------- |
|
|
156
|
-
| **Use Case** | Single-user, static config (e.g., CLI tool) | Multi-user,
|
|
157
|
-
| **Configuration** | Fixed at agent initialization | Per-request,
|
|
156
|
+
| **Use Case** | Single-user, static config (e.g., CLI tool) | Multi-user, runtime config (e.g., SaaS app) |
|
|
157
|
+
| **Configuration** | Fixed at agent initialization | Per-request, runtime |
|
|
158
158
|
| **Credentials** | Shared across all uses | Can vary per user/request |
|
|
159
159
|
| **Agent Setup** | Tools added in `Agent` constructor | Tools passed in `.generate()` or `.stream()` options |
|
|
160
160
|
|
|
@@ -257,7 +257,7 @@ const mcp = new MCPClient({
|
|
|
257
257
|
})
|
|
258
258
|
```
|
|
259
259
|
|
|
260
|
-
> **
|
|
260
|
+
> **Requirement:** Treat the mcp.run SSE URL like a password. Store it securely, for example, in an environment variable.
|
|
261
261
|
>
|
|
262
262
|
> ```bash
|
|
263
263
|
> MCP_RUN_SSE_URL=https://www.mcp.run/api/mcp/sse?nonce=...
|
|
@@ -410,7 +410,7 @@ As an alternative to MCP, Ampersand's AI SDK also has an adapter for Mastra, so
|
|
|
410
410
|
|
|
411
411
|
## MCP Apps
|
|
412
412
|
|
|
413
|
-
MCP servers can serve interactive HTML UIs via the MCP Apps extension. Tools with associated `ui://` resources render sandboxed iframes in Studio
|
|
413
|
+
MCP servers can serve interactive HTML UIs via the MCP Apps extension. Tools with associated `ui://` resources render sandboxed iframes in Studio, both on tool detail pages and inline in agent chat. The app iframe can call server tools and inject messages into the conversation. Visit [MCP Apps](https://mastra.ai/docs/mcp/mcp-apps) for setup instructions and the app bridge API.
|
|
414
414
|
|
|
415
415
|
## Related
|
|
416
416
|
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
# Memory processors
|
|
4
4
|
|
|
5
|
-
Memory processors transform and filter messages as they pass through an agent with memory enabled. They manage context window limits
|
|
5
|
+
Memory processors transform and filter messages as they pass through an agent with memory enabled. They manage context window limits and remove unnecessary content, plus optimize the information sent to the language model.
|
|
6
6
|
|
|
7
|
-
When memory is enabled on an agent, Mastra adds memory processors to the agent's processor pipeline. These processors retrieve message history
|
|
7
|
+
When memory is enabled on an agent, Mastra adds memory processors to the agent's processor pipeline. These processors retrieve message history and working memory, plus semantically relevant messages, then persist new messages after the model responds.
|
|
8
8
|
|
|
9
9
|
Memory processors are [processors](https://mastra.ai/docs/agents/processors) that operate specifically on memory-related messages and state.
|
|
10
10
|
|
|
@@ -47,7 +47,7 @@ const agent = new Agent({
|
|
|
47
47
|
id: 'test-agent',
|
|
48
48
|
name: 'Test Agent',
|
|
49
49
|
instructions: 'You are a helpful assistant',
|
|
50
|
-
model: 'openai/gpt-5.
|
|
50
|
+
model: 'openai/gpt-5.6-sol',
|
|
51
51
|
memory: new Memory({
|
|
52
52
|
storage: new LibSQLStore({
|
|
53
53
|
id: 'memory-store',
|
|
@@ -97,7 +97,7 @@ import { openai } from '@ai-sdk/openai'
|
|
|
97
97
|
const agent = new Agent({
|
|
98
98
|
name: 'semantic-agent',
|
|
99
99
|
instructions: 'You are a helpful assistant with semantic memory',
|
|
100
|
-
model: 'openai/gpt-5.
|
|
100
|
+
model: 'openai/gpt-5.6-sol',
|
|
101
101
|
memory: new Memory({
|
|
102
102
|
storage: new LibSQLStore({
|
|
103
103
|
id: 'memory-store',
|
|
@@ -150,7 +150,7 @@ import { openai } from '@ai-sdk/openai'
|
|
|
150
150
|
const agent = new Agent({
|
|
151
151
|
name: 'working-memory-agent',
|
|
152
152
|
instructions: 'You are an assistant with working memory',
|
|
153
|
-
model: 'openai/gpt-5.
|
|
153
|
+
model: 'openai/gpt-5.6-sol',
|
|
154
154
|
memory: new Memory({
|
|
155
155
|
storage: new LibSQLStore({
|
|
156
156
|
id: 'memory-store',
|
|
@@ -182,7 +182,7 @@ const customMessageHistory = new MessageHistory({
|
|
|
182
182
|
const agent = new Agent({
|
|
183
183
|
name: 'custom-memory-agent',
|
|
184
184
|
instructions: 'You are a helpful assistant',
|
|
185
|
-
model: 'openai/gpt-5.
|
|
185
|
+
model: 'openai/gpt-5.6-sol',
|
|
186
186
|
memory: new Memory({
|
|
187
187
|
storage: new LibSQLStore({ id: 'memory-store', url: 'file:memory.db' }),
|
|
188
188
|
lastMessages: 10, // This would normally add MessageHistory(10)
|
|
@@ -207,7 +207,7 @@ Understanding the execution order is important when combining guardrails with me
|
|
|
207
207
|
1. **Memory processors run FIRST**: `WorkingMemory`, `MessageHistory`, `SemanticRecall`
|
|
208
208
|
2. **Your input processors run AFTER**: guardrails, filters, validators
|
|
209
209
|
|
|
210
|
-
|
|
210
|
+
As a result, memory loads message history before your processors can validate or filter the input.
|
|
211
211
|
|
|
212
212
|
### Output Processors
|
|
213
213
|
|
|
@@ -253,7 +253,7 @@ const agent = new Agent({
|
|
|
253
253
|
id: 'safe-agent',
|
|
254
254
|
name: 'safe-agent',
|
|
255
255
|
instructions: 'You are a helpful assistant',
|
|
256
|
-
model: 'openai/gpt-5.
|
|
256
|
+
model: 'openai/gpt-5.6-sol',
|
|
257
257
|
memory: new Memory({ lastMessages: 10 }),
|
|
258
258
|
// Your guardrail runs BEFORE memory saves
|
|
259
259
|
outputProcessors: [contentBlocker],
|
|
@@ -293,7 +293,7 @@ const agent = new Agent({
|
|
|
293
293
|
id: 'validated-agent',
|
|
294
294
|
name: 'validated-agent',
|
|
295
295
|
instructions: 'You are a helpful assistant',
|
|
296
|
-
model: 'openai/gpt-5.
|
|
296
|
+
model: 'openai/gpt-5.6-sol',
|
|
297
297
|
memory: new Memory({ lastMessages: 10 }),
|
|
298
298
|
// Your guardrail runs AFTER memory loads history
|
|
299
299
|
inputProcessors: [inputValidator],
|
|
@@ -370,7 +370,7 @@ export const supportAgent = new Agent({
|
|
|
370
370
|
id: 'support-agent',
|
|
371
371
|
name: 'Support agent',
|
|
372
372
|
instructions: 'Answer customer support questions.',
|
|
373
|
-
model: 'openai/gpt-5.
|
|
373
|
+
model: 'openai/gpt-5.6-sol',
|
|
374
374
|
memory: new Memory({ lastMessages: 10 }),
|
|
375
375
|
inputProcessors: [new AttachmentUploader()],
|
|
376
376
|
})
|
|
@@ -134,7 +134,7 @@ export const supportAgent = new Agent({
|
|
|
134
134
|
id: 'support-agent',
|
|
135
135
|
name: 'Support agent',
|
|
136
136
|
instructions: 'Answer customer support questions.',
|
|
137
|
-
model: 'openai/gpt-5.
|
|
137
|
+
model: 'openai/gpt-5.6-sol',
|
|
138
138
|
memory: new Memory({
|
|
139
139
|
options: {
|
|
140
140
|
generateTitle: true,
|
|
@@ -155,7 +155,7 @@ export const supportAgent = new Agent({
|
|
|
155
155
|
id: 'support-agent',
|
|
156
156
|
name: 'Support agent',
|
|
157
157
|
instructions: 'Answer customer support questions.',
|
|
158
|
-
model: 'openai/gpt-5.
|
|
158
|
+
model: 'openai/gpt-5.6-sol',
|
|
159
159
|
memory: new Memory({
|
|
160
160
|
options: {
|
|
161
161
|
generateTitle: {
|
|
@@ -176,7 +176,7 @@ const agent = mastra.getAgentById('test-agent')
|
|
|
176
176
|
const memory = await agent.getMemory()
|
|
177
177
|
```
|
|
178
178
|
|
|
179
|
-
The `Memory` instance gives you access to functions for listing threads
|
|
179
|
+
The `Memory` instance gives you access to functions for listing threads and recalling messages, plus cloning conversations, and more.
|
|
180
180
|
|
|
181
181
|
## Querying
|
|
182
182
|
|
|
@@ -279,7 +279,13 @@ const { messages } = await memory.recall({
|
|
|
279
279
|
})
|
|
280
280
|
```
|
|
281
281
|
|
|
282
|
-
Metadata filters match shallow scalar values only: `string`, finite `number`, `boolean`, and `null`.
|
|
282
|
+
Metadata filters match shallow scalar values only: `string`, finite `number`, `boolean`, and `null`.
|
|
283
|
+
|
|
284
|
+
All specified metadata keys use AND semantics. A `null` filter matches only an explicit `null` value. A missing metadata key doesn't match.
|
|
285
|
+
|
|
286
|
+
Metadata keys must start with a letter or underscore and contain only alphanumeric characters. They must be 128 characters or fewer and can't use reserved prototype keys such as `__proto__`, `constructor`, or `prototype`.
|
|
287
|
+
|
|
288
|
+
Performance depends on the storage backend. Some backends can push parts of the filter into the database, while others scan candidate messages after thread, resource, and date constraints are applied but before pagination.
|
|
283
289
|
|
|
284
290
|
Fetch a single message by ID:
|
|
285
291
|
|
|
@@ -324,7 +330,7 @@ Message queries return `MastraDBMessage[]` format. To display messages in a fron
|
|
|
324
330
|
|
|
325
331
|
## Thread cloning
|
|
326
332
|
|
|
327
|
-
Thread cloning creates a copy of an existing thread with its messages. This is useful for branching conversations
|
|
333
|
+
Thread cloning creates a copy of an existing thread with its messages. This is useful for branching conversations or creating checkpoints before a potentially destructive operation, or alternatively testing variations of a conversation.
|
|
328
334
|
|
|
329
335
|
```typescript
|
|
330
336
|
const { thread, clonedMessages } = await memory.cloneThread({
|
|
@@ -14,13 +14,13 @@ Use multi-user threads when several people collaborate on the same subject throu
|
|
|
14
14
|
|
|
15
15
|
## Share one `resourceId` across all participants
|
|
16
16
|
|
|
17
|
-
A thread belongs to exactly one `resourceId`, so all participants on a shared thread need to pass the same value. Instead of using a user id (the default for single-user apps), key `resourceId` on the conversation itself
|
|
17
|
+
A thread belongs to exactly one `resourceId`, so all participants on a shared thread need to pass the same value. Instead of using a user id (the default for single-user apps), key `resourceId` on the conversation itself, for example `doc_${docId}` for a shared document, or `room_${roomId}` for a group chat. With everyone pointing at the same `resourceId`, they read and write the same history.
|
|
18
18
|
|
|
19
19
|
## Tag each user message with the speaker's identity
|
|
20
20
|
|
|
21
21
|
The model needs to know who's talking on every turn. Since the message body is the one place that survives into history and back into context, wrap each user message in a small `<turn>` tag with the speaker's id, name, and role. The tag stays attached to the message, so when prior turns are recalled the model still sees who said what.
|
|
22
22
|
|
|
23
|
-
Build the tag with a small helper. The example below is one way to do it
|
|
23
|
+
Build the tag with a small helper. The example below is one way to do it, copy it into your project and adapt it to your shape of user data:
|
|
24
24
|
|
|
25
25
|
```typescript
|
|
26
26
|
export type Speaker = {
|
|
@@ -113,11 +113,11 @@ The `<turn>` tag persists in the message body, so when history is recalled on la
|
|
|
113
113
|
|
|
114
114
|
The user-tagging pattern composes with every memory layer. Pick the layer based on how long the conversation needs to remember per-user facts:
|
|
115
115
|
|
|
116
|
-
- **Short conversations** (a single session, or a thread small enough to fit in `lastMessages`), or when you need a verbatim record of who said what: use [message history alone](#message-history-alone). The user tags in history are enough
|
|
116
|
+
- **Short conversations** (a single session, or a thread small enough to fit in `lastMessages`), or when you need a verbatim record of who said what: use [message history alone](#message-history-alone). The user tags in history are enough. No extra memory layer needed.
|
|
117
117
|
- **Long-running threads** (conversations that outgrow `lastMessages`, where you need per-user facts to survive history eviction): use [observational memory](#with-observational-memory-recommended).
|
|
118
118
|
- **Need a structured participants list, or your storage adapter doesn't support OM** (OM requires LibSQL, PG, or MongoDB): use [working memory](#with-working-memory).
|
|
119
119
|
|
|
120
|
-
We recommend using observational memory or working memory
|
|
120
|
+
We recommend using either observational memory or working memory because they cover overlapping needs. Running both adds latency and token cost without much benefit.
|
|
121
121
|
|
|
122
122
|
### Message history alone
|
|
123
123
|
|
|
@@ -139,7 +139,7 @@ The model reads identity from the `<turn>` tag on the current message and from p
|
|
|
139
139
|
|
|
140
140
|
### With Observational Memory (recommended)
|
|
141
141
|
|
|
142
|
-
[Observational Memory](https://mastra.ai/docs/memory/observational-memory) (OM) extracts per-user facts into a background log without burning the agent's tool budget. The default Observer model reads `<turn>` tags natively and produces
|
|
142
|
+
[Observational Memory](https://mastra.ai/docs/memory/observational-memory) (OM) extracts per-user facts into a background log without burning the agent's tool budget. The default Observer model reads `<turn>` tags natively and produces attribution like `Alice stated her favorite color is teal.` and `Bob asked for QA sign-off before publish.`
|
|
143
143
|
|
|
144
144
|
Prefer OM over working memory for multi-user threads when your storage supports it. OM extracts facts automatically, scales to any number of participants, and doesn't need template upkeep. Enable it with no overrides:
|
|
145
145
|
|
|
@@ -162,7 +162,7 @@ OM requires a storage adapter that supports it: `@mastra/libsql`, `@mastra/pg`,
|
|
|
162
162
|
|
|
163
163
|
### With working memory
|
|
164
164
|
|
|
165
|
-
Use working memory when OM isn't an option
|
|
165
|
+
Use working memory when OM isn't an option, for example, when your storage adapter doesn't support OM, or when you need a structured, deterministic participants list the agent can read and write on every turn.
|
|
166
166
|
|
|
167
167
|
The default [working memory](https://mastra.ai/docs/memory/working-memory) template assumes one user per thread ("First Name", "Last Name", etc.). For multi-user threads, provide a template with a participants list:
|
|
168
168
|
|