@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.
Files changed (397) hide show
  1. package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +2 -0
  2. package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +2 -0
  3. package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +8 -8
  4. package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +2 -0
  5. package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +23 -23
  6. package/.docs/organized/changelogs/%40mastra%2Fcore.md +69 -69
  7. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +17 -17
  8. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +17 -17
  9. package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +17 -17
  10. package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +17 -17
  11. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +25 -25
  12. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +15 -15
  13. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +27 -27
  14. package/.docs/organized/changelogs/%40mastra%2Freact.md +15 -15
  15. package/.docs/organized/changelogs/%40mastra%2Fserver.md +23 -23
  16. package/.docs/organized/changelogs/create-mastra.md +5 -5
  17. package/.docs/organized/changelogs/mastra.md +17 -17
  18. package/.docs/raw/agents/adding-voice.mdx +20 -9
  19. package/.docs/raw/agents/agent-memory.mdx +55 -39
  20. package/.docs/raw/agents/guardrails.mdx +68 -61
  21. package/.docs/raw/agents/networks.mdx +50 -46
  22. package/.docs/raw/agents/overview.mdx +125 -88
  23. package/.docs/raw/agents/using-tools.mdx +14 -15
  24. package/.docs/raw/auth/auth0.mdx +28 -27
  25. package/.docs/raw/auth/clerk.mdx +22 -20
  26. package/.docs/raw/auth/firebase.mdx +42 -39
  27. package/.docs/raw/auth/index.mdx +1 -1
  28. package/.docs/raw/auth/jwt.mdx +18 -16
  29. package/.docs/raw/auth/supabase.mdx +20 -18
  30. package/.docs/raw/auth/workos.mdx +32 -26
  31. package/.docs/raw/community/contributing-templates.mdx +7 -7
  32. package/.docs/raw/community/discord.mdx +2 -2
  33. package/.docs/raw/community/licensing.mdx +1 -1
  34. package/.docs/raw/course/03-agent-memory/26-updating-mastra-export-comprehensive.md +0 -32
  35. package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +41 -22
  36. package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +48 -29
  37. package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +52 -24
  38. package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +86 -55
  39. package/.docs/raw/deployment/cloud-providers/index.mdx +16 -13
  40. package/.docs/raw/deployment/monorepo.mdx +32 -42
  41. package/.docs/raw/deployment/overview.mdx +15 -15
  42. package/.docs/raw/deployment/server-deployment.mdx +18 -23
  43. package/.docs/raw/deployment/serverless-platforms/cloudflare-deployer.mdx +16 -17
  44. package/.docs/raw/deployment/serverless-platforms/index.mdx +15 -12
  45. package/.docs/raw/deployment/serverless-platforms/netlify-deployer.mdx +14 -23
  46. package/.docs/raw/deployment/serverless-platforms/vercel-deployer.mdx +16 -23
  47. package/.docs/raw/deployment/web-framework.mdx +14 -14
  48. package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +138 -145
  49. package/.docs/raw/frameworks/agentic-uis/assistant-ui.mdx +54 -43
  50. package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +51 -36
  51. package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +161 -120
  52. package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +59 -48
  53. package/.docs/raw/frameworks/servers/express.mdx +45 -44
  54. package/.docs/raw/frameworks/web-frameworks/astro.mdx +245 -162
  55. package/.docs/raw/frameworks/web-frameworks/next-js.mdx +112 -69
  56. package/.docs/raw/frameworks/web-frameworks/sveltekit.mdx +189 -164
  57. package/.docs/raw/frameworks/web-frameworks/vite-react.mdx +94 -81
  58. package/.docs/raw/getting-started/installation.mdx +164 -133
  59. package/.docs/raw/getting-started/mcp-docs-server.mdx +36 -39
  60. package/.docs/raw/getting-started/project-structure.mdx +34 -42
  61. package/.docs/raw/getting-started/studio.mdx +40 -58
  62. package/.docs/raw/getting-started/templates.mdx +22 -27
  63. package/.docs/raw/index.mdx +9 -9
  64. package/.docs/raw/mastra-cloud/dashboard.mdx +10 -10
  65. package/.docs/raw/mastra-cloud/observability.mdx +7 -8
  66. package/.docs/raw/mastra-cloud/overview.mdx +16 -22
  67. package/.docs/raw/mastra-cloud/setting-up.mdx +33 -20
  68. package/.docs/raw/memory/conversation-history.mdx +2 -2
  69. package/.docs/raw/memory/overview.mdx +21 -23
  70. package/.docs/raw/memory/semantic-recall.mdx +14 -13
  71. package/.docs/raw/memory/storage/memory-with-libsql.mdx +27 -28
  72. package/.docs/raw/memory/storage/memory-with-pg.mdx +26 -26
  73. package/.docs/raw/memory/storage/memory-with-upstash.mdx +26 -27
  74. package/.docs/raw/memory/threads-and-resources.mdx +23 -20
  75. package/.docs/raw/memory/working-memory.mdx +27 -38
  76. package/.docs/raw/observability/ai-tracing/exporters/arize.mdx +30 -29
  77. package/.docs/raw/observability/ai-tracing/exporters/braintrust.mdx +8 -9
  78. package/.docs/raw/observability/ai-tracing/exporters/cloud.mdx +17 -16
  79. package/.docs/raw/observability/ai-tracing/exporters/default.mdx +31 -32
  80. package/.docs/raw/observability/ai-tracing/exporters/langfuse.mdx +18 -17
  81. package/.docs/raw/observability/ai-tracing/exporters/langsmith.mdx +14 -14
  82. package/.docs/raw/observability/ai-tracing/exporters/otel.mdx +56 -46
  83. package/.docs/raw/observability/ai-tracing/overview.mdx +145 -122
  84. package/.docs/raw/observability/ai-tracing/processors/sensitive-data-filter.mdx +57 -36
  85. package/.docs/raw/observability/logging.mdx +14 -17
  86. package/.docs/raw/observability/nextjs-tracing.mdx +5 -5
  87. package/.docs/raw/observability/otel-tracing.mdx +17 -18
  88. package/.docs/raw/observability/overview.mdx +14 -10
  89. package/.docs/raw/rag/chunking-and-embedding.mdx +10 -8
  90. package/.docs/raw/rag/overview.mdx +5 -5
  91. package/.docs/raw/rag/retrieval.mdx +125 -107
  92. package/.docs/raw/rag/vector-databases.mdx +232 -223
  93. package/.docs/raw/reference/agents/agent.mdx +54 -41
  94. package/.docs/raw/reference/agents/generate.mdx +367 -261
  95. package/.docs/raw/reference/agents/generateLegacy.mdx +260 -178
  96. package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +7 -5
  97. package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +7 -5
  98. package/.docs/raw/reference/agents/getDescription.mdx +3 -2
  99. package/.docs/raw/reference/agents/getInstructions.mdx +7 -5
  100. package/.docs/raw/reference/agents/getLLM.mdx +11 -7
  101. package/.docs/raw/reference/agents/getMemory.mdx +7 -5
  102. package/.docs/raw/reference/agents/getModel.mdx +7 -5
  103. package/.docs/raw/reference/agents/getScorers.mdx +7 -5
  104. package/.docs/raw/reference/agents/getTools.mdx +7 -5
  105. package/.docs/raw/reference/agents/getVoice.mdx +7 -5
  106. package/.docs/raw/reference/agents/getWorkflows.mdx +7 -5
  107. package/.docs/raw/reference/agents/listAgents.mdx +6 -4
  108. package/.docs/raw/reference/agents/network.mdx +171 -116
  109. package/.docs/raw/reference/auth/auth0.mdx +18 -14
  110. package/.docs/raw/reference/auth/clerk.mdx +15 -12
  111. package/.docs/raw/reference/auth/firebase.mdx +23 -16
  112. package/.docs/raw/reference/auth/jwt.mdx +7 -6
  113. package/.docs/raw/reference/auth/supabase.mdx +13 -10
  114. package/.docs/raw/reference/auth/workos.mdx +17 -13
  115. package/.docs/raw/reference/cli/create-mastra.mdx +61 -44
  116. package/.docs/raw/reference/cli/mastra.mdx +11 -11
  117. package/.docs/raw/reference/client-js/agents.mdx +40 -43
  118. package/.docs/raw/reference/client-js/error-handling.mdx +1 -1
  119. package/.docs/raw/reference/client-js/logs.mdx +1 -1
  120. package/.docs/raw/reference/client-js/mastra-client.mdx +21 -13
  121. package/.docs/raw/reference/client-js/memory.mdx +6 -2
  122. package/.docs/raw/reference/client-js/observability.mdx +10 -9
  123. package/.docs/raw/reference/client-js/telemetry.mdx +1 -1
  124. package/.docs/raw/reference/client-js/tools.mdx +1 -1
  125. package/.docs/raw/reference/client-js/vectors.mdx +1 -1
  126. package/.docs/raw/reference/client-js/workflows-legacy.mdx +1 -1
  127. package/.docs/raw/reference/client-js/workflows.mdx +7 -7
  128. package/.docs/raw/reference/core/getAgent.mdx +6 -5
  129. package/.docs/raw/reference/core/getAgentById.mdx +5 -4
  130. package/.docs/raw/reference/core/getAgents.mdx +3 -3
  131. package/.docs/raw/reference/core/getDeployer.mdx +4 -3
  132. package/.docs/raw/reference/core/getLogger.mdx +4 -3
  133. package/.docs/raw/reference/core/getLogs.mdx +10 -6
  134. package/.docs/raw/reference/core/getLogsByRunId.mdx +8 -5
  135. package/.docs/raw/reference/core/getMCPServer.mdx +8 -5
  136. package/.docs/raw/reference/core/getMCPServers.mdx +4 -3
  137. package/.docs/raw/reference/core/getMemory.mdx +4 -3
  138. package/.docs/raw/reference/core/getScorer.mdx +15 -12
  139. package/.docs/raw/reference/core/getScorerByName.mdx +12 -9
  140. package/.docs/raw/reference/core/getScorers.mdx +3 -2
  141. package/.docs/raw/reference/core/getServer.mdx +4 -3
  142. package/.docs/raw/reference/core/getStorage.mdx +4 -3
  143. package/.docs/raw/reference/core/getTelemetry.mdx +4 -3
  144. package/.docs/raw/reference/core/getVector.mdx +6 -4
  145. package/.docs/raw/reference/core/getVectors.mdx +4 -3
  146. package/.docs/raw/reference/core/getWorkflow.mdx +7 -4
  147. package/.docs/raw/reference/core/getWorkflows.mdx +5 -3
  148. package/.docs/raw/reference/core/mastra-class.mdx +16 -16
  149. package/.docs/raw/reference/core/setLogger.mdx +6 -4
  150. package/.docs/raw/reference/core/setStorage.mdx +4 -4
  151. package/.docs/raw/reference/core/setTelemetry.mdx +4 -3
  152. package/.docs/raw/reference/deployer/cloudflare.mdx +11 -7
  153. package/.docs/raw/reference/deployer/deployer.mdx +2 -1
  154. package/.docs/raw/reference/deployer/netlify.mdx +4 -4
  155. package/.docs/raw/reference/deployer/vercel.mdx +6 -6
  156. package/.docs/raw/reference/evals/answer-relevancy.mdx +4 -5
  157. package/.docs/raw/reference/evals/bias.mdx +4 -5
  158. package/.docs/raw/reference/evals/completeness.mdx +4 -5
  159. package/.docs/raw/reference/evals/content-similarity.mdx +4 -5
  160. package/.docs/raw/reference/evals/context-position.mdx +4 -5
  161. package/.docs/raw/reference/evals/context-precision.mdx +4 -5
  162. package/.docs/raw/reference/evals/context-relevancy.mdx +4 -5
  163. package/.docs/raw/reference/evals/contextual-recall.mdx +4 -5
  164. package/.docs/raw/reference/evals/faithfulness.mdx +4 -5
  165. package/.docs/raw/reference/evals/hallucination.mdx +4 -6
  166. package/.docs/raw/reference/evals/keyword-coverage.mdx +4 -5
  167. package/.docs/raw/reference/evals/prompt-alignment.mdx +4 -6
  168. package/.docs/raw/reference/evals/summarization.mdx +4 -6
  169. package/.docs/raw/reference/evals/textual-difference.mdx +4 -5
  170. package/.docs/raw/reference/evals/tone-consistency.mdx +4 -7
  171. package/.docs/raw/reference/evals/toxicity.mdx +4 -5
  172. package/.docs/raw/reference/index.mdx +3 -3
  173. package/.docs/raw/reference/legacyWorkflows/after.mdx +5 -5
  174. package/.docs/raw/reference/legacyWorkflows/afterEvent.mdx +5 -5
  175. package/.docs/raw/reference/legacyWorkflows/commit.mdx +5 -5
  176. package/.docs/raw/reference/legacyWorkflows/createRun.mdx +4 -4
  177. package/.docs/raw/reference/legacyWorkflows/else.mdx +5 -5
  178. package/.docs/raw/reference/legacyWorkflows/events.mdx +7 -7
  179. package/.docs/raw/reference/legacyWorkflows/execute.mdx +4 -4
  180. package/.docs/raw/reference/legacyWorkflows/if.mdx +5 -5
  181. package/.docs/raw/reference/legacyWorkflows/resume.mdx +5 -5
  182. package/.docs/raw/reference/legacyWorkflows/resumeWithEvent.mdx +6 -6
  183. package/.docs/raw/reference/legacyWorkflows/snapshots.mdx +6 -6
  184. package/.docs/raw/reference/legacyWorkflows/start.mdx +6 -6
  185. package/.docs/raw/reference/legacyWorkflows/step-class.mdx +4 -4
  186. package/.docs/raw/reference/legacyWorkflows/step-condition.mdx +4 -4
  187. package/.docs/raw/reference/legacyWorkflows/step-function.mdx +5 -5
  188. package/.docs/raw/reference/legacyWorkflows/step-options.mdx +6 -6
  189. package/.docs/raw/reference/legacyWorkflows/step-retries.mdx +4 -4
  190. package/.docs/raw/reference/legacyWorkflows/suspend.mdx +4 -4
  191. package/.docs/raw/reference/legacyWorkflows/then.mdx +5 -5
  192. package/.docs/raw/reference/legacyWorkflows/until.mdx +4 -4
  193. package/.docs/raw/reference/legacyWorkflows/watch.mdx +3 -3
  194. package/.docs/raw/reference/legacyWorkflows/while.mdx +4 -4
  195. package/.docs/raw/reference/legacyWorkflows/workflow.mdx +7 -7
  196. package/.docs/raw/reference/memory/createThread.mdx +10 -10
  197. package/.docs/raw/reference/memory/deleteMessages.mdx +7 -5
  198. package/.docs/raw/reference/memory/getThreadById.mdx +6 -5
  199. package/.docs/raw/reference/memory/getThreadsByResourceId.mdx +11 -10
  200. package/.docs/raw/reference/memory/getThreadsByResourceIdPaginated.mdx +10 -9
  201. package/.docs/raw/reference/memory/{Memory.mdx → memory-class.mdx} +53 -46
  202. package/.docs/raw/reference/memory/query.mdx +39 -25
  203. package/.docs/raw/reference/observability/ai-tracing/ai-tracing.mdx +9 -5
  204. package/.docs/raw/reference/observability/ai-tracing/configuration.mdx +26 -22
  205. package/.docs/raw/reference/observability/ai-tracing/exporters/arize.mdx +16 -12
  206. package/.docs/raw/reference/observability/ai-tracing/exporters/braintrust.mdx +14 -14
  207. package/.docs/raw/reference/observability/ai-tracing/exporters/cloud-exporter.mdx +16 -11
  208. package/.docs/raw/reference/observability/ai-tracing/exporters/console-exporter.mdx +10 -6
  209. package/.docs/raw/reference/observability/ai-tracing/exporters/default-exporter.mdx +23 -15
  210. package/.docs/raw/reference/observability/ai-tracing/exporters/langfuse.mdx +6 -6
  211. package/.docs/raw/reference/observability/ai-tracing/exporters/langsmith.mdx +13 -13
  212. package/.docs/raw/reference/observability/ai-tracing/exporters/otel.mdx +44 -36
  213. package/.docs/raw/reference/observability/ai-tracing/interfaces.mdx +115 -106
  214. package/.docs/raw/reference/observability/ai-tracing/processors/sensitive-data-filter.mdx +37 -32
  215. package/.docs/raw/reference/observability/ai-tracing/span.mdx +29 -26
  216. package/.docs/raw/reference/observability/logging/pino-logger.mdx +13 -15
  217. package/.docs/raw/reference/observability/otel-tracing/otel-config.mdx +2 -2
  218. package/.docs/raw/reference/observability/otel-tracing/providers/arize-ax.mdx +3 -3
  219. package/.docs/raw/reference/observability/otel-tracing/providers/arize-phoenix.mdx +2 -1
  220. package/.docs/raw/reference/observability/otel-tracing/providers/dash0.mdx +1 -1
  221. package/.docs/raw/reference/observability/otel-tracing/providers/index.mdx +12 -14
  222. package/.docs/raw/reference/observability/otel-tracing/providers/keywordsai.mdx +3 -3
  223. package/.docs/raw/reference/observability/otel-tracing/providers/laminar.mdx +1 -1
  224. package/.docs/raw/reference/observability/otel-tracing/providers/langfuse.mdx +4 -4
  225. package/.docs/raw/reference/observability/otel-tracing/providers/langsmith.mdx +1 -1
  226. package/.docs/raw/reference/observability/otel-tracing/providers/langwatch.mdx +2 -2
  227. package/.docs/raw/reference/observability/otel-tracing/providers/new-relic.mdx +1 -1
  228. package/.docs/raw/reference/observability/otel-tracing/providers/signoz.mdx +1 -1
  229. package/.docs/raw/reference/observability/otel-tracing/providers/traceloop.mdx +1 -1
  230. package/.docs/raw/reference/processors/batch-parts-processor.mdx +13 -10
  231. package/.docs/raw/reference/processors/language-detector.mdx +27 -17
  232. package/.docs/raw/reference/processors/moderation-processor.mdx +26 -17
  233. package/.docs/raw/reference/processors/pii-detector.mdx +28 -18
  234. package/.docs/raw/reference/processors/prompt-injection-detector.mdx +25 -17
  235. package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +26 -17
  236. package/.docs/raw/reference/processors/token-limiter-processor.mdx +22 -15
  237. package/.docs/raw/reference/processors/unicode-normalizer.mdx +13 -12
  238. package/.docs/raw/reference/rag/chunk.mdx +41 -23
  239. package/.docs/raw/reference/rag/database-config.mdx +56 -38
  240. package/.docs/raw/reference/rag/document.mdx +1 -1
  241. package/.docs/raw/reference/rag/embeddings.mdx +1 -1
  242. package/.docs/raw/reference/rag/extract-params.mdx +1 -1
  243. package/.docs/raw/reference/rag/graph-rag.mdx +1 -1
  244. package/.docs/raw/reference/rag/metadata-filters.mdx +23 -26
  245. package/.docs/raw/reference/rag/rerank.mdx +1 -1
  246. package/.docs/raw/reference/rag/rerankWithScorer.mdx +2 -2
  247. package/.docs/raw/reference/scorers/answer-relevancy.mdx +35 -17
  248. package/.docs/raw/reference/scorers/answer-similarity.mdx +84 -68
  249. package/.docs/raw/reference/scorers/bias.mdx +22 -19
  250. package/.docs/raw/reference/scorers/completeness.mdx +21 -16
  251. package/.docs/raw/reference/scorers/content-similarity.mdx +12 -10
  252. package/.docs/raw/reference/scorers/context-precision.mdx +73 -64
  253. package/.docs/raw/reference/scorers/context-relevance.mdx +142 -126
  254. package/.docs/raw/reference/scorers/create-scorer.mdx +93 -61
  255. package/.docs/raw/reference/scorers/faithfulness.mdx +21 -13
  256. package/.docs/raw/reference/scorers/hallucination.mdx +17 -12
  257. package/.docs/raw/reference/scorers/keyword-coverage.mdx +32 -27
  258. package/.docs/raw/reference/scorers/mastra-scorer.mdx +39 -33
  259. package/.docs/raw/reference/scorers/noise-sensitivity.mdx +203 -152
  260. package/.docs/raw/reference/scorers/prompt-alignment.mdx +186 -132
  261. package/.docs/raw/reference/scorers/run-experiment.mdx +40 -31
  262. package/.docs/raw/reference/scorers/textual-difference.mdx +25 -26
  263. package/.docs/raw/reference/scorers/tone-consistency.mdx +29 -26
  264. package/.docs/raw/reference/scorers/tool-call-accuracy.mdx +180 -176
  265. package/.docs/raw/reference/scorers/toxicity.mdx +35 -31
  266. package/.docs/raw/reference/storage/cloudflare-d1.mdx +1 -1
  267. package/.docs/raw/reference/storage/cloudflare.mdx +1 -1
  268. package/.docs/raw/reference/storage/dynamodb.mdx +1 -1
  269. package/.docs/raw/reference/storage/lance.mdx +1 -1
  270. package/.docs/raw/reference/storage/libsql.mdx +2 -2
  271. package/.docs/raw/reference/storage/mongodb.mdx +4 -5
  272. package/.docs/raw/reference/storage/mssql.mdx +5 -4
  273. package/.docs/raw/reference/storage/postgresql.mdx +35 -33
  274. package/.docs/raw/reference/storage/upstash.mdx +6 -5
  275. package/.docs/raw/reference/streaming/ChunkType.mdx +788 -314
  276. package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +265 -109
  277. package/.docs/raw/reference/streaming/agents/stream.mdx +375 -266
  278. package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +233 -162
  279. package/.docs/raw/reference/streaming/workflows/observeStream.mdx +4 -4
  280. package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +5 -5
  281. package/.docs/raw/reference/streaming/workflows/resumeStreamVNext.mdx +24 -20
  282. package/.docs/raw/reference/streaming/workflows/stream.mdx +35 -26
  283. package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +36 -27
  284. package/.docs/raw/reference/templates/overview.mdx +16 -39
  285. package/.docs/raw/reference/tools/client.mdx +1 -1
  286. package/.docs/raw/reference/tools/create-tool.mdx +45 -35
  287. package/.docs/raw/reference/tools/document-chunker-tool.mdx +2 -2
  288. package/.docs/raw/reference/tools/graph-rag-tool.mdx +12 -12
  289. package/.docs/raw/reference/tools/mcp-client.mdx +70 -64
  290. package/.docs/raw/reference/tools/mcp-server.mdx +91 -78
  291. package/.docs/raw/reference/tools/vector-query-tool.mdx +48 -38
  292. package/.docs/raw/reference/vectors/astra.mdx +1 -1
  293. package/.docs/raw/reference/vectors/chroma.mdx +25 -19
  294. package/.docs/raw/reference/vectors/couchbase.mdx +4 -4
  295. package/.docs/raw/reference/vectors/lance.mdx +5 -6
  296. package/.docs/raw/reference/vectors/libsql.mdx +1 -1
  297. package/.docs/raw/reference/vectors/mongodb.mdx +1 -1
  298. package/.docs/raw/reference/vectors/opensearch.mdx +1 -1
  299. package/.docs/raw/reference/vectors/pg.mdx +8 -4
  300. package/.docs/raw/reference/vectors/pinecone.mdx +1 -1
  301. package/.docs/raw/reference/vectors/qdrant.mdx +1 -1
  302. package/.docs/raw/reference/vectors/s3vectors.mdx +35 -27
  303. package/.docs/raw/reference/vectors/turbopuffer.mdx +1 -1
  304. package/.docs/raw/reference/vectors/upstash.mdx +33 -25
  305. package/.docs/raw/reference/vectors/vectorize.mdx +1 -1
  306. package/.docs/raw/reference/voice/azure.mdx +1 -1
  307. package/.docs/raw/reference/voice/cloudflare.mdx +1 -1
  308. package/.docs/raw/reference/voice/composite-voice.mdx +1 -1
  309. package/.docs/raw/reference/voice/deepgram.mdx +1 -1
  310. package/.docs/raw/reference/voice/elevenlabs.mdx +1 -1
  311. package/.docs/raw/reference/voice/google-gemini-live.mdx +6 -4
  312. package/.docs/raw/reference/voice/google.mdx +1 -1
  313. package/.docs/raw/reference/voice/mastra-voice.mdx +1 -1
  314. package/.docs/raw/reference/voice/murf.mdx +1 -1
  315. package/.docs/raw/reference/voice/openai-realtime.mdx +1 -1
  316. package/.docs/raw/reference/voice/openai.mdx +1 -1
  317. package/.docs/raw/reference/voice/playai.mdx +1 -1
  318. package/.docs/raw/reference/voice/sarvam.mdx +1 -1
  319. package/.docs/raw/reference/voice/speechify.mdx +1 -1
  320. package/.docs/raw/reference/voice/voice.addInstructions.mdx +1 -1
  321. package/.docs/raw/reference/voice/voice.addTools.mdx +1 -1
  322. package/.docs/raw/reference/voice/voice.answer.mdx +1 -1
  323. package/.docs/raw/reference/voice/voice.close.mdx +1 -1
  324. package/.docs/raw/reference/voice/voice.connect.mdx +1 -1
  325. package/.docs/raw/reference/voice/voice.events.mdx +1 -1
  326. package/.docs/raw/reference/voice/voice.getSpeakers.mdx +23 -30
  327. package/.docs/raw/reference/voice/voice.listen.mdx +1 -1
  328. package/.docs/raw/reference/voice/voice.off.mdx +1 -1
  329. package/.docs/raw/reference/voice/voice.on.mdx +1 -1
  330. package/.docs/raw/reference/voice/voice.send.mdx +1 -1
  331. package/.docs/raw/reference/voice/voice.speak.mdx +1 -1
  332. package/.docs/raw/reference/voice/voice.updateConfig.mdx +1 -1
  333. package/.docs/raw/reference/workflows/run-methods/cancel.mdx +4 -3
  334. package/.docs/raw/reference/workflows/run-methods/resume.mdx +49 -34
  335. package/.docs/raw/reference/workflows/run-methods/start.mdx +43 -31
  336. package/.docs/raw/reference/workflows/run-methods/watch.mdx +7 -8
  337. package/.docs/raw/reference/workflows/run.mdx +7 -10
  338. package/.docs/raw/reference/workflows/step.mdx +15 -12
  339. package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +2 -2
  340. package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
  341. package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +7 -7
  342. package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +2 -2
  343. package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +2 -2
  344. package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
  345. package/.docs/raw/reference/workflows/workflow-methods/map.mdx +3 -2
  346. package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
  347. package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +5 -5
  348. package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +3 -2
  349. package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +3 -2
  350. package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
  351. package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +3 -3
  352. package/.docs/raw/reference/workflows/workflow.mdx +13 -10
  353. package/.docs/raw/scorers/custom-scorers.mdx +58 -48
  354. package/.docs/raw/scorers/evals-old-api/custom-eval.mdx +6 -8
  355. package/.docs/raw/scorers/evals-old-api/overview.mdx +8 -8
  356. package/.docs/raw/scorers/evals-old-api/running-in-ci.mdx +9 -9
  357. package/.docs/raw/scorers/evals-old-api/textual-evals.mdx +5 -5
  358. package/.docs/raw/scorers/off-the-shelf-scorers.mdx +3 -1
  359. package/.docs/raw/scorers/overview.mdx +20 -19
  360. package/.docs/raw/server-db/custom-api-routes.mdx +8 -8
  361. package/.docs/raw/server-db/mastra-client.mdx +56 -54
  362. package/.docs/raw/server-db/middleware.mdx +11 -7
  363. package/.docs/raw/server-db/production-server.mdx +5 -7
  364. package/.docs/raw/server-db/runtime-context.mdx +41 -38
  365. package/.docs/raw/server-db/storage.mdx +82 -87
  366. package/.docs/raw/streaming/events.mdx +24 -16
  367. package/.docs/raw/streaming/overview.mdx +17 -18
  368. package/.docs/raw/streaming/tool-streaming.mdx +9 -10
  369. package/.docs/raw/streaming/workflow-streaming.mdx +14 -12
  370. package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -2
  371. package/.docs/raw/tools-mcp/mcp-overview.mdx +92 -102
  372. package/.docs/raw/tools-mcp/overview.mdx +9 -14
  373. package/.docs/raw/voice/overview.mdx +273 -250
  374. package/.docs/raw/voice/speech-to-speech.mdx +14 -12
  375. package/.docs/raw/voice/speech-to-text.mdx +2 -2
  376. package/.docs/raw/voice/text-to-speech.mdx +2 -2
  377. package/.docs/raw/workflows/agents-and-tools.mdx +29 -28
  378. package/.docs/raw/workflows/control-flow.mdx +24 -24
  379. package/.docs/raw/workflows/error-handling.mdx +15 -17
  380. package/.docs/raw/workflows/human-in-the-loop.mdx +39 -39
  381. package/.docs/raw/workflows/inngest-workflow.mdx +33 -29
  382. package/.docs/raw/workflows/input-data-mapping.mdx +9 -9
  383. package/.docs/raw/workflows/overview.mdx +60 -60
  384. package/.docs/raw/workflows/snapshots.mdx +54 -36
  385. package/.docs/raw/workflows/suspend-and-resume.mdx +52 -57
  386. package/.docs/raw/workflows-legacy/control-flow.mdx +15 -17
  387. package/.docs/raw/workflows-legacy/dynamic-workflows.mdx +3 -1
  388. package/.docs/raw/workflows-legacy/error-handling.mdx +8 -6
  389. package/.docs/raw/workflows-legacy/nested-workflows.mdx +6 -0
  390. package/.docs/raw/workflows-legacy/overview.mdx +28 -26
  391. package/.docs/raw/workflows-legacy/runtime-variables.mdx +4 -2
  392. package/.docs/raw/workflows-legacy/steps.mdx +5 -3
  393. package/.docs/raw/workflows-legacy/suspend-and-resume.mdx +10 -8
  394. package/.docs/raw/workflows-legacy/variables.mdx +10 -8
  395. package/CHANGELOG.md +14 -0
  396. package/package.json +5 -5
  397. package/.docs/raw/memory/storage/memory-with-mongodb.mdx +0 -148
