@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
|
@@ -18,7 +18,7 @@ const voiceAgent = new Agent({
|
|
|
18
18
|
id: 'voice-agent',
|
|
19
19
|
name: 'Voice Agent',
|
|
20
20
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
21
|
-
model: 'openai/gpt-5.
|
|
21
|
+
model: 'openai/gpt-5.6-sol',
|
|
22
22
|
voice: new OpenAIVoice(),
|
|
23
23
|
})
|
|
24
24
|
```
|
|
@@ -42,7 +42,7 @@ const voiceAgent = new Agent({
|
|
|
42
42
|
id: 'voice-agent',
|
|
43
43
|
name: 'Voice Agent',
|
|
44
44
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
45
|
-
model: 'openai/gpt-5.
|
|
45
|
+
model: 'openai/gpt-5.6-sol',
|
|
46
46
|
voice: new OpenAIVoice(),
|
|
47
47
|
})
|
|
48
48
|
|
|
@@ -70,7 +70,7 @@ const voiceAgent = new Agent({
|
|
|
70
70
|
id: 'voice-agent',
|
|
71
71
|
name: 'Voice Agent',
|
|
72
72
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
73
|
-
model: 'openai/gpt-5.
|
|
73
|
+
model: 'openai/gpt-5.6-sol',
|
|
74
74
|
voice: new AzureVoice(),
|
|
75
75
|
})
|
|
76
76
|
|
|
@@ -97,7 +97,7 @@ const voiceAgent = new Agent({
|
|
|
97
97
|
id: 'voice-agent',
|
|
98
98
|
name: 'Voice Agent',
|
|
99
99
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
100
|
-
model: 'openai/gpt-5.
|
|
100
|
+
model: 'openai/gpt-5.6-sol',
|
|
101
101
|
voice: new ElevenLabsVoice(),
|
|
102
102
|
})
|
|
103
103
|
|
|
@@ -124,7 +124,7 @@ const voiceAgent = new Agent({
|
|
|
124
124
|
id: 'voice-agent',
|
|
125
125
|
name: 'Voice Agent',
|
|
126
126
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
127
|
-
model: 'openai/gpt-5.
|
|
127
|
+
model: 'openai/gpt-5.6-sol',
|
|
128
128
|
voice: new PlayAIVoice(),
|
|
129
129
|
})
|
|
130
130
|
|
|
@@ -151,7 +151,7 @@ const voiceAgent = new Agent({
|
|
|
151
151
|
id: 'voice-agent',
|
|
152
152
|
name: 'Voice Agent',
|
|
153
153
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
154
|
-
model: 'openai/gpt-5.
|
|
154
|
+
model: 'openai/gpt-5.6-sol',
|
|
155
155
|
voice: new GoogleVoice(),
|
|
156
156
|
})
|
|
157
157
|
|
|
@@ -178,7 +178,7 @@ const voiceAgent = new Agent({
|
|
|
178
178
|
id: 'voice-agent',
|
|
179
179
|
name: 'Voice Agent',
|
|
180
180
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
181
|
-
model: 'openai/gpt-5.
|
|
181
|
+
model: 'openai/gpt-5.6-sol',
|
|
182
182
|
voice: new CloudflareVoice(),
|
|
183
183
|
})
|
|
184
184
|
|
|
@@ -205,7 +205,7 @@ const voiceAgent = new Agent({
|
|
|
205
205
|
id: 'voice-agent',
|
|
206
206
|
name: 'Voice Agent',
|
|
207
207
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
208
|
-
model: 'openai/gpt-5.
|
|
208
|
+
model: 'openai/gpt-5.6-sol',
|
|
209
209
|
voice: new DeepgramVoice(),
|
|
210
210
|
})
|
|
211
211
|
|
|
@@ -232,7 +232,7 @@ const voiceAgent = new Agent({
|
|
|
232
232
|
id: 'voice-agent',
|
|
233
233
|
name: 'Voice Agent',
|
|
234
234
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
235
|
-
model: 'openai/gpt-5.
|
|
235
|
+
model: 'openai/gpt-5.6-sol',
|
|
236
236
|
voice: new InworldVoice(),
|
|
237
237
|
})
|
|
238
238
|
|
|
@@ -259,7 +259,7 @@ const voiceAgent = new Agent({
|
|
|
259
259
|
id: 'voice-agent',
|
|
260
260
|
name: 'Voice Agent',
|
|
261
261
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
262
|
-
model: 'openai/gpt-5.
|
|
262
|
+
model: 'openai/gpt-5.6-sol',
|
|
263
263
|
voice: new SpeechifyVoice(),
|
|
264
264
|
})
|
|
265
265
|
|
|
@@ -286,7 +286,7 @@ const voiceAgent = new Agent({
|
|
|
286
286
|
id: 'voice-agent',
|
|
287
287
|
name: 'Voice Agent',
|
|
288
288
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
289
|
-
model: 'openai/gpt-5.
|
|
289
|
+
model: 'openai/gpt-5.6-sol',
|
|
290
290
|
voice: new SarvamVoice(),
|
|
291
291
|
})
|
|
292
292
|
|
|
@@ -313,7 +313,7 @@ const voiceAgent = new Agent({
|
|
|
313
313
|
id: 'voice-agent',
|
|
314
314
|
name: 'Voice Agent',
|
|
315
315
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
316
|
-
model: 'openai/gpt-5.
|
|
316
|
+
model: 'openai/gpt-5.6-sol',
|
|
317
317
|
voice: new MurfVoice(),
|
|
318
318
|
})
|
|
319
319
|
|
|
@@ -331,7 +331,7 @@ Visit the [Murf Voice Reference](https://mastra.ai/reference/voice/murf) for mor
|
|
|
331
331
|
|
|
332
332
|
### Speech to Text (STT)
|
|
333
333
|
|
|
334
|
-
Transcribe spoken content using
|
|
334
|
+
Transcribe spoken content using providers like OpenAI, ElevenLabs, and more. For detailed configuration options and more, check out [Speech to Text](https://mastra.ai/docs/voice/speech-to-text).
|
|
335
335
|
|
|
336
336
|
You can download a sample audio file from [here](https://github.com/mastra-ai/realtime-voice-demo/raw/refs/heads/main/how_can_i_help_you.mp3).
|
|
337
337
|
|
|
@@ -348,7 +348,7 @@ const voiceAgent = new Agent({
|
|
|
348
348
|
id: 'voice-agent',
|
|
349
349
|
name: 'Voice Agent',
|
|
350
350
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
351
|
-
model: 'openai/gpt-5.
|
|
351
|
+
model: 'openai/gpt-5.6-sol',
|
|
352
352
|
voice: new OpenAIVoice(),
|
|
353
353
|
})
|
|
354
354
|
|
|
@@ -377,7 +377,7 @@ const voiceAgent = new Agent({
|
|
|
377
377
|
id: 'voice-agent',
|
|
378
378
|
name: 'Voice Agent',
|
|
379
379
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
380
|
-
model: 'openai/gpt-5.
|
|
380
|
+
model: 'openai/gpt-5.6-sol',
|
|
381
381
|
voice: new AzureVoice(),
|
|
382
382
|
})
|
|
383
383
|
|
|
@@ -405,7 +405,7 @@ const voiceAgent = new Agent({
|
|
|
405
405
|
id: 'voice-agent',
|
|
406
406
|
name: 'Voice Agent',
|
|
407
407
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
408
|
-
model: 'openai/gpt-5.
|
|
408
|
+
model: 'openai/gpt-5.6-sol',
|
|
409
409
|
voice: new ElevenLabsVoice(),
|
|
410
410
|
})
|
|
411
411
|
|
|
@@ -433,7 +433,7 @@ const voiceAgent = new Agent({
|
|
|
433
433
|
id: 'voice-agent',
|
|
434
434
|
name: 'Voice Agent',
|
|
435
435
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
436
|
-
model: 'openai/gpt-5.
|
|
436
|
+
model: 'openai/gpt-5.6-sol',
|
|
437
437
|
voice: new GoogleVoice(),
|
|
438
438
|
})
|
|
439
439
|
|
|
@@ -461,7 +461,7 @@ const voiceAgent = new Agent({
|
|
|
461
461
|
id: 'voice-agent',
|
|
462
462
|
name: 'Voice Agent',
|
|
463
463
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
464
|
-
model: 'openai/gpt-5.
|
|
464
|
+
model: 'openai/gpt-5.6-sol',
|
|
465
465
|
voice: new CloudflareVoice(),
|
|
466
466
|
})
|
|
467
467
|
|
|
@@ -489,7 +489,7 @@ const voiceAgent = new Agent({
|
|
|
489
489
|
id: 'voice-agent',
|
|
490
490
|
name: 'Voice Agent',
|
|
491
491
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
492
|
-
model: 'openai/gpt-5.
|
|
492
|
+
model: 'openai/gpt-5.6-sol',
|
|
493
493
|
voice: new DeepgramVoice(),
|
|
494
494
|
})
|
|
495
495
|
|
|
@@ -517,7 +517,7 @@ const voiceAgent = new Agent({
|
|
|
517
517
|
id: 'voice-agent',
|
|
518
518
|
name: 'Voice Agent',
|
|
519
519
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
520
|
-
model: 'openai/gpt-5.
|
|
520
|
+
model: 'openai/gpt-5.6-sol',
|
|
521
521
|
voice: new InworldVoice(),
|
|
522
522
|
})
|
|
523
523
|
|
|
@@ -545,7 +545,7 @@ const voiceAgent = new Agent({
|
|
|
545
545
|
id: 'voice-agent',
|
|
546
546
|
name: 'Voice Agent',
|
|
547
547
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
548
|
-
model: 'openai/gpt-5.
|
|
548
|
+
model: 'openai/gpt-5.6-sol',
|
|
549
549
|
voice: new SarvamVoice(),
|
|
550
550
|
})
|
|
551
551
|
|
|
@@ -577,7 +577,7 @@ const voiceAgent = new Agent({
|
|
|
577
577
|
id: 'voice-agent',
|
|
578
578
|
name: 'Voice Agent',
|
|
579
579
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
580
|
-
model: 'openai/gpt-5.
|
|
580
|
+
model: 'openai/gpt-5.6-sol',
|
|
581
581
|
voice: new OpenAIRealtimeVoice(),
|
|
582
582
|
})
|
|
583
583
|
|
|
@@ -607,7 +607,7 @@ const voiceAgent = new Agent({
|
|
|
607
607
|
id: 'voice-agent',
|
|
608
608
|
name: 'Voice Agent',
|
|
609
609
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
610
|
-
model: 'openai/gpt-5.
|
|
610
|
+
model: 'openai/gpt-5.6-sol',
|
|
611
611
|
voice: new GeminiLiveVoice({
|
|
612
612
|
// Live API mode
|
|
613
613
|
apiKey: process.env.GOOGLE_API_KEY,
|
|
@@ -656,7 +656,7 @@ const voiceAgent = new Agent({
|
|
|
656
656
|
id: 'voice-agent',
|
|
657
657
|
name: 'Voice Agent',
|
|
658
658
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
659
|
-
model: 'openai/gpt-5.
|
|
659
|
+
model: 'openai/gpt-5.6-sol',
|
|
660
660
|
voice: new NovaSonicVoice({
|
|
661
661
|
region: 'us-east-1',
|
|
662
662
|
speaker: 'matthew',
|
|
@@ -699,7 +699,7 @@ const voiceAgent = new Agent({
|
|
|
699
699
|
id: 'voice-agent',
|
|
700
700
|
name: 'Voice Agent',
|
|
701
701
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
702
|
-
model: 'openai/gpt-5.
|
|
702
|
+
model: 'openai/gpt-5.6-sol',
|
|
703
703
|
voice: new InworldRealtimeVoice({
|
|
704
704
|
apiKey: process.env.INWORLD_API_KEY,
|
|
705
705
|
model: 'inworld/models/gemma-4-26b-a4b-it',
|
|
@@ -1138,7 +1138,7 @@ const voiceAgent = new Agent({
|
|
|
1138
1138
|
id: 'aisdk-voice-agent',
|
|
1139
1139
|
name: 'AI SDK Voice Agent',
|
|
1140
1140
|
instructions: 'You are a helpful assistant with voice capabilities.',
|
|
1141
|
-
model: 'openai/gpt-5.
|
|
1141
|
+
model: 'openai/gpt-5.6-sol',
|
|
1142
1142
|
voice,
|
|
1143
1143
|
})
|
|
1144
1144
|
```
|
|
@@ -166,7 +166,7 @@ See the [LiveKit turn detection docs](https://docs.livekit.io/agents/logic/turns
|
|
|
166
166
|
|
|
167
167
|
## Per-call voices and transcription
|
|
168
168
|
|
|
169
|
-
The top-level `stt` and `tts` options apply to every call. To pick them per call
|
|
169
|
+
The top-level `stt` and `tts` options apply to every call. To pick them per call, one voice or language per tenant, set the `configuration.stt` and `configuration.tts` resolvers instead. Each resolver runs once per call with the dispatch metadata, request context, room name, and job context, and returns a value accepted by the matching top-level option. The value is either a plugin instance or an inference model string. Return `undefined` to fall back to the top-level option.
|
|
170
170
|
|
|
171
171
|
The following example gives each tenant its own text-to-speech voice, keyed off the `tenant` entry in the dispatch metadata:
|
|
172
172
|
|
|
@@ -213,7 +213,7 @@ When the resolved Mastra agent has memory configured, each call becomes one memo
|
|
|
213
213
|
|
|
214
214
|
Each turn sends only the new user input; Mastra Memory supplies history, semantic recall, and working memory. Pin a session to an existing thread by passing `threadId` in the connection request body, which is useful for continuing a text conversation by voice. In Studio, starting a call from an open chat binds the call to that thread, and the transcript fills into the chat after each exchange.
|
|
215
215
|
|
|
216
|
-
When a user interrupts the agent, the in-flight generation aborts and nothing from that turn is persisted at that moment. LiveKit keeps the part the user actually heard in its transcript, and on the next turn the worker re-sends that heard-only fragment so the thread backfills to match the call. A user who hangs up right after interrupting leaves that final fragment unrecorded
|
|
216
|
+
When a user interrupts the agent, the in-flight generation aborts and nothing from that turn is persisted at that moment. LiveKit keeps the part the user actually heard in its transcript, and on the next turn the worker re-sends that heard-only fragment so the thread backfills to match the call. A user who hangs up right after interrupting leaves that final fragment unrecorded. See [interrupted turns](https://mastra.ai/reference/voice/livekit) for the details and a reconciliation recipe.
|
|
217
217
|
|
|
218
218
|
## Speak while tools run
|
|
219
219
|
|
|
@@ -276,7 +276,7 @@ With a workflow, the worker doesn't persist turns automatically the way an agent
|
|
|
276
276
|
|
|
277
277
|
## Use Mastra as the LLM component
|
|
278
278
|
|
|
279
|
-
`createLiveKitWorker()` owns the LiveKit session for you. To own the session yourself, use [`MastraLLM`](https://mastra.ai/reference/voice/livekit) instead: a standard LiveKit LLM plugin that puts a Mastra agent in the `llm` slot of your own `voice.AgentSession`. The Mastra app
|
|
279
|
+
`createLiveKitWorker()` owns the LiveKit session for you. To own the session yourself, use [`MastraLLM`](https://mastra.ai/reference/voice/livekit) instead: a standard LiveKit LLM plugin that puts a Mastra agent in the `llm` slot of your own `voice.AgentSession`. The Mastra app, agent loop, tools, memory, observability, runs on your Mastra server, and the worker reaches it over HTTP. The worker process needs no Mastra app, database, or model provider keys.
|
|
280
280
|
|
|
281
281
|
```typescript
|
|
282
282
|
import { fileURLToPath } from 'node:url'
|
|
@@ -326,11 +326,11 @@ Both paths share the same reply pipeline underneath; choose by who should own th
|
|
|
326
326
|
| Built-in conveniences | Greeting, consent gating, agent-initiated hang-up, thread bootstrap, observability roll-up | Rebuild what you need with the [session helpers](https://mastra.ai/reference/voice/livekit) |
|
|
327
327
|
| Best for | Fastest path to a working voice agent; Studio voice mode | Existing LiveKit apps and full control over the session |
|
|
328
328
|
|
|
329
|
-
Tools stay on the Mastra agent and execute on the server
|
|
329
|
+
Tools stay on the Mastra agent and execute on the server. LiveKit-side tools passed to the session are ignored. Tool activity reaches the worker through `toolFeedback` (spoken filler), `onToolCall` (fires as each tool call starts), and `onTurnComplete` (fires after each reply with the text, tool calls, and token usage). Agent-initiated hang-up takes a few lines: pair `onToolCall` with [`runEndCall()`](https://mastra.ai/reference/voice/livekit).
|
|
330
330
|
|
|
331
|
-
> **Warning:** Don't combine the `memory` option with LiveKit's `preemptiveGeneration`, which LiveKit enables by default in sessions you build yourself. A speculative turn that completes before LiveKit discards it persists a user message and a never-spoken reply to the thread. Set `turnHandling: { preemptiveGeneration: { enabled: false } }
|
|
331
|
+
> **Warning:** Don't combine the `memory` option with LiveKit's `preemptiveGeneration`, which LiveKit enables by default in sessions you build yourself. A speculative turn that completes before LiveKit discards it persists a user message and a never-spoken reply to the thread. Set `turnHandling: { preemptiveGeneration: { enabled: false } }`, or run without `memory` and pass the full transcript each turn.
|
|
332
332
|
|
|
333
|
-
`MastraLLM` also accepts an in-process Mastra `agent` instance
|
|
333
|
+
`MastraLLM` also accepts an in-process Mastra `agent` instance, session ownership without a second deployment, or a custom `generate` function. The remote transport is available standalone as [`createRemoteAgentReplyGenerator()`](https://mastra.ai/reference/voice/livekit), which also plugs into `createLiveKitWorker`'s `generate` option to run the batteries-included worker against a remote server.
|
|
334
334
|
|
|
335
335
|
## Server-initiated sessions
|
|
336
336
|
|
|
@@ -354,7 +354,7 @@ When the Mastra instance has [observability](https://mastra.ai/docs/observabilit
|
|
|
354
354
|
- A child span for each LiveKit pipeline metric: speech-to-text, text-to-speech, end-of-utterance (turn detection), voice activity detection, and the model's time-to-first-token. These carry the latency and audio measurements that text traces can't show.
|
|
355
355
|
- A per-model usage roll-up (token, character, and audio totals for the whole call) written to the span when the session ends.
|
|
356
356
|
|
|
357
|
-
The worker is a separate process, so point storage at a backend that accepts concurrent writes from both the server and the worker. SQLite-backed [LibSQL](https://mastra.ai/reference/storage/libsql) works
|
|
357
|
+
The worker is a separate process, so point storage at a backend that accepts concurrent writes from both the server and the worker. SQLite-backed [LibSQL](https://mastra.ai/reference/storage/libsql) works. Single-writer stores don't. Traces, memory, and threads can share one store:
|
|
358
358
|
|
|
359
359
|
```typescript
|
|
360
360
|
import { Mastra } from '@mastra/core/mastra'
|
|
@@ -384,7 +384,7 @@ The worker is a separate process from your Mastra server. Deploy it as a long-ru
|
|
|
384
384
|
node dist/voice-worker.js start
|
|
385
385
|
```
|
|
386
386
|
|
|
387
|
-
LiveKit's guidance on sizing, graceful shutdown, and hosting applies unchanged
|
|
387
|
+
LiveKit's guidance on sizing, graceful shutdown, and hosting applies unchanged. See [Deploying agents](https://docs.livekit.io/agents/ops/deployment/). Workers connect outbound to LiveKit, so they don't need inbound ports.
|
|
388
388
|
|
|
389
389
|
## How it works
|
|
390
390
|
|
|
@@ -10,7 +10,7 @@ Speech-to-Speech (STS) in Mastra provides a standardized interface for real-time
|
|
|
10
10
|
|
|
11
11
|
- **`apiKey`**: Your OpenAI API key. Falls back to the `OPENAI_API_KEY` environment variable.
|
|
12
12
|
- **`model`**: The model ID to use for real-time voice interactions (e.g., `gpt-5.1-realtime`).
|
|
13
|
-
- **`speaker`**: The default voice ID for speech synthesis.
|
|
13
|
+
- **`speaker`**: The default voice ID for speech synthesis. You can specify which voice to use for the speech output.
|
|
14
14
|
|
|
15
15
|
```typescript
|
|
16
16
|
const voice = new OpenAIRealtimeVoice({
|
|
@@ -34,7 +34,7 @@ const agent = new Agent({
|
|
|
34
34
|
id: 'agent',
|
|
35
35
|
name: 'OpenAI Realtime Agent',
|
|
36
36
|
instructions: `You are a helpful assistant with real-time voice capabilities.`,
|
|
37
|
-
model: 'openai/gpt-5.
|
|
37
|
+
model: 'openai/gpt-5.6-sol',
|
|
38
38
|
voice: new OpenAIRealtimeVoice(),
|
|
39
39
|
})
|
|
40
40
|
|
|
@@ -69,7 +69,7 @@ export const agent = new Agent({
|
|
|
69
69
|
id: 'speech-to-speech-agent',
|
|
70
70
|
name: 'Speech-to-Speech Agent',
|
|
71
71
|
instructions: 'You are a helpful assistant with speech-to-speech capabilities.',
|
|
72
|
-
model: 'openai/gpt-5.
|
|
72
|
+
model: 'openai/gpt-5.6-sol',
|
|
73
73
|
tools: {
|
|
74
74
|
search,
|
|
75
75
|
calculate,
|
|
@@ -113,7 +113,7 @@ export const agent = new Agent({
|
|
|
113
113
|
id: 'support-line',
|
|
114
114
|
name: 'Support Line',
|
|
115
115
|
instructions: ({ requestContext }) => `Help user ${requestContext.get('user')}.`,
|
|
116
|
-
model: 'openai/gpt-5.
|
|
116
|
+
model: 'openai/gpt-5.6-sol',
|
|
117
117
|
voice: ({ requestContext }) =>
|
|
118
118
|
new OpenAIRealtimeVoice({
|
|
119
119
|
apiKey: requestContext.get('apiKey'),
|
|
@@ -148,7 +148,7 @@ const agent = new Agent({
|
|
|
148
148
|
name: 'Gemini Live Agent',
|
|
149
149
|
instructions: 'You are a helpful assistant with real-time voice capabilities.',
|
|
150
150
|
// Model used for text generation; voice provider handles realtime audio
|
|
151
|
-
model: 'openai/gpt-5.
|
|
151
|
+
model: 'openai/gpt-5.6-sol',
|
|
152
152
|
voice: new GeminiLiveVoice({
|
|
153
153
|
apiKey: process.env.GOOGLE_API_KEY,
|
|
154
154
|
model: 'gemini-2.0-flash-exp',
|
|
@@ -195,7 +195,7 @@ const agent = new Agent({
|
|
|
195
195
|
name: 'Nova Sonic Agent',
|
|
196
196
|
instructions: 'You are a helpful assistant with real-time voice capabilities.',
|
|
197
197
|
// Model used for text generation; voice provider handles realtime audio
|
|
198
|
-
model: 'openai/gpt-5.
|
|
198
|
+
model: 'openai/gpt-5.6-sol',
|
|
199
199
|
voice: new NovaSonicVoice({
|
|
200
200
|
region: 'us-east-1',
|
|
201
201
|
speaker: 'matthew',
|
|
@@ -239,7 +239,7 @@ const agent = new Agent({
|
|
|
239
239
|
name: 'Inworld Realtime Agent',
|
|
240
240
|
instructions: 'You are a helpful assistant with real-time voice capabilities.',
|
|
241
241
|
// Model used for text generation; voice provider handles realtime audio
|
|
242
|
-
model: 'openai/gpt-5.
|
|
242
|
+
model: 'openai/gpt-5.6-sol',
|
|
243
243
|
voice: new InworldRealtimeVoice({
|
|
244
244
|
apiKey: process.env.INWORLD_API_KEY,
|
|
245
245
|
model: 'inworld/models/gemma-4-26b-a4b-it',
|
|
@@ -272,8 +272,8 @@ await agent.voice.send(micStream)
|
|
|
272
272
|
|
|
273
273
|
Note:
|
|
274
274
|
|
|
275
|
-
- Requires `INWORLD_API_KEY`. Inworld API keys
|
|
275
|
+
- Requires `INWORLD_API_KEY`. Inworld API keys are pre-Basic-encoded: paste them verbatim.
|
|
276
276
|
- The WebSocket URL appends a client-generated `?key=...&protocol=realtime`. The model is configured via the initial `session.update`, not in the URL.
|
|
277
277
|
- Inworld's wire protocol is the OpenAI Realtime GA spec, so event names match `@mastra/voice-openai-realtime`.
|
|
278
|
-
- Typed Inworld realtime knobs (MCP tool routing, semantic VAD eagerness, playback speed, transcription model, output modalities, …) are exposed through the `session` constructor field
|
|
278
|
+
- Typed Inworld realtime knobs (MCP tool routing, semantic VAD eagerness, playback speed, transcription model, output modalities, …) are exposed through the `session` constructor field. An untyped `providerData` escape hatch is also deep-merged for forward compatibility with new Inworld features.
|
|
279
279
|
- Events: `speaker` (PCM audio stream), `speaking` (audio Buffer per delta), `writing` (text), `conversation.item.added`, `conversation.item.done`, `function_call.arguments`, `tool-call-start`, `tool-call-result`, and `error`.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Speech-to-Text (STT)
|
|
4
4
|
|
|
5
|
-
Speech-to-Text (STT) in Mastra provides a standardized interface for converting audio input into text across multiple service providers. STT
|
|
5
|
+
Speech-to-Text (STT) in Mastra provides a standardized interface for converting audio input into text across multiple service providers. STT lets voice-enabled applications respond to human speech. It supports hands-free interaction and improves accessibility for users with disabilities. It also provides a more natural interface.
|
|
6
6
|
|
|
7
7
|
## Configuration
|
|
8
8
|
|
|
@@ -12,7 +12,7 @@ To use STT in Mastra, you need to provide a `listeningModel` when initializing t
|
|
|
12
12
|
- **`apiKey`**: Your API key for authentication.
|
|
13
13
|
- **Provider-specific options**: Additional options that may be required or supported by the specific voice provider.
|
|
14
14
|
|
|
15
|
-
**
|
|
15
|
+
**Behavior**: All of these parameters are optional. You can use the default settings provided by the voice provider, which will depend on the specific provider you are using.
|
|
16
16
|
|
|
17
17
|
```typescript
|
|
18
18
|
const voice = new OpenAIVoice({
|
|
@@ -59,7 +59,7 @@ const agent = new Agent({
|
|
|
59
59
|
id: 'voice-agent',
|
|
60
60
|
name: 'Voice Agent',
|
|
61
61
|
instructions: 'You are a voice assistant that provides recommendations based on user input.',
|
|
62
|
-
model: 'openai/gpt-5.
|
|
62
|
+
model: 'openai/gpt-5.6-sol',
|
|
63
63
|
voice,
|
|
64
64
|
})
|
|
65
65
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Text-to-Speech (TTS)
|
|
4
4
|
|
|
5
|
-
Text-to-Speech (TTS) in Mastra offers a unified API for synthesizing spoken audio from text using
|
|
5
|
+
Text-to-Speech (TTS) in Mastra offers a unified API for synthesizing spoken audio from text using providers. By incorporating TTS into your applications, you can enhance user experience with natural voice interactions and improve accessibility for users with visual impairments, plus create more engaging multimodal interfaces.
|
|
6
6
|
|
|
7
7
|
TTS is a core component of any voice application. Combined with STT (Speech-to-Text), it forms the foundation of voice interaction systems. Newer models support STS ([Speech-to-Speech](https://mastra.ai/docs/voice/speech-to-speech)) which can be used for real-time interactions but come at high cost ($).
|
|
8
8
|
|
|
@@ -14,9 +14,9 @@ To use TTS in Mastra, you need to provide a `speechModel` when initializing the
|
|
|
14
14
|
- **`apiKey`**: Your API key for authentication.
|
|
15
15
|
- **Provider-specific options**: Additional options that may be required or supported by the specific voice provider.
|
|
16
16
|
|
|
17
|
-
The **`speaker`** option allows you to select different voices for speech synthesis. Each provider offers
|
|
17
|
+
The **`speaker`** option allows you to select different voices for speech synthesis. Each provider offers voice options with distinct characteristics for **Voice diversity**, **Quality**, **Voice personality**, and **Multilingual support**
|
|
18
18
|
|
|
19
|
-
**
|
|
19
|
+
**Behavior**: All of these parameters are optional. You can use the default settings provided by the voice provider, which will depend on the specific provider you are using.
|
|
20
20
|
|
|
21
21
|
```typescript
|
|
22
22
|
const voice = new OpenAIVoice({
|
|
@@ -33,10 +33,10 @@ const voice = new OpenAIVoice()
|
|
|
33
33
|
|
|
34
34
|
## Available providers
|
|
35
35
|
|
|
36
|
-
Mastra supports
|
|
36
|
+
Mastra supports Text-to-Speech providers, each with their own unique capabilities and voice options. You can choose the provider that best suits your application's needs:
|
|
37
37
|
|
|
38
38
|
- [**OpenAI**](https://mastra.ai/reference/voice/openai): High-quality voices with natural intonation and expression
|
|
39
|
-
- [**Azure**](https://mastra.ai/reference/voice/azure): Microsoft's speech service with
|
|
39
|
+
- [**Azure**](https://mastra.ai/reference/voice/azure): Microsoft's speech service with voices and languages
|
|
40
40
|
- [**ElevenLabs**](https://mastra.ai/reference/voice/elevenlabs): Ultra-realistic voices with emotion and fine-grained control
|
|
41
41
|
- [**PlayAI**](https://mastra.ai/reference/voice/playai): Specialized in natural-sounding voices with various styles
|
|
42
42
|
- [**Google**](https://mastra.ai/reference/voice/google): Google's speech synthesis with multilingual support
|
|
@@ -66,7 +66,7 @@ const agent = new Agent({
|
|
|
66
66
|
id: 'voice-agent',
|
|
67
67
|
name: 'Voice Agent',
|
|
68
68
|
instructions: 'You are a voice assistant that can help users with their tasks.',
|
|
69
|
-
model: 'openai/gpt-5.
|
|
69
|
+
model: 'openai/gpt-5.6-sol',
|
|
70
70
|
voice,
|
|
71
71
|
})
|
|
72
72
|
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
> Discover all available pages from the documentation index: https://mastra.ai/llms.txt
|
|
2
|
+
|
|
3
|
+
# What is Mastra?
|
|
4
|
+
|
|
5
|
+
Mastra is an open-source TypeScript framework for building AI applications and autonomous AI systems. Use it for anything from an AI feature inside an existing product to long-running agents that run entire processes on their own, such as a software factory that plans, builds, reviews, and ships code.
|
|
6
|
+
|
|
7
|
+
Mastra gives you everything you need to build an agent harness out of the box. It's built on established patterns, so you make fewer integration decisions and spend more time on your product. And, as you'd expect from an AI framework, it includes a [skill and CLI](https://mastra.ai/docs/getting-started/build-with-ai) that help your coding agent write accurate, up-to-date Mastra code.
|
|
8
|
+
|
|
9
|
+
Run Mastra standalone or inside your existing web server, and call your agents from your own code, over HTTP using the [Mastra client](https://mastra.ai/docs/server/mastra-client), or from channels (for example, Slack).
|
|
10
|
+
|
|
11
|
+
> **📹 Video:** [A quick tour of the Mastra platform](https://www.youtube.com/watch?v=NosES9aJxCc) shows how the pieces fit together.
|
|
12
|
+
|
|
13
|
+
## Framework
|
|
14
|
+
|
|
15
|
+
Mastra is batteries-included, but not all-or-nothing. A single agent can start small:
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
import { Agent } from '@mastra/core/agent'
|
|
19
|
+
import { searchDocs } from '../tools/search-docs'
|
|
20
|
+
|
|
21
|
+
export const supportAgent = new Agent({
|
|
22
|
+
id: 'support-agent',
|
|
23
|
+
name: 'Support Agent',
|
|
24
|
+
instructions: 'Answer customer support questions clearly.',
|
|
25
|
+
model: 'openai/gpt-5.6-sol',
|
|
26
|
+
tools: { searchDocs },
|
|
27
|
+
})
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Then add the capabilities your agent needs:
|
|
31
|
+
|
|
32
|
+
- **Act in real environments**: Use [workspaces](https://mastra.ai/docs/workspace/overview) so agents can read and write files, run commands, and work inside a sandbox.
|
|
33
|
+
- **Bring the right context**: Use tools, [memory](https://mastra.ai/docs/memory/observational-memory), [skills](https://mastra.ai/docs/agents/skills), and domain knowledge so agents remember what matters and stay within the context window.
|
|
34
|
+
- **Coordinate complex work**: Run typed [workflows](https://mastra.ai/docs/workflows/overview), [tasks](https://mastra.ai/docs/agents/using-tools), and [subagents](https://mastra.ai/docs/agents/supervisor-agents) when work needs multiple steps or parallel execution.
|
|
35
|
+
- **Control the agent loop**: [Suspend](https://mastra.ai/docs/agents/agent-approval) for human approval, steer an in-flight loop with [signals](https://mastra.ai/docs/long-running-agents/signals), or queue input for the next turn.
|
|
36
|
+
- **Meet users where they work**: Connect agents to Slack, Discord, GitHub, and other [channels](https://mastra.ai/docs/capabilities/channels/overview).
|
|
37
|
+
- **Manage risk and cost**: Configure authentication, multi-tenant isolation, and [guardrails](https://mastra.ai/docs/agents/guardrails), including [`CostGuardProcessor`](https://mastra.ai/reference/processors/cost-guard-processor).
|
|
38
|
+
|
|
39
|
+
See the left-hand sidebar for the full menu of features.
|
|
40
|
+
|
|
41
|
+
## Studio
|
|
42
|
+
|
|
43
|
+

|
|
44
|
+
|
|
45
|
+
[Studio](https://mastra.ai/docs/studio/overview) is usually the first place you go after creating a Mastra app. It gives you a live environment for testing agents, inspecting runs, and iterating quickly.
|
|
46
|
+
|
|
47
|
+
Studio isn't just for engineers. Deploy it and share it with your team, so collaborators can try an agent before it ships. With the [Editor](https://mastra.ai/docs/editor/overview) and [Agent Builder](https://mastra.ai/docs/agent-builder/overview), non-technical teammates can create and iterate on agents themselves, with every change versioned in code.
|
|
48
|
+
|
|
49
|
+
## Observability and evals
|
|
50
|
+
|
|
51
|
+

|
|
52
|
+
|
|
53
|
+
Mastra has built-in logs, traces, and metrics, so you can understand every run in development and production. See [Observability](https://mastra.ai/docs/observability/overview).
|
|
54
|
+
|
|
55
|
+
Evals close the loop. Score outputs with rule-based or LLM-as-judge [scorers](https://mastra.ai/docs/evals/overview), live in production or offline in CI. Create datasets from real traces, run experiments, and compare versions. Because you own the code and the observability layer, you get a closed loop from trace to prompt edit to measurable improvement.
|
|
56
|
+
|
|
57
|
+
## Long-running agents
|
|
58
|
+
|
|
59
|
+
Some agents finish in a single request. Others run for hours or days, like a sales agent that watches for signups or an SRE agent that handles incidents. Mastra supports [long-running agents](https://mastra.ai/docs/long-running-agents/durable-agents) with these capabilities:
|
|
60
|
+
|
|
61
|
+
- **Survive restarts and disconnects**: [Durable agents](https://mastra.ai/docs/long-running-agents/durable-agents) persist run state so work resumes and clients reconnect.
|
|
62
|
+
- **Wake and steer agents mid-run**: Send [messages and signals](https://mastra.ai/docs/long-running-agents/signals) to wake an agent, add context, or queue input.
|
|
63
|
+
- **Keep working toward a goal**: [Goals](https://mastra.ai/docs/long-running-agents/goals) persist an objective until it's met or the run budget is spent.
|
|
64
|
+
- **Run work outside the request**: Use [schedules](https://mastra.ai/docs/long-running-agents/schedules) and [background tasks](https://mastra.ai/docs/long-running-agents/background-tasks) for recurring jobs, slow tools, and work that shouldn't block the agent loop.
|
|
65
|
+
|
|
66
|
+
For long-running interactive applications, [AgentController](https://mastra.ai/docs/agent-controller/overview) manages threads, modes, tool approvals, and model switching. It powers [Mastra Code](https://code.mastra.ai/) and lets you build a Claude Code-style experience for your own domain.
|
|
67
|
+
|
|
68
|
+
## Deployment
|
|
69
|
+
|
|
70
|
+
Mastra is open source and infrastructure-neutral. The framework fits your stack instead of requiring your stack to fit one vendor. Choose from an ecosystem of model providers, databases, sandboxes, and observability platforms, and change providers without rewriting your application around proprietary infrastructure.
|
|
71
|
+
|
|
72
|
+
When you're ready to deploy:
|
|
73
|
+
|
|
74
|
+
- **[Mastra Server](https://mastra.ai/docs/mastra-platform/server)**: The quickest path to production. Mastra builds and hosts your application as an API server with a stable endpoint, environment variables, custom domains, and deploy history.
|
|
75
|
+
- **Your infrastructure**: Use Mastra's [deployers for major platforms](https://mastra.ai/docs/deployment/overview), deploy a standard server to your preferred virtual machine, container, or platform as a service, or run Mastra inside an existing TypeScript application with a [server adapter](https://mastra.ai/docs/server/server-adapters).
|
|
76
|
+
|
|
77
|
+
## Use cases
|
|
78
|
+
|
|
79
|
+
Here are some of the ways you can use Mastra:
|
|
80
|
+
|
|
81
|
+
<details>
|
|
82
|
+
**Embed agents in your product**
|
|
83
|
+
|
|
84
|
+
Add AI capabilities to your platform so your users can build or interact with agents.
|
|
85
|
+
|
|
86
|
+
Used by [Replit](https://mastra.ai/blog/replitagent3), [Fireworks](https://mastra.ai/blog/fireworks-xml-prompting), [Medusa](https://mastra.ai/blog/medusa-ecommerce)
|
|
87
|
+
|
|
88
|
+
</details>
|
|
89
|
+
|
|
90
|
+
<details>
|
|
91
|
+
**Customer-facing assistants**
|
|
92
|
+
|
|
93
|
+
Build agents that handle inquiries, schedule appointments, send reminders, and answer questions via chat, WhatsApp, or voice.
|
|
94
|
+
|
|
95
|
+
Used by [Vetnio](https://mastra.ai/blog/vetnio), [Lua](https://mastra.ai/blog/lua-scaling)
|
|
96
|
+
|
|
97
|
+
Templates: [Docs Chatbot](https://mastra.ai/templates/docs-chatbot), [Slack Agent](https://mastra.ai/templates/slack-agent)
|
|
98
|
+
|
|
99
|
+
</details>
|
|
100
|
+
|
|
101
|
+
<details>
|
|
102
|
+
**Internal copilots**
|
|
103
|
+
|
|
104
|
+
Help employees work faster with AI that understands your domain—HR queries, clinical documentation, sales prep, or document generation.
|
|
105
|
+
|
|
106
|
+
Used by [Factorial](https://mastra.ai/blog/factorial-case-study), [Counsel Health](https://mastra.ai/blog/counsel-health), [Cedar](https://mastra.ai/blog/cedar-case-study), [SoftBank](https://mastra.ai/blog/softbank-productivity-mastra-2025-08-20)
|
|
107
|
+
|
|
108
|
+
Templates: [Chat with PDF](https://mastra.ai/templates/chat-with-pdf), [Google Sheet Analysis](https://mastra.ai/templates/google-sheets-analysis)
|
|
109
|
+
|
|
110
|
+
</details>
|
|
111
|
+
|
|
112
|
+
<details>
|
|
113
|
+
**Data analysis agents**
|
|
114
|
+
|
|
115
|
+
Let users query databases and dashboards in natural language. Connect to your data sources and return answers, charts, or reports.
|
|
116
|
+
|
|
117
|
+
Used by [Index](https://mastra.ai/blog/index-case-study), [PLAID Japan](https://mastra.ai/blog/plaid-jpn-gcp-agents)
|
|
118
|
+
|
|
119
|
+
Templates: [Chat with Database](https://mastra.ai/templates/text-to-sql), [CSV to Questions](https://mastra.ai/templates/csv-to-questions)
|
|
120
|
+
|
|
121
|
+
</details>
|
|
122
|
+
|
|
123
|
+
<details>
|
|
124
|
+
**Content automation**
|
|
125
|
+
|
|
126
|
+
Generate, transform, and manage structured content at scale—whether for a CMS, knowledge base, or documentation system.
|
|
127
|
+
|
|
128
|
+
Used by [Sanity](https://mastra.ai/blog/sanity)
|
|
129
|
+
|
|
130
|
+
Templates: [Chat with YouTube](https://mastra.ai/templates/chat-with-youtube), [Flash Cards from PDF](https://mastra.ai/templates/flash-cards-from-pdf)
|
|
131
|
+
|
|
132
|
+
</details>
|
|
133
|
+
|
|
134
|
+
<details>
|
|
135
|
+
**DevOps & engineering automation**
|
|
136
|
+
|
|
137
|
+
Automate deployments, debug production issues, manage infrastructure, and handle on-call workflows.
|
|
138
|
+
|
|
139
|
+
Used by [StarSling](https://mastra.ai/blog/starsling)
|
|
140
|
+
|
|
141
|
+
Templates: [GitHub PR Code Review](https://mastra.ai/templates/github-pr-code-review-agent), [Browser Agent](https://mastra.ai/templates/browsing-agent)
|
|
142
|
+
|
|
143
|
+
</details>
|
|
144
|
+
|
|
145
|
+
<details>
|
|
146
|
+
**Sales & GTM workflows**
|
|
147
|
+
|
|
148
|
+
Turn customer conversations into structured tasks, generate investment memos, or automate outreach sequences.
|
|
149
|
+
|
|
150
|
+
Used by [Kestral](https://mastra.ai/blog/kestral), [Orange Collective](https://mastra.ai/blog/orange-collective-vc-operating-system), [WorkOS](https://mastra.ai/blog/workos-teaching-mastra)
|
|
151
|
+
|
|
152
|
+
Templates: [Customer Feedback Summarization](https://mastra.ai/templates/customer-feedback-summarization)
|
|
153
|
+
|
|
154
|
+
</details>
|
|
155
|
+
|
|
156
|
+
Browse [templates](https://mastra.ai/templates) for working examples.
|
|
157
|
+
|
|
158
|
+
## Next steps
|
|
159
|
+
|
|
160
|
+
- [Get started](https://mastra.ai/docs)
|
|
161
|
+
- [Agents overview](https://mastra.ai/docs/agents/overview)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Agents and tools
|
|
4
4
|
|
|
5
|
-
Workflow steps can call agents to
|
|
5
|
+
Workflow steps can call agents to use LLM reasoning or call tools for type-safe logic. You can either invoke them from within a step's `execute()` function or compose them directly as steps using `createStep()`.
|
|
6
6
|
|
|
7
7
|
## Using agents in workflows
|
|
8
8
|
|
|
@@ -110,11 +110,11 @@ The `structuredOutput.schema` option accepts any Standard JSON Schema. The agent
|
|
|
110
110
|
|
|
111
111
|
## Using tools in workflows
|
|
112
112
|
|
|
113
|
-
Use tools in workflow steps to
|
|
113
|
+
Use tools in workflow steps to use existing tool logic. Call from a step's `.execute()` function when you need to prepare context or process responses. Compose tools as steps when you don't need to modify how the tool is used.
|
|
114
114
|
|
|
115
115
|
### Calling tools
|
|
116
116
|
|
|
117
|
-
Call tools inside a step's `.execute()` function.
|
|
117
|
+
Call tools inside a step's `.execute()` function. You get more control over the tool's input context, or process its response before passing it to the next step.
|
|
118
118
|
|
|
119
119
|
```typescript
|
|
120
120
|
import { testTool } from '../tools/test-tool'
|