@mastra/mcp-docs-server 0.13.37 → 0.13.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +2 -0
- package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +2 -0
- package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +8 -8
- package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +2 -0
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +23 -23
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +69 -69
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +25 -25
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +27 -27
- package/.docs/organized/changelogs/%40mastra%2Freact.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +23 -23
- package/.docs/organized/changelogs/create-mastra.md +5 -5
- package/.docs/organized/changelogs/mastra.md +17 -17
- package/.docs/raw/agents/adding-voice.mdx +20 -9
- package/.docs/raw/agents/agent-memory.mdx +55 -39
- package/.docs/raw/agents/guardrails.mdx +68 -61
- package/.docs/raw/agents/networks.mdx +50 -46
- package/.docs/raw/agents/overview.mdx +125 -88
- package/.docs/raw/agents/using-tools.mdx +14 -15
- package/.docs/raw/auth/auth0.mdx +28 -27
- package/.docs/raw/auth/clerk.mdx +22 -20
- package/.docs/raw/auth/firebase.mdx +42 -39
- package/.docs/raw/auth/index.mdx +1 -1
- package/.docs/raw/auth/jwt.mdx +18 -16
- package/.docs/raw/auth/supabase.mdx +20 -18
- package/.docs/raw/auth/workos.mdx +32 -26
- package/.docs/raw/community/contributing-templates.mdx +7 -7
- package/.docs/raw/community/discord.mdx +2 -2
- package/.docs/raw/community/licensing.mdx +1 -1
- package/.docs/raw/course/03-agent-memory/26-updating-mastra-export-comprehensive.md +0 -32
- package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +41 -22
- package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +48 -29
- package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +52 -24
- package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +86 -55
- package/.docs/raw/deployment/cloud-providers/index.mdx +16 -13
- package/.docs/raw/deployment/monorepo.mdx +32 -42
- package/.docs/raw/deployment/overview.mdx +15 -15
- package/.docs/raw/deployment/server-deployment.mdx +18 -23
- package/.docs/raw/deployment/serverless-platforms/cloudflare-deployer.mdx +16 -17
- package/.docs/raw/deployment/serverless-platforms/index.mdx +15 -12
- package/.docs/raw/deployment/serverless-platforms/netlify-deployer.mdx +14 -23
- package/.docs/raw/deployment/serverless-platforms/vercel-deployer.mdx +16 -23
- package/.docs/raw/deployment/web-framework.mdx +14 -14
- package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +138 -145
- package/.docs/raw/frameworks/agentic-uis/assistant-ui.mdx +54 -43
- package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +51 -36
- package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +161 -120
- package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +59 -48
- package/.docs/raw/frameworks/servers/express.mdx +45 -44
- package/.docs/raw/frameworks/web-frameworks/astro.mdx +245 -162
- package/.docs/raw/frameworks/web-frameworks/next-js.mdx +112 -69
- package/.docs/raw/frameworks/web-frameworks/sveltekit.mdx +189 -164
- package/.docs/raw/frameworks/web-frameworks/vite-react.mdx +94 -81
- package/.docs/raw/getting-started/installation.mdx +164 -133
- package/.docs/raw/getting-started/mcp-docs-server.mdx +36 -39
- package/.docs/raw/getting-started/project-structure.mdx +34 -42
- package/.docs/raw/getting-started/studio.mdx +40 -58
- package/.docs/raw/getting-started/templates.mdx +22 -27
- package/.docs/raw/index.mdx +9 -9
- package/.docs/raw/mastra-cloud/dashboard.mdx +10 -10
- package/.docs/raw/mastra-cloud/observability.mdx +7 -8
- package/.docs/raw/mastra-cloud/overview.mdx +16 -22
- package/.docs/raw/mastra-cloud/setting-up.mdx +33 -20
- package/.docs/raw/memory/conversation-history.mdx +2 -2
- package/.docs/raw/memory/overview.mdx +21 -23
- package/.docs/raw/memory/semantic-recall.mdx +14 -13
- package/.docs/raw/memory/storage/memory-with-libsql.mdx +27 -28
- package/.docs/raw/memory/storage/memory-with-pg.mdx +26 -26
- package/.docs/raw/memory/storage/memory-with-upstash.mdx +26 -27
- package/.docs/raw/memory/threads-and-resources.mdx +23 -20
- package/.docs/raw/memory/working-memory.mdx +27 -38
- package/.docs/raw/observability/ai-tracing/exporters/arize.mdx +30 -29
- package/.docs/raw/observability/ai-tracing/exporters/braintrust.mdx +8 -9
- package/.docs/raw/observability/ai-tracing/exporters/cloud.mdx +17 -16
- package/.docs/raw/observability/ai-tracing/exporters/default.mdx +31 -32
- package/.docs/raw/observability/ai-tracing/exporters/langfuse.mdx +18 -17
- package/.docs/raw/observability/ai-tracing/exporters/langsmith.mdx +14 -14
- package/.docs/raw/observability/ai-tracing/exporters/otel.mdx +56 -46
- package/.docs/raw/observability/ai-tracing/overview.mdx +145 -122
- package/.docs/raw/observability/ai-tracing/processors/sensitive-data-filter.mdx +57 -36
- package/.docs/raw/observability/logging.mdx +14 -17
- package/.docs/raw/observability/nextjs-tracing.mdx +5 -5
- package/.docs/raw/observability/otel-tracing.mdx +17 -18
- package/.docs/raw/observability/overview.mdx +14 -10
- package/.docs/raw/rag/chunking-and-embedding.mdx +10 -8
- package/.docs/raw/rag/overview.mdx +5 -5
- package/.docs/raw/rag/retrieval.mdx +125 -107
- package/.docs/raw/rag/vector-databases.mdx +232 -223
- package/.docs/raw/reference/agents/agent.mdx +54 -41
- package/.docs/raw/reference/agents/generate.mdx +367 -261
- package/.docs/raw/reference/agents/generateLegacy.mdx +260 -178
- package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +7 -5
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +7 -5
- package/.docs/raw/reference/agents/getDescription.mdx +3 -2
- package/.docs/raw/reference/agents/getInstructions.mdx +7 -5
- package/.docs/raw/reference/agents/getLLM.mdx +11 -7
- package/.docs/raw/reference/agents/getMemory.mdx +7 -5
- package/.docs/raw/reference/agents/getModel.mdx +7 -5
- package/.docs/raw/reference/agents/getScorers.mdx +7 -5
- package/.docs/raw/reference/agents/getTools.mdx +7 -5
- package/.docs/raw/reference/agents/getVoice.mdx +7 -5
- package/.docs/raw/reference/agents/getWorkflows.mdx +7 -5
- package/.docs/raw/reference/agents/listAgents.mdx +6 -4
- package/.docs/raw/reference/agents/network.mdx +171 -116
- package/.docs/raw/reference/auth/auth0.mdx +18 -14
- package/.docs/raw/reference/auth/clerk.mdx +15 -12
- package/.docs/raw/reference/auth/firebase.mdx +23 -16
- package/.docs/raw/reference/auth/jwt.mdx +7 -6
- package/.docs/raw/reference/auth/supabase.mdx +13 -10
- package/.docs/raw/reference/auth/workos.mdx +17 -13
- package/.docs/raw/reference/cli/create-mastra.mdx +61 -44
- package/.docs/raw/reference/cli/mastra.mdx +11 -11
- package/.docs/raw/reference/client-js/agents.mdx +40 -43
- package/.docs/raw/reference/client-js/error-handling.mdx +1 -1
- package/.docs/raw/reference/client-js/logs.mdx +1 -1
- package/.docs/raw/reference/client-js/mastra-client.mdx +21 -13
- package/.docs/raw/reference/client-js/memory.mdx +6 -2
- package/.docs/raw/reference/client-js/observability.mdx +10 -9
- package/.docs/raw/reference/client-js/telemetry.mdx +1 -1
- package/.docs/raw/reference/client-js/tools.mdx +1 -1
- package/.docs/raw/reference/client-js/vectors.mdx +1 -1
- package/.docs/raw/reference/client-js/workflows-legacy.mdx +1 -1
- package/.docs/raw/reference/client-js/workflows.mdx +7 -7
- package/.docs/raw/reference/core/getAgent.mdx +6 -5
- package/.docs/raw/reference/core/getAgentById.mdx +5 -4
- package/.docs/raw/reference/core/getAgents.mdx +3 -3
- package/.docs/raw/reference/core/getDeployer.mdx +4 -3
- package/.docs/raw/reference/core/getLogger.mdx +4 -3
- package/.docs/raw/reference/core/getLogs.mdx +10 -6
- package/.docs/raw/reference/core/getLogsByRunId.mdx +8 -5
- package/.docs/raw/reference/core/getMCPServer.mdx +8 -5
- package/.docs/raw/reference/core/getMCPServers.mdx +4 -3
- package/.docs/raw/reference/core/getMemory.mdx +4 -3
- package/.docs/raw/reference/core/getScorer.mdx +15 -12
- package/.docs/raw/reference/core/getScorerByName.mdx +12 -9
- package/.docs/raw/reference/core/getScorers.mdx +3 -2
- package/.docs/raw/reference/core/getServer.mdx +4 -3
- package/.docs/raw/reference/core/getStorage.mdx +4 -3
- package/.docs/raw/reference/core/getTelemetry.mdx +4 -3
- package/.docs/raw/reference/core/getVector.mdx +6 -4
- package/.docs/raw/reference/core/getVectors.mdx +4 -3
- package/.docs/raw/reference/core/getWorkflow.mdx +7 -4
- package/.docs/raw/reference/core/getWorkflows.mdx +5 -3
- package/.docs/raw/reference/core/mastra-class.mdx +16 -16
- package/.docs/raw/reference/core/setLogger.mdx +6 -4
- package/.docs/raw/reference/core/setStorage.mdx +4 -4
- package/.docs/raw/reference/core/setTelemetry.mdx +4 -3
- package/.docs/raw/reference/deployer/cloudflare.mdx +11 -7
- package/.docs/raw/reference/deployer/deployer.mdx +2 -1
- package/.docs/raw/reference/deployer/netlify.mdx +4 -4
- package/.docs/raw/reference/deployer/vercel.mdx +6 -6
- package/.docs/raw/reference/evals/answer-relevancy.mdx +4 -5
- package/.docs/raw/reference/evals/bias.mdx +4 -5
- package/.docs/raw/reference/evals/completeness.mdx +4 -5
- package/.docs/raw/reference/evals/content-similarity.mdx +4 -5
- package/.docs/raw/reference/evals/context-position.mdx +4 -5
- package/.docs/raw/reference/evals/context-precision.mdx +4 -5
- package/.docs/raw/reference/evals/context-relevancy.mdx +4 -5
- package/.docs/raw/reference/evals/contextual-recall.mdx +4 -5
- package/.docs/raw/reference/evals/faithfulness.mdx +4 -5
- package/.docs/raw/reference/evals/hallucination.mdx +4 -6
- package/.docs/raw/reference/evals/keyword-coverage.mdx +4 -5
- package/.docs/raw/reference/evals/prompt-alignment.mdx +4 -6
- package/.docs/raw/reference/evals/summarization.mdx +4 -6
- package/.docs/raw/reference/evals/textual-difference.mdx +4 -5
- package/.docs/raw/reference/evals/tone-consistency.mdx +4 -7
- package/.docs/raw/reference/evals/toxicity.mdx +4 -5
- package/.docs/raw/reference/index.mdx +3 -3
- package/.docs/raw/reference/legacyWorkflows/after.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/afterEvent.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/commit.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/createRun.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/else.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/events.mdx +7 -7
- package/.docs/raw/reference/legacyWorkflows/execute.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/if.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/resume.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/resumeWithEvent.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/snapshots.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/start.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/step-class.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/step-condition.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/step-function.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/step-options.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/step-retries.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/suspend.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/then.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/until.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/watch.mdx +3 -3
- package/.docs/raw/reference/legacyWorkflows/while.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/workflow.mdx +7 -7
- package/.docs/raw/reference/memory/createThread.mdx +10 -10
- package/.docs/raw/reference/memory/deleteMessages.mdx +7 -5
- package/.docs/raw/reference/memory/getThreadById.mdx +6 -5
- package/.docs/raw/reference/memory/getThreadsByResourceId.mdx +11 -10
- package/.docs/raw/reference/memory/getThreadsByResourceIdPaginated.mdx +10 -9
- package/.docs/raw/reference/memory/{Memory.mdx → memory-class.mdx} +53 -46
- package/.docs/raw/reference/memory/query.mdx +39 -25
- package/.docs/raw/reference/observability/ai-tracing/ai-tracing.mdx +9 -5
- package/.docs/raw/reference/observability/ai-tracing/configuration.mdx +26 -22
- package/.docs/raw/reference/observability/ai-tracing/exporters/arize.mdx +16 -12
- package/.docs/raw/reference/observability/ai-tracing/exporters/braintrust.mdx +14 -14
- package/.docs/raw/reference/observability/ai-tracing/exporters/cloud-exporter.mdx +16 -11
- package/.docs/raw/reference/observability/ai-tracing/exporters/console-exporter.mdx +10 -6
- package/.docs/raw/reference/observability/ai-tracing/exporters/default-exporter.mdx +23 -15
- package/.docs/raw/reference/observability/ai-tracing/exporters/langfuse.mdx +6 -6
- package/.docs/raw/reference/observability/ai-tracing/exporters/langsmith.mdx +13 -13
- package/.docs/raw/reference/observability/ai-tracing/exporters/otel.mdx +44 -36
- package/.docs/raw/reference/observability/ai-tracing/interfaces.mdx +115 -106
- package/.docs/raw/reference/observability/ai-tracing/processors/sensitive-data-filter.mdx +37 -32
- package/.docs/raw/reference/observability/ai-tracing/span.mdx +29 -26
- package/.docs/raw/reference/observability/logging/pino-logger.mdx +13 -15
- package/.docs/raw/reference/observability/otel-tracing/otel-config.mdx +2 -2
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-ax.mdx +3 -3
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-phoenix.mdx +2 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/dash0.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/index.mdx +12 -14
- package/.docs/raw/reference/observability/otel-tracing/providers/keywordsai.mdx +3 -3
- package/.docs/raw/reference/observability/otel-tracing/providers/laminar.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/langfuse.mdx +4 -4
- package/.docs/raw/reference/observability/otel-tracing/providers/langsmith.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/langwatch.mdx +2 -2
- package/.docs/raw/reference/observability/otel-tracing/providers/new-relic.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/signoz.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/traceloop.mdx +1 -1
- package/.docs/raw/reference/processors/batch-parts-processor.mdx +13 -10
- package/.docs/raw/reference/processors/language-detector.mdx +27 -17
- package/.docs/raw/reference/processors/moderation-processor.mdx +26 -17
- package/.docs/raw/reference/processors/pii-detector.mdx +28 -18
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +25 -17
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +26 -17
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +22 -15
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +13 -12
- package/.docs/raw/reference/rag/chunk.mdx +41 -23
- package/.docs/raw/reference/rag/database-config.mdx +56 -38
- package/.docs/raw/reference/rag/document.mdx +1 -1
- package/.docs/raw/reference/rag/embeddings.mdx +1 -1
- package/.docs/raw/reference/rag/extract-params.mdx +1 -1
- package/.docs/raw/reference/rag/graph-rag.mdx +1 -1
- package/.docs/raw/reference/rag/metadata-filters.mdx +23 -26
- package/.docs/raw/reference/rag/rerank.mdx +1 -1
- package/.docs/raw/reference/rag/rerankWithScorer.mdx +2 -2
- package/.docs/raw/reference/scorers/answer-relevancy.mdx +35 -17
- package/.docs/raw/reference/scorers/answer-similarity.mdx +84 -68
- package/.docs/raw/reference/scorers/bias.mdx +22 -19
- package/.docs/raw/reference/scorers/completeness.mdx +21 -16
- package/.docs/raw/reference/scorers/content-similarity.mdx +12 -10
- package/.docs/raw/reference/scorers/context-precision.mdx +73 -64
- package/.docs/raw/reference/scorers/context-relevance.mdx +142 -126
- package/.docs/raw/reference/scorers/create-scorer.mdx +93 -61
- package/.docs/raw/reference/scorers/faithfulness.mdx +21 -13
- package/.docs/raw/reference/scorers/hallucination.mdx +17 -12
- package/.docs/raw/reference/scorers/keyword-coverage.mdx +32 -27
- package/.docs/raw/reference/scorers/mastra-scorer.mdx +39 -33
- package/.docs/raw/reference/scorers/noise-sensitivity.mdx +203 -152
- package/.docs/raw/reference/scorers/prompt-alignment.mdx +186 -132
- package/.docs/raw/reference/scorers/run-experiment.mdx +40 -31
- package/.docs/raw/reference/scorers/textual-difference.mdx +25 -26
- package/.docs/raw/reference/scorers/tone-consistency.mdx +29 -26
- package/.docs/raw/reference/scorers/tool-call-accuracy.mdx +180 -176
- package/.docs/raw/reference/scorers/toxicity.mdx +35 -31
- package/.docs/raw/reference/storage/cloudflare-d1.mdx +1 -1
- package/.docs/raw/reference/storage/cloudflare.mdx +1 -1
- package/.docs/raw/reference/storage/dynamodb.mdx +1 -1
- package/.docs/raw/reference/storage/lance.mdx +1 -1
- package/.docs/raw/reference/storage/libsql.mdx +2 -2
- package/.docs/raw/reference/storage/mongodb.mdx +4 -5
- package/.docs/raw/reference/storage/mssql.mdx +5 -4
- package/.docs/raw/reference/storage/postgresql.mdx +35 -33
- package/.docs/raw/reference/storage/upstash.mdx +6 -5
- package/.docs/raw/reference/streaming/ChunkType.mdx +788 -314
- package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +265 -109
- package/.docs/raw/reference/streaming/agents/stream.mdx +375 -266
- package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +233 -162
- package/.docs/raw/reference/streaming/workflows/observeStream.mdx +4 -4
- package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +5 -5
- package/.docs/raw/reference/streaming/workflows/resumeStreamVNext.mdx +24 -20
- package/.docs/raw/reference/streaming/workflows/stream.mdx +35 -26
- package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +36 -27
- package/.docs/raw/reference/templates/overview.mdx +16 -39
- package/.docs/raw/reference/tools/client.mdx +1 -1
- package/.docs/raw/reference/tools/create-tool.mdx +45 -35
- package/.docs/raw/reference/tools/document-chunker-tool.mdx +2 -2
- package/.docs/raw/reference/tools/graph-rag-tool.mdx +12 -12
- package/.docs/raw/reference/tools/mcp-client.mdx +70 -64
- package/.docs/raw/reference/tools/mcp-server.mdx +91 -78
- package/.docs/raw/reference/tools/vector-query-tool.mdx +48 -38
- package/.docs/raw/reference/vectors/astra.mdx +1 -1
- package/.docs/raw/reference/vectors/chroma.mdx +25 -19
- package/.docs/raw/reference/vectors/couchbase.mdx +4 -4
- package/.docs/raw/reference/vectors/lance.mdx +5 -6
- package/.docs/raw/reference/vectors/libsql.mdx +1 -1
- package/.docs/raw/reference/vectors/mongodb.mdx +1 -1
- package/.docs/raw/reference/vectors/opensearch.mdx +1 -1
- package/.docs/raw/reference/vectors/pg.mdx +8 -4
- package/.docs/raw/reference/vectors/pinecone.mdx +1 -1
- package/.docs/raw/reference/vectors/qdrant.mdx +1 -1
- package/.docs/raw/reference/vectors/s3vectors.mdx +35 -27
- package/.docs/raw/reference/vectors/turbopuffer.mdx +1 -1
- package/.docs/raw/reference/vectors/upstash.mdx +33 -25
- package/.docs/raw/reference/vectors/vectorize.mdx +1 -1
- package/.docs/raw/reference/voice/azure.mdx +1 -1
- package/.docs/raw/reference/voice/cloudflare.mdx +1 -1
- package/.docs/raw/reference/voice/composite-voice.mdx +1 -1
- package/.docs/raw/reference/voice/deepgram.mdx +1 -1
- package/.docs/raw/reference/voice/elevenlabs.mdx +1 -1
- package/.docs/raw/reference/voice/google-gemini-live.mdx +6 -4
- package/.docs/raw/reference/voice/google.mdx +1 -1
- package/.docs/raw/reference/voice/mastra-voice.mdx +1 -1
- package/.docs/raw/reference/voice/murf.mdx +1 -1
- package/.docs/raw/reference/voice/openai-realtime.mdx +1 -1
- package/.docs/raw/reference/voice/openai.mdx +1 -1
- package/.docs/raw/reference/voice/playai.mdx +1 -1
- package/.docs/raw/reference/voice/sarvam.mdx +1 -1
- package/.docs/raw/reference/voice/speechify.mdx +1 -1
- package/.docs/raw/reference/voice/voice.addInstructions.mdx +1 -1
- package/.docs/raw/reference/voice/voice.addTools.mdx +1 -1
- package/.docs/raw/reference/voice/voice.answer.mdx +1 -1
- package/.docs/raw/reference/voice/voice.close.mdx +1 -1
- package/.docs/raw/reference/voice/voice.connect.mdx +1 -1
- package/.docs/raw/reference/voice/voice.events.mdx +1 -1
- package/.docs/raw/reference/voice/voice.getSpeakers.mdx +23 -30
- package/.docs/raw/reference/voice/voice.listen.mdx +1 -1
- package/.docs/raw/reference/voice/voice.off.mdx +1 -1
- package/.docs/raw/reference/voice/voice.on.mdx +1 -1
- package/.docs/raw/reference/voice/voice.send.mdx +1 -1
- package/.docs/raw/reference/voice/voice.speak.mdx +1 -1
- package/.docs/raw/reference/voice/voice.updateConfig.mdx +1 -1
- package/.docs/raw/reference/workflows/run-methods/cancel.mdx +4 -3
- package/.docs/raw/reference/workflows/run-methods/resume.mdx +49 -34
- package/.docs/raw/reference/workflows/run-methods/start.mdx +43 -31
- package/.docs/raw/reference/workflows/run-methods/watch.mdx +7 -8
- package/.docs/raw/reference/workflows/run.mdx +7 -10
- package/.docs/raw/reference/workflows/step.mdx +15 -12
- package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +7 -7
- package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/map.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +5 -5
- package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +3 -3
- package/.docs/raw/reference/workflows/workflow.mdx +13 -10
- package/.docs/raw/scorers/custom-scorers.mdx +58 -48
- package/.docs/raw/scorers/evals-old-api/custom-eval.mdx +6 -8
- package/.docs/raw/scorers/evals-old-api/overview.mdx +8 -8
- package/.docs/raw/scorers/evals-old-api/running-in-ci.mdx +9 -9
- package/.docs/raw/scorers/evals-old-api/textual-evals.mdx +5 -5
- package/.docs/raw/scorers/off-the-shelf-scorers.mdx +3 -1
- package/.docs/raw/scorers/overview.mdx +20 -19
- package/.docs/raw/server-db/custom-api-routes.mdx +8 -8
- package/.docs/raw/server-db/mastra-client.mdx +56 -54
- package/.docs/raw/server-db/middleware.mdx +11 -7
- package/.docs/raw/server-db/production-server.mdx +5 -7
- package/.docs/raw/server-db/runtime-context.mdx +41 -38
- package/.docs/raw/server-db/storage.mdx +82 -87
- package/.docs/raw/streaming/events.mdx +24 -16
- package/.docs/raw/streaming/overview.mdx +17 -18
- package/.docs/raw/streaming/tool-streaming.mdx +9 -10
- package/.docs/raw/streaming/workflow-streaming.mdx +14 -12
- package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -2
- package/.docs/raw/tools-mcp/mcp-overview.mdx +92 -102
- package/.docs/raw/tools-mcp/overview.mdx +9 -14
- package/.docs/raw/voice/overview.mdx +273 -250
- package/.docs/raw/voice/speech-to-speech.mdx +14 -12
- package/.docs/raw/voice/speech-to-text.mdx +2 -2
- package/.docs/raw/voice/text-to-speech.mdx +2 -2
- package/.docs/raw/workflows/agents-and-tools.mdx +29 -28
- package/.docs/raw/workflows/control-flow.mdx +24 -24
- package/.docs/raw/workflows/error-handling.mdx +15 -17
- package/.docs/raw/workflows/human-in-the-loop.mdx +39 -39
- package/.docs/raw/workflows/inngest-workflow.mdx +33 -29
- package/.docs/raw/workflows/input-data-mapping.mdx +9 -9
- package/.docs/raw/workflows/overview.mdx +60 -60
- package/.docs/raw/workflows/snapshots.mdx +54 -36
- package/.docs/raw/workflows/suspend-and-resume.mdx +52 -57
- package/.docs/raw/workflows-legacy/control-flow.mdx +15 -17
- package/.docs/raw/workflows-legacy/dynamic-workflows.mdx +3 -1
- package/.docs/raw/workflows-legacy/error-handling.mdx +8 -6
- package/.docs/raw/workflows-legacy/nested-workflows.mdx +6 -0
- package/.docs/raw/workflows-legacy/overview.mdx +28 -26
- package/.docs/raw/workflows-legacy/runtime-variables.mdx +4 -2
- package/.docs/raw/workflows-legacy/steps.mdx +5 -3
- package/.docs/raw/workflows-legacy/suspend-and-resume.mdx +10 -8
- package/.docs/raw/workflows-legacy/variables.mdx +10 -8
- package/CHANGELOG.md +14 -0
- package/package.json +5 -5
- package/.docs/raw/memory/storage/memory-with-mongodb.mdx +0 -148
|
@@ -1,24 +1,32 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "
|
|
2
|
+
title: "Using Agents | Agents | Mastra Docs"
|
|
3
3
|
description: Overview of agents in Mastra, detailing their capabilities and how they interact with tools, workflows, and external systems.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import
|
|
6
|
+
import Tabs from "@theme/Tabs";
|
|
7
|
+
import TabItem from "@theme/TabItem";
|
|
8
|
+
import Steps from "@site/src/components/Steps";
|
|
9
|
+
import StepItem from "@site/src/components/StepItem";
|
|
7
10
|
|
|
8
11
|
# Using Agents
|
|
9
12
|
|
|
10
13
|
Agents use LLMs and tools to solve open-ended tasks. They reason about goals, decide which tools to use, retain conversation memory, and iterate internally until the model emits a final answer or an optional stop condition is met. Agents produce structured responses you can render in your UI or process programmatically. Use agents directly or compose them into workflows or agent networks.
|
|
11
14
|
|
|
12
|
-