@@ -3,8 +3,6 @@ title: "AI Tracing | Observability | Mastra Docs"
3
3
  description: "Set up AI tracing for Mastra applications"
4
4
  ---
5
5
 
6
- import { Callout } from "nextra/components";
7
-
8
6
  # AI Tracing
9
7
 
10
8
  AI Tracing provides specialized monitoring and debugging for the AI-related operations in your application. When enabled, Mastra automatically creates traces for agent runs, LLM generations, tool calls, and workflow steps with AI-specific context and metadata.
@@ -23,7 +21,7 @@ AI Traces are created by:
23
21
 
24
22
  ### Basic Config
25
23
 
26
- ```ts filename="src/mastra/index.ts" showLineNumbers copy
24
+ ```ts title="src/mastra/index.ts" showLineNumbers copy
27
25
  export const mastra = new Mastra({
28
26
  // ... other config
29
27
  observability: {
@@ -36,6 +34,7 @@ export const mastra = new Mastra({
36
34
  ```
37
35
 
38
36
  When enabled, the default configuration automatically includes:
37
+
39
38
  - **Service Name**: `"mastra"`
40
39
  - **Sampling**: `"always"`- Sample (100% of traces)
41
40
  - **Exporters**:
@@ -47,8 +46,12 @@ When enabled, the default configuration automatically includes:
47
46
 
48
47
  This default configuration is a minimal helper that equates to this more verbose configuration:
49
48
 
50
- ```ts filename="src/mastra/index.ts" showLineNumbers copy
51
- import { CloudExporter, DefaultExporter, SensitiveDataFilter } from '@mastra/core/ai-tracing';
49
+ ```ts title="src/mastra/index.ts" showLineNumbers copy
50
+ import {
51
+ CloudExporter,
52
+ DefaultExporter,
53
+ SensitiveDataFilter,
54
+ } from "@mastra/core/ai-tracing";
52
55
 
53
56
  export const mastra = new Mastra({
54
57
  // ... other config
@@ -56,16 +59,11 @@ export const mastra = new Mastra({
56
59
  configs: {
57
60
  default: {
58
61
  serviceName: "mastra",
59
- sampling: { type: 'always' },
60
- processors: [
61
- new SensitiveDataFilter(),
62
- ],
63
- exporters: [
64
- new CloudExporter(),
65
- new DefaultExporter(),
66
- ],
67
- }
68
- }
62
+ sampling: { type: "always" },
63
+ processors: [new SensitiveDataFilter()],
64
+ exporters: [new CloudExporter(), new DefaultExporter()],
65
+ },
66
+ },
69
67
  },
70
68
  storage: new LibSQLStore({
71
69
  url: "file:./mastra.db", // Storage is required for tracing
@@ -73,7 +71,6 @@ export const mastra = new Mastra({
73
71
  });
74
72
  ```
75
73
 
76
-
77
74
  ## Exporters
78
75
 
79
76
  Exporters determine where your AI trace data is sent and how it's stored. Choosing the right exporters allows you to integrate with your existing observability stack, comply with data residency requirements, and optimize for cost and performance. You can use multiple exporters simultaneously to send the same trace data to different destinations — for example, storing detailed traces locally for debugging while sending sampled data to a cloud provider for production monitoring.
@@ -103,20 +100,27 @@ Sampling allows you to control which traces are collected, helping you balance b
103
100
  Mastra supports four sampling strategies:
104
101
 
105
102
  ### Always Sample
103
+
106
104
  Collects 100% of traces. Best for development, debugging, or low-traffic scenarios where you need complete visibility.
107
105
 
108
106
  ```ts
109
- sampling: { type: 'always' }
107
+ sampling: {
108
+ type: "always";
109
+ }
110
110
  ```
111
111
 
112
112
  ### Never Sample
113
+
113
114
  Disables tracing entirely. Useful for specific environments where tracing adds no value or when you need to temporarily disable tracing without removing configuration.
114
115
 
115
116
  ```ts
116
- sampling: { type: 'never' }
117
+ sampling: {
118
+ type: "never";
119
+ }
117
120
  ```
118
121
 
119
122
  ### Ratio-Based Sampling
123
+
120
124
  Randomly samples a percentage of traces. Ideal for production environments where you want statistical insights without the cost of full tracing. The probability value ranges from 0 (no traces) to 1 (all traces).
121
125
 
122
126
  ```ts
@@ -127,6 +131,7 @@ sampling: {
127
131
  ```
128
132
 
129
133
  ### Custom Sampling
134
+
130
135
  Implements your own sampling logic based on runtime context, metadata, or business rules. Perfect for complex scenarios like sampling based on user tier, request type, or error conditions.
131
136
 
132
137
  ```ts
@@ -146,19 +151,19 @@ sampling: {
146
151
 
147
152
  ### Complete Example
148
153
 
149
- ```ts filename="src/mastra/index.ts" showLineNumbers copy
154
+ ```ts title="src/mastra/index.ts" showLineNumbers copy
150
155
  export const mastra = new Mastra({
151
156
  observability: {
152
157
  configs: {
153
158
  "10_percent": {
154
- serviceName: 'my-service',
159
+ serviceName: "my-service",
155
160
  // Sample 10% of traces
156
161
  sampling: {
157
- type: 'ratio',
158
- probability: 0.1
162
+ type: "ratio",
163
+ probability: 0.1,
159
164
  },
160
165
  exporters: [new DefaultExporter()],
161
- }
166
+ },
162
167
  },
163
168
  },
164
169
  });
@@ -169,57 +174,60 @@ export const mastra = new Mastra({
169
174
  Complex applications often require different tracing configurations for different scenarios. You might want detailed traces with full sampling during development, sampled traces sent to external providers in production, and specialized configurations for specific features or customer segments. The `configSelector` function enables dynamic configuration selection at runtime, allowing you to route traces based on request context, environment variables, feature flags, or any custom logic.
170
175
 
171
176
  This approach is particularly valuable when:
177
+
172
178
  - Running A/B tests with different observability requirements
173
179
  - Providing enhanced debugging for specific customers or support cases
174
180
  - Gradually rolling out new tracing providers without affecting existing monitoring
175
181
  - Optimizing costs by using different sampling rates for different request types
176
182
  - Maintaining separate trace streams for compliance or data residency requirements
177
183
 
178
- <Callout type="info">
184
+ :::info
185
+
179
186
  Note that only a single config can be used for a specific execution. But a single config can send data to multiple exporters simultaneously.
180
- </Callout>
187
+
188
+ :::
181
189
 
182
190
  ### Dynamic Configuration Selection
183
191
 
184
192
  Use `configSelector` to choose the appropriate tracing configuration based on runtime context:
185
193
 
186
- ```ts filename="src/mastra/index.ts" showLineNumbers copy
194
+ ```ts title="src/mastra/index.ts" showLineNumbers copy
187
195
  export const mastra = new Mastra({
188
196
  observability: {
189
197
  default: { enabled: true }, // Provides 'default' instance
190
198
  configs: {
191
199
  langfuse: {
192
- serviceName: 'langfuse-service',
200
+ serviceName: "langfuse-service",
193
201
  exporters: [langfuseExporter],
194
202
  },
195
203
  braintrust: {
196
- serviceName: 'braintrust-service',
204
+ serviceName: "braintrust-service",
197
205
  exporters: [braintrustExporter],
198
206
  },
199
207
  debug: {
200
- serviceName: 'debug-service',
201
- sampling: { type: 'always' },
208
+ serviceName: "debug-service",
209
+ sampling: { type: "always" },
202
210
  exporters: [new DefaultExporter()],
203
211
  },
204
212
  },
205
213
  configSelector: (context, availableTracers) => {
206
214
  // Use debug config for support requests
207
- if (context.runtimeContext?.get('supportMode')) {
208
- return 'debug';
215
+ if (context.runtimeContext?.get("supportMode")) {
216
+ return "debug";
209
217
  }
210
218
 
211
219
  // Route specific customers to different providers
212
- const customerId = context.runtimeContext?.get('customerId');
220
+ const customerId = context.runtimeContext?.get("customerId");
213
221
  if (customerId && premiumCustomers.includes(customerId)) {
214
- return 'braintrust';
222
+ return "braintrust";
215
223
  }
216
224
 
217
225
  // Route specific requests to langfuse
218
- if (context.runtimeContext?.get('useExternalTracing')) {
219
- return 'langfuse';
226
+ if (context.runtimeContext?.get("useExternalTracing")) {
227
+ return "langfuse";
220
228
  }
221
229
 
222
- return 'default';
230
+ return "default";
223
231
  },
224
232
  },
225
233
  });
@@ -229,28 +237,28 @@ export const mastra = new Mastra({
229
237
 
230
238
  A common pattern is to select configurations based on deployment environment:
231
239
 
232
- ```ts filename="src/mastra/index.ts" showLineNumbers copy
240
+ ```ts title="src/mastra/index.ts" showLineNumbers copy
233
241
  export const mastra = new Mastra({
234
242
  observability: {
235
243
  configs: {
236
244
  development: {
237
- serviceName: 'my-service-dev',
238
- sampling: { type: 'always' },
245
+ serviceName: "my-service-dev",
246
+ sampling: { type: "always" },
239
247
  exporters: [new DefaultExporter()],
240
248
  },
241
249
  staging: {
242
- serviceName: 'my-service-staging',
243
- sampling: { type: 'ratio', probability: 0.5 },
250
+ serviceName: "my-service-staging",
251
+ sampling: { type: "ratio", probability: 0.5 },
244
252
  exporters: [langfuseExporter],
245
253
  },
246
254
  production: {
247
- serviceName: 'my-service-prod',
248
- sampling: { type: 'ratio', probability: 0.01 },
255
+ serviceName: "my-service-prod",
256
+ sampling: { type: "ratio", probability: 0.01 },
249
257
  exporters: [cloudExporter, langfuseExporter],
250
258
  },
251
259
  },
252
260
  configSelector: (context, availableTracers) => {
253
- const env = process.env.NODE_ENV || 'development';
261
+ const env = process.env.NODE_ENV || "development";
254
262
  return env;
255
263
  },
256
264
  },
@@ -263,13 +271,13 @@ export const mastra = new Mastra({
263
271
 
264
272
  When you have both the default config enabled and custom configs defined, **the default config will always be used** unless you explicitly select a different config:
265
273
 
266
- ```ts filename="src/mastra/index.ts" showLineNumbers copy
274
+ ```ts title="src/mastra/index.ts" showLineNumbers copy
267
275
  export const mastra = new Mastra({
268
276
  observability: {
269
277
  default: { enabled: true }, // This will always be used!
270
278
  configs: {
271
279
  langfuse: {
272
- serviceName: 'my-service',
280
+ serviceName: "my-service",
273
281
  exporters: [langfuseExporter], // This won't be reached
274
282
  },
275
283
  },
@@ -280,17 +288,21 @@ export const mastra = new Mastra({
280
288
  **Solutions:**
281
289
 
282
290
  1. **Disable the default** and use only custom configs:
291
+
283
292
  ```ts
284
293
  observability: {
285
294
  // comment out or remove this line to disable the default config
286
295
  // default: { enabled: true },
287
296
  configs: {
288
- langfuse: { /* ... */ }
297
+ langfuse: {
298
+ /* ... */
299
+ }
289
300
  }
290
301
  }
291
302
  ```
292
303
 
293
304
  2. **Use a configSelector** to choose between configs:
305
+
294
306
  ```ts
295
307
  observability: {
296
308
  default: { enabled: true },
@@ -308,23 +320,24 @@ observability: {
308
320
 
309
321
  When creating a custom config with external exporters, you might lose access to Mastra Playground and Cloud. To maintain access while adding external exporters, include the default exporters in your custom config:
310
322
 
311
- ```ts filename="src/mastra/index.ts" showLineNumbers copy
312
- import { DefaultExporter, CloudExporter } from '@mastra/core/ai-tracing';
313
- import { ArizeExporter } from '@mastra/arize';
323
+ ```ts title="src/mastra/index.ts" showLineNumbers copy
324
+ import { DefaultExporter, CloudExporter } from "@mastra/core/ai-tracing";
325
+ import { ArizeExporter } from "@mastra/arize";
314
326
 
315
327
  export const mastra = new Mastra({
316
328
  observability: {
317
329
  default: { enabled: false }, // Disable default to use custom
318
330
  configs: {
319
331
  production: {
320
- serviceName: 'my-service',
332
+ serviceName: "my-service",
321
333
  exporters: [
322
- new ArizeExporter({ // External exporter
334
+ new ArizeExporter({
335
+ // External exporter
323
336
  endpoint: process.env.PHOENIX_ENDPOINT,
324
337
  apiKey: process.env.PHOENIX_API_KEY,
325
338
  }),
326
- new DefaultExporter(), // Keep Playground access
327
- new CloudExporter(), // Keep Cloud access
339
+ new DefaultExporter(), // Keep Playground access
340
+ new CloudExporter(), // Keep Cloud access
328
341
  ],
329
342
  },
330
343
  },
@@ -333,13 +346,16 @@ export const mastra = new Mastra({
333
346
  ```
334
347
 
335
348
  This configuration sends traces to all three destinations simultaneously:
349
+
336
350
  - **Arize Phoenix/AX** for external observability
337
351
  - **DefaultExporter** for local Playground access
338
352
  - **CloudExporter** for Mastra Cloud dashboard
339
353
 
340
- <Callout type="info">
354
+ :::info
355
+
341
356
  Remember: A single trace can be sent to multiple exporters. You don't need separate configs for each exporter unless you want different sampling rates or processors.
342
- </Callout>
357
+
358
+ :::
343
359
 
344
360
  ## Adding Custom Metadata
345
361
 
@@ -360,11 +376,11 @@ execute: async ({ inputData, tracingContext }) => {
360
376
  responseTimeMs: Date.now() - startTime,
361
377
  userTier: inputData.userTier,
362
378
  region: process.env.AWS_REGION,
363
- }
379
+ },
364
380
  });
365
381
 
366
382
  return await response.json();
367
- }
383
+ };
368
384
  ```
369
385
 
370
386
  Metadata set here will be shown in all configured exporters.
@@ -377,13 +393,13 @@ Instead of manually adding metadata to each span, you can configure Mastra to au
377
393
 
378
394
  Define which RuntimeContext keys to extract in your tracing configuration. These keys will be automatically included as metadata for all spans created with this configuration:
379
395
 
380
- ```ts filename="src/mastra/index.ts" showLineNumbers copy
396
+ ```ts title="src/mastra/index.ts" showLineNumbers copy
381
397
  export const mastra = new Mastra({
382
398
  observability: {
383
399
  configs: {
384
400
  default: {
385
- serviceName: 'my-service',
386
- runtimeContextKeys: ['userId', 'environment', 'tenantId'],
401
+ serviceName: "my-service",
402
+ runtimeContextKeys: ["userId", "environment", "tenantId"],
387
403
  exporters: [new DefaultExporter()],
388
404
  },
389
405
  },
@@ -395,13 +411,13 @@ Now when you execute agents or workflows with a RuntimeContext, these values are
395
411
 
396
412
  ```ts showLineNumbers copy
397
413
  const runtimeContext = new RuntimeContext();
398
- runtimeContext.set('userId', 'user-123');
399
- runtimeContext.set('environment', 'production');
400
- runtimeContext.set('tenantId', 'tenant-456');
414
+ runtimeContext.set("userId", "user-123");
415
+ runtimeContext.set("environment", "production");
416
+ runtimeContext.set("tenantId", "tenant-456");
401
417
 
402
418
  // All spans in this trace automatically get userId, environment, and tenantId metadata
403
419
  const result = await agent.generate({
404
- messages: [{ role: 'user', content: 'Hello' }],
420
+ messages: [{ role: "user", content: "Hello" }],
405
421
  runtimeContext,
406
422
  });
407
423
  ```
@@ -412,15 +428,15 @@ You can add trace-specific keys using `tracingOptions.runtimeContextKeys`. These
412
428
 
413
429
  ```ts showLineNumbers copy
414
430
  const runtimeContext = new RuntimeContext();
415
- runtimeContext.set('userId', 'user-123');
416
- runtimeContext.set('environment', 'production');
417
- runtimeContext.set('experimentId', 'exp-789');
431
+ runtimeContext.set("userId", "user-123");
432
+ runtimeContext.set("environment", "production");
433
+ runtimeContext.set("experimentId", "exp-789");
418
434
 
419
435
  const result = await agent.generate({
420
- messages: [{ role: 'user', content: 'Hello' }],
436
+ messages: [{ role: "user", content: "Hello" }],
421
437
  runtimeContext,
422
438
  tracingOptions: {
423
- runtimeContextKeys: ['experimentId'], // Adds to configured keys
439
+ runtimeContextKeys: ["experimentId"], // Adds to configured keys
424
440
  },
425
441
  });
426
442
 
@@ -436,7 +452,7 @@ export const mastra = new Mastra({
436
452
  observability: {
437
453
  configs: {
438
454
  default: {
439
- runtimeContextKeys: ['user.id', 'session.data.experimentId'],
455
+ runtimeContextKeys: ["user.id", "session.data.experimentId"],
440
456
  exporters: [new DefaultExporter()],
441
457
  },
442
458
  },
@@ -444,8 +460,8 @@ export const mastra = new Mastra({
444
460
  });
445
461
 
446
462
  const runtimeContext = new RuntimeContext();
447
- runtimeContext.set('user', { id: 'user-456', name: 'John Doe' });
448
- runtimeContext.set('session', { data: { experimentId: 'exp-999' } });
463
+ runtimeContext.set("user", { id: "user-456", name: "John Doe" });
464
+ runtimeContext.set("session", { data: { experimentId: "exp-999" } });
449
465
 
450
466
  // Metadata will include: { user: { id: 'user-456' }, session: { data: { experimentId: 'exp-999' } } }
451
467
  ```
@@ -465,23 +481,23 @@ When creating child spans within tools or workflow steps, you can pass the `runt
465
481
  execute: async ({ tracingContext, runtimeContext }) => {
466
482
  // Create child span WITH runtimeContext - gets metadata extraction
467
483
  const dbSpan = tracingContext.currentSpan?.createChildSpan({
468
- type: 'generic',
469
- name: 'database-query',
470
- runtimeContext, // Pass to enable metadata extraction
484
+ type: "generic",
485
+ name: "database-query",
486
+ runtimeContext, // Pass to enable metadata extraction
471
487
  });
472
488
 
473
- const results = await db.query('SELECT * FROM users');
489
+ const results = await db.query("SELECT * FROM users");
474
490
  dbSpan?.end({ output: results });
475
491
 
476
492
  // Or create child span WITHOUT runtimeContext - no metadata extraction
477
493
  const cacheSpan = tracingContext.currentSpan?.createChildSpan({
478
- type: 'generic',
479
- name: 'cache-check',
494
+ type: "generic",
495
+ name: "cache-check",
480
496
  // No runtimeContext - won't extract metadata
481
497
  });
482
498
 
483
499
  return results;
484
- }
500
+ };
485
501
  ```
486
502
 
487
503
  This gives you fine-grained control over which child spans include RuntimeContext metadata. Root spans (agent/workflow executions) always extract metadata automatically, while child spans only extract when you explicitly pass `runtimeContext`.
@@ -496,10 +512,10 @@ Create child spans inside a tool call or workflow step to track specific operati
496
512
  execute: async ({ input, tracingContext }) => {
497
513
  // Create another child span for the main database operation
498
514
  const querySpan = tracingContext.currentSpan?.createChildSpan({
499
- type: 'generic',
500
- name: 'database-query',
515
+ type: "generic",
516
+ name: "database-query",
501
517
  input: { query: input.query },
502
- metadata: { database: 'production' },
518
+ metadata: { database: "production" },
503
519
  });
504
520
 
505
521
  try {
@@ -509,18 +525,18 @@ execute: async ({ input, tracingContext }) => {
509
525
  metadata: {
510
526
  rowsReturned: results.length,
511
527
  queryTimeMs: results.executionTime,
512
- cacheHit: results.fromCache
513
- }
528
+ cacheHit: results.fromCache,
529
+ },
514
530
  });
515
531
  return results;
516
532
  } catch (error) {
517
533
  querySpan?.error({
518
534
  error,
519
- metadata: { retryable: isRetryableError(error) }
535
+ metadata: { retryable: isRetryableError(error) },
520
536
  });
521
537
  throw error;
522
538
  }
523
- }
539
+ };
524
540
  ```
525
541
 
526
542
  Child spans automatically inherit the trace context from their parent, maintaining the relationship hierarchy in your observability platform.
@@ -531,20 +547,20 @@ Span processors allow you to transform, filter, or enrich trace data before it's
531
547
 
532
548
  ### Built-in Processors
533
549
 
534
- * [Sensitive Data Filter](/docs/observability/ai-tracing/processors/sensitive-data-filter) redacts sensitive information. It is enabled in the default observability config.
550
+ - [Sensitive Data Filter](/docs/observability/ai-tracing/processors/sensitive-data-filter) redacts sensitive information. It is enabled in the default observability config.
535
551
 
536
552
  ### Creating Custom Processors
537
553
 
538
554
  You can create custom span processors by implementing the `AISpanProcessor` interface. Here's a simple example that converts all input text in spans to lowercase:
539
555
 
540
- ```ts filename="src/processors/lowercase-input-processor.ts" showLineNumbers copy
541
- import type { AISpanProcessor, AnyAISpan } from '@mastra/core/ai-tracing';
556
+ ```ts title="src/processors/lowercase-input-processor.ts" showLineNumbers copy
557
+ import type { AISpanProcessor, AnyAISpan } from "@mastra/core/ai-tracing";
542
558
 
543
559
  export class LowercaseInputProcessor implements AISpanProcessor {
544
- name = 'lowercase-processor';
560
+ name = "lowercase-processor";
545
561
 
546
562
  process(span: AnyAISpan): AnyAISpan {
547
- span.input = `${span.input}`.toLowerCase()
563
+ span.input = `${span.input}`.toLowerCase();
548
564
  return span;
549
565
  }
550
566
 
@@ -558,10 +574,7 @@ export const mastra = new Mastra({
558
574
  observability: {
559
575
  configs: {
560
576
  development: {
561
- processors: [
562
- new LowercaseInputProcessor(),
563
- new SensitiveDataFilter(),
564
- ],
577
+ processors: [new LowercaseInputProcessor(), new SensitiveDataFilter()],
565
578
  exporters: [new DefaultExporter()],
566
579
  },
567
580
  },
@@ -570,6 +583,7 @@ export const mastra = new Mastra({
570
583
  ```
571
584
 
572
585
  Processors are executed in the order they're defined, allowing you to chain multiple transformations. Common use cases for custom processors include:
586
+
573
587
  - Adding environment-specific metadata
574
588
  - Filtering out spans based on criteria
575
589
  - Normalizing data formats
@@ -587,17 +601,17 @@ Both `generate` and `stream` methods return the trace ID in their response:
587
601
  ```ts showLineNumbers copy
588
602
  // Using generate
589
603
  const result = await agent.generate({
590
- messages: [{ role: 'user', content: 'Hello' }]
604
+ messages: [{ role: "user", content: "Hello" }],
591
605
  });
592
606
 
593
- console.log('Trace ID:', result.traceId);
607
+ console.log("Trace ID:", result.traceId);
594
608
 
595
609
  // Using stream
596
610
  const streamResult = await agent.stream({
597
- messages: [{ role: 'user', content: 'Tell me a story' }]
611
+ messages: [{ role: "user", content: "Tell me a story" }],
598
612
  });
599
613
 
600
- console.log('Trace ID:', streamResult.traceId);
614
+ console.log("Trace ID:", streamResult.traceId);
601
615
  ```
602
616
 
603
617
  ### Workflow Trace IDs
@@ -606,23 +620,23 @@ Workflow executions also return trace IDs:
606
620
 
607
621
  ```ts showLineNumbers copy
608
622
  // Create a workflow run
609
- const run = await mastra.getWorkflow('myWorkflow').createRunAsync();
623
+ const run = await mastra.getWorkflow("myWorkflow").createRunAsync();
610
624
 
611
625
  // Start the workflow
612
626
  const result = await run.start({
613
- inputData: { data: 'process this' }
627
+ inputData: { data: "process this" },
614
628
  });
615
629
 
616
- console.log('Trace ID:', result.traceId);
630
+ console.log("Trace ID:", result.traceId);
617
631
 
618
632
  // Or stream the workflow
619
633
  const { stream, getWorkflowState } = run.stream({
620
- inputData: { data: 'process this' }
634
+ inputData: { data: "process this" },
621
635
  });
622
636
 
623
637
  // Get the final state which includes the trace ID
624
638
  const finalState = await getWorkflowState();
625
- console.log('Trace ID:', finalState.traceId);
639
+ console.log("Trace ID:", finalState.traceId);
626
640
  ```
627
641
 
628
642
  ### Using Trace IDs
@@ -647,14 +661,14 @@ Use the `tracingOptions` parameter to specify the trace context from your parent
647
661
  ```ts showLineNumbers copy
648
662
  // Get trace context from your existing tracing system
649
663
  const parentTraceId = getCurrentTraceId(); // Your tracing system
650
- const parentSpanId = getCurrentSpanId(); // Your tracing system
664
+ const parentSpanId = getCurrentSpanId(); // Your tracing system
651
665
 
652
666
  // Execute Mastra operations as part of the parent trace
653
- const result = await agent.generate('Analyze this data', {
667
+ const result = await agent.generate("Analyze this data", {
654
668
  tracingOptions: {
655
669
  traceId: parentTraceId,
656
670
  parentSpanId: parentSpanId,
657
- }
671
+ },
658
672
  });
659
673
 
660
674
  // The Mastra trace will now appear as a child in your distributed trace
@@ -665,7 +679,7 @@ const result = await agent.generate('Analyze this data', {
665
679
  Integration with OpenTelemetry allows Mastra traces to appear seamlessly in your existing observability platform:
666
680
 
667
681
  ```ts showLineNumbers copy
668
- import { trace } from '@opentelemetry/api';
682
+ import { trace } from "@opentelemetry/api";
669
683
 
670
684
  // Get the current OpenTelemetry span
671
685
  const currentSpan = trace.getActiveSpan();
@@ -676,7 +690,7 @@ if (spanContext) {
676
690
  tracingOptions: {
677
691
  traceId: spanContext.traceId,
678
692
  parentSpanId: spanContext.spanId,
679
- }
693
+ },
680
694
  });
681
695
  }
682
696
  ```
@@ -686,15 +700,15 @@ if (spanContext) {
686
700
  Workflows support the same pattern for trace propagation:
687
701
 
688
702
  ```ts showLineNumbers copy
689
- const workflow = mastra.getWorkflow('data-pipeline');
703
+ const workflow = mastra.getWorkflow("data-pipeline");
690
704
  const run = await workflow.createRunAsync();
691
705
 
692
706
  const result = await run.start({
693
- inputData: { data: '...' },
707
+ inputData: { data: "..." },
694
708
  tracingOptions: {
695
709
  traceId: externalTraceId,
696
710
  parentSpanId: externalSpanId,
697
- }
711
+ },
698
712
  });
699
713
  ```
700
714
 
@@ -706,6 +720,7 @@ Mastra validates trace and span IDs to ensure compatibility:
706
720
  - **Span IDs**: 1-16 hexadecimal characters (OpenTelemetry uses 16)
707
721
 
708
722
  Invalid IDs are handled gracefully — Mastra logs an error and continues:
723
+
709
724
  - Invalid trace ID → generates a new trace ID
710
725
  - Invalid parent span ID → ignores the parent relationship
711
726
 
@@ -716,21 +731,23 @@ This ensures tracing never crashes your application, even with malformed input.
716
731
  Here's a complete example showing trace propagation in an Express application:
717
732
 
718
733
  ```ts showLineNumbers copy
719
- import { trace } from '@opentelemetry/api';
720
- import express from 'express';
734
+ import { trace } from "@opentelemetry/api";
735
+ import express from "express";
721
736
 
722
737
  const app = express();
723
738
 
724
- app.post('/api/analyze', async (req, res) => {
739
+ app.post("/api/analyze", async (req, res) => {
725
740
  // Get current OpenTelemetry context
726
741
  const currentSpan = trace.getActiveSpan();
727
742
  const spanContext = currentSpan?.spanContext();
728
743
 
729
744
  const result = await agent.generate(req.body.message, {
730
- tracingOptions: spanContext ? {
731
- traceId: spanContext.traceId,
732
- parentSpanId: spanContext.spanId,
733
- } : undefined,
745
+ tracingOptions: spanContext
746
+ ? {
747
+ traceId: spanContext.traceId,
748
+ parentSpanId: spanContext.spanId,
749
+ }
750
+ : undefined,
734
751
  });
735
752
 
736
753
  res.json(result);
@@ -744,12 +761,14 @@ This creates a single distributed trace that includes both the HTTP request hand
744
761
  Mastra automatically creates spans for:
745
762
 
746
763
  ### Agent Operations
764
+
747
765
  - **Agent runs** - Complete execution with instructions and tools
748
766
  - **LLM calls** - Model interactions with tokens and parameters
749
767
  - **Tool executions** - Function calls with inputs and outputs
750
768
  - **Memory operations** - Thread and semantic recall
751
769
 
752
770
  ### Workflow Operations
771
+
753
772
  - **Workflow runs** - Full execution from start to finish
754
773
  - **Individual steps** - Step processing with inputs/outputs
755
774
  - **Control flow** - Conditionals, loops, parallel execution
@@ -768,15 +787,18 @@ Traces are available in multiple locations:
768
787
  ## See Also
769
788
 
770
789
  ### Examples
790
+
771
791
  - [Basic AI Tracing Example](/examples/observability/basic-ai-tracing) - Working implementation
772
792
 
773
793
  ### Reference Documentation
794
+
774
795
  - [Configuration API](/reference/observability/ai-tracing/configuration) - ObservabilityConfig details
775
- - [AITracing Classes](/reference/observability/ai-tracing/ai-tracing) - Core classes and methods
796
+ - [AITracing Classes](/reference/observability/ai-tracing/) - Core classes and methods
776
797
  - [Span Interfaces](/reference/observability/ai-tracing/span) - Span types and lifecycle
777
798
  - [Type Definitions](/reference/observability/ai-tracing/interfaces) - Complete interface reference
778
799
 
779
800
  ### Exporters
801
+
780
802
  - [DefaultExporter](/reference/observability/ai-tracing/exporters/default-exporter) - Storage persistence
781
803
  - [CloudExporter](/reference/observability/ai-tracing/exporters/cloud-exporter) - Mastra Cloud integration
782
804
  - [ConsoleExporter](/reference/observability/ai-tracing/exporters/console-exporter) - Debug output
@@ -786,4 +808,5 @@ Traces are available in multiple locations:
786
808
  - [OpenTelemetry](/reference/observability/ai-tracing/exporters/otel) - OTEL-compatible platforms
787
809
 
788
810
  ### Processors
811
+
789
812
  - [Sensitive Data Filter](/docs/observability/ai-tracing/processors/sensitive-data-filter) - Data redaction