@mastra/mcp-docs-server 0.13.37 → 0.13.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +2 -0
- package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +2 -0
- package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +8 -8
- package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +2 -0
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +23 -23
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +69 -69
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +25 -25
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +27 -27
- package/.docs/organized/changelogs/%40mastra%2Freact.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +23 -23
- package/.docs/organized/changelogs/create-mastra.md +5 -5
- package/.docs/organized/changelogs/mastra.md +17 -17
- package/.docs/raw/agents/adding-voice.mdx +20 -9
- package/.docs/raw/agents/agent-memory.mdx +55 -39
- package/.docs/raw/agents/guardrails.mdx +68 -61
- package/.docs/raw/agents/networks.mdx +50 -46
- package/.docs/raw/agents/overview.mdx +125 -88
- package/.docs/raw/agents/using-tools.mdx +14 -15
- package/.docs/raw/auth/auth0.mdx +28 -27
- package/.docs/raw/auth/clerk.mdx +22 -20
- package/.docs/raw/auth/firebase.mdx +42 -39
- package/.docs/raw/auth/index.mdx +1 -1
- package/.docs/raw/auth/jwt.mdx +18 -16
- package/.docs/raw/auth/supabase.mdx +20 -18
- package/.docs/raw/auth/workos.mdx +32 -26
- package/.docs/raw/community/contributing-templates.mdx +7 -7
- package/.docs/raw/community/discord.mdx +2 -2
- package/.docs/raw/community/licensing.mdx +1 -1
- package/.docs/raw/course/03-agent-memory/26-updating-mastra-export-comprehensive.md +0 -32
- package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +41 -22
- package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +48 -29
- package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +52 -24
- package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +86 -55
- package/.docs/raw/deployment/cloud-providers/index.mdx +16 -13
- package/.docs/raw/deployment/monorepo.mdx +32 -42
- package/.docs/raw/deployment/overview.mdx +15 -15
- package/.docs/raw/deployment/server-deployment.mdx +18 -23
- package/.docs/raw/deployment/serverless-platforms/cloudflare-deployer.mdx +16 -17
- package/.docs/raw/deployment/serverless-platforms/index.mdx +15 -12
- package/.docs/raw/deployment/serverless-platforms/netlify-deployer.mdx +14 -23
- package/.docs/raw/deployment/serverless-platforms/vercel-deployer.mdx +16 -23
- package/.docs/raw/deployment/web-framework.mdx +14 -14
- package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +138 -145
- package/.docs/raw/frameworks/agentic-uis/assistant-ui.mdx +54 -43
- package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +51 -36
- package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +161 -120
- package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +59 -48
- package/.docs/raw/frameworks/servers/express.mdx +45 -44
- package/.docs/raw/frameworks/web-frameworks/astro.mdx +245 -162
- package/.docs/raw/frameworks/web-frameworks/next-js.mdx +112 -69
- package/.docs/raw/frameworks/web-frameworks/sveltekit.mdx +189 -164
- package/.docs/raw/frameworks/web-frameworks/vite-react.mdx +94 -81
- package/.docs/raw/getting-started/installation.mdx +164 -133
- package/.docs/raw/getting-started/mcp-docs-server.mdx +36 -39
- package/.docs/raw/getting-started/project-structure.mdx +34 -42
- package/.docs/raw/getting-started/studio.mdx +40 -58
- package/.docs/raw/getting-started/templates.mdx +22 -27
- package/.docs/raw/index.mdx +9 -9
- package/.docs/raw/mastra-cloud/dashboard.mdx +10 -10
- package/.docs/raw/mastra-cloud/observability.mdx +7 -8
- package/.docs/raw/mastra-cloud/overview.mdx +16 -22
- package/.docs/raw/mastra-cloud/setting-up.mdx +33 -20
- package/.docs/raw/memory/conversation-history.mdx +2 -2
- package/.docs/raw/memory/overview.mdx +21 -23
- package/.docs/raw/memory/semantic-recall.mdx +14 -13
- package/.docs/raw/memory/storage/memory-with-libsql.mdx +27 -28
- package/.docs/raw/memory/storage/memory-with-pg.mdx +26 -26
- package/.docs/raw/memory/storage/memory-with-upstash.mdx +26 -27
- package/.docs/raw/memory/threads-and-resources.mdx +23 -20
- package/.docs/raw/memory/working-memory.mdx +27 -38
- package/.docs/raw/observability/ai-tracing/exporters/arize.mdx +30 -29
- package/.docs/raw/observability/ai-tracing/exporters/braintrust.mdx +8 -9
- package/.docs/raw/observability/ai-tracing/exporters/cloud.mdx +17 -16
- package/.docs/raw/observability/ai-tracing/exporters/default.mdx +31 -32
- package/.docs/raw/observability/ai-tracing/exporters/langfuse.mdx +18 -17
- package/.docs/raw/observability/ai-tracing/exporters/langsmith.mdx +14 -14
- package/.docs/raw/observability/ai-tracing/exporters/otel.mdx +56 -46
- package/.docs/raw/observability/ai-tracing/overview.mdx +145 -122
- package/.docs/raw/observability/ai-tracing/processors/sensitive-data-filter.mdx +57 -36
- package/.docs/raw/observability/logging.mdx +14 -17
- package/.docs/raw/observability/nextjs-tracing.mdx +5 -5
- package/.docs/raw/observability/otel-tracing.mdx +17 -18
- package/.docs/raw/observability/overview.mdx +14 -10
- package/.docs/raw/rag/chunking-and-embedding.mdx +10 -8
- package/.docs/raw/rag/overview.mdx +5 -5
- package/.docs/raw/rag/retrieval.mdx +125 -107
- package/.docs/raw/rag/vector-databases.mdx +232 -223
- package/.docs/raw/reference/agents/agent.mdx +54 -41
- package/.docs/raw/reference/agents/generate.mdx +367 -261
- package/.docs/raw/reference/agents/generateLegacy.mdx +260 -178
- package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +7 -5
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +7 -5
- package/.docs/raw/reference/agents/getDescription.mdx +3 -2
- package/.docs/raw/reference/agents/getInstructions.mdx +7 -5
- package/.docs/raw/reference/agents/getLLM.mdx +11 -7
- package/.docs/raw/reference/agents/getMemory.mdx +7 -5
- package/.docs/raw/reference/agents/getModel.mdx +7 -5
- package/.docs/raw/reference/agents/getScorers.mdx +7 -5
- package/.docs/raw/reference/agents/getTools.mdx +7 -5
- package/.docs/raw/reference/agents/getVoice.mdx +7 -5
- package/.docs/raw/reference/agents/getWorkflows.mdx +7 -5
- package/.docs/raw/reference/agents/listAgents.mdx +6 -4
- package/.docs/raw/reference/agents/network.mdx +171 -116
- package/.docs/raw/reference/auth/auth0.mdx +18 -14
- package/.docs/raw/reference/auth/clerk.mdx +15 -12
- package/.docs/raw/reference/auth/firebase.mdx +23 -16
- package/.docs/raw/reference/auth/jwt.mdx +7 -6
- package/.docs/raw/reference/auth/supabase.mdx +13 -10
- package/.docs/raw/reference/auth/workos.mdx +17 -13
- package/.docs/raw/reference/cli/create-mastra.mdx +61 -44
- package/.docs/raw/reference/cli/mastra.mdx +11 -11
- package/.docs/raw/reference/client-js/agents.mdx +40 -43
- package/.docs/raw/reference/client-js/error-handling.mdx +1 -1
- package/.docs/raw/reference/client-js/logs.mdx +1 -1
- package/.docs/raw/reference/client-js/mastra-client.mdx +21 -13
- package/.docs/raw/reference/client-js/memory.mdx +6 -2
- package/.docs/raw/reference/client-js/observability.mdx +10 -9
- package/.docs/raw/reference/client-js/telemetry.mdx +1 -1
- package/.docs/raw/reference/client-js/tools.mdx +1 -1
- package/.docs/raw/reference/client-js/vectors.mdx +1 -1
- package/.docs/raw/reference/client-js/workflows-legacy.mdx +1 -1
- package/.docs/raw/reference/client-js/workflows.mdx +7 -7
- package/.docs/raw/reference/core/getAgent.mdx +6 -5
- package/.docs/raw/reference/core/getAgentById.mdx +5 -4
- package/.docs/raw/reference/core/getAgents.mdx +3 -3
- package/.docs/raw/reference/core/getDeployer.mdx +4 -3
- package/.docs/raw/reference/core/getLogger.mdx +4 -3
- package/.docs/raw/reference/core/getLogs.mdx +10 -6
- package/.docs/raw/reference/core/getLogsByRunId.mdx +8 -5
- package/.docs/raw/reference/core/getMCPServer.mdx +8 -5
- package/.docs/raw/reference/core/getMCPServers.mdx +4 -3
- package/.docs/raw/reference/core/getMemory.mdx +4 -3
- package/.docs/raw/reference/core/getScorer.mdx +15 -12
- package/.docs/raw/reference/core/getScorerByName.mdx +12 -9
- package/.docs/raw/reference/core/getScorers.mdx +3 -2
- package/.docs/raw/reference/core/getServer.mdx +4 -3
- package/.docs/raw/reference/core/getStorage.mdx +4 -3
- package/.docs/raw/reference/core/getTelemetry.mdx +4 -3
- package/.docs/raw/reference/core/getVector.mdx +6 -4
- package/.docs/raw/reference/core/getVectors.mdx +4 -3
- package/.docs/raw/reference/core/getWorkflow.mdx +7 -4
- package/.docs/raw/reference/core/getWorkflows.mdx +5 -3
- package/.docs/raw/reference/core/mastra-class.mdx +16 -16
- package/.docs/raw/reference/core/setLogger.mdx +6 -4
- package/.docs/raw/reference/core/setStorage.mdx +4 -4
- package/.docs/raw/reference/core/setTelemetry.mdx +4 -3
- package/.docs/raw/reference/deployer/cloudflare.mdx +11 -7
- package/.docs/raw/reference/deployer/deployer.mdx +2 -1
- package/.docs/raw/reference/deployer/netlify.mdx +4 -4
- package/.docs/raw/reference/deployer/vercel.mdx +6 -6
- package/.docs/raw/reference/evals/answer-relevancy.mdx +4 -5
- package/.docs/raw/reference/evals/bias.mdx +4 -5
- package/.docs/raw/reference/evals/completeness.mdx +4 -5
- package/.docs/raw/reference/evals/content-similarity.mdx +4 -5
- package/.docs/raw/reference/evals/context-position.mdx +4 -5
- package/.docs/raw/reference/evals/context-precision.mdx +4 -5
- package/.docs/raw/reference/evals/context-relevancy.mdx +4 -5
- package/.docs/raw/reference/evals/contextual-recall.mdx +4 -5
- package/.docs/raw/reference/evals/faithfulness.mdx +4 -5
- package/.docs/raw/reference/evals/hallucination.mdx +4 -6
- package/.docs/raw/reference/evals/keyword-coverage.mdx +4 -5
- package/.docs/raw/reference/evals/prompt-alignment.mdx +4 -6
- package/.docs/raw/reference/evals/summarization.mdx +4 -6
- package/.docs/raw/reference/evals/textual-difference.mdx +4 -5
- package/.docs/raw/reference/evals/tone-consistency.mdx +4 -7
- package/.docs/raw/reference/evals/toxicity.mdx +4 -5
- package/.docs/raw/reference/index.mdx +3 -3
- package/.docs/raw/reference/legacyWorkflows/after.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/afterEvent.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/commit.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/createRun.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/else.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/events.mdx +7 -7
- package/.docs/raw/reference/legacyWorkflows/execute.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/if.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/resume.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/resumeWithEvent.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/snapshots.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/start.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/step-class.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/step-condition.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/step-function.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/step-options.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/step-retries.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/suspend.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/then.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/until.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/watch.mdx +3 -3
- package/.docs/raw/reference/legacyWorkflows/while.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/workflow.mdx +7 -7
- package/.docs/raw/reference/memory/createThread.mdx +10 -10
- package/.docs/raw/reference/memory/deleteMessages.mdx +7 -5
- package/.docs/raw/reference/memory/getThreadById.mdx +6 -5
- package/.docs/raw/reference/memory/getThreadsByResourceId.mdx +11 -10
- package/.docs/raw/reference/memory/getThreadsByResourceIdPaginated.mdx +10 -9
- package/.docs/raw/reference/memory/{Memory.mdx → memory-class.mdx} +53 -46
- package/.docs/raw/reference/memory/query.mdx +39 -25
- package/.docs/raw/reference/observability/ai-tracing/ai-tracing.mdx +9 -5
- package/.docs/raw/reference/observability/ai-tracing/configuration.mdx +26 -22
- package/.docs/raw/reference/observability/ai-tracing/exporters/arize.mdx +16 -12
- package/.docs/raw/reference/observability/ai-tracing/exporters/braintrust.mdx +14 -14
- package/.docs/raw/reference/observability/ai-tracing/exporters/cloud-exporter.mdx +16 -11
- package/.docs/raw/reference/observability/ai-tracing/exporters/console-exporter.mdx +10 -6
- package/.docs/raw/reference/observability/ai-tracing/exporters/default-exporter.mdx +23 -15
- package/.docs/raw/reference/observability/ai-tracing/exporters/langfuse.mdx +6 -6
- package/.docs/raw/reference/observability/ai-tracing/exporters/langsmith.mdx +13 -13
- package/.docs/raw/reference/observability/ai-tracing/exporters/otel.mdx +44 -36
- package/.docs/raw/reference/observability/ai-tracing/interfaces.mdx +115 -106
- package/.docs/raw/reference/observability/ai-tracing/processors/sensitive-data-filter.mdx +37 -32
- package/.docs/raw/reference/observability/ai-tracing/span.mdx +29 -26
- package/.docs/raw/reference/observability/logging/pino-logger.mdx +13 -15
- package/.docs/raw/reference/observability/otel-tracing/otel-config.mdx +2 -2
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-ax.mdx +3 -3
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-phoenix.mdx +2 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/dash0.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/index.mdx +12 -14
- package/.docs/raw/reference/observability/otel-tracing/providers/keywordsai.mdx +3 -3
- package/.docs/raw/reference/observability/otel-tracing/providers/laminar.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/langfuse.mdx +4 -4
- package/.docs/raw/reference/observability/otel-tracing/providers/langsmith.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/langwatch.mdx +2 -2
- package/.docs/raw/reference/observability/otel-tracing/providers/new-relic.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/signoz.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/traceloop.mdx +1 -1
- package/.docs/raw/reference/processors/batch-parts-processor.mdx +13 -10
- package/.docs/raw/reference/processors/language-detector.mdx +27 -17
- package/.docs/raw/reference/processors/moderation-processor.mdx +26 -17
- package/.docs/raw/reference/processors/pii-detector.mdx +28 -18
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +25 -17
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +26 -17
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +22 -15
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +13 -12
- package/.docs/raw/reference/rag/chunk.mdx +41 -23
- package/.docs/raw/reference/rag/database-config.mdx +56 -38
- package/.docs/raw/reference/rag/document.mdx +1 -1
- package/.docs/raw/reference/rag/embeddings.mdx +1 -1
- package/.docs/raw/reference/rag/extract-params.mdx +1 -1
- package/.docs/raw/reference/rag/graph-rag.mdx +1 -1
- package/.docs/raw/reference/rag/metadata-filters.mdx +23 -26
- package/.docs/raw/reference/rag/rerank.mdx +1 -1
- package/.docs/raw/reference/rag/rerankWithScorer.mdx +2 -2
- package/.docs/raw/reference/scorers/answer-relevancy.mdx +35 -17
- package/.docs/raw/reference/scorers/answer-similarity.mdx +84 -68
- package/.docs/raw/reference/scorers/bias.mdx +22 -19
- package/.docs/raw/reference/scorers/completeness.mdx +21 -16
- package/.docs/raw/reference/scorers/content-similarity.mdx +12 -10
- package/.docs/raw/reference/scorers/context-precision.mdx +73 -64
- package/.docs/raw/reference/scorers/context-relevance.mdx +142 -126
- package/.docs/raw/reference/scorers/create-scorer.mdx +93 -61
- package/.docs/raw/reference/scorers/faithfulness.mdx +21 -13
- package/.docs/raw/reference/scorers/hallucination.mdx +17 -12
- package/.docs/raw/reference/scorers/keyword-coverage.mdx +32 -27
- package/.docs/raw/reference/scorers/mastra-scorer.mdx +39 -33
- package/.docs/raw/reference/scorers/noise-sensitivity.mdx +203 -152
- package/.docs/raw/reference/scorers/prompt-alignment.mdx +186 -132
- package/.docs/raw/reference/scorers/run-experiment.mdx +40 -31
- package/.docs/raw/reference/scorers/textual-difference.mdx +25 -26
- package/.docs/raw/reference/scorers/tone-consistency.mdx +29 -26
- package/.docs/raw/reference/scorers/tool-call-accuracy.mdx +180 -176
- package/.docs/raw/reference/scorers/toxicity.mdx +35 -31
- package/.docs/raw/reference/storage/cloudflare-d1.mdx +1 -1
- package/.docs/raw/reference/storage/cloudflare.mdx +1 -1
- package/.docs/raw/reference/storage/dynamodb.mdx +1 -1
- package/.docs/raw/reference/storage/lance.mdx +1 -1
- package/.docs/raw/reference/storage/libsql.mdx +2 -2
- package/.docs/raw/reference/storage/mongodb.mdx +4 -5
- package/.docs/raw/reference/storage/mssql.mdx +5 -4
- package/.docs/raw/reference/storage/postgresql.mdx +35 -33
- package/.docs/raw/reference/storage/upstash.mdx +6 -5
- package/.docs/raw/reference/streaming/ChunkType.mdx +788 -314
- package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +265 -109
- package/.docs/raw/reference/streaming/agents/stream.mdx +375 -266
- package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +233 -162
- package/.docs/raw/reference/streaming/workflows/observeStream.mdx +4 -4
- package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +5 -5
- package/.docs/raw/reference/streaming/workflows/resumeStreamVNext.mdx +24 -20
- package/.docs/raw/reference/streaming/workflows/stream.mdx +35 -26
- package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +36 -27
- package/.docs/raw/reference/templates/overview.mdx +16 -39
- package/.docs/raw/reference/tools/client.mdx +1 -1
- package/.docs/raw/reference/tools/create-tool.mdx +45 -35
- package/.docs/raw/reference/tools/document-chunker-tool.mdx +2 -2
- package/.docs/raw/reference/tools/graph-rag-tool.mdx +12 -12
- package/.docs/raw/reference/tools/mcp-client.mdx +70 -64
- package/.docs/raw/reference/tools/mcp-server.mdx +91 -78
- package/.docs/raw/reference/tools/vector-query-tool.mdx +48 -38
- package/.docs/raw/reference/vectors/astra.mdx +1 -1
- package/.docs/raw/reference/vectors/chroma.mdx +25 -19
- package/.docs/raw/reference/vectors/couchbase.mdx +4 -4
- package/.docs/raw/reference/vectors/lance.mdx +5 -6
- package/.docs/raw/reference/vectors/libsql.mdx +1 -1
- package/.docs/raw/reference/vectors/mongodb.mdx +1 -1
- package/.docs/raw/reference/vectors/opensearch.mdx +1 -1
- package/.docs/raw/reference/vectors/pg.mdx +8 -4
- package/.docs/raw/reference/vectors/pinecone.mdx +1 -1
- package/.docs/raw/reference/vectors/qdrant.mdx +1 -1
- package/.docs/raw/reference/vectors/s3vectors.mdx +35 -27
- package/.docs/raw/reference/vectors/turbopuffer.mdx +1 -1
- package/.docs/raw/reference/vectors/upstash.mdx +33 -25
- package/.docs/raw/reference/vectors/vectorize.mdx +1 -1
- package/.docs/raw/reference/voice/azure.mdx +1 -1
- package/.docs/raw/reference/voice/cloudflare.mdx +1 -1
- package/.docs/raw/reference/voice/composite-voice.mdx +1 -1
- package/.docs/raw/reference/voice/deepgram.mdx +1 -1
- package/.docs/raw/reference/voice/elevenlabs.mdx +1 -1
- package/.docs/raw/reference/voice/google-gemini-live.mdx +6 -4
- package/.docs/raw/reference/voice/google.mdx +1 -1
- package/.docs/raw/reference/voice/mastra-voice.mdx +1 -1
- package/.docs/raw/reference/voice/murf.mdx +1 -1
- package/.docs/raw/reference/voice/openai-realtime.mdx +1 -1
- package/.docs/raw/reference/voice/openai.mdx +1 -1
- package/.docs/raw/reference/voice/playai.mdx +1 -1
- package/.docs/raw/reference/voice/sarvam.mdx +1 -1
- package/.docs/raw/reference/voice/speechify.mdx +1 -1
- package/.docs/raw/reference/voice/voice.addInstructions.mdx +1 -1
- package/.docs/raw/reference/voice/voice.addTools.mdx +1 -1
- package/.docs/raw/reference/voice/voice.answer.mdx +1 -1
- package/.docs/raw/reference/voice/voice.close.mdx +1 -1
- package/.docs/raw/reference/voice/voice.connect.mdx +1 -1
- package/.docs/raw/reference/voice/voice.events.mdx +1 -1
- package/.docs/raw/reference/voice/voice.getSpeakers.mdx +23 -30
- package/.docs/raw/reference/voice/voice.listen.mdx +1 -1
- package/.docs/raw/reference/voice/voice.off.mdx +1 -1
- package/.docs/raw/reference/voice/voice.on.mdx +1 -1
- package/.docs/raw/reference/voice/voice.send.mdx +1 -1
- package/.docs/raw/reference/voice/voice.speak.mdx +1 -1
- package/.docs/raw/reference/voice/voice.updateConfig.mdx +1 -1
- package/.docs/raw/reference/workflows/run-methods/cancel.mdx +4 -3
- package/.docs/raw/reference/workflows/run-methods/resume.mdx +49 -34
- package/.docs/raw/reference/workflows/run-methods/start.mdx +43 -31
- package/.docs/raw/reference/workflows/run-methods/watch.mdx +7 -8
- package/.docs/raw/reference/workflows/run.mdx +7 -10
- package/.docs/raw/reference/workflows/step.mdx +15 -12
- package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +7 -7
- package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/map.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +5 -5
- package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +3 -3
- package/.docs/raw/reference/workflows/workflow.mdx +13 -10
- package/.docs/raw/scorers/custom-scorers.mdx +58 -48
- package/.docs/raw/scorers/evals-old-api/custom-eval.mdx +6 -8
- package/.docs/raw/scorers/evals-old-api/overview.mdx +8 -8
- package/.docs/raw/scorers/evals-old-api/running-in-ci.mdx +9 -9
- package/.docs/raw/scorers/evals-old-api/textual-evals.mdx +5 -5
- package/.docs/raw/scorers/off-the-shelf-scorers.mdx +3 -1
- package/.docs/raw/scorers/overview.mdx +20 -19
- package/.docs/raw/server-db/custom-api-routes.mdx +8 -8
- package/.docs/raw/server-db/mastra-client.mdx +56 -54
- package/.docs/raw/server-db/middleware.mdx +11 -7
- package/.docs/raw/server-db/production-server.mdx +5 -7
- package/.docs/raw/server-db/runtime-context.mdx +41 -38
- package/.docs/raw/server-db/storage.mdx +82 -87
- package/.docs/raw/streaming/events.mdx +24 -16
- package/.docs/raw/streaming/overview.mdx +17 -18
- package/.docs/raw/streaming/tool-streaming.mdx +9 -10
- package/.docs/raw/streaming/workflow-streaming.mdx +14 -12
- package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -2
- package/.docs/raw/tools-mcp/mcp-overview.mdx +92 -102
- package/.docs/raw/tools-mcp/overview.mdx +9 -14
- package/.docs/raw/voice/overview.mdx +273 -250
- package/.docs/raw/voice/speech-to-speech.mdx +14 -12
- package/.docs/raw/voice/speech-to-text.mdx +2 -2
- package/.docs/raw/voice/text-to-speech.mdx +2 -2
- package/.docs/raw/workflows/agents-and-tools.mdx +29 -28
- package/.docs/raw/workflows/control-flow.mdx +24 -24
- package/.docs/raw/workflows/error-handling.mdx +15 -17
- package/.docs/raw/workflows/human-in-the-loop.mdx +39 -39
- package/.docs/raw/workflows/inngest-workflow.mdx +33 -29
- package/.docs/raw/workflows/input-data-mapping.mdx +9 -9
- package/.docs/raw/workflows/overview.mdx +60 -60
- package/.docs/raw/workflows/snapshots.mdx +54 -36
- package/.docs/raw/workflows/suspend-and-resume.mdx +52 -57
- package/.docs/raw/workflows-legacy/control-flow.mdx +15 -17
- package/.docs/raw/workflows-legacy/dynamic-workflows.mdx +3 -1
- package/.docs/raw/workflows-legacy/error-handling.mdx +8 -6
- package/.docs/raw/workflows-legacy/nested-workflows.mdx +6 -0
- package/.docs/raw/workflows-legacy/overview.mdx +28 -26
- package/.docs/raw/workflows-legacy/runtime-variables.mdx +4 -2
- package/.docs/raw/workflows-legacy/steps.mdx +5 -3
- package/.docs/raw/workflows-legacy/suspend-and-resume.mdx +10 -8
- package/.docs/raw/workflows-legacy/variables.mdx +10 -8
- package/CHANGELOG.md +14 -0
- package/package.json +5 -5
- package/.docs/raw/memory/storage/memory-with-mongodb.mdx +0 -148
|
@@ -12,7 +12,7 @@ Processors can be configured as:
|
|
|
12
12
|
- **`inputProcessors`**: Applied before messages reach the language model.
|
|
13
13
|
- **`outputProcessors`**: Applied to responses before they're returned to users.
|
|
14
14
|
|
|
15
|
-
Some processors are
|
|
15
|
+
Some processors are _hybrid_, meaning they can be used with either `inputProcessors` or `outputProcessors`, depending on where the logic should be applied.
|
|
16
16
|
|
|
17
17
|
## When to use processors
|
|
18
18
|
|
|
@@ -22,7 +22,7 @@ Use processors for content moderation, prompt injection prevention, response san
|
|
|
22
22
|
|
|
23
23
|
Import and instantiate the relevant processor class, and pass it to your agent’s configuration using either the `inputProcessors` or `outputProcessors` option:
|
|
24
24
|
|
|
25
|
-
```typescript {3,9-17}
|
|
25
|
+
```typescript {3,9-17} title="src/mastra/agents/moderated-agent.ts" showLineNumbers copy
|
|
26
26
|
import { openai } from "@ai-sdk/openai";
|
|
27
27
|
import { Agent } from "@mastra/core/agent";
|
|
28
28
|
import { ModerationProcessor } from "@mastra/core/processors";
|
|
@@ -38,8 +38,8 @@ export const moderatedAgent = new Agent({
|
|
|
38
38
|
threshold: 0.7,
|
|
39
39
|
strategy: "block",
|
|
40
40
|
instructions: "Detect and flag inappropriate content in user messages",
|
|
41
|
-
})
|
|
42
|
-
]
|
|
41
|
+
}),
|
|
42
|
+
],
|
|
43
43
|
});
|
|
44
44
|
```
|
|
45
45
|
|
|
@@ -51,7 +51,7 @@ Input processors are applied before user messages reach the language model. They
|
|
|
51
51
|
|
|
52
52
|
The `UnicodeNormalizer` is an input processor that cleans and normalizes user input by unifying Unicode characters, standardizing whitespace, and removing problematic symbols, allowing the LLM to better understand user messages.
|
|
53
53
|
|
|
54
|
-
```typescript {6-9}
|
|
54
|
+
```typescript {6-9} title="src/mastra/agents/normalized-agent.ts" showLineNumbers copy
|
|
55
55
|
import { UnicodeNormalizer } from "@mastra/core/processors";
|
|
56
56
|
|
|
57
57
|
export const normalizedAgent = new Agent({
|
|
@@ -60,18 +60,18 @@ export const normalizedAgent = new Agent({
|
|
|
60
60
|
new UnicodeNormalizer({
|
|
61
61
|
stripControlChars: true,
|
|
62
62
|
collapseWhitespace: true,
|
|
63
|
-
})
|
|
63
|
+
}),
|
|
64
64
|
],
|
|
65
65
|
});
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
-
> See [UnicodeNormalizer](
|
|
68
|
+
> See [UnicodeNormalizer](/reference/processors/unicode-normalizer) for a full list of configuration options.
|
|
69
69
|
|
|
70
70
|
### Preventing prompt injection
|
|
71
71
|
|
|
72
72
|
The `PromptInjectionDetector` is an input processor that scans user messages for prompt injection, jailbreak attempts, and system override patterns. It uses an LLM to classify risky input and can block or rewrite it before it reaches the model.
|
|
73
73
|
|
|
74
|
-
```typescript {6-11}
|
|
74
|
+
```typescript {6-11} title="src/mastra/agents/secure-agent.ts" showLineNumbers copy
|
|
75
75
|
import { PromptInjectionDetector } from "@mastra/core/processors";
|
|
76
76
|
|
|
77
77
|
export const secureAgent = new Agent({
|
|
@@ -80,20 +80,20 @@ export const secureAgent = new Agent({
|
|
|
80
80
|
new PromptInjectionDetector({
|
|
81
81
|
model: openai("gpt-4.1-nano"),
|
|
82
82
|
threshold: 0.8,
|
|
83
|
-
strategy:
|
|
84
|
-
detectionTypes: [
|
|
85
|
-
})
|
|
83
|
+
strategy: "rewrite",
|
|
84
|
+
detectionTypes: ["injection", "jailbreak", "system-override"],
|
|
85
|
+
}),
|
|
86
86
|
],
|
|
87
87
|
});
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
-
> See [PromptInjectionDetector](
|
|
90
|
+
> See [PromptInjectionDetector](/reference/processors/prompt-injection-detector) for a full list of configuration options.
|
|
91
91
|
|
|
92
92
|
### Detecting and translating language
|
|
93
93
|
|
|
94
94
|
The `LanguageDetector` is an input processor that detects and translates user messages into a target language, enabling multilingual support while maintaining consistent interaction. It uses an LLM to identify the language and perform the translation.
|
|
95
95
|
|
|
96
|
-
```typescript {6-11}
|
|
96
|
+
```typescript {6-11} title="src/mastra/agents/multilingual-agent.ts" showLineNumbers copy
|
|
97
97
|
import { LanguageDetector } from "@mastra/core/processors";
|
|
98
98
|
|
|
99
99
|
export const multilingualAgent = new Agent({
|
|
@@ -101,15 +101,15 @@ export const multilingualAgent = new Agent({
|
|
|
101
101
|
inputProcessors: [
|
|
102
102
|
new LanguageDetector({
|
|
103
103
|
model: openai("gpt-4.1-nano"),
|
|
104
|
-
targetLanguages: [
|
|
105
|
-
strategy:
|
|
104
|
+
targetLanguages: ["English", "en"],
|
|
105
|
+
strategy: "translate",
|
|
106
106
|
threshold: 0.8,
|
|
107
|
-
})
|
|
107
|
+
}),
|
|
108
108
|
],
|
|
109
109
|
});
|
|
110
110
|
```
|
|
111
111
|
|
|
112
|
-
> See [LanguageDetector](
|
|
112
|
+
> See [LanguageDetector](/reference/processors/language-detector) for a full list of configuration options.
|
|
113
113
|
|
|
114
114
|
## Output processors
|
|
115
115
|
|
|
@@ -119,7 +119,7 @@ Output processors are applied after the language model generates a response, but
|
|
|
119
119
|
|
|
120
120
|
The `BatchPartsProcessor` is an output processor that combines multiple stream parts before emitting them to the client. This reduces network overhead and improves the user experience by consolidating small chunks into larger batches.
|
|
121
121
|
|
|
122
|
-
```typescript {6-10}
|
|
122
|
+
```typescript {6-10} title="src/mastra/agents/batched-agent.ts" showLineNumbers copy
|
|
123
123
|
import { BatchPartsProcessor } from "@mastra/core/processors";
|
|
124
124
|
|
|
125
125
|
export const batchedAgent = new Agent({
|
|
@@ -128,19 +128,19 @@ export const batchedAgent = new Agent({
|
|
|
128
128
|
new BatchPartsProcessor({
|
|
129
129
|
batchSize: 5,
|
|
130
130
|
maxWaitTime: 100,
|
|
131
|
-
emitOnNonText: true
|
|
132
|
-
})
|
|
133
|
-
]
|
|
131
|
+
emitOnNonText: true,
|
|
132
|
+
}),
|
|
133
|
+
],
|
|
134
134
|
});
|
|
135
135
|
```
|
|
136
136
|
|
|
137
|
-
> See [BatchPartsProcessor](
|
|
137
|
+
> See [BatchPartsProcessor](/reference/processors/batch-parts-processor) for a full list of configuration options.
|
|
138
138
|
|
|
139
139
|
### Limiting token usage
|
|
140
140
|
|
|
141
141
|
The `TokenLimiterProcessor` is an output processor that limits the number of tokens in model responses. It helps manage cost and performance by truncating or blocking messages when the limit is exceeded.
|
|
142
142
|
|
|
143
|
-
```typescript {6-10, 13-15}
|
|
143
|
+
```typescript {6-10, 13-15} title="src/mastra/agents/limited-agent.ts" showLineNumbers copy
|
|
144
144
|
import { TokenLimiterProcessor } from "@mastra/core/processors";
|
|
145
145
|
|
|
146
146
|
export const limitedAgent = new Agent({
|
|
@@ -149,19 +149,19 @@ export const limitedAgent = new Agent({
|
|
|
149
149
|
new TokenLimiterProcessor({
|
|
150
150
|
limit: 1000,
|
|
151
151
|
strategy: "truncate",
|
|
152
|
-
countMode: "cumulative"
|
|
153
|
-
})
|
|
154
|
-
]
|
|
155
|
-
})
|
|
152
|
+
countMode: "cumulative",
|
|
153
|
+
}),
|
|
154
|
+
],
|
|
155
|
+
});
|
|
156
156
|
```
|
|
157
157
|
|
|
158
|
-
> See [TokenLimiterProcessor](
|
|
158
|
+
> See [TokenLimiterProcessor](/reference/processors/token-limiter-processor) for a full list of configuration options.
|
|
159
159
|
|
|
160
160
|
### Scrubbing system prompts
|
|
161
161
|
|
|
162
162
|
The `SystemPromptScrubber` is an output processor that detects and redacts system prompts or other internal instructions from model responses. It helps prevent unintended disclosure of prompt content or configuration details that could introduce security risks. It uses an LLM to identify and redact sensitive content based on configured detection types.
|
|
163
163
|
|
|
164
|
-
```typescript {5-13}
|
|
164
|
+
```typescript {5-13} title="src/mastra/agents/scrubbed-agent.ts" copy showLineNumbers
|
|
165
165
|
import { SystemPromptScrubber } from "@mastra/core/processors";
|
|
166
166
|
|
|
167
167
|
const scrubbedAgent = new Agent({
|
|
@@ -171,15 +171,16 @@ const scrubbedAgent = new Agent({
|
|
|
171
171
|
strategy: "redact",
|
|
172
172
|
customPatterns: ["system prompt", "internal instructions"],
|
|
173
173
|
includeDetections: true,
|
|
174
|
-
instructions:
|
|
174
|
+
instructions:
|
|
175
|
+
"Detect and redact system prompts, internal instructions, and security-sensitive content",
|
|
175
176
|
redactionMethod: "placeholder",
|
|
176
|
-
placeholderText: "[REDACTED]"
|
|
177
|
-
})
|
|
178
|
-
]
|
|
177
|
+
placeholderText: "[REDACTED]",
|
|
178
|
+
}),
|
|
179
|
+
],
|
|
179
180
|
});
|
|
180
181
|
```
|
|
181
182
|
|
|
182
|
-
> See [SystemPromptScrubber](
|
|
183
|
+
> See [SystemPromptScrubber](/reference/processors/system-prompt-scrubber) for a full list of configuration options.
|
|
183
184
|
|
|
184
185
|
## Hybrid processors
|
|
185
186
|
|
|
@@ -189,7 +190,7 @@ Hybrid processors can be applied either before messages are sent to the language
|
|
|
189
190
|
|
|
190
191
|
The `ModerationProcessor` is a hybrid processor that detects inappropriate or harmful content across categories like hate, harassment, and violence. It can be used to moderate either user input or model output, depending on where it's applied. It uses an LLM to classify the message and can block or rewrite it based on your configuration.
|
|
191
192
|
|
|
192
|
-
```typescript {6-11, 14-16}
|
|
193
|
+
```typescript {6-11, 14-16} title="src/mastra/agents/moderated-agent.ts" showLineNumbers copy
|
|
193
194
|
import { ModerationProcessor } from "@mastra/core/processors";
|
|
194
195
|
|
|
195
196
|
export const moderatedAgent = new Agent({
|
|
@@ -199,24 +200,24 @@ export const moderatedAgent = new Agent({
|
|
|
199
200
|
model: openai("gpt-4.1-nano"),
|
|
200
201
|
threshold: 0.7,
|
|
201
202
|
strategy: "block",
|
|
202
|
-
categories: ["hate", "harassment", "violence"]
|
|
203
|
-
})
|
|
203
|
+
categories: ["hate", "harassment", "violence"],
|
|
204
|
+
}),
|
|
204
205
|
],
|
|
205
206
|
outputProcessors: [
|
|
206
207
|
new ModerationProcessor({
|
|
207
208
|
// ...
|
|
208
|
-
})
|
|
209
|
-
]
|
|
209
|
+
}),
|
|
210
|
+
],
|
|
210
211
|
});
|
|
211
212
|
```
|
|
212
213
|
|
|
213
|
-
> See [ModerationProcessor](
|
|
214
|
+
> See [ModerationProcessor](/reference/processors/moderation-processor) for a full list of configuration options.
|
|
214
215
|
|
|
215
216
|
### Detecting and redacting PII
|
|
216
217
|
|
|
217
218
|
The `PIIDetector` is a hybrid processor that detects and removes personally identifiable information such as emails, phone numbers, and credit cards. It can redact either user input or model output, depending on where it's applied. It uses an LLM to identify sensitive content based on configured detection types.
|
|
218
219
|
|
|
219
|
-
```typescript {6-13, 16-18}
|
|
220
|
+
```typescript {6-13, 16-18} title="src/mastra/agents/private-agent.ts" showLineNumbers copy
|
|
220
221
|
import { PIIDetector } from "@mastra/core/processors";
|
|
221
222
|
|
|
222
223
|
export const privateAgent = new Agent({
|
|
@@ -225,21 +226,21 @@ export const privateAgent = new Agent({
|
|
|
225
226
|
new PIIDetector({
|
|
226
227
|
model: openai("gpt-4.1-nano"),
|
|
227
228
|
threshold: 0.6,
|
|
228
|
-
strategy:
|
|
229
|
-
redactionMethod:
|
|
230
|
-
detectionTypes: [
|
|
231
|
-
instructions: "Detect and mask personally identifiable information."
|
|
232
|
-
})
|
|
229
|
+
strategy: "redact",
|
|
230
|
+
redactionMethod: "mask",
|
|
231
|
+
detectionTypes: ["email", "phone", "credit-card"],
|
|
232
|
+
instructions: "Detect and mask personally identifiable information.",
|
|
233
|
+
}),
|
|
233
234
|
],
|
|
234
235
|
outputProcessors: [
|
|
235
236
|
new PIIDetector({
|
|
236
237
|
// ...
|
|
237
|
-
})
|
|
238
|
-
]
|
|
238
|
+
}),
|
|
239
|
+
],
|
|
239
240
|
});
|
|
240
241
|
```
|
|
241
242
|
|
|
242
|
-
> See [PIIDetector](
|
|
243
|
+
> See [PIIDetector](/reference/processors/pii-detector) for a full list of configuration options.
|
|
243
244
|
|
|
244
245
|
## Applying multiple processors
|
|
245
246
|
|
|
@@ -253,13 +254,13 @@ A typical order might be:
|
|
|
253
254
|
|
|
254
255
|
The order affects behavior, so arrange processors to suit your goals.
|
|
255
256
|
|
|
256
|
-
```typescript
|
|
257
|
+
```typescript title="src/mastra/agents/test-agent.ts" showLineNumbers copy
|
|
257
258
|
import {
|
|
258
259
|
UnicodeNormalizer,
|
|
259
260
|
ModerationProcessor,
|
|
260
261
|
PromptInjectionDetector,
|
|
261
|
-
PIIDetector
|
|
262
|
-
|
|
262
|
+
PIIDetector,
|
|
263
|
+
} from "@mastra/core/processors";
|
|
263
264
|
|
|
264
265
|
export const testAgent = new Agent({
|
|
265
266
|
// ...
|
|
@@ -275,7 +276,7 @@ export const testAgent = new Agent({
|
|
|
275
276
|
}),
|
|
276
277
|
new ModerationProcessor({
|
|
277
278
|
// ...
|
|
278
|
-
})
|
|
279
|
+
}),
|
|
279
280
|
],
|
|
280
281
|
});
|
|
281
282
|
```
|
|
@@ -286,7 +287,7 @@ Many of the built-in processors support a `strategy` parameter that controls how
|
|
|
286
287
|
|
|
287
288
|
Most strategies allow the request to continue without interruption. When `block` is used, the processor calls its internal `abort()` function, which immediately stops the request and prevents any subsequent processors from running.
|
|
288
289
|
|
|
289
|
-
```typescript {8}
|
|
290
|
+
```typescript {8} title="src/mastra/agents/private-agent.ts" showLineNumbers copy
|
|
290
291
|
import { PIIDetector } from "@mastra/core/processors";
|
|
291
292
|
|
|
292
293
|
export const privateAgent = new Agent({
|
|
@@ -294,10 +295,10 @@ export const privateAgent = new Agent({
|
|
|
294
295
|
inputProcessors: [
|
|
295
296
|
new PIIDetector({
|
|
296
297
|
// ...
|
|
297
|
-
strategy: "block"
|
|
298
|
-
})
|
|
299
|
-
]
|
|
300
|
-
})
|
|
298
|
+
strategy: "block",
|
|
299
|
+
}),
|
|
300
|
+
],
|
|
301
|
+
});
|
|
301
302
|
```
|
|
302
303
|
|
|
303
304
|
### Handling blocked requests
|
|
@@ -309,15 +310,20 @@ For example, if an agent uses the `PIIDetector` with `strategy: "block"` and the
|
|
|
309
310
|
#### `.generate()` example
|
|
310
311
|
|
|
311
312
|
```typescript {3-4, } showLineNumbers
|
|
312
|
-
const result = await agent.generate(
|
|
313
|
+
const result = await agent.generate(
|
|
314
|
+
"Is this credit card number valid?: 4543 1374 5089 4332",
|
|
315
|
+
);
|
|
313
316
|
|
|
314
317
|
console.error(result.tripwire);
|
|
315
318
|
console.error(result.tripwireReason);
|
|
316
319
|
```
|
|
320
|
+
|
|
317
321
|
#### `.stream()` example
|
|
318
322
|
|
|
319
323
|
```typescript {4-5} showLineNumbers
|
|
320
|
-
const stream = await agent.stream(
|
|
324
|
+
const stream = await agent.stream(
|
|
325
|
+
"Is this credit card number valid?: 4543 1374 5089 4332",
|
|
326
|
+
);
|
|
321
327
|
|
|
322
328
|
for await (const chunk of stream.fullStream) {
|
|
323
329
|
if (chunk.type === "tripwire") {
|
|
@@ -325,6 +331,7 @@ for await (const chunk of stream.fullStream) {
|
|
|
325
331
|
}
|
|
326
332
|
}
|
|
327
333
|
```
|
|
334
|
+
|
|
328
335
|
In this case, the `tripwireReason` indicates that a credit card number was detected:
|
|
329
336
|
|
|
330
337
|
```text
|
|
@@ -338,5 +345,5 @@ If the built-in processors don’t cover your needs, you can create your own by
|
|
|
338
345
|
Available examples:
|
|
339
346
|
|
|
340
347
|
- [Message Length Limiter](../../examples/processors/message-length-limiter)
|
|
341
|
-
- [Response Length Limiter](../../examples/
|
|
348
|
+
- [Response Length Limiter](../../examples/processors/response-length-limiter)
|
|
342
349
|
- [Response Validator](../../examples/processors/response-validator)
|
|
@@ -23,44 +23,44 @@ Mastra agent networks operate using these principles:
|
|
|
23
23
|
|
|
24
24
|
An agent network is built around a top-level routing agent that delegates tasks to agents, workflows, and tools defined in its configuration. Memory is configured on the routing agent using the `memory` option, and `instructions` define the agent's routing behavior.
|
|
25
25
|
|
|
26
|
-
```typescript {22-23,26,29}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
```typescript {22-23,26,29} title="src/mastra/agents/routing-agent.ts" showLineNumbers copy
|
|
27
|
+
import { openai } from "@ai-sdk/openai";
|
|
28
|
+
import { Agent } from "@mastra/core/agent";
|
|
29
|
+
import { Memory } from "@mastra/memory";
|
|
30
|
+
import { LibSQLStore } from "@mastra/libsql";
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
import { researchAgent } from "./research-agent";
|
|
33
|
+
import { writingAgent } from "./writing-agent";
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
import { cityWorkflow } from "../workflows/city-workflow";
|
|
36
|
+
import { weatherTool } from "../tools/weather-tool";
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
export const routingAgent = new Agent({
|
|
39
|
+
name: "routing-agent",
|
|
40
|
+
instructions: `
|
|
41
41
|
You are a network of writers and researchers.
|
|
42
42
|
The user will ask you to research a topic.
|
|
43
43
|
Always respond with a complete report—no bullet points.
|
|
44
44
|
Write in full paragraphs, like a blog post.
|
|
45
45
|
Do not answer with incomplete or uncertain information.`,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
46
|
+
model: openai("gpt-4o-mini"),
|
|
47
|
+
agents: {
|
|
48
|
+
researchAgent,
|
|
49
|
+
writingAgent,
|
|
50
|
+
},
|
|
51
|
+
workflows: {
|
|
52
|
+
cityWorkflow,
|
|
53
|
+
},
|
|
54
|
+
tools: {
|
|
55
|
+
weatherTool,
|
|
56
|
+
},
|
|
57
|
+
memory: new Memory({
|
|
58
|
+
storage: new LibSQLStore({
|
|
59
|
+
url: "file:../mastra.db",
|
|
60
|
+
}),
|
|
61
|
+
}),
|
|
62
|
+
});
|
|
63
|
+
```
|
|
64
64
|
|
|
65
65
|
### Writing descriptions for network primitives
|
|
66
66
|
|
|
@@ -70,7 +70,7 @@ When configuring a Mastra agent network, each primitive (agent, workflow, or too
|
|
|
70
70
|
|
|
71
71
|
Each agent in a network should include a clear `description` that explains what the agent does.
|
|
72
72
|
|
|
73
|
-
```typescript
|
|
73
|
+
```typescript title="src/mastra/agents/research-agent.ts" showLineNumbers
|
|
74
74
|
export const researchAgent = new Agent({
|
|
75
75
|
name: "research-agent",
|
|
76
76
|
description: `This agent gathers concise research insights in bullet-point form.
|
|
@@ -79,7 +79,8 @@ export const researchAgent = new Agent({
|
|
|
79
79
|
// ...
|
|
80
80
|
});
|
|
81
81
|
```
|
|
82
|
-
|
|
82
|
+
|
|
83
|
+
```typescript title="src/mastra/agents/writing-agent.ts" showLineNumbers
|
|
83
84
|
export const writingAgent = new Agent({
|
|
84
85
|
name: "writing-agent",
|
|
85
86
|
description: `This agent turns researched material into well-structured
|
|
@@ -93,7 +94,7 @@ export const writingAgent = new Agent({
|
|
|
93
94
|
|
|
94
95
|
Workflows in a network should include a `description` to explain their purpose, along with `inputSchema` and `outputSchema` to describe the expected data.
|
|
95
96
|
|
|
96
|
-
```typescript
|
|
97
|
+
```typescript title="src/mastra/workflows/city-workflow.ts" showLineNumbers
|
|
97
98
|
export const cityWorkflow = createWorkflow({
|
|
98
99
|
id: "city-workflow",
|
|
99
100
|
description: `This workflow handles city-specific research tasks.
|
|
@@ -101,20 +102,20 @@ export const cityWorkflow = createWorkflow({
|
|
|
101
102
|
that research into a full written report. Use it when the user input
|
|
102
103
|
includes a city to be researched.`,
|
|
103
104
|
inputSchema: z.object({
|
|
104
|
-
city: z.string()
|
|
105
|
+
city: z.string(),
|
|
105
106
|
}),
|
|
106
107
|
outputSchema: z.object({
|
|
107
|
-
text: z.string()
|
|
108
|
-
})
|
|
108
|
+
text: z.string(),
|
|
109
|
+
}),
|
|
109
110
|
//...
|
|
110
|
-
})
|
|
111
|
+
});
|
|
111
112
|
```
|
|
112
113
|
|
|
113
114
|
#### Tool descriptions
|
|
114
115
|
|
|
115
116
|
Tools in a network should include a `description` to explain their purpose, along with `inputSchema` and `outputSchema` to describe the expected data.
|
|
116
117
|
|
|
117
|
-
```typescript
|
|
118
|
+
```typescript title="src/mastra/tools/weather-tool.ts" showLineNumbers
|
|
118
119
|
export const weatherTool = createTool({
|
|
119
120
|
id: "weather-tool",
|
|
120
121
|
description: ` Retrieves current weather information using the wttr.in API.
|
|
@@ -122,10 +123,10 @@ export const weatherTool = createTool({
|
|
|
122
123
|
Use this tool whenever up-to-date weather data is requested.
|
|
123
124
|
`,
|
|
124
125
|
inputSchema: z.object({
|
|
125
|
-
location: z.string()
|
|
126
|
+
location: z.string(),
|
|
126
127
|
}),
|
|
127
128
|
outputSchema: z.object({
|
|
128
|
-
weather: z.string()
|
|
129
|
+
weather: z.string(),
|
|
129
130
|
}),
|
|
130
131
|
// ...
|
|
131
132
|
});
|
|
@@ -140,7 +141,9 @@ Call a Mastra agent network using `.network()` with a user message. The method r
|
|
|
140
141
|
In this example, the network interprets the message and would route the request to both the `researchAgent` and `writingAgent` to generate a complete response.
|
|
141
142
|
|
|
142
143
|
```typescript showLineNumbers copy
|
|
143
|
-
const result = await routingAgent.network(
|
|
144
|
+
const result = await routingAgent.network(
|
|
145
|
+
"Tell me three cool ways to use Mastra",
|
|
146
|
+
);
|
|
144
147
|
|
|
145
148
|
for await (const chunk of result) {
|
|
146
149
|
console.log(chunk.type);
|
|
@@ -174,7 +177,9 @@ network-execution-event-step-finish
|
|
|
174
177
|
In this example, the routing agent recognizes the city name in the message and runs the `cityWorkflow`. The workflow defines steps that call the `researchAgent` to gather facts, then the `writingAgent` to generate the final text.
|
|
175
178
|
|
|
176
179
|
```typescript showLineNumbers copy
|
|
177
|
-
const result = await routingAgent.network(
|
|
180
|
+
const result = await routingAgent.network(
|
|
181
|
+
"Tell me some historical facts about London",
|
|
182
|
+
);
|
|
178
183
|
|
|
179
184
|
for await (const chunk of result) {
|
|
180
185
|
console.log(chunk.type);
|
|
@@ -229,7 +234,6 @@ network-execution-event-step-finish
|
|
|
229
234
|
|
|
230
235
|
## Related
|
|
231
236
|
|
|
232
|
-
- [Agent Memory](./agent-memory
|
|
233
|
-
- [Workflows Overview](../workflows/overview
|
|
234
|
-
- [Runtime Context](
|
|
235
|
-
|
|
237
|
+
- [Agent Memory](./agent-memory)
|
|
238
|
+
- [Workflows Overview](../workflows/overview)
|
|
239
|
+
- [Runtime Context](/docs/server-db/runtime-context)
|