@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,7 +3,7 @@ title: "Reference: Context Relevance Scorer | Scorers | Mastra Docs"
3
3
  description: Documentation for the Context Relevance Scorer in Mastra. Evaluates the relevance and utility of provided context for generating agent responses using weighted relevance scoring.
4
4
  ---
5
5
 
6
- import { PropertiesTable } from "@/components/properties-table";
6
+ import PropertiesTable from "@site/src/components/PropertiesTable";
7
7
 
8
8
  # Context Relevance Scorer
9
9
 
@@ -14,6 +14,7 @@ It is especially useful for these use cases:
14
14
  **Content Generation Evaluation**
15
15
 
16
16
  Best for evaluating context quality in:
17
+
17
18
  - Chat systems where context usage matters
18
19
  - RAG pipelines needing nuanced relevance assessment
19
20
  - Systems where missing context affects quality
@@ -21,6 +22,7 @@ Best for evaluating context quality in:
21
22
  **Context Selection Optimization**
22
23
 
23
24
  Use when optimizing for:
25
+
24
26
  - Comprehensive context coverage
25
27
  - Effective context utilization
26
28
  - Identifying context gaps
@@ -50,7 +52,8 @@ Use when optimizing for:
50
52
  {
51
53
  name: "contextExtractor",
52
54
  type: "(input, output) => string[]",
53
- description: "Function to dynamically extract context from the run input and output",
55
+ description:
56
+ "Function to dynamically extract context from the run input and output",
54
57
  required: false,
55
58
  },
56
59
  {
@@ -68,7 +71,8 @@ Use when optimizing for:
68
71
  {
69
72
  name: "unusedHighRelevanceContext",
70
73
  type: "number",
71
- description: "Penalty per unused high-relevance context (default: 0.1)",
74
+ description:
75
+ "Penalty per unused high-relevance context (default: 0.1)",
72
76
  required: false,
73
77
  },
74
78
  {
@@ -80,7 +84,8 @@ Use when optimizing for:
80
84
  {
81
85
  name: "maxMissingContextPenalty",
82
86
  type: "number",
83
- description: "Maximum total missing context penalty (default: 0.5)",
87
+ description:
88
+ "Maximum total missing context penalty (default: 0.5)",
84
89
  required: false,
85
90
  },
86
91
  ],
@@ -104,7 +109,8 @@ Note: Either `context` or `contextExtractor` must be provided. If both are provi
104
109
  {
105
110
  name: "reason",
106
111
  type: "string",
107
- description: "Human-readable explanation of the context relevance evaluation",
112
+ description:
113
+ "Human-readable explanation of the context relevance evaluation",
108
114
  },
109
115
  ]}
110
116
  />
@@ -138,6 +144,7 @@ Final Score = max(0, Base Score - Usage Penalty - Missing Penalty) × scale
138
144
  ```
139
145
 
140
146
  **Default Values**:
147
+
141
148
  - `unusedHighRelevanceContext` = 0.1 (10% penalty per unused high-relevance context)
142
149
  - `missingContextPerItem` = 0.15 (15% penalty per missing context item)
143
150
  - `maxMissingContextPenalty` = 0.5 (maximum 50% penalty for missing context)
@@ -154,6 +161,7 @@ Final Score = max(0, Base Score - Usage Penalty - Missing Penalty) × scale
154
161
  ### Reason analysis
155
162
 
156
163
  The reason field provides insights on:
164
+
157
165
  - Relevance level of each context piece (high/medium/low/none)
158
166
  - Which context was actually used in the response
159
167
  - Penalties applied for unused high-relevance context (configurable via `unusedHighRelevanceContext`)
@@ -162,6 +170,7 @@ The reason field provides insights on:
162
170
  ### Optimization strategies
163
171
 
164
172
  Use results to improve your system:
173
+
165
174
  - **Filter irrelevant context**: Remove low/none relevance pieces before processing
166
175
  - **Ensure context usage**: Make sure high-relevance context is incorporated
167
176
  - **Fill context gaps**: Add missing information identified by the scorer
@@ -170,13 +179,13 @@ Use results to improve your system:
170
179
 
171
180
  ### Difference from Context Precision
172
181
 
173
- | Aspect | Context Relevance | Context Precision |
174
- |--------|-------------------|-------------------|
175
- | **Algorithm** | Weighted levels with penalties | Mean Average Precision (MAP) |
176
- | **Relevance** | Multiple levels (high/medium/low/none) | Binary (yes/no) |
177
- | **Position** | Not considered | Critical (rewards early placement) |
178
- | **Usage** | Tracks and penalizes unused context | Not considered |
179
- | **Missing** | Identifies and penalizes gaps | Not evaluated |
182
+ | Aspect | Context Relevance | Context Precision |
183
+ | ------------- | -------------------------------------- | ---------------------------------- |
184
+ | **Algorithm** | Weighted levels with penalties | Mean Average Precision (MAP) |
185
+ | **Relevance** | Multiple levels (high/medium/low/none) | Binary (yes/no) |
186
+ | **Position** | Not considered | Critical (rewards early placement) |
187
+ | **Usage** | Tracks and penalizes unused context | Not considered |
188
+ | **Missing** | Identifies and penalizes gaps | Not evaluated |
180
189
 
181
190
  ## Scorer configuration
182
191
 
@@ -185,16 +194,16 @@ Use results to improve your system:
185
194
  Control how penalties are applied for unused and missing context:
186
195
 
187
196
  ```typescript
