@mastra/core 1.6.0 → 1.7.0
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/CHANGELOG.md +236 -0
- package/dist/agent/agent.d.ts +6 -0
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/index.cjs +8 -8
- package/dist/agent/index.js +1 -1
- package/dist/{chunk-VJWRJWSC.cjs → chunk-2X66GWF5.cjs} +94 -16
- package/dist/chunk-2X66GWF5.cjs.map +1 -0
- package/dist/{chunk-YM6245EM.js → chunk-6OXW5E2O.js} +3 -3
- package/dist/{chunk-YM6245EM.js.map → chunk-6OXW5E2O.js.map} +1 -1
- package/dist/{chunk-XWZAKKFT.cjs → chunk-6QBN6MZY.cjs} +14 -14
- package/dist/{chunk-XWZAKKFT.cjs.map → chunk-6QBN6MZY.cjs.map} +1 -1
- package/dist/{chunk-AYHSPIT6.cjs → chunk-7UAJ6LMR.cjs} +820 -259
- package/dist/chunk-7UAJ6LMR.cjs.map +1 -0
- package/dist/{chunk-RZNHRIM7.cjs → chunk-A72NTLFT.cjs} +5 -5
- package/dist/{chunk-RZNHRIM7.cjs.map → chunk-A72NTLFT.cjs.map} +1 -1
- package/dist/{chunk-EEU5NHHU.js → chunk-DFCRXDVK.js} +3 -3
- package/dist/{chunk-EEU5NHHU.js.map → chunk-DFCRXDVK.js.map} +1 -1
- package/dist/{chunk-5K45E5VE.js → chunk-GPJGPARM.js} +3 -2
- package/dist/chunk-GPJGPARM.js.map +1 -0
- package/dist/{chunk-LNKS4TJ6.cjs → chunk-HB6T4554.cjs} +8 -7
- package/dist/chunk-HB6T4554.cjs.map +1 -0
- package/dist/{chunk-DGS2KGDI.js → chunk-KUXNBWN7.js} +6 -5
- package/dist/chunk-KUXNBWN7.js.map +1 -0
- package/dist/{chunk-IHDE4CJV.js → chunk-QSHV7GPT.js} +89 -12
- package/dist/chunk-QSHV7GPT.js.map +1 -0
- package/dist/{chunk-3U3XFMGJ.cjs → chunk-QTAS3HND.cjs} +13 -8
- package/dist/chunk-QTAS3HND.cjs.map +1 -0
- package/dist/{chunk-RHKNKJNM.js → chunk-QWTB53GS.js} +4 -4
- package/dist/{chunk-RHKNKJNM.js.map → chunk-QWTB53GS.js.map} +1 -1
- package/dist/{chunk-4WG5K4CK.js → chunk-R4N65TLG.js} +7 -7
- package/dist/{chunk-4WG5K4CK.js.map → chunk-R4N65TLG.js.map} +1 -1
- package/dist/{chunk-5VQPSWPG.cjs → chunk-RABITNTG.cjs} +48 -48
- package/dist/{chunk-5VQPSWPG.cjs.map → chunk-RABITNTG.cjs.map} +1 -1
- package/dist/{chunk-TVPANHLE.cjs → chunk-SBOHDNIZ.cjs} +3 -2
- package/dist/chunk-SBOHDNIZ.cjs.map +1 -0
- package/dist/{chunk-MWGGSA5Q.js → chunk-T6GAM3SQ.js} +10 -5
- package/dist/chunk-T6GAM3SQ.js.map +1 -0
- package/dist/{chunk-TL2TTA4X.cjs → chunk-YQG7NBPR.cjs} +9 -9
- package/dist/{chunk-TL2TTA4X.cjs.map → chunk-YQG7NBPR.cjs.map} +1 -1
- package/dist/{chunk-XB3DA67Q.js → chunk-ZSBM2SVU.js} +818 -259
- package/dist/chunk-ZSBM2SVU.js.map +1 -0
- package/dist/datasets/experiment/scorer.d.ts.map +1 -1
- package/dist/datasets/index.cjs +17 -17
- package/dist/datasets/index.js +2 -2
- package/dist/evals/index.cjs +20 -20
- package/dist/evals/index.js +3 -3
- package/dist/evals/scoreTraces/index.cjs +7 -6
- package/dist/evals/scoreTraces/index.cjs.map +1 -1
- package/dist/evals/scoreTraces/index.js +4 -3
- package/dist/evals/scoreTraces/index.js.map +1 -1
- package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
- package/dist/harness/harness.d.ts +21 -1
- package/dist/harness/harness.d.ts.map +1 -1
- package/dist/harness/index.cjs +422 -5
- package/dist/harness/index.cjs.map +1 -1
- package/dist/harness/index.d.ts +2 -1
- package/dist/harness/index.d.ts.map +1 -1
- package/dist/harness/index.js +418 -3
- package/dist/harness/index.js.map +1 -1
- package/dist/harness/types.d.ts +151 -0
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/dist/loop/index.cjs +12 -12
- package/dist/loop/index.js +1 -1
- package/dist/loop/test-utils/tools.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
- package/dist/mastra/hooks.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.js +1 -1
- package/dist/memory/index.cjs +14 -14
- package/dist/memory/index.js +1 -1
- package/dist/processor-provider/index.cjs +10 -10
- package/dist/processor-provider/index.js +1 -1
- package/dist/processors/index.cjs +45 -41
- package/dist/processors/index.js +1 -1
- package/dist/processors/processors/index.d.ts +1 -0
- package/dist/processors/processors/index.d.ts.map +1 -1
- package/dist/processors/processors/workspace-instructions.d.ts +50 -0
- package/dist/processors/processors/workspace-instructions.d.ts.map +1 -0
- package/dist/relevance/index.cjs +3 -3
- package/dist/relevance/index.js +1 -1
- package/dist/storage/constants.cjs +56 -56
- package/dist/storage/constants.d.ts.map +1 -1
- package/dist/storage/constants.js +1 -1
- package/dist/storage/index.cjs +160 -160
- package/dist/storage/index.js +2 -2
- package/dist/storage/types.d.ts +2 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -1
- package/dist/stream/base/output.d.ts.map +1 -1
- package/dist/stream/index.cjs +8 -8
- package/dist/stream/index.js +1 -1
- package/dist/tool-loop-agent/index.cjs +4 -4
- package/dist/tool-loop-agent/index.js +1 -1
- package/dist/vector/index.cjs +7 -7
- package/dist/vector/index.js +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/index.cjs +25 -25
- package/dist/workflows/index.js +1 -1
- package/dist/workspace/constants/index.d.ts +2 -0
- package/dist/workspace/constants/index.d.ts.map +1 -1
- package/dist/workspace/errors.d.ts +1 -1
- package/dist/workspace/errors.d.ts.map +1 -1
- package/dist/workspace/filesystem/composite-filesystem.d.ts +4 -1
- package/dist/workspace/filesystem/composite-filesystem.d.ts.map +1 -1
- package/dist/workspace/filesystem/file-write-lock.d.ts +35 -0
- package/dist/workspace/filesystem/file-write-lock.d.ts.map +1 -0
- package/dist/workspace/filesystem/filesystem.d.ts +5 -1
- package/dist/workspace/filesystem/filesystem.d.ts.map +1 -1
- package/dist/workspace/filesystem/index.d.ts +1 -0
- package/dist/workspace/filesystem/index.d.ts.map +1 -1
- package/dist/workspace/filesystem/local-filesystem.d.ts +17 -1
- package/dist/workspace/filesystem/local-filesystem.d.ts.map +1 -1
- package/dist/workspace/index.cjs +72 -64
- package/dist/workspace/index.d.ts +3 -2
- package/dist/workspace/index.d.ts.map +1 -1
- package/dist/workspace/index.js +1 -1
- package/dist/workspace/lifecycle.d.ts +1 -9
- package/dist/workspace/lifecycle.d.ts.map +1 -1
- package/dist/workspace/sandbox/index.d.ts +2 -0
- package/dist/workspace/sandbox/index.d.ts.map +1 -1
- package/dist/workspace/sandbox/local-process-manager.d.ts +18 -0
- package/dist/workspace/sandbox/local-process-manager.d.ts.map +1 -0
- package/dist/workspace/sandbox/local-sandbox.d.ts +49 -35
- package/dist/workspace/sandbox/local-sandbox.d.ts.map +1 -1
- package/dist/workspace/sandbox/mastra-sandbox.d.ts +45 -11
- package/dist/workspace/sandbox/mastra-sandbox.d.ts.map +1 -1
- package/dist/workspace/sandbox/native-sandbox/bubblewrap.d.ts +2 -3
- package/dist/workspace/sandbox/native-sandbox/bubblewrap.d.ts.map +1 -1
- package/dist/workspace/sandbox/native-sandbox/seatbelt.d.ts +2 -3
- package/dist/workspace/sandbox/native-sandbox/seatbelt.d.ts.map +1 -1
- package/dist/workspace/sandbox/native-sandbox/wrapper.d.ts +4 -5
- package/dist/workspace/sandbox/native-sandbox/wrapper.d.ts.map +1 -1
- package/dist/workspace/sandbox/process-manager/index.d.ts +4 -0
- package/dist/workspace/sandbox/process-manager/index.d.ts.map +1 -0
- package/dist/workspace/sandbox/process-manager/process-handle.d.ts +107 -0
- package/dist/workspace/sandbox/process-manager/process-handle.d.ts.map +1 -0
- package/dist/workspace/sandbox/process-manager/process-manager.d.ts +59 -0
- package/dist/workspace/sandbox/process-manager/process-manager.d.ts.map +1 -0
- package/dist/workspace/sandbox/process-manager/types.d.ts +24 -0
- package/dist/workspace/sandbox/process-manager/types.d.ts.map +1 -0
- package/dist/workspace/sandbox/sandbox.d.ts +38 -2
- package/dist/workspace/sandbox/sandbox.d.ts.map +1 -1
- package/dist/workspace/sandbox/types.d.ts +9 -2
- package/dist/workspace/sandbox/types.d.ts.map +1 -1
- package/dist/workspace/sandbox/utils.d.ts +7 -0
- package/dist/workspace/sandbox/utils.d.ts.map +1 -0
- package/dist/workspace/tools/execute-command.d.ts +53 -2
- package/dist/workspace/tools/execute-command.d.ts.map +1 -1
- package/dist/workspace/tools/get-process-output.d.ts +6 -0
- package/dist/workspace/tools/get-process-output.d.ts.map +1 -0
- package/dist/workspace/tools/index.d.ts +4 -1
- package/dist/workspace/tools/index.d.ts.map +1 -1
- package/dist/workspace/tools/kill-process.d.ts +4 -0
- package/dist/workspace/tools/kill-process.d.ts.map +1 -0
- package/dist/workspace/tools/output-helpers.d.ts +21 -0
- package/dist/workspace/tools/output-helpers.d.ts.map +1 -0
- package/dist/workspace/tools/tools.d.ts.map +1 -1
- package/dist/workspace/types.d.ts +31 -0
- package/dist/workspace/types.d.ts.map +1 -1
- package/dist/workspace/utils.d.ts +11 -0
- package/dist/workspace/utils.d.ts.map +1 -0
- package/dist/workspace/workspace.d.ts +36 -0
- package/dist/workspace/workspace.d.ts.map +1 -1
- package/package.json +7 -7
- package/dist/chunk-3U3XFMGJ.cjs.map +0 -1
- package/dist/chunk-5K45E5VE.js.map +0 -1
- package/dist/chunk-AYHSPIT6.cjs.map +0 -1
- package/dist/chunk-DGS2KGDI.js.map +0 -1
- package/dist/chunk-IHDE4CJV.js.map +0 -1
- package/dist/chunk-LNKS4TJ6.cjs.map +0 -1
- package/dist/chunk-MWGGSA5Q.js.map +0 -1
- package/dist/chunk-TVPANHLE.cjs.map +0 -1
- package/dist/chunk-VJWRJWSC.cjs.map +0 -1
- package/dist/chunk-XB3DA67Q.js.map +0 -1
- package/dist/docs/SKILL.md +0 -301
- package/dist/docs/assets/SOURCE_MAP.json +0 -1413
- package/dist/docs/references/docs-agents-adding-voice.md +0 -353
- package/dist/docs/references/docs-agents-agent-approval.md +0 -377
- package/dist/docs/references/docs-agents-agent-memory.md +0 -212
- package/dist/docs/references/docs-agents-guardrails.md +0 -382
- package/dist/docs/references/docs-agents-network-approval.md +0 -275
- package/dist/docs/references/docs-agents-networks.md +0 -290
- package/dist/docs/references/docs-agents-overview.md +0 -309
- package/dist/docs/references/docs-agents-processors.md +0 -632
- package/dist/docs/references/docs-agents-structured-output.md +0 -271
- package/dist/docs/references/docs-agents-using-tools.md +0 -214
- package/dist/docs/references/docs-evals-custom-scorers.md +0 -519
- package/dist/docs/references/docs-evals-overview.md +0 -146
- package/dist/docs/references/docs-evals-running-in-ci.md +0 -106
- package/dist/docs/references/docs-mcp-overview.md +0 -370
- package/dist/docs/references/docs-mcp-publishing-mcp-server.md +0 -95
- package/dist/docs/references/docs-memory-memory-processors.md +0 -316
- package/dist/docs/references/docs-memory-observational-memory.md +0 -246
- package/dist/docs/references/docs-memory-overview.md +0 -45
- package/dist/docs/references/docs-memory-semantic-recall.md +0 -272
- package/dist/docs/references/docs-memory-storage.md +0 -261
- package/dist/docs/references/docs-memory-working-memory.md +0 -400
- package/dist/docs/references/docs-observability-datasets-overview.md +0 -188
- package/dist/docs/references/docs-observability-datasets-running-experiments.md +0 -266
- package/dist/docs/references/docs-observability-logging.md +0 -99
- package/dist/docs/references/docs-observability-overview.md +0 -70
- package/dist/docs/references/docs-observability-tracing-bridges-otel.md +0 -209
- package/dist/docs/references/docs-observability-tracing-exporters-arize.md +0 -274
- package/dist/docs/references/docs-observability-tracing-exporters-braintrust.md +0 -111
- package/dist/docs/references/docs-observability-tracing-exporters-cloud.md +0 -129
- package/dist/docs/references/docs-observability-tracing-exporters-datadog.md +0 -187
- package/dist/docs/references/docs-observability-tracing-exporters-default.md +0 -211
- package/dist/docs/references/docs-observability-tracing-exporters-laminar.md +0 -100
- package/dist/docs/references/docs-observability-tracing-exporters-langfuse.md +0 -217
- package/dist/docs/references/docs-observability-tracing-exporters-langsmith.md +0 -202
- package/dist/docs/references/docs-observability-tracing-exporters-otel.md +0 -479
- package/dist/docs/references/docs-observability-tracing-exporters-posthog.md +0 -148
- package/dist/docs/references/docs-observability-tracing-overview.md +0 -1114
- package/dist/docs/references/docs-rag-chunking-and-embedding.md +0 -183
- package/dist/docs/references/docs-rag-graph-rag.md +0 -215
- package/dist/docs/references/docs-rag-overview.md +0 -72
- package/dist/docs/references/docs-rag-retrieval.md +0 -521
- package/dist/docs/references/docs-rag-vector-databases.md +0 -648
- package/dist/docs/references/docs-server-auth-auth0.md +0 -222
- package/dist/docs/references/docs-server-auth-clerk.md +0 -132
- package/dist/docs/references/docs-server-auth-composite-auth.md +0 -234
- package/dist/docs/references/docs-server-auth-custom-auth-provider.md +0 -513
- package/dist/docs/references/docs-server-auth-firebase.md +0 -272
- package/dist/docs/references/docs-server-auth-jwt.md +0 -110
- package/dist/docs/references/docs-server-auth-simple-auth.md +0 -178
- package/dist/docs/references/docs-server-auth-supabase.md +0 -117
- package/dist/docs/references/docs-server-auth-workos.md +0 -190
- package/dist/docs/references/docs-server-custom-adapters.md +0 -374
- package/dist/docs/references/docs-server-custom-api-routes.md +0 -267
- package/dist/docs/references/docs-server-mastra-client.md +0 -243
- package/dist/docs/references/docs-server-mastra-server.md +0 -71
- package/dist/docs/references/docs-server-middleware.md +0 -228
- package/dist/docs/references/docs-server-request-context.md +0 -478
- package/dist/docs/references/docs-streaming-events.md +0 -247
- package/dist/docs/references/docs-streaming-tool-streaming.md +0 -178
- package/dist/docs/references/docs-streaming-workflow-streaming.md +0 -109
- package/dist/docs/references/docs-voice-overview.md +0 -979
- package/dist/docs/references/docs-voice-speech-to-speech.md +0 -103
- package/dist/docs/references/docs-voice-speech-to-text.md +0 -80
- package/dist/docs/references/docs-voice-text-to-speech.md +0 -84
- package/dist/docs/references/docs-workflows-agents-and-tools.md +0 -170
- package/dist/docs/references/docs-workflows-control-flow.md +0 -823
- package/dist/docs/references/docs-workflows-error-handling.md +0 -360
- package/dist/docs/references/docs-workflows-human-in-the-loop.md +0 -213
- package/dist/docs/references/docs-workflows-overview.md +0 -372
- package/dist/docs/references/docs-workflows-snapshots.md +0 -238
- package/dist/docs/references/docs-workflows-suspend-and-resume.md +0 -205
- package/dist/docs/references/docs-workflows-time-travel.md +0 -309
- package/dist/docs/references/docs-workflows-workflow-state.md +0 -181
- package/dist/docs/references/docs-workspace-filesystem.md +0 -162
- package/dist/docs/references/docs-workspace-overview.md +0 -239
- package/dist/docs/references/docs-workspace-sandbox.md +0 -63
- package/dist/docs/references/docs-workspace-search.md +0 -219
- package/dist/docs/references/docs-workspace-skills.md +0 -126
- package/dist/docs/references/guides-agent-frameworks-ai-sdk.md +0 -140
- package/dist/docs/references/reference-agents-agent.md +0 -142
- package/dist/docs/references/reference-agents-generate.md +0 -174
- package/dist/docs/references/reference-agents-generateLegacy.md +0 -176
- package/dist/docs/references/reference-agents-getDefaultGenerateOptions.md +0 -36
- package/dist/docs/references/reference-agents-getDefaultOptions.md +0 -34
- package/dist/docs/references/reference-agents-getDefaultStreamOptions.md +0 -36
- package/dist/docs/references/reference-agents-getDescription.md +0 -21
- package/dist/docs/references/reference-agents-getInstructions.md +0 -34
- package/dist/docs/references/reference-agents-getLLM.md +0 -37
- package/dist/docs/references/reference-agents-getMemory.md +0 -34
- package/dist/docs/references/reference-agents-getModel.md +0 -34
- package/dist/docs/references/reference-agents-getTools.md +0 -29
- package/dist/docs/references/reference-agents-getVoice.md +0 -34
- package/dist/docs/references/reference-agents-listAgents.md +0 -35
- package/dist/docs/references/reference-agents-listScorers.md +0 -34
- package/dist/docs/references/reference-agents-listTools.md +0 -34
- package/dist/docs/references/reference-agents-listWorkflows.md +0 -34
- package/dist/docs/references/reference-agents-network.md +0 -134
- package/dist/docs/references/reference-ai-sdk-chat-route.md +0 -82
- package/dist/docs/references/reference-ai-sdk-network-route.md +0 -74
- package/dist/docs/references/reference-ai-sdk-to-ai-sdk-stream.md +0 -232
- package/dist/docs/references/reference-ai-sdk-with-mastra.md +0 -59
- package/dist/docs/references/reference-ai-sdk-workflow-route.md +0 -79
- package/dist/docs/references/reference-auth-auth0.md +0 -73
- package/dist/docs/references/reference-auth-clerk.md +0 -36
- package/dist/docs/references/reference-auth-firebase.md +0 -80
- package/dist/docs/references/reference-auth-jwt.md +0 -26
- package/dist/docs/references/reference-auth-supabase.md +0 -33
- package/dist/docs/references/reference-auth-workos.md +0 -84
- package/dist/docs/references/reference-client-js-agents.md +0 -438
- package/dist/docs/references/reference-configuration.md +0 -749
- package/dist/docs/references/reference-core-addGateway.md +0 -42
- package/dist/docs/references/reference-core-getAgent.md +0 -21
- package/dist/docs/references/reference-core-getAgentById.md +0 -21
- package/dist/docs/references/reference-core-getDeployer.md +0 -22
- package/dist/docs/references/reference-core-getGateway.md +0 -38
- package/dist/docs/references/reference-core-getGatewayById.md +0 -41
- package/dist/docs/references/reference-core-getLogger.md +0 -22
- package/dist/docs/references/reference-core-getMCPServer.md +0 -45
- package/dist/docs/references/reference-core-getMCPServerById.md +0 -53
- package/dist/docs/references/reference-core-getMemory.md +0 -50
- package/dist/docs/references/reference-core-getScorer.md +0 -54
- package/dist/docs/references/reference-core-getScorerById.md +0 -54
- package/dist/docs/references/reference-core-getServer.md +0 -22
- package/dist/docs/references/reference-core-getStorage.md +0 -22
- package/dist/docs/references/reference-core-getStoredAgentById.md +0 -89
- package/dist/docs/references/reference-core-getTelemetry.md +0 -22
- package/dist/docs/references/reference-core-getVector.md +0 -22
- package/dist/docs/references/reference-core-getWorkflow.md +0 -40
- package/dist/docs/references/reference-core-listAgents.md +0 -21
- package/dist/docs/references/reference-core-listGateways.md +0 -40
- package/dist/docs/references/reference-core-listLogs.md +0 -38
- package/dist/docs/references/reference-core-listLogsByRunId.md +0 -36
- package/dist/docs/references/reference-core-listMCPServers.md +0 -51
- package/dist/docs/references/reference-core-listMemory.md +0 -56
- package/dist/docs/references/reference-core-listScorers.md +0 -29
- package/dist/docs/references/reference-core-listStoredAgents.md +0 -93
- package/dist/docs/references/reference-core-listVectors.md +0 -22
- package/dist/docs/references/reference-core-listWorkflows.md +0 -21
- package/dist/docs/references/reference-core-mastra-class.md +0 -66
- package/dist/docs/references/reference-core-mastra-model-gateway.md +0 -153
- package/dist/docs/references/reference-core-setLogger.md +0 -26
- package/dist/docs/references/reference-core-setStorage.md +0 -27
- package/dist/docs/references/reference-datasets-addItem.md +0 -35
- package/dist/docs/references/reference-datasets-addItems.md +0 -33
- package/dist/docs/references/reference-datasets-compareExperiments.md +0 -48
- package/dist/docs/references/reference-datasets-create.md +0 -49
- package/dist/docs/references/reference-datasets-dataset.md +0 -78
- package/dist/docs/references/reference-datasets-datasets-manager.md +0 -84
- package/dist/docs/references/reference-datasets-delete.md +0 -23
- package/dist/docs/references/reference-datasets-deleteExperiment.md +0 -25
- package/dist/docs/references/reference-datasets-deleteItem.md +0 -25
- package/dist/docs/references/reference-datasets-deleteItems.md +0 -27
- package/dist/docs/references/reference-datasets-get.md +0 -29
- package/dist/docs/references/reference-datasets-getDetails.md +0 -45
- package/dist/docs/references/reference-datasets-getExperiment.md +0 -28
- package/dist/docs/references/reference-datasets-getItem.md +0 -31
- package/dist/docs/references/reference-datasets-getItemHistory.md +0 -29
- package/dist/docs/references/reference-datasets-list.md +0 -29
- package/dist/docs/references/reference-datasets-listExperimentResults.md +0 -37
- package/dist/docs/references/reference-datasets-listExperiments.md +0 -31
- package/dist/docs/references/reference-datasets-listItems.md +0 -44
- package/dist/docs/references/reference-datasets-listVersions.md +0 -31
- package/dist/docs/references/reference-datasets-startExperiment.md +0 -60
- package/dist/docs/references/reference-datasets-startExperimentAsync.md +0 -41
- package/dist/docs/references/reference-datasets-update.md +0 -46
- package/dist/docs/references/reference-datasets-updateItem.md +0 -36
- package/dist/docs/references/reference-evals-answer-relevancy.md +0 -105
- package/dist/docs/references/reference-evals-answer-similarity.md +0 -99
- package/dist/docs/references/reference-evals-bias.md +0 -120
- package/dist/docs/references/reference-evals-completeness.md +0 -137
- package/dist/docs/references/reference-evals-content-similarity.md +0 -101
- package/dist/docs/references/reference-evals-context-precision.md +0 -196
- package/dist/docs/references/reference-evals-create-scorer.md +0 -270
- package/dist/docs/references/reference-evals-faithfulness.md +0 -114
- package/dist/docs/references/reference-evals-hallucination.md +0 -220
- package/dist/docs/references/reference-evals-keyword-coverage.md +0 -128
- package/dist/docs/references/reference-evals-mastra-scorer.md +0 -123
- package/dist/docs/references/reference-evals-run-evals.md +0 -138
- package/dist/docs/references/reference-evals-scorer-utils.md +0 -330
- package/dist/docs/references/reference-evals-textual-difference.md +0 -113
- package/dist/docs/references/reference-evals-tone-consistency.md +0 -119
- package/dist/docs/references/reference-evals-toxicity.md +0 -123
- package/dist/docs/references/reference-harness-harness-class.md +0 -645
- package/dist/docs/references/reference-logging-pino-logger.md +0 -117
- package/dist/docs/references/reference-memory-deleteMessages.md +0 -40
- package/dist/docs/references/reference-memory-memory-class.md +0 -147
- package/dist/docs/references/reference-memory-observational-memory.md +0 -565
- package/dist/docs/references/reference-observability-tracing-bridges-otel.md +0 -131
- package/dist/docs/references/reference-observability-tracing-configuration.md +0 -178
- package/dist/docs/references/reference-observability-tracing-exporters-console-exporter.md +0 -138
- package/dist/docs/references/reference-observability-tracing-exporters-datadog.md +0 -116
- package/dist/docs/references/reference-observability-tracing-instances.md +0 -109
- package/dist/docs/references/reference-observability-tracing-interfaces.md +0 -749
- package/dist/docs/references/reference-observability-tracing-processors-sensitive-data-filter.md +0 -144
- package/dist/docs/references/reference-observability-tracing-spans.md +0 -224
- package/dist/docs/references/reference-processors-batch-parts-processor.md +0 -61
- package/dist/docs/references/reference-processors-language-detector.md +0 -81
- package/dist/docs/references/reference-processors-message-history-processor.md +0 -85
- package/dist/docs/references/reference-processors-moderation-processor.md +0 -104
- package/dist/docs/references/reference-processors-pii-detector.md +0 -107
- package/dist/docs/references/reference-processors-processor-interface.md +0 -525
- package/dist/docs/references/reference-processors-prompt-injection-detector.md +0 -71
- package/dist/docs/references/reference-processors-semantic-recall-processor.md +0 -123
- package/dist/docs/references/reference-processors-system-prompt-scrubber.md +0 -80
- package/dist/docs/references/reference-processors-token-limiter-processor.md +0 -113
- package/dist/docs/references/reference-processors-tool-call-filter.md +0 -85
- package/dist/docs/references/reference-processors-tool-search-processor.md +0 -113
- package/dist/docs/references/reference-processors-unicode-normalizer.md +0 -62
- package/dist/docs/references/reference-processors-working-memory-processor.md +0 -154
- package/dist/docs/references/reference-rag-database-config.md +0 -264
- package/dist/docs/references/reference-rag-embeddings.md +0 -92
- package/dist/docs/references/reference-server-mastra-server.md +0 -298
- package/dist/docs/references/reference-server-register-api-route.md +0 -249
- package/dist/docs/references/reference-storage-cloudflare-d1.md +0 -218
- package/dist/docs/references/reference-storage-composite.md +0 -235
- package/dist/docs/references/reference-storage-lance.md +0 -131
- package/dist/docs/references/reference-storage-libsql.md +0 -135
- package/dist/docs/references/reference-storage-mongodb.md +0 -262
- package/dist/docs/references/reference-storage-mssql.md +0 -155
- package/dist/docs/references/reference-storage-overview.md +0 -121
- package/dist/docs/references/reference-storage-postgresql.md +0 -529
- package/dist/docs/references/reference-storage-upstash.md +0 -160
- package/dist/docs/references/reference-streaming-ChunkType.md +0 -292
- package/dist/docs/references/reference-streaming-agents-MastraModelOutput.md +0 -182
- package/dist/docs/references/reference-streaming-agents-streamLegacy.md +0 -142
- package/dist/docs/references/reference-streaming-workflows-observeStream.md +0 -42
- package/dist/docs/references/reference-streaming-workflows-resumeStream.md +0 -61
- package/dist/docs/references/reference-streaming-workflows-stream.md +0 -88
- package/dist/docs/references/reference-streaming-workflows-timeTravelStream.md +0 -142
- package/dist/docs/references/reference-templates-overview.md +0 -194
- package/dist/docs/references/reference-tools-create-tool.md +0 -237
- package/dist/docs/references/reference-tools-graph-rag-tool.md +0 -185
- package/dist/docs/references/reference-tools-mcp-client.md +0 -962
- package/dist/docs/references/reference-tools-mcp-server.md +0 -1275
- package/dist/docs/references/reference-tools-vector-query-tool.md +0 -459
- package/dist/docs/references/reference-vectors-libsql.md +0 -305
- package/dist/docs/references/reference-vectors-mongodb.md +0 -295
- package/dist/docs/references/reference-vectors-pg.md +0 -408
- package/dist/docs/references/reference-vectors-upstash.md +0 -294
- package/dist/docs/references/reference-voice-composite-voice.md +0 -121
- package/dist/docs/references/reference-voice-mastra-voice.md +0 -313
- package/dist/docs/references/reference-voice-voice.addInstructions.md +0 -56
- package/dist/docs/references/reference-voice-voice.addTools.md +0 -67
- package/dist/docs/references/reference-voice-voice.connect.md +0 -94
- package/dist/docs/references/reference-voice-voice.events.md +0 -37
- package/dist/docs/references/reference-voice-voice.listen.md +0 -164
- package/dist/docs/references/reference-voice-voice.on.md +0 -111
- package/dist/docs/references/reference-voice-voice.speak.md +0 -157
- package/dist/docs/references/reference-workflows-run-methods-cancel.md +0 -86
- package/dist/docs/references/reference-workflows-run-methods-restart.md +0 -33
- package/dist/docs/references/reference-workflows-run-methods-resume.md +0 -59
- package/dist/docs/references/reference-workflows-run-methods-start.md +0 -58
- package/dist/docs/references/reference-workflows-run-methods-startAsync.md +0 -67
- package/dist/docs/references/reference-workflows-run-methods-timeTravel.md +0 -142
- package/dist/docs/references/reference-workflows-run.md +0 -59
- package/dist/docs/references/reference-workflows-step.md +0 -119
- package/dist/docs/references/reference-workflows-workflow-methods-branch.md +0 -25
- package/dist/docs/references/reference-workflows-workflow-methods-commit.md +0 -17
- package/dist/docs/references/reference-workflows-workflow-methods-create-run.md +0 -63
- package/dist/docs/references/reference-workflows-workflow-methods-dountil.md +0 -25
- package/dist/docs/references/reference-workflows-workflow-methods-dowhile.md +0 -25
- package/dist/docs/references/reference-workflows-workflow-methods-foreach.md +0 -118
- package/dist/docs/references/reference-workflows-workflow-methods-map.md +0 -93
- package/dist/docs/references/reference-workflows-workflow-methods-parallel.md +0 -21
- package/dist/docs/references/reference-workflows-workflow-methods-sleep.md +0 -35
- package/dist/docs/references/reference-workflows-workflow-methods-sleepUntil.md +0 -35
- package/dist/docs/references/reference-workflows-workflow-methods-then.md +0 -21
- package/dist/docs/references/reference-workflows-workflow.md +0 -157
- package/dist/docs/references/reference-workspace-filesystem.md +0 -202
- package/dist/docs/references/reference-workspace-local-filesystem.md +0 -327
- package/dist/docs/references/reference-workspace-local-sandbox.md +0 -285
- package/dist/docs/references/reference-workspace-sandbox.md +0 -81
- package/dist/docs/references/reference-workspace-workspace-class.md +0 -226
- package/dist/docs/references/reference.md +0 -276
|
@@ -1,266 +0,0 @@
|
|
|
1
|
-
# Running Experiments
|
|
2
|
-
|
|
3
|
-
**Added in:** `@mastra/core@1.4.0`
|
|
4
|
-
|
|
5
|
-
An experiment runs every item in a dataset through a target (an agent, a workflow, or a scorer) and then optionally scores the outputs. Use a scorer as the target when you want to evaluate an LLM judge itself. Results are persisted to storage so you can compare runs across different prompts, models, or code changes.
|
|
6
|
-
|
|
7
|
-
## Basic experiment
|
|
8
|
-
|
|
9
|
-
Call [`startExperiment()`](https://mastra.ai/reference/datasets/startExperiment) with a target and scorers:
|
|
10
|
-
|
|
11
|
-
```typescript
|
|
12
|
-
import { mastra } from "../index";
|
|
13
|
-
|
|
14
|
-
const dataset = await mastra.datasets.get({ id: "translation-dataset-id" });
|
|
15
|
-
|
|
16
|
-
const summary = await dataset.startExperiment({
|
|
17
|
-
name: "gpt-5.1-baseline",
|
|
18
|
-
targetType: "agent",
|
|
19
|
-
targetId: "translation-agent",
|
|
20
|
-
scorers: ["accuracy", "fluency"],
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
console.log(summary.status); // 'completed' | 'failed'
|
|
24
|
-
console.log(summary.succeededCount); // number of items that ran successfully
|
|
25
|
-
console.log(summary.failedCount); // number of items that failed
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
`startExperiment()` blocks until all items finish. For fire-and-forget execution, see [async experiments](#async-experiments).
|
|
29
|
-
|
|
30
|
-
## Experiment targets
|
|
31
|
-
|
|
32
|
-
You can point an experiment at a registered agent, workflow, or scorer.
|
|
33
|
-
|
|
34
|
-
### Registered agent
|
|
35
|
-
|
|
36
|
-
Point to an agent registered on your Mastra instance:
|
|
37
|
-
|
|
38
|
-
```typescript
|
|
39
|
-
const summary = await dataset.startExperiment({
|
|
40
|
-
name: "agent-v2-eval",
|
|
41
|
-
targetType: "agent",
|
|
42
|
-
targetId: "translation-agent",
|
|
43
|
-
scorers: ["accuracy"],
|
|
44
|
-
});
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
Each item's `input` is passed directly to `agent.generate()`, so it must be a `string`, `string[]`, or `CoreMessage[]`.
|
|
48
|
-
|
|
49
|
-
### Registered workflow
|
|
50
|
-
|
|
51
|
-
Point to a workflow registered on your Mastra instance:
|
|
52
|
-
|
|
53
|
-
```typescript
|
|
54
|
-
const summary = await dataset.startExperiment({
|
|
55
|
-
name: "workflow-eval",
|
|
56
|
-
targetType: "workflow",
|
|
57
|
-
targetId: "translation-workflow",
|
|
58
|
-
scorers: ["accuracy"],
|
|
59
|
-
});
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
The workflow receives each item's `input` as its trigger data.
|
|
63
|
-
|
|
64
|
-
### Registered scorer
|
|
65
|
-
|
|
66
|
-
Point to a scorer to evaluate an LLM judge against ground truth:
|
|
67
|
-
|
|
68
|
-
```typescript
|
|
69
|
-
const summary = await dataset.startExperiment({
|
|
70
|
-
name: "judge-accuracy-eval",
|
|
71
|
-
targetType: "scorer",
|
|
72
|
-
targetId: "accuracy",
|
|
73
|
-
});
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
The scorer receives each item's `input` and `groundTruth`. LLM-based judges can drift over time as underlying models change, so it's important to periodically realign them against known-good labels. A dataset gives you a stable benchmark to detect that drift.
|
|
77
|
-
|
|
78
|
-
## Scoring results
|
|
79
|
-
|
|
80
|
-
Scorers automatically run after each item's target execution. Pass scorer instances or registered scorer IDs:
|
|
81
|
-
|
|
82
|
-
**Scorer IDs**:
|
|
83
|
-
|
|
84
|
-
```typescript
|
|
85
|
-
// Reference scorers registered on the Mastra instance
|
|
86
|
-
const summary = await dataset.startExperiment({
|
|
87
|
-
name: "with-registered-scorers",
|
|
88
|
-
targetType: "agent",
|
|
89
|
-
targetId: "translation-agent",
|
|
90
|
-
scorers: ["accuracy", "fluency"],
|
|
91
|
-
});
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
**Scorer instances**:
|
|
95
|
-
|
|
96
|
-
```typescript
|
|
97
|
-
import { createAnswerRelevancyScorer } from "@mastra/evals/scorers/prebuilt";
|
|
98
|
-
|
|
99
|
-
const relevancy = createAnswerRelevancyScorer({ model: "openai/gpt-4.1-nano" });
|
|
100
|
-
|
|
101
|
-
const summary = await dataset.startExperiment({
|
|
102
|
-
name: "with-scorer-instances",
|
|
103
|
-
targetType: "agent",
|
|
104
|
-
targetId: "translation-agent",
|
|
105
|
-
scorers: [relevancy],
|
|
106
|
-
});
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
Each item's results include per-scorer scores:
|
|
110
|
-
|
|
111
|
-
```typescript
|
|
112
|
-
for (const item of summary.results) {
|
|
113
|
-
console.log(item.itemId, item.output);
|
|
114
|
-
for (const score of item.scores) {
|
|
115
|
-
console.log(` ${score.scorerName}: ${score.score} — ${score.reason}`);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
> **Info:** Visit the [Scorers overview](https://mastra.ai/docs/evals/overview) for details on available and custom scorers.
|
|
121
|
-
|
|
122
|
-
## Async experiments
|
|
123
|
-
|
|
124
|
-
`startExperiment()` blocks until every item completes. For long-running datasets, use [`startExperimentAsync()`](https://mastra.ai/reference/datasets/startExperimentAsync) to start the experiment in the background:
|
|
125
|
-
|
|
126
|
-
```typescript
|
|
127
|
-
const { experimentId, status } = await dataset.startExperimentAsync({
|
|
128
|
-
name: "large-dataset-run",
|
|
129
|
-
targetType: "agent",
|
|
130
|
-
targetId: "translation-agent",
|
|
131
|
-
scorers: ["accuracy"],
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
console.log(experimentId); // UUID
|
|
135
|
-
console.log(status); // 'pending'
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
Poll for completion using [`getExperiment()`](https://mastra.ai/reference/datasets/getExperiment):
|
|
139
|
-
|
|
140
|
-
```typescript
|
|
141
|
-
let experiment = await dataset.getExperiment({ experimentId });
|
|
142
|
-
|
|
143
|
-
while (experiment.status === "pending" || experiment.status === "running") {
|
|
144
|
-
await new Promise(resolve => setTimeout(resolve, 5000));
|
|
145
|
-
experiment = await dataset.getExperiment({ experimentId });
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
console.log(experiment.status); // 'completed' | 'failed'
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
## Configuration options
|
|
152
|
-
|
|
153
|
-
### Concurrency
|
|
154
|
-
|
|
155
|
-
Control how many items run in parallel (default: 5):
|
|
156
|
-
|
|
157
|
-
```typescript
|
|
158
|
-
const summary = await dataset.startExperiment({
|
|
159
|
-
targetType: "agent",
|
|
160
|
-
targetId: "translation-agent",
|
|
161
|
-
maxConcurrency: 10,
|
|
162
|
-
});
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### Timeouts and retries
|
|
166
|
-
|
|
167
|
-
Set a per-item timeout (in milliseconds) and retry count:
|
|
168
|
-
|
|
169
|
-
```typescript
|
|
170
|
-
const summary = await dataset.startExperiment({
|
|
171
|
-
targetType: "agent",
|
|
172
|
-
targetId: "translation-agent",
|
|
173
|
-
itemTimeout: 30_000, // 30 seconds per item
|
|
174
|
-
maxRetries: 2, // retry failed items up to 2 times
|
|
175
|
-
});
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
Retries use exponential backoff. Abort errors are never retried.
|
|
179
|
-
|
|
180
|
-
### Aborting an experiment
|
|
181
|
-
|
|
182
|
-
Pass an `AbortSignal` to cancel a running experiment:
|
|
183
|
-
|
|
184
|
-
```typescript
|
|
185
|
-
const controller = new AbortController();
|
|
186
|
-
|
|
187
|
-
// Cancel after 60 seconds
|
|
188
|
-
setTimeout(() => controller.abort(), 60_000);
|
|
189
|
-
|
|
190
|
-
const summary = await dataset.startExperiment({
|
|
191
|
-
targetType: "agent",
|
|
192
|
-
targetId: "translation-agent",
|
|
193
|
-
signal: controller.signal,
|
|
194
|
-
});
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
Remaining items are marked as skipped in the summary.
|
|
198
|
-
|
|
199
|
-
### Pinning a dataset version
|
|
200
|
-
|
|
201
|
-
Run against a specific snapshot of the dataset:
|
|
202
|
-
|
|
203
|
-
```typescript
|
|
204
|
-
const summary = await dataset.startExperiment({
|
|
205
|
-
targetType: "agent",
|
|
206
|
-
targetId: "translation-agent",
|
|
207
|
-
version: 3, // use items from dataset version 3
|
|
208
|
-
});
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
## Viewing results
|
|
212
|
-
|
|
213
|
-
### Listing experiments
|
|
214
|
-
|
|
215
|
-
```typescript
|
|
216
|
-
const { experiments, pagination } = await dataset.listExperiments({
|
|
217
|
-
page: 0,
|
|
218
|
-
perPage: 10,
|
|
219
|
-
});
|
|
220
|
-
|
|
221
|
-
for (const exp of experiments) {
|
|
222
|
-
console.log(`${exp.name} — ${exp.status} (${exp.succeededCount}/${exp.totalItems})`);
|
|
223
|
-
}
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
### Experiment details
|
|
227
|
-
|
|
228
|
-
```typescript
|
|
229
|
-
const experiment = await dataset.getExperiment({
|
|
230
|
-
experimentId: "exp-abc-123",
|
|
231
|
-
});
|
|
232
|
-
|
|
233
|
-
console.log(experiment.status);
|
|
234
|
-
console.log(experiment.startedAt);
|
|
235
|
-
console.log(experiment.completedAt);
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
### Item-level results
|
|
239
|
-
|
|
240
|
-
```typescript
|
|
241
|
-
const { results, pagination } = await dataset.listExperimentResults({
|
|
242
|
-
experimentId: "exp-abc-123",
|
|
243
|
-
page: 0,
|
|
244
|
-
perPage: 50,
|
|
245
|
-
});
|
|
246
|
-
|
|
247
|
-
for (const result of results) {
|
|
248
|
-
console.log(result.itemId, result.output, result.error);
|
|
249
|
-
}
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
## Understanding the summary
|
|
253
|
-
|
|
254
|
-
`startExperiment()` returns an `ExperimentSummary` with counts and per-item results:
|
|
255
|
-
|
|
256
|
-
- `completedWithErrors` is `true` when the experiment finished but some items failed.
|
|
257
|
-
- Items cancelled via `signal` appear in `skippedCount`.
|
|
258
|
-
|
|
259
|
-
> **Info:** Visit the [`startExperiment` reference](https://mastra.ai/reference/datasets/startExperiment) for the full parameter and return type documentation.
|
|
260
|
-
|
|
261
|
-
## Related
|
|
262
|
-
|
|
263
|
-
- [Datasets overview](https://mastra.ai/docs/observability/datasets/overview)
|
|
264
|
-
- [Scorers overview](https://mastra.ai/docs/evals/overview)
|
|
265
|
-
- [`startExperiment` reference](https://mastra.ai/reference/datasets/startExperiment)
|
|
266
|
-
- [`listExperimentResults` reference](https://mastra.ai/reference/datasets/listExperimentResults)
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
# Logging
|
|
2
|
-
|
|
3
|
-
Mastra's logging system captures function execution, input data, and output responses in a structured format.
|
|
4
|
-
|
|
5
|
-
When deploying to Mastra Cloud, logs are shown on the [Logs](https://mastra.ai/docs/mastra-cloud/observability) page. In self-hosted or custom environments, logs can be directed to files or external services depending on the configured transports.
|
|
6
|
-
|
|
7
|
-
## Configuring logs with PinoLogger
|
|
8
|
-
|
|
9
|
-
When [initializing a new Mastra project](https://mastra.ai/guides/getting-started/quickstart) using the CLI, `PinoLogger` is included by default.
|
|
10
|
-
|
|
11
|
-
```typescript
|
|
12
|
-
import { Mastra } from "@mastra/core/mastra";
|
|
13
|
-
import { PinoLogger } from "@mastra/loggers";
|
|
14
|
-
|
|
15
|
-
export const mastra = new Mastra({
|
|
16
|
-
logger: new PinoLogger({
|
|
17
|
-
name: "Mastra",
|
|
18
|
-
level: "info",
|
|
19
|
-
}),
|
|
20
|
-
});
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
> **Info:** Visit [PinoLogger](https://mastra.ai/reference/logging/pino-logger) for all available configuration options.
|
|
24
|
-
|
|
25
|
-
## Customizing logs
|
|
26
|
-
|
|
27
|
-
Mastra provides access to a logger instance via the `mastra.getLogger()` method, available inside both workflow steps and tools. The logger supports standard severity levels: `debug`, `info`, `warn`, and `error`.
|
|
28
|
-
|
|
29
|
-
### Logging from workflow steps
|
|
30
|
-
|
|
31
|
-
Within a workflow step, access the logger via the `mastra` parameter inside the `execute` function. This allows you to log messages relevant to the step’s execution.
|
|
32
|
-
|
|
33
|
-
```typescript
|
|
34
|
-
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
35
|
-
import { z } from "zod";
|
|
36
|
-
|
|
37
|
-
const step1 = createStep({
|
|
38
|
-
execute: async ({ mastra }) => {
|
|
39
|
-
const logger = mastra.getLogger();
|
|
40
|
-
logger.info("workflow info log");
|
|
41
|
-
|
|
42
|
-
return {
|
|
43
|
-
output: ""
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
export const testWorkflow = createWorkflow({...})
|
|
49
|
-
.then(step1)
|
|
50
|
-
.commit();
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### Logging from tools
|
|
54
|
-
|
|
55
|
-
Similarly, tools have access to the logger instance via the `mastra` parameter. Use this to log tool specific activity during execution.
|
|
56
|
-
|
|
57
|
-
```typescript
|
|
58
|
-
import { createTool } from "@mastra/core/tools";
|
|
59
|
-
import { z } from "zod";
|
|
60
|
-
|
|
61
|
-
export const testTool = createTool({
|
|
62
|
-
execute: async (inputData, context) => {
|
|
63
|
-
const logger = context?.mastra.getLogger();
|
|
64
|
-
logger?.info("tool info log");
|
|
65
|
-
|
|
66
|
-
return {
|
|
67
|
-
output: "",
|
|
68
|
-
};
|
|
69
|
-
},
|
|
70
|
-
});
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### Logging with additional data
|
|
74
|
-
|
|
75
|
-
Logger methods accept an optional second argument for additional data. This can be any value, such as an object, string, or number.
|
|
76
|
-
|
|
77
|
-
In this example, the log message includes an object with a key of `agent` and a value of the `testAgent` instance.
|
|
78
|
-
|
|
79
|
-
```typescript
|
|
80
|
-
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
81
|
-
import { z } from "zod";
|
|
82
|
-
|
|
83
|
-
const step1 = createStep({
|
|
84
|
-
execute: async ({ mastra }) => {
|
|
85
|
-
const testAgent = mastra.getAgent("testAgent");
|
|
86
|
-
const logger = mastra.getLogger();
|
|
87
|
-
|
|
88
|
-
logger.info("workflow info log", { agent: testAgent });
|
|
89
|
-
|
|
90
|
-
return {
|
|
91
|
-
output: ""
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
export const testWorkflow = createWorkflow({...})
|
|
97
|
-
.then(step1)
|
|
98
|
-
.commit();
|
|
99
|
-
```
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
# Observability Overview
|
|
2
|
-
|
|
3
|
-
Mastra provides observability features for AI applications. Monitor LLM operations, trace agent decisions, and debug complex workflows with tools that understand AI-specific patterns.
|
|
4
|
-
|
|
5
|
-
## Key Features
|
|
6
|
-
|
|
7
|
-
### Tracing
|
|
8
|
-
|
|
9
|
-
Specialized tracing for AI operations that captures:
|
|
10
|
-
|
|
11
|
-
- **Model interactions**: Token usage, latency, prompts, and completions
|
|
12
|
-
- **Agent execution**: Decision paths, tool calls, and memory operations
|
|
13
|
-
- **Workflow steps**: Branching logic, parallel execution, and step outputs
|
|
14
|
-
- **Automatic instrumentation**: Tracing with decorators
|
|
15
|
-
|
|
16
|
-
## Storage Requirements
|
|
17
|
-
|
|
18
|
-
The `DefaultExporter` persists traces to your configured storage backend. Not all storage providers support observability—for the full list, see [Storage Provider Support](https://mastra.ai/docs/observability/tracing/exporters/default).
|
|
19
|
-
|
|
20
|
-
For production environments with high traffic, we recommend using **ClickHouse** for the observability domain via [composite storage](https://mastra.ai/reference/storage/composite). See [Production Recommendations](https://mastra.ai/docs/observability/tracing/exporters/default) for details.
|
|
21
|
-
|
|
22
|
-
## Quick Start
|
|
23
|
-
|
|
24
|
-
Configure Observability in your Mastra instance:
|
|
25
|
-
|
|
26
|
-
```typescript
|
|
27
|
-
import { Mastra } from "@mastra/core";
|
|
28
|
-
import { PinoLogger } from "@mastra/loggers";
|
|
29
|
-
import { LibSQLStore } from "@mastra/libsql";
|
|
30
|
-
import {
|
|
31
|
-
Observability,
|
|
32
|
-
DefaultExporter,
|
|
33
|
-
CloudExporter,
|
|
34
|
-
SensitiveDataFilter,
|
|
35
|
-
} from "@mastra/observability";
|
|
36
|
-
|
|
37
|
-
export const mastra = new Mastra({
|
|
38
|
-
logger: new PinoLogger(),
|
|
39
|
-
storage: new LibSQLStore({
|
|
40
|
-
id: 'mastra-storage',
|
|
41
|
-
url: "file:./mastra.db", // Storage is required for tracing
|
|
42
|
-
}),
|
|
43
|
-
observability: new Observability({
|
|
44
|
-
configs: {
|
|
45
|
-
default: {
|
|
46
|
-
serviceName: "mastra",
|
|
47
|
-
exporters: [
|
|
48
|
-
new DefaultExporter(), // Persists traces to storage for Mastra Studio
|
|
49
|
-
new CloudExporter(), // Sends traces to Mastra Cloud (if MASTRA_CLOUD_ACCESS_TOKEN is set)
|
|
50
|
-
],
|
|
51
|
-
spanOutputProcessors: [
|
|
52
|
-
new SensitiveDataFilter(), // Redacts sensitive data like passwords, tokens, keys
|
|
53
|
-
],
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
}),
|
|
57
|
-
});
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
> **Serverless environments:** The `file:./mastra.db` storage URL uses the local filesystem, which doesn't work in serverless environments like Vercel, AWS Lambda, or Cloudflare Workers. For serverless deployments, use external storage. See the [Vercel deployment guide](https://mastra.ai/guides/deployment/vercel) for a complete example.
|
|
61
|
-
|
|
62
|
-
With this basic setup, you will see Traces and Logs in both Studio and in Mastra Cloud.
|
|
63
|
-
|
|
64
|
-
We also support various external tracing providers like MLflow, Langfuse, Braintrust, and any OpenTelemetry-compatible platform (Datadog, New Relic, SigNoz, etc.). See more about this in the [Tracing](https://mastra.ai/docs/observability/tracing/overview) documentation.
|
|
65
|
-
|
|
66
|
-
## What's Next?
|
|
67
|
-
|
|
68
|
-
- **[Set up Tracing](https://mastra.ai/docs/observability/tracing/overview)**: Configure tracing for your application
|
|
69
|
-
- **[Configure Logging](https://mastra.ai/docs/observability/logging)**: Add structured logging
|
|
70
|
-
- **[API Reference](https://mastra.ai/reference/observability/tracing/instances)**: Detailed configuration options
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
# OpenTelemetry Bridge
|
|
2
|
-
|
|
3
|
-
> **Warning:** The OpenTelemetry Bridge is currently **experimental**. APIs and configuration options may change in future releases.
|
|
4
|
-
|
|
5
|
-
The OpenTelemetry (OTEL) Bridge enables bidirectional integration between Mastra's tracing system and existing OpenTelemetry infrastructure. Unlike exporters that send trace data to external platforms, the bridge creates native OTEL spans that participate in your distributed tracing context.
|
|
6
|
-
|
|
7
|
-
> **Looking to send traces without existing OTEL infrastructure?:** If you don't have existing OpenTelemetry instrumentation, the [OpenTelemetry Exporter](https://mastra.ai/docs/observability/tracing/exporters/otel) may be simpler — it sends traces directly without requiring an OTEL SDK setup.
|
|
8
|
-
|
|
9
|
-
## When to Use the Bridge
|
|
10
|
-
|
|
11
|
-
Use the OtelBridge when you:
|
|
12
|
-
|
|
13
|
-
- Have existing OTEL instrumentation in your application (HTTP servers, database clients, etc.)
|
|
14
|
-
- Want Mastra operations to appear as child spans of your existing OTEL traces
|
|
15
|
-
- Need OTEL-instrumented code inside Mastra tools to maintain proper parent-child relationships
|
|
16
|
-
- Are building a distributed system where trace context must propagate across services
|
|
17
|
-
|
|
18
|
-
## How It Works
|
|
19
|
-
|
|
20
|
-
The OtelBridge provides two-way integration:
|
|
21
|
-
|
|
22
|
-
**From OTEL to Mastra:**
|
|
23
|
-
|
|
24
|
-
- Reads from OTEL ambient context (AsyncLocalStorage) automatically
|
|
25
|
-
- Inherits trace ID and parent span ID from active OTEL spans
|
|
26
|
-
- Respects OTEL sampling decisions — if a trace is not sampled, Mastra won't create spans for it
|
|
27
|
-
- No manual trace ID passing required when OTEL auto-instrumentation is active
|
|
28
|
-
|
|
29
|
-
**From Mastra to OTEL:**
|
|
30
|
-
|
|
31
|
-
- Creates native OTEL spans for Mastra operations (agents, LLM calls, tools, workflows)
|
|
32
|
-
- Maintains proper parent-child relationships in distributed traces
|
|
33
|
-
- Allows OTEL-instrumented code (HTTP clients, database calls) within Mastra operations to nest correctly
|
|
34
|
-
|
|
35
|
-
## Installation
|
|
36
|
-
|
|
37
|
-
**npm**:
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
npm install @mastra/otel-bridge
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
**pnpm**:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
pnpm add @mastra/otel-bridge
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
**Yarn**:
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
yarn add @mastra/otel-bridge
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
**Bun**:
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
bun add @mastra/otel-bridge
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
The bridge works with your existing OpenTelemetry setup. Depending on your configuration, you may also need some of these packages:
|
|
62
|
-
|
|
63
|
-
- `@opentelemetry/sdk-node` - Core Node.js SDK for OTEL
|
|
64
|
-
- `@opentelemetry/auto-instrumentations-node` - Auto-instrumentation for common libraries
|
|
65
|
-
- `@opentelemetry/exporter-trace-otlp-proto` - OTLP exporter (Protobuf over HTTP)
|
|
66
|
-
- `@opentelemetry/exporter-trace-otlp-http` - OTLP exporter (JSON over HTTP)
|
|
67
|
-
- `@opentelemetry/exporter-trace-otlp-grpc` - OTLP exporter (gRPC)
|
|
68
|
-
- `@opentelemetry/sdk-trace-base` - Base tracing SDK (for BatchSpanProcessor, etc.)
|
|
69
|
-
- `@opentelemetry/core` - Core utilities (for W3CTraceContextPropagator, etc.)
|
|
70
|
-
|
|
71
|
-
## Configuration
|
|
72
|
-
|
|
73
|
-
Using the OtelBridge requires two steps:
|
|
74
|
-
|
|
75
|
-
1. Configure OpenTelemetry instrumentation in your application
|
|
76
|
-
2. Add the OtelBridge to your Mastra observability config
|
|
77
|
-
|
|
78
|
-
### Step 1: OpenTelemetry Instrumentation
|
|
79
|
-
|
|
80
|
-
Create an instrumentation file that initializes OTEL. This must run before your application code:
|
|
81
|
-
|
|
82
|
-
```typescript
|
|
83
|
-
import { NodeSDK } from "@opentelemetry/sdk-node";
|
|
84
|
-
import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";
|
|
85
|
-
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto";
|
|
86
|
-
import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
|
|
87
|
-
import { W3CTraceContextPropagator } from "@opentelemetry/core";
|
|
88
|
-
|
|
89
|
-
const sdk = new NodeSDK({
|
|
90
|
-
serviceName: "my-service",
|
|
91
|
-
spanProcessors: [
|
|
92
|
-
new BatchSpanProcessor(
|
|
93
|
-
new OTLPTraceExporter({
|
|
94
|
-
url: process.env.OTEL_EXPORTER_OTLP_ENDPOINT || "http://localhost:4318/v1/traces",
|
|
95
|
-
})
|
|
96
|
-
),
|
|
97
|
-
],
|
|
98
|
-
instrumentations: [getNodeAutoInstrumentations()],
|
|
99
|
-
textMapPropagator: new W3CTraceContextPropagator(),
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
sdk.start();
|
|
103
|
-
|
|
104
|
-
export { sdk };
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### Step 2: Mastra Configuration
|
|
108
|
-
|
|
109
|
-
Add the OtelBridge to your Mastra observability config:
|
|
110
|
-
|
|
111
|
-
```typescript
|
|
112
|
-
import { Mastra } from "@mastra/core";
|
|
113
|
-
import { Observability } from "@mastra/observability";
|
|
114
|
-
import { OtelBridge } from "@mastra/otel-bridge";
|
|
115
|
-
|
|
116
|
-
export const mastra = new Mastra({
|
|
117
|
-
observability: new Observability({
|
|
118
|
-
configs: {
|
|
119
|
-
default: {
|
|
120
|
-
serviceName: "my-service",
|
|
121
|
-
bridge: new OtelBridge(),
|
|
122
|
-
},
|
|
123
|
-
},
|
|
124
|
-
}),
|
|
125
|
-
agents: {
|
|
126
|
-
/* your agents */
|
|
127
|
-
},
|
|
128
|
-
});
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
No Mastra exporters are required when using the bridge — traces are sent via your OTEL SDK configuration. You can optionally add Mastra exporters if you want to send traces to additional destinations.
|
|
132
|
-
|
|
133
|
-
### Running Your Application
|
|
134
|
-
|
|
135
|
-
Use the `--import` flag to ensure instrumentation loads before your application:
|
|
136
|
-
|
|
137
|
-
```bash
|
|
138
|
-
tsx --import ./instrumentation.ts ./src/index.ts
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
## Semantic Conventions
|
|
142
|
-
|
|
143
|
-
The OtelBridge exports Mastra spans using [OpenTelemetry Semantic Conventions for GenAI v1.38.0](https://github.com/open-telemetry/semantic-conventions/tree/v1.38.0/docs/gen-ai). This includes standardized span names (`chat {model}`, `execute_tool {tool_name}`, etc.) and attributes (`gen_ai.usage.input_tokens`, `gen_ai.request.model`, etc.).
|
|
144
|
-
|
|
145
|
-
For details on span naming and attributes, see the [OpenTelemetry Exporter semantic conventions](https://mastra.ai/docs/observability/tracing/exporters/otel).
|
|
146
|
-
|
|
147
|
-
## Trace Hierarchy
|
|
148
|
-
|
|
149
|
-
With the OtelBridge, your traces maintain proper hierarchy across OTEL and Mastra boundaries:
|
|
150
|
-
|
|
151
|
-
```text
|
|
152
|
-
HTTP POST /api/chat (from Hono middleware)
|
|
153
|
-
└── agent.assistant (from Mastra via OtelBridge)
|
|
154
|
-
├── chat gpt-4o (LLM call)
|
|
155
|
-
├── tool.execute search (tool execution)
|
|
156
|
-
│ └── HTTP GET api.example.com (from OTEL auto-instrumentation)
|
|
157
|
-
└── chat gpt-4o (follow-up LLM call)
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
## Multi-Service Distributed Tracing
|
|
161
|
-
|
|
162
|
-
The OtelBridge enables trace propagation across service boundaries. When Service A calls Service B via HTTP, trace context propagates automatically:
|
|
163
|
-
|
|
164
|
-
```text
|
|
165
|
-
Service A: HTTP POST /api/process
|
|
166
|
-
└── HTTP POST service-b/api/analyze (outgoing call)
|
|
167
|
-
|
|
168
|
-
Service B: HTTP POST /api/analyze (incoming call - same trace!)
|
|
169
|
-
└── agent.analyzer (Mastra agent inherits trace context)
|
|
170
|
-
└── chat gpt-4o
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
Both services must have:
|
|
174
|
-
|
|
175
|
-
1. OTEL instrumentation configured
|
|
176
|
-
2. W3C Trace Context propagator enabled
|
|
177
|
-
3. Mastra with OtelBridge configured
|
|
178
|
-
|
|
179
|
-
## Using Tags
|
|
180
|
-
|
|
181
|
-
Tags help you categorize and filter traces in your OTEL backend. Add tags when executing agents or workflows:
|
|
182
|
-
|
|
183
|
-
```typescript
|
|
184
|
-
const result = await agent.generate("Hello", {
|
|
185
|
-
tracingOptions: {
|
|
186
|
-
tags: ["production", "experiment-v2", "user-request"],
|
|
187
|
-
},
|
|
188
|
-
});
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
Tags are exported as a JSON string in the `mastra.tags` span attribute for broad backend compatibility. Common use cases include:
|
|
192
|
-
|
|
193
|
-
- Environment labels: `"production"`, `"staging"`
|
|
194
|
-
- Experiment tracking: `"experiment-v1"`, `"control-group"`
|
|
195
|
-
- Priority levels: `"priority-high"`, `"batch-job"`
|
|
196
|
-
|
|
197
|
-
## Troubleshooting
|
|
198
|
-
|
|
199
|
-
If traces aren't appearing or connecting as expected:
|
|
200
|
-
|
|
201
|
-
- Verify OTEL SDK is initialized before Mastra (use `--import` flag or import at top of entry point)
|
|
202
|
-
- Ensure the OtelBridge is added to your observability config
|
|
203
|
-
- Check that your OTEL backend is running and accessible
|
|
204
|
-
|
|
205
|
-
## Related
|
|
206
|
-
|
|
207
|
-
- [Tracing Overview](https://mastra.ai/docs/observability/tracing/overview)
|
|
208
|
-
- [OpenTelemetry Exporter](https://mastra.ai/docs/observability/tracing/exporters/otel) - For sending traces to OTEL backends
|
|
209
|
-
- [OtelBridge Reference](https://mastra.ai/reference/observability/tracing/bridges/otel) - API documentation
|