|
|
13
16
|
|
|
14
|
-
|
|
17
|
+
:::tip[Watch an introduction]
|
|
18
|
+
|
|
19
|
+
An introduction to agents, and how they compare to workflows on [YouTube (7 minutes)](https://youtu.be/0jg2g3sNvgw)
|
|
20
|
+
|
|
21
|
+
:::
|
|
15
22
|
|
|
16
23
|
## Setting up agents
|
|
17
24
|
|
|
18
|
-
<Tabs
|
|
19
|
-
<
|
|
25
|
+
<Tabs>
|
|
26
|
+
<TabItem value="mastra-model-router" label="Model router">
|
|
20
27
|
<Steps>
|
|
21
|
-
|
|
28
|
+
|
|
29
|
+
<StepItem>
|
|
22
30
|
|
|
23
31
|
Add the Mastra core package to your project:
|
|
24
32
|
|
|
@@ -26,35 +34,46 @@ Add the Mastra core package to your project:
|
|
|
26
34
|
npm install @mastra/core
|
|
27
35
|
```
|
|
28
36
|
|
|
29
|
-
|
|
37
|
+
</StepItem>
|
|
38
|
+
|
|
39
|
+
<StepItem>
|
|
30
40
|
|
|
31
41
|
Mastra's model router auto-detects environment variables for your chosen provider. For OpenAI, set `OPENAI_API_KEY`:
|
|
32
42
|
|
|
33
|
-
```bash
|
|
43
|
+
```bash title=".env" copy
|
|
34
44
|
OPENAI_API_KEY=<your-api-key>
|
|
35
45
|
```
|
|
36
46
|
|
|
37
|
-
|
|
47
|
+
:::note
|
|
48
|
+
|
|
49
|
+
Mastra supports more than 600 models. Choose from the [full list](/models).
|
|
38
50
|
|
|
39
|
-
|
|
51
|
+
:::
|
|
52
|
+
|
|
53
|
+
</StepItem>
|
|
54
|
+
|
|
55
|
+
<StepItem>
|
|
40
56
|
|
|
41
57
|
Create an agent by instantiating the `Agent` class with system `instructions` and a `model`:
|
|
42
58
|
|
|
43
|
-
```typescript
|
|
59
|
+
```typescript title="src/mastra/agents/test-agent.ts" copy
|
|
44
60
|
import { Agent } from "@mastra/core/agent";
|
|
45
61
|
|
|
46
62
|
export const testAgent = new Agent({
|
|
47
63
|
name: "test-agent",
|
|
48
64
|
instructions: "You are a helpful assistant.",
|
|
49
|
-
model: "openai/gpt-4o-mini"
|
|
65
|
+
model: "openai/gpt-4o-mini",
|
|
50
66
|
});
|
|
51
67
|
```
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
68
|
+
|
|
69
|
+
</StepItem>
|
|
70
|
+
|
|
71
|
+
</Steps>
|
|
72
|
+
</TabItem>
|
|
73
|
+
<TabItem value="vercel-ai-sdk" label="Vercel AI SDK">
|
|
55
74
|
<Steps>
|
|
56
75
|
|
|
57
|
-
|
|
76
|
+
<StepItem>
|
|
58
77
|
|
|
59
78
|
Include the Mastra core package alongside the Vercel AI SDK provider you want to use:
|
|
60
79
|
|
|
@@ -62,35 +81,45 @@ Include the Mastra core package alongside the Vercel AI SDK provider you want to
|
|
|
62
81
|
npm install @mastra/core @ai-sdk/openai
|
|
63
82
|
```
|
|
64
83
|
|
|
65
|
-
|
|
84
|
+
</StepItem>
|
|
85
|
+
|
|
86
|
+
<StepItem>
|
|
66
87
|
|
|
67
88
|
Set the corresponding environment variable for your provider. For OpenAI via the AI SDK:
|
|
68
89
|
|
|
69
|
-
```bash
|
|
90
|
+
```bash title=".env" copy
|
|
70
91
|
OPENAI_API_KEY=<your-api-key>
|
|
71
92
|
```
|
|
72
93
|
|
|
73
|
-
|
|
94
|
+
:::note
|
|
95
|
+
|
|
96
|
+
See the [AI SDK Providers](https://ai-sdk.dev/providers/ai-sdk-providers) in the Vercel AI SDK docs for additional configuration options.
|
|
97
|
+
|
|
98
|
+
:::
|
|
74
99
|
|
|
75
|
-
|
|
100
|
+
</StepItem>
|
|
101
|
+
|
|
102
|
+
<StepItem>
|
|
76
103
|
|
|
77
104
|
To create an agent in Mastra, use the `Agent` class. Every agent must include `instructions` to define its behavior, and a `model` parameter to specify the LLM provider and model. When using the Vercel AI SDK, provide the client to your agent's `model` field:
|
|
78
105
|
|
|
79
|
-
```typescript
|
|
106
|
+
```typescript title="src/mastra/agents/test-agent.ts" copy
|
|
80
107
|
import { openai } from "@ai-sdk/openai";
|
|
81
108
|
import { Agent } from "@mastra/core/agent";
|
|
82
109
|
|
|
83
110
|
export const testAgent = new Agent({
|
|
84
111
|
name: "test-agent",
|
|
85
112
|
instructions: "You are a helpful assistant.",
|
|
86
|
-
model: openai("gpt-4o-mini")
|
|
113
|
+
model: openai("gpt-4o-mini"),
|
|
87
114
|
});
|
|
88
115
|
```
|
|
116
|
+
|
|
117
|
+
</StepItem>
|
|
89
118
|
</Steps>
|
|
90
|
-
</
|
|
119
|
+
</TabItem>
|
|
91
120
|
</Tabs>
|
|
92
121
|
|
|
93
|
-
|
|
122
|
+
### Instruction formats
|
|
94
123
|
|
|
95
124
|
Instructions define the agent's behavior, personality, and capabilities.
|
|
96
125
|
They are system-level prompts that establish the agent's core identity and expertise.
|
|
@@ -99,23 +128,23 @@ Instructions can be provided in multiple formats for greater flexibility. The ex
|
|
|
99
128
|
|
|
100
129
|
```typescript copy
|
|
101
130
|
// String (most common)
|
|
102
|
-
instructions: "You are a helpful assistant."
|
|
131
|
+
instructions: "You are a helpful assistant.";
|
|
103
132
|
|
|
104
133
|
// Array of strings
|
|
105
134
|
instructions: [
|
|
106
135
|
"You are a helpful assistant.",
|
|
107
136
|
"Always be polite.",
|
|
108
|
-
"Provide detailed answers."
|
|
109
|
-
]
|
|
137
|
+
"Provide detailed answers.",
|
|
138
|
+
];
|
|
110
139
|
|
|
111
140
|
// Array of system messages
|
|
112
141
|
instructions: [
|
|
113
142
|
{ role: "system", content: "You are a helpful assistant." },
|
|
114
|
-
{ role: "system", content: "You have expertise in TypeScript." }
|
|
115
|
-
]
|
|
143
|
+
{ role: "system", content: "You have expertise in TypeScript." },
|
|
144
|
+
];
|
|
116
145
|
```
|
|
117
146
|
|
|
118
|
-
|
|
147
|
+
### Provider-specific options
|
|
119
148
|
|
|
120
149
|
Each model provider also enables a few different options, including prompt caching and configuring reasoning. We provide a `providerOptions` flag to manage these. You can set `providerOptions` on the instruction level to set different caching strategy per system instruction/prompt.
|
|
121
150
|
|
|
@@ -132,15 +161,15 @@ instructions: {
|
|
|
132
161
|
}
|
|
133
162
|
```
|
|
134
163
|
|
|
135
|
-
> See the [Agent reference doc](
|
|
164
|
+
> See the [Agent reference doc](/reference/agents/agent) for more information.
|
|
136
165
|
|
|
137
166
|
### Registering an agent
|
|
138
167
|
|
|
139
168
|
Register your agent in the Mastra instance to make it available throughout your application. Once registered, it can be called from workflows, tools, or other agents, and has access to shared resources such as memory, logging, and observability features:
|
|
140
169
|
|
|
141
|
-
```typescript {6} showLineNumbers
|
|
170
|
+
```typescript {6} showLineNumbers title="src/mastra/index.ts" copy
|
|
142
171
|
import { Mastra } from "@mastra/core/mastra";
|
|
143
|
-
import { testAgent } from
|
|
172
|
+
import { testAgent } from "./agents/test-agent";
|
|
144
173
|
|
|
145
174
|
export const mastra = new Mastra({
|
|
146
175
|
// ...
|
|
@@ -155,20 +184,21 @@ You can call agents from workflow steps, tools, the Mastra Client, or the comman
|
|
|
155
184
|
```typescript showLineNumbers copy
|
|
156
185
|
const testAgent = mastra.getAgent("testAgent");
|
|
157
186
|
```
|
|
158
|
-
<Callout type="info">
|
|
159
|
-
<p>
|
|
160
|
-
`mastra.getAgent()` is preferred over a direct import, since it provides access to the Mastra instance configuration (logger, telemetry, storage, registered agents, and vector stores).
|
|
161
|
-
</p>
|
|
162
|
-
</Callout>
|
|
163
187
|
|
|
164
|
-
|
|
188
|
+
:::info
|
|
189
|
+
|
|
190
|
+
`mastra.getAgent()` is preferred over a direct import, since it provides access to the Mastra instance configuration (logger, telemetry, storage, registered agents, and vector stores).
|
|
191
|
+
|
|
192
|
+
See [Calling agents](/examples/agents/calling-agents) for more information.
|
|
193
|
+
|
|
194
|
+
:::
|
|
165
195
|
|
|
166
196
|
## Generating responses
|
|
167
197
|
|
|
168
198
|
Agents can return results in two ways: generating the full output before returning it or streaming tokens in real time. Choose the approach that fits your use case: generate for short, internal responses or debugging, and stream to deliver pixels to end users as quickly as possible.
|
|
169
199
|
|
|
170
|
-
<Tabs
|
|
171
|
-
<
|
|
200
|
+
<Tabs>
|
|
201
|
+
<TabItem value="generate" label="Generate">
|
|
172
202
|
Pass a single string for simple prompts, an array of strings when providing multiple pieces of context, or an array of message objects with `role` and `content`.
|
|
173
203
|
|
|
174
204
|
(The `role` defines the speaker for each message. Typical roles are `user` for human input, `assistant` for agent responses, and `system` for instructions.)
|
|
@@ -178,13 +208,17 @@ const response = await testAgent.generate([
|
|
|
178
208
|
{ role: "user", content: "Help me organize my day" },
|
|
179
209
|
{ role: "user", content: "My day starts at 9am and finishes at 5.30pm" },
|
|
180
210
|
{ role: "user", content: "I take lunch between 12:30 and 13:30" },
|
|
181
|
-
{
|
|
211
|
+
{
|
|
212
|
+
role: "user",
|
|
213
|
+
content: "I have meetings Monday to Friday between 10:30 and 11:30",
|
|
214
|
+
},
|
|
182
215
|
]);
|
|
183
216
|
|
|
184
217
|
console.log(response.text);
|
|
185
218
|
```
|
|
186
|
-
|
|
187
|
-
|
|
219
|
+
|
|
220
|
+
</TabItem>
|
|
221
|
+
<TabItem value="stream" label="Stream">
|
|
188
222
|
Pass a single string for simple prompts, an array of strings when providing multiple pieces of context, or an array of message objects with `role` and `content`.
|
|
189
223
|
|
|
190
224
|
(The `role` defines the speaker for each message. Typical roles are `user` for human input, `assistant` for agent responses, and `system` for instructions.)
|
|
@@ -194,7 +228,10 @@ const stream = await testAgent.stream([
|
|
|
194
228
|
{ role: "user", content: "Help me organize my day" },
|
|
195
229
|
{ role: "user", content: "My day starts at 9am and finishes at 5.30pm" },
|
|
196
230
|
{ role: "user", content: "I take lunch between 12:30 and 13:30" },
|
|
197
|
-
{
|
|
231
|
+
{
|
|
232
|
+
role: "user",
|
|
233
|
+
content: "I have meetings Monday to Friday between 10:30 and 11:30",
|
|
234
|
+
},
|
|
198
235
|
]);
|
|
199
236
|
|
|
200
237
|
for await (const chunk of stream.textStream) {
|
|
@@ -211,17 +248,18 @@ It provides the final `text`, execution `steps`, `finishReason`, token `usage` s
|
|
|
211
248
|
const stream = await testAgent.stream("Help me organize my day", {
|
|
212
249
|
onFinish: ({ steps, text, finishReason, usage }) => {
|
|
213
250
|
console.log({ steps, text, finishReason, usage });
|
|
214
|
-
}
|
|
251
|
+
},
|
|
215
252
|
});
|
|
216
253
|
|
|
217
254
|
for await (const chunk of stream.textStream) {
|
|
218
255
|
process.stdout.write(chunk);
|
|
219
256
|
}
|
|
220
257
|
```
|
|
221
|
-
|
|
258
|
+
|
|
259
|
+
</TabItem>
|
|
222
260
|
</Tabs>
|
|
223
261
|
|
|
224
|
-
> See [.generate()](
|
|
262
|
+
> See [.generate()](/reference/agents/generate) or [.stream()](/reference/streaming/agents/stream) for more information.
|
|
225
263
|
|
|
226
264
|
## Structured output
|
|
227
265
|
|
|
@@ -238,21 +276,21 @@ const response = await testAgent.generate(
|
|
|
238
276
|
[
|
|
239
277
|
{
|
|
240
278
|
role: "system",
|
|
241
|
-
content: "Provide a summary and keywords for the following text:"
|
|
279
|
+
content: "Provide a summary and keywords for the following text:",
|
|
242
280
|
},
|
|
243
281
|
{
|
|
244
282
|
role: "user",
|
|
245
|
-
content: "Monkey, Ice Cream, Boat"
|
|
246
|
-
}
|
|
283
|
+
content: "Monkey, Ice Cream, Boat",
|
|
284
|
+
},
|
|
247
285
|
],
|
|
248
286
|
{
|
|
249
287
|
structuredOutput: {
|
|
250
288
|
schema: z.object({
|
|
251
289
|
summary: z.string(),
|
|
252
|
-
keywords: z.array(z.string())
|
|
253
|
-
})
|
|
290
|
+
keywords: z.array(z.string()),
|
|
291
|
+
}),
|
|
254
292
|
},
|
|
255
|
-
}
|
|
293
|
+
},
|
|
256
294
|
);
|
|
257
295
|
|
|
258
296
|
console.log(response.object);
|
|
@@ -269,26 +307,26 @@ const response = await testAgentWithTools.generate(
|
|
|
269
307
|
[
|
|
270
308
|
{
|
|
271
309
|
role: "system",
|
|
272
|
-
content: "Provide a summary and keywords for the following text:"
|
|
310
|
+
content: "Provide a summary and keywords for the following text:",
|
|
273
311
|
},
|
|
274
312
|
{
|
|
275
313
|
role: "user",
|
|
276
|
-
content: "Please use your test tool and let me know the results"
|
|
277
|
-
}
|
|
314
|
+
content: "Please use your test tool and let me know the results",
|
|
315
|
+
},
|
|
278
316
|
],
|
|
279
317
|
{
|
|
280
318
|
structuredOutput: {
|
|
281
319
|
schema: z.object({
|
|
282
320
|
summary: z.string(),
|
|
283
|
-
keywords: z.array(z.string())
|
|
321
|
+
keywords: z.array(z.string()),
|
|
284
322
|
}),
|
|
285
|
-
model: "openai/gpt-4o"
|
|
323
|
+
model: "openai/gpt-4o",
|
|
286
324
|
},
|
|
287
|
-
}
|
|
325
|
+
},
|
|
288
326
|
);
|
|
289
327
|
|
|
290
328
|
console.log(response.object);
|
|
291
|
-
console.log(response.toolResults)
|
|
329
|
+
console.log(response.toolResults);
|
|
292
330
|
```
|
|
293
331
|
|
|
294
332
|
### Response format
|
|
@@ -302,28 +340,27 @@ const response = await testAgentThatDoesntSupportStructuredOutput.generate(
|
|
|
302
340
|
[
|
|
303
341
|
{
|
|
304
342
|
role: "system",
|
|
305
|
-
content: "Provide a summary and keywords for the following text:"
|
|
343
|
+
content: "Provide a summary and keywords for the following text:",
|
|
306
344
|
},
|
|
307
345
|
{
|
|
308
346
|
role: "user",
|
|
309
|
-
content: "Monkey, Ice Cream, Boat"
|
|
310
|
-
}
|
|
347
|
+
content: "Monkey, Ice Cream, Boat",
|
|
348
|
+
},
|
|
311
349
|
],
|
|
312
350
|
{
|
|
313
351
|
structuredOutput: {
|
|
314
352
|
schema: z.object({
|
|
315
353
|
summary: z.string(),
|
|
316
|
-
keywords: z.array(z.string())
|
|
354
|
+
keywords: z.array(z.string()),
|
|
317
355
|
}),
|
|
318
|
-
jsonPromptInjection: true
|
|
356
|
+
jsonPromptInjection: true,
|
|
319
357
|
},
|
|
320
|
-
}
|
|
358
|
+
},
|
|
321
359
|
);
|
|
322
360
|
|
|
323
361
|
console.log(response.object);
|
|
324
362
|
```
|
|
325
363
|
|
|
326
|
-
|
|
327
364
|
## Working with images
|
|
328
365
|
|
|
329
366
|
Agents can analyze and describe images by processing both the visual content and any text within them. To enable image analysis, pass an object with `type: 'image'` and the image URL in the `content` array. You can combine image content with text prompts to guide the agent's analysis.
|
|
@@ -336,20 +373,20 @@ const response = await testAgent.generate([
|
|
|
336
373
|
{
|
|
337
374
|
type: "image",
|
|
338
375
|
image: "https://placebear.com/cache/395-205.jpg",
|
|
339
|
-
mimeType: "image/jpeg"
|
|
376
|
+
mimeType: "image/jpeg",
|
|
340
377
|
},
|
|
341
378
|
{
|
|
342
379
|
type: "text",
|
|
343
|
-
text: "Describe the image in detail, and extract all the text in the image."
|
|
344
|
-
}
|
|
345
|
-
]
|
|
346
|
-
}
|
|
380
|
+
text: "Describe the image in detail, and extract all the text in the image.",
|
|
381
|
+
},
|
|
382
|
+
],
|
|
383
|
+
},
|
|
347
384
|
]);
|
|
348
385
|
|
|
349
386
|
console.log(response.text);
|
|
350
387
|
```
|
|
351
388
|
|
|
352
|
-
For a detailed guide to creating and configuring tools, see the [Tools Overview](../tools-mcp/overview
|
|
389
|
+
For a detailed guide to creating and configuring tools, see the [Tools Overview](../tools-mcp/overview) page.
|
|
353
390
|
|
|
354
391
|
### Using `maxSteps`
|
|
355
392
|
|
|
@@ -357,7 +394,7 @@ The `maxSteps` parameter controls the maximum number of sequential LLM calls an
|
|
|
357
394
|
|
|
358
395
|
```typescript showLineNumbers copy
|
|
359
396
|
const response = await testAgent.generate("Help me organize my day", {
|
|
360
|
-
maxSteps: 5
|
|
397
|
+
maxSteps: 5,
|
|
361
398
|
});
|
|
362
399
|
|
|
363
400
|
console.log(response.text);
|
|
@@ -373,7 +410,7 @@ You can monitor the progress of multi-step operations using the `onStepFinish` c
|
|
|
373
410
|
const response = await testAgent.generate("Help me organize my day", {
|
|
374
411
|
onStepFinish: ({ text, toolCalls, toolResults, finishReason, usage }) => {
|
|
375
412
|
console.log({ text, toolCalls, toolResults, finishReason, usage });
|
|
376
|
-
}
|
|
413
|
+
},
|
|
377
414
|
});
|
|
378
415
|
```
|
|
379
416
|
|
|
@@ -381,20 +418,20 @@ const response = await testAgent.generate("Help me organize my day", {
|
|
|
381
418
|
|
|
382
419
|
Agents can use tools to go beyond language generation, enabling structured interactions with external APIs and services. Tools allow agents to access data and perform clearly defined operations in a reliable, repeatable way.
|
|
383
420
|
|
|
384
|
-
```typescript
|
|
421
|
+
```typescript title="src/mastra/agents/test-agent.ts" showLineNumbers
|
|
385
422
|
export const testAgent = new Agent({
|
|
386
423
|
// ...
|
|
387
|
-
tools: { testTool }
|
|
424
|
+
tools: { testTool },
|
|
388
425
|
});
|
|
389
426
|
```
|
|
390
427
|
|
|
391
|
-
> See [Using Tools](./using-tools
|
|
428
|
+
> See [Using Tools](./using-tools) for more information.
|
|
392
429
|
|
|
393
430
|
## Using `RuntimeContext`
|
|
394
431
|
|
|
395
432
|
Use `RuntimeContext` to access request-specific values. This lets you conditionally adjust behavior based on the context of the request.
|
|
396
433
|
|
|
397
|
-
```typescript
|
|
434
|
+
```typescript title="src/mastra/agents/test-agent.ts" showLineNumbers
|
|
398
435
|
export type UserTier = {
|
|
399
436
|
"user-tier": "enterprise" | "pro";
|
|
400
437
|
};
|
|
@@ -407,19 +444,19 @@ export const testAgent = new Agent({
|
|
|
407
444
|
return userTier === "enterprise"
|
|
408
445
|
? openai("gpt-4o-mini")
|
|
409
446
|
: openai("gpt-4.1-nano");
|
|
410
|
-
}
|
|
447
|
+
},
|
|
411
448
|
});
|
|
412
449
|
```
|
|
413
450
|
|
|
414
|
-
> See [Runtime Context](
|
|
451
|
+
> See [Runtime Context](/docs/server-db/runtime-context) for more information.
|
|
415
452
|
|
|
416
453
|
## Testing with Mastra Playground
|
|
417
454
|
|
|
418
|
-
Use the Mastra [Playground](
|
|
455
|
+
Use the Mastra [Playground](/docs/getting-started/studio) to test agents with different messages, inspect tool calls and responses, and debug agent behavior.
|
|
419
456
|
|
|
420
457
|
## Related
|
|
421
458
|
|
|
422
|
-
- [Using Tools](./using-tools
|
|
423
|
-
- [Agent Memory](./agent-memory
|
|
424
|
-
- [Runtime Context](
|
|
425
|
-
- [Calling Agents](
|
|
459
|
+
- [Using Tools](./using-tools)
|
|
460
|
+
- [Agent Memory](./agent-memory)
|
|
461
|
+
- [Runtime Context](/examples/agents/runtime-context)
|
|
462
|
+
- [Calling Agents](/examples/agents/calling-agents)
|
|
@@ -5,7 +5,7 @@ description: Learn how to create tools and add them to agents to extend capabili
|
|
|
5
5
|
|
|
6
6
|
# Using Tools
|
|
7
7
|
|
|
8
|
-
Agents use tools to call APIs, query databases, or run custom functions from your codebase. [Tools](../tools-mcp/overview
|
|
8
|
+
Agents use tools to call APIs, query databases, or run custom functions from your codebase. [Tools](../tools-mcp/overview) give agents capabilities beyond language generation by providing structured access to data and performing clearly defined operations. You can also load tools from remote [MCP servers](../tools-mcp/mcp-overview) to expand an agent’s capabilities.
|
|
9
9
|
|
|
10
10
|
## When to use tools
|
|
11
11
|
|
|
@@ -15,7 +15,7 @@ Use tools when an agent needs additional context or information from remote reso
|
|
|
15
15
|
|
|
16
16
|
This example shows how to create a tool that fetches weather data from an API. When the agent calls the tool, it provides the required input as defined by the tool’s `inputSchema`. The tool accesses this data through its `context` argument, which in this example includes the `location` used in the weather API query.
|
|
17
17
|
|
|
18
|
-
```typescript {14,16}
|
|
18
|
+
```typescript {14,16} title="src/mastra/tools/weather-tool.ts" showLineNumbers copy
|
|
19
19
|
import { createTool } from "@mastra/core/tools";
|
|
20
20
|
import { z } from "zod";
|
|
21
21
|
|
|
@@ -23,10 +23,10 @@ export const weatherTool = createTool({
|
|
|
23
23
|
id: "weather-tool",
|
|
24
24
|
description: "Fetches weather for a location",
|
|
25
25
|
inputSchema: z.object({
|
|
26
|
-
location: z.string()
|
|
26
|
+
location: z.string(),
|
|
27
27
|
}),
|
|
28
28
|
outputSchema: z.object({
|
|
29
|
-
weather: z.string()
|
|
29
|
+
weather: z.string(),
|
|
30
30
|
}),
|
|
31
31
|
execute: async ({ context }) => {
|
|
32
32
|
const { location } = context;
|
|
@@ -35,7 +35,7 @@ export const weatherTool = createTool({
|
|
|
35
35
|
const weather = await response.text();
|
|
36
36
|
|
|
37
37
|
return { weather };
|
|
38
|
-
}
|
|
38
|
+
},
|
|
39
39
|
});
|
|
40
40
|
```
|
|
41
41
|
|
|
@@ -43,7 +43,7 @@ export const weatherTool = createTool({
|
|
|
43
43
|
|
|
44
44
|
To make a tool available to an agent, add it to the `tools` option and reference it by name in the agent’s instructions.
|
|
45
45
|
|
|
46
|
-
```typescript {9,11}
|
|
46
|
+
```typescript {9,11} title="src/mastra/agents/weather-agent.ts" showLineNumbers copy
|
|
47
47
|
import { openai } from "@ai-sdk/openai";
|
|
48
48
|
import { Agent } from "@mastra/core/agent";
|
|
49
49
|
import { weatherTool } from "../tools/weather-tool";
|
|
@@ -54,7 +54,7 @@ export const weatherAgent = new Agent({
|
|
|
54
54
|
You are a helpful weather assistant.
|
|
55
55
|
Use the weatherTool to fetch current weather data.`,
|
|
56
56
|
model: openai("gpt-4o-mini"),
|
|
57
|
-
tools: { weatherTool }
|
|
57
|
+
tools: { weatherTool },
|
|
58
58
|
});
|
|
59
59
|
```
|
|
60
60
|
|
|
@@ -62,7 +62,7 @@ export const weatherAgent = new Agent({
|
|
|
62
62
|
|
|
63
63
|
The agent uses the tool’s `inputSchema` to infer what data the tool expects. In this case, it extracts `London` as the `location` from the message and makes it available to the tool’s context.
|
|
64
64
|
|
|
65
|
-
```typescript {5}
|
|
65
|
+
```typescript {5} title="src/test-tool.ts" showLineNumbers copy
|
|
66
66
|
import { mastra } from "./mastra";
|
|
67
67
|
|
|
68
68
|
const agent = mastra.getAgent("weatherAgent");
|
|
@@ -76,20 +76,19 @@ An agent can use multiple tools to handle more complex tasks by delegating speci
|
|
|
76
76
|
|
|
77
77
|
When multiple tools are available, the agent may choose to use one, several, or none, depending on what’s needed to answer the query.
|
|
78
78
|
|
|
79
|
-
```typescript {6}
|
|
79
|
+
```typescript {6} title="src/mastra/agents/weather-agent.ts" showLineNumbers copy
|
|
80
80
|
import { weatherTool } from "../tools/weather-tool";
|
|
81
81
|
import { activitiesTool } from "../tools/activities-tool";
|
|
82
82
|
|
|
83
83
|
export const weatherAgent = new Agent({
|
|
84
84
|
// ..
|
|
85
|
-
tools: { weatherTool, activitiesTool }
|
|
85
|
+
tools: { weatherTool, activitiesTool },
|
|
86
86
|
});
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
|
|
90
89
|
## Related
|
|
91
90
|
|
|
92
|
-
- [Tools Overview](../tools-mcp/overview
|
|
93
|
-
- [Agent Memory](./agent-memory
|
|
94
|
-
- [Runtime Context](
|
|
95
|
-
- [Calling Agents](
|
|
91
|
+
- [Tools Overview](../tools-mcp/overview)
|
|
92
|
+
- [Agent Memory](./agent-memory)
|
|
93
|
+
- [Runtime Context](/docs/server-db/runtime-context)
|
|
94
|
+
- [Calling Agents](/examples/agents/calling-agents)
|