188
- import { createContextRelevanceScorerLLM } from '@mastra/evals';
197
+ import { createContextRelevanceScorerLLM } from "@mastra/evals";
189
198
 
190
199
  // Stricter penalty configuration
191
200
  const strictScorer = createContextRelevanceScorerLLM({
192
- model: 'openai/gpt-4o-mini',
201
+ model: "openai/gpt-4o-mini",
193
202
  options: {
194
203
  context: [
195
- 'Einstein won the Nobel Prize for photoelectric effect',
196
- 'He developed the theory of relativity',
197
- 'Einstein was born in Germany',
204
+ "Einstein won the Nobel Prize for photoelectric effect",
205
+ "He developed the theory of relativity",
206
+ "Einstein was born in Germany",
198
207
  ],
199
208
  penalties: {
200
209
  unusedHighRelevanceContext: 0.2, // 20% penalty per unused high-relevance context
@@ -207,12 +216,12 @@ const strictScorer = createContextRelevanceScorerLLM({
207
216
 
208
217
  // Lenient penalty configuration
209
218
  const lenientScorer = createContextRelevanceScorerLLM({
210
- model: 'openai/gpt-4o-mini',
219
+ model: "openai/gpt-4o-mini",
211
220
  options: {
212
221
  context: [
213
- 'Einstein won the Nobel Prize for photoelectric effect',
214
- 'He developed the theory of relativity',
215
- 'Einstein was born in Germany',
222
+ "Einstein won the Nobel Prize for photoelectric effect",
223
+ "He developed the theory of relativity",
224
+ "Einstein was born in Germany",
216
225
  ],
217
226
  penalties: {
218
227
  unusedHighRelevanceContext: 0.05, // 5% penalty per unused high-relevance context
@@ -227,17 +236,18 @@ const testRun = {
227
236
  input: {
228
237
  inputMessages: [
229
238
  {
230
- id: '1',
231
- role: 'user',
232
- content: 'What did Einstein achieve in physics?',
239
+ id: "1",
240
+ role: "user",
241
+ content: "What did Einstein achieve in physics?",
233
242
  },
234
243
  ],
235
244
  },
236
245
  output: [
237
246
  {
238
- id: '2',
239
- role: 'assistant',
240
- content: 'Einstein won the Nobel Prize for his work on the photoelectric effect.',
247
+ id: "2",
248
+ role: "assistant",
249
+ content:
250
+ "Einstein won the Nobel Prize for his work on the photoelectric effect.",
241
251
  },
242
252
  ],
243
253
  };
@@ -245,26 +255,26 @@ const testRun = {
245
255
  const strictResult = await strictScorer.run(testRun);
246
256
  const lenientResult = await lenientScorer.run(testRun);
247
257
 
248
- console.log('Strict penalties:', strictResult.score); // Lower score due to unused context
249
- console.log('Lenient penalties:', lenientResult.score); // Higher score, less penalty
258
+ console.log("Strict penalties:", strictResult.score); // Lower score due to unused context
259
+ console.log("Lenient penalties:", lenientResult.score); // Higher score, less penalty
250
260
  ```
251
261
 
252
262
  ### Dynamic Context Extraction
253
263
 
254
264
  ```typescript
255
265
  const scorer = createContextRelevanceScorerLLM({
256
- model: 'openai/gpt-4o',
266
+ model: "openai/gpt-4o",
257
267
  options: {
258
268
  contextExtractor: (input, output) => {
259
269
  // Extract context based on the query
260
- const userQuery = input?.inputMessages?.[0]?.content || '';
261
- if (userQuery.includes('Einstein')) {
270
+ const userQuery = input?.inputMessages?.[0]?.content || "";
271
+ if (userQuery.includes("Einstein")) {
262
272
  return [
263
- 'Einstein won the Nobel Prize for the photoelectric effect',
264
- 'He developed the theory of relativity'
273
+ "Einstein won the Nobel Prize for the photoelectric effect",
274
+ "He developed the theory of relativity",
265
275
  ];
266
276
  }
267
- return ['General physics information'];
277
+ return ["General physics information"];
268
278
  },
269
279
  penalties: {
270
280
  unusedHighRelevanceContext: 0.15,
@@ -277,12 +287,9 @@ const scorer = createContextRelevanceScorerLLM({
277
287
 
278
288
  ```typescript
279
289
  const scorer = createContextRelevanceScorerLLM({
280
- model: 'openai/gpt-4o-mini',
290
+ model: "openai/gpt-4o-mini",
281
291
  options: {
282
- context: [
283
- 'Relevant information...',
284
- 'Supporting details...',
285
- ],
292
+ context: ["Relevant information...", "Supporting details..."],
286
293
  scale: 100, // Scale scores from 0-100 instead of 0-1
287
294
  },
288
295
  });
@@ -294,21 +301,17 @@ const scorer = createContextRelevanceScorerLLM({
294
301
 
295
302
  ```typescript
296
303
  const scorer = createContextRelevanceScorerLLM({
297
- model: 'openai/gpt-4o-mini',
304
+ model: "openai/gpt-4o-mini",
298
305
  options: {
299
306
  contextExtractor: (input, output) => {
300
- const query = input?.inputMessages?.[0]?.content || '';
301
-
307
+ const query = input?.inputMessages?.[0]?.content || "";
308
+
302
309
  // Combine from multiple sources
303
310
  const kbContext = knowledgeBase.search(query);
304
311
  const docContext = documentStore.retrieve(query);
305
312
  const cacheContext = contextCache.get(query);
306
-
307
- return [
308
- ...kbContext,
309
- ...docContext,
310
- ...cacheContext,
311
- ];
313
+
314
+ return [...kbContext, ...docContext, ...cacheContext];
312
315
  },
313
316
  scale: 1,
314
317
  },
@@ -322,15 +325,15 @@ const scorer = createContextRelevanceScorerLLM({
322
325
  This example shows excellent context relevance where all context directly supports the response:
323
326
 
324
327
  ```typescript
325
- import { createContextRelevanceScorerLLM } from '@mastra/evals';
328
+ import { createContextRelevanceScorerLLM } from "@mastra/evals";
326
329
 
327
330
  const scorer = createContextRelevanceScorerLLM({
328
- model: 'openai/gpt-4o-mini',
331
+ model: "openai/gpt-4o-mini",
329
332
  options: {
330
333
  context: [
331
- 'Einstein won the Nobel Prize for his discovery of the photoelectric effect in 1921.',
332
- 'He published his theory of special relativity in 1905.',
333
- 'His general relativity theory, published in 1915, revolutionized our understanding of gravity.',
334
+ "Einstein won the Nobel Prize for his discovery of the photoelectric effect in 1921.",
335
+ "He published his theory of special relativity in 1905.",
336
+ "His general relativity theory, published in 1915, revolutionized our understanding of gravity.",
334
337
  ],
335
338
  scale: 1,
336
339
  },
@@ -340,17 +343,18 @@ const result = await scorer.run({
340
343
  input: {
341
344
  inputMessages: [
342
345
  {
343
- id: '1',
344
- role: 'user',
345
- content: 'What were Einstein\'s major scientific achievements?',
346
+ id: "1",
347
+ role: "user",
348
+ content: "What were Einstein's major scientific achievements?",
346
349
  },
347
350
  ],
348
351
  },
349
352
  output: [
350
353
  {
351
- id: '2',
352
- role: 'assistant',
353
- content: 'Einstein\'s major achievements include the Nobel Prize for the photoelectric effect, special relativity in 1905, and general relativity in 1915.',
354
+ id: "2",
355
+ role: "assistant",
356
+ content:
357
+ "Einstein's major achievements include the Nobel Prize for the photoelectric effect, special relativity in 1905, and general relativity in 1915.",
354
358
  },
355
359
  ],
356
360
  });
@@ -368,17 +372,17 @@ console.log(result);
368
372
  This example shows moderate relevance with some context being irrelevant or unused:
369
373
 
370
374
  ```typescript
371
- import { createContextRelevanceScorerLLM } from '@mastra/evals';
375
+ import { createContextRelevanceScorerLLM } from "@mastra/evals";
372
376
 
373
377
  const scorer = createContextRelevanceScorerLLM({
374
- model: 'openai/gpt-4o-mini',
378
+ model: "openai/gpt-4o-mini",
375
379
  options: {
376
380
  context: [
377
- 'Solar eclipses occur when the Moon blocks the Sun.',
378
- 'The Moon moves between the Earth and Sun during eclipses.',
379
- 'The Moon is visible at night.',
380
- 'Stars twinkle due to atmospheric interference.',
381
- 'Total eclipses can last up to 7.5 minutes.',
381
+ "Solar eclipses occur when the Moon blocks the Sun.",
382
+ "The Moon moves between the Earth and Sun during eclipses.",
383
+ "The Moon is visible at night.",
384
+ "Stars twinkle due to atmospheric interference.",
385
+ "Total eclipses can last up to 7.5 minutes.",
382
386
  ],
383
387
  scale: 1,
384
388
  },
@@ -388,17 +392,18 @@ const result = await scorer.run({
388
392
  input: {
389
393
  inputMessages: [
390
394
  {
391
- id: '1',
392
- role: 'user',
393
- content: 'What causes solar eclipses?',
395
+ id: "1",
396
+ role: "user",
397
+ content: "What causes solar eclipses?",
394
398
  },
395
399
  ],
396
400
  },
397
401
  output: [
398
402
  {
399
- id: '2',
400
- role: 'assistant',
401
- content: 'Solar eclipses happen when the Moon moves between Earth and the Sun, blocking sunlight.',
403
+ id: "2",
404
+ role: "assistant",
405
+ content:
406
+ "Solar eclipses happen when the Moon moves between Earth and the Sun, blocking sunlight.",
402
407
  },
403
408
  ],
404
409
  });
@@ -412,14 +417,14 @@ console.log(result);
412
417
 
413
418
  // With custom penalty configuration
414
419
  const customScorer = createContextRelevanceScorerLLM({
415
- model: 'openai/gpt-4o-mini',
420
+ model: "openai/gpt-4o-mini",
416
421
  options: {
417
422
  context: [
418
- 'Solar eclipses occur when the Moon blocks the Sun.',
419
- 'The Moon moves between the Earth and Sun during eclipses.',
420
- 'The Moon is visible at night.',
421
- 'Stars twinkle due to atmospheric interference.',
422
- 'Total eclipses can last up to 7.5 minutes.',
423
+ "Solar eclipses occur when the Moon blocks the Sun.",
424
+ "The Moon moves between the Earth and Sun during eclipses.",
425
+ "The Moon is visible at night.",
426
+ "Stars twinkle due to atmospheric interference.",
427
+ "Total eclipses can last up to 7.5 minutes.",
423
428
  ],
424
429
  penalties: {
425
430
  unusedHighRelevanceContext: 0.05, // Lower penalty for unused context
@@ -430,8 +435,19 @@ const customScorer = createContextRelevanceScorerLLM({
430
435
  });
431
436
 
432
437
  const customResult = await customScorer.run({
433
- input: { inputMessages: [{ id: '1', role: 'user', content: 'What causes solar eclipses?' }] },
434
- output: [{ id: '2', role: 'assistant', content: 'Solar eclipses happen when the Moon moves between Earth and the Sun, blocking sunlight.' }],
438
+ input: {
439
+ inputMessages: [
440
+ { id: "1", role: "user", content: "What causes solar eclipses?" },
441
+ ],
442
+ },
443
+ output: [
444
+ {
445
+ id: "2",
446
+ role: "assistant",
447
+ content:
448
+ "Solar eclipses happen when the Moon moves between Earth and the Sun, blocking sunlight.",
449
+ },
450
+ ],
435
451
  });
436
452
 
437
453
  console.log(customResult);
@@ -447,17 +463,17 @@ console.log(customResult);
447
463
  This example shows poor context relevance with mostly irrelevant information:
448
464
 
449
465
  ```typescript
450
- import { createContextRelevanceScorerLLM } from '@mastra/evals';
466
+ import { createContextRelevanceScorerLLM } from "@mastra/evals";
451
467
 
452
468
  const scorer = createContextRelevanceScorerLLM({
453
- model: 'openai/gpt-4o-mini',
469
+ model: "openai/gpt-4o-mini",
454
470
  options: {
455
471
  context: [
456
- 'The Great Barrier Reef is located in Australia.',
457
- 'Coral reefs need warm water to survive.',
458
- 'Many fish species live in coral reefs.',
459
- 'Australia has six states and two territories.',
460
- 'The capital of Australia is Canberra.',
472
+ "The Great Barrier Reef is located in Australia.",
473
+ "Coral reefs need warm water to survive.",
474
+ "Many fish species live in coral reefs.",
475
+ "Australia has six states and two territories.",
476
+ "The capital of Australia is Canberra.",
461
477
  ],
462
478
  scale: 1,
463
479
  },
@@ -467,17 +483,17 @@ const result = await scorer.run({
467
483
  input: {
468
484
  inputMessages: [
469
485
  {
470
- id: '1',
471
- role: 'user',
472
- content: 'What is the capital of Australia?',
486
+ id: "1",
487
+ role: "user",
488
+ content: "What is the capital of Australia?",
473
489
  },
474
490
  ],
475
491
  },
476
492
  output: [
477
493
  {
478
- id: '2',
479
- role: 'assistant',
480
- content: 'The capital of Australia is Canberra.',
494
+ id: "2",
495
+ role: "assistant",
496
+ content: "The capital of Australia is Canberra.",
481
497
  },
482
498
  ],
483
499
  });
@@ -495,33 +511,33 @@ console.log(result);
495
511
  Extract context dynamically based on the run input:
496
512
 
497
513
  ```typescript
498
- import { createContextRelevanceScorerLLM } from '@mastra/evals';
514
+ import { createContextRelevanceScorerLLM } from "@mastra/evals";
499
515
 
500
516
  const scorer = createContextRelevanceScorerLLM({
501
- model: 'openai/gpt-4o-mini',
517
+ model: "openai/gpt-4o-mini",
502
518
  options: {
503
519
  contextExtractor: (input, output) => {
504
520
  // Extract query from input
505
- const query = input?.inputMessages?.[0]?.content || '';
506
-
521
+ const query = input?.inputMessages?.[0]?.content || "";
522
+
507
523
  // Dynamically retrieve context based on query
508
- if (query.toLowerCase().includes('einstein')) {
524
+ if (query.toLowerCase().includes("einstein")) {
509
525
  return [
510
- 'Einstein developed E=mc²',
511
- 'He won the Nobel Prize in 1921',
512
- 'His theories revolutionized physics',
526
+ "Einstein developed E=mc²",
527
+ "He won the Nobel Prize in 1921",
528
+ "His theories revolutionized physics",
513
529
  ];
514
530
  }
515
-
516
- if (query.toLowerCase().includes('climate')) {
531
+
532
+ if (query.toLowerCase().includes("climate")) {
517
533
  return [
518
- 'Global temperatures are rising',
519
- 'CO2 levels affect climate',
520
- 'Renewable energy reduces emissions',
534
+ "Global temperatures are rising",
535
+ "CO2 levels affect climate",
536
+ "Renewable energy reduces emissions",
521
537
  ];
522
538
  }
523
-
524
- return ['General knowledge base entry'];
539
+
540
+ return ["General knowledge base entry"];
525
541
  },
526
542
  penalties: {
527
543
  unusedHighRelevanceContext: 0.15, // 15% penalty for unused relevant context
@@ -538,19 +554,19 @@ const scorer = createContextRelevanceScorerLLM({
538
554
  Integrate with RAG pipelines to evaluate retrieved context:
539
555
 
540
556
  ```typescript
541
- import { createContextRelevanceScorerLLM } from '@mastra/evals';
557
+ import { createContextRelevanceScorerLLM } from "@mastra/evals";
542
558
 
543
559
  const scorer = createContextRelevanceScorerLLM({
544
- model: 'openai/gpt-4o-mini',
560
+ model: "openai/gpt-4o-mini",
545
561
  options: {
546
562
  contextExtractor: (input, output) => {
547
563
  // Extract from RAG retrieval results
548
564
  const ragResults = input.metadata?.ragResults || [];
549
-
565
+
550
566
  // Return the text content of retrieved documents
551
567
  return ragResults
552
- .filter(doc => doc.relevanceScore > 0.5)
553
- .map(doc => doc.content);
568
+ .filter((doc) => doc.relevanceScore > 0.5)
569
+ .map((doc) => doc.content);
554
570
  },
555
571
  penalties: {
556
572
  unusedHighRelevanceContext: 0.12, // Moderate penalty for unused RAG context
@@ -564,18 +580,18 @@ const scorer = createContextRelevanceScorerLLM({
564
580
  // Evaluate RAG system performance
565
581
  const evaluateRAG = async (testCases) => {
566
582
  const results = [];
567
-
583
+
568
584
  for (const testCase of testCases) {
569
585
  const score = await scorer.run(testCase);
570
586
  results.push({
571
587
  query: testCase.input.inputMessages[0].content,
572
588
  relevanceScore: score.score,
573
589
  feedback: score.reason,
574
- unusedContext: score.reason.includes('unused'),
575
- missingContext: score.reason.includes('missing'),
590
+ unusedContext: score.reason.includes("unused"),
591
+ missingContext: score.reason.includes("missing"),
576
592
  });
577
593
  }
578
-
594
+
579
595
  return results;
580
596
  };
581
597
  ```
@@ -584,16 +600,16 @@ const evaluateRAG = async (testCases) => {
584
600
 
585
601
  Choose the right scorer for your needs:
586
602
 
587
- | Use Case | Context Relevance | Context Precision |
588
- |----------|-------------------|-------------------|
589
- | **RAG evaluation** | When usage matters | When ranking matters |
590
- | **Context quality** | Nuanced levels | Binary relevance |
591
- | **Missing detection** | ✓ Identifies gaps | ✗ Not evaluated |
592
- | **Usage tracking** | ✓ Tracks utilization | ✗ Not considered |
593
- | **Position sensitivity** | ✗ Position agnostic | ✓ Rewards early placement |
603
+ | Use Case | Context Relevance | Context Precision |
604
+ | ------------------------ | -------------------- | ------------------------- |
605
+ | **RAG evaluation** | When usage matters | When ranking matters |
606
+ | **Context quality** | Nuanced levels | Binary relevance |
607
+ | **Missing detection** | ✓ Identifies gaps | ✗ Not evaluated |
608
+ | **Usage tracking** | ✓ Tracks utilization | ✗ Not considered |
609
+ | **Position sensitivity** | ✗ Position agnostic | ✓ Rewards early placement |
594
610
 
595
611
  ## Related
596
612
 
597
613
  - [Context Precision Scorer](/reference/scorers/context-precision) - Evaluates context ranking using MAP
598
614
  - [Faithfulness Scorer](/reference/scorers/faithfulness) - Measures answer groundedness in context
599
- - [Custom Scorers](/docs/scorers/custom-scorers) - Creating your own evaluation metrics
615
+ - [Custom Scorers](/docs/scorers/custom-scorers) - Creating your own evaluation metrics