@mastra/mcp-docs-server 1.0.0-beta.1 → 1.0.0-beta.11

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 (491) hide show
  1. package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +1 -15
  2. package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +1 -7
  3. package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +201 -1
  4. package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +1 -55
  5. package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +201 -1
  6. package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +276 -76
  7. package/.docs/organized/changelogs/%40mastra%2Fastra.md +201 -1
  8. package/.docs/organized/changelogs/%40mastra%2Fauth.md +6 -0
  9. package/.docs/organized/changelogs/%40mastra%2Fchroma.md +201 -1
  10. package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +201 -1
  11. package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +200 -0
  12. package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +201 -1
  13. package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +201 -1
  14. package/.docs/organized/changelogs/%40mastra%2Fcodemod.md +26 -0
  15. package/.docs/organized/changelogs/%40mastra%2Fconvex.md +89 -0
  16. package/.docs/organized/changelogs/%40mastra%2Fcore.md +392 -192
  17. package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +201 -1
  18. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +201 -1
  19. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +201 -1
  20. package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +201 -1
  21. package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +201 -1
  22. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +200 -0
  23. package/.docs/organized/changelogs/%40mastra%2Fduckdb.md +42 -0
  24. package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +201 -1
  25. package/.docs/organized/changelogs/%40mastra%2Felasticsearch.md +61 -0
  26. package/.docs/organized/changelogs/%40mastra%2Fevals.md +201 -1
  27. package/.docs/organized/changelogs/%40mastra%2Flance.md +201 -1
  28. package/.docs/organized/changelogs/%40mastra%2Flibsql.md +201 -1
  29. package/.docs/organized/changelogs/%40mastra%2Floggers.md +201 -1
  30. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +201 -1
  31. package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +201 -1
  32. package/.docs/organized/changelogs/%40mastra%2Fmcp.md +201 -1
  33. package/.docs/organized/changelogs/%40mastra%2Fmemory.md +201 -1
  34. package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +201 -1
  35. package/.docs/organized/changelogs/%40mastra%2Fmssql.md +201 -1
  36. package/.docs/organized/changelogs/%40mastra%2Fopensearch.md +201 -1
  37. package/.docs/organized/changelogs/%40mastra%2Fpg.md +201 -1
  38. package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +201 -1
  39. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +263 -63
  40. package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +201 -1
  41. package/.docs/organized/changelogs/%40mastra%2Frag.md +201 -1
  42. package/.docs/organized/changelogs/%40mastra%2Freact.md +154 -1
  43. package/.docs/organized/changelogs/%40mastra%2Fs3vectors.md +18 -0
  44. package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +42 -0
  45. package/.docs/organized/changelogs/%40mastra%2Fserver.md +274 -74
  46. package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +201 -1
  47. package/.docs/organized/changelogs/%40mastra%2Fupstash.md +201 -1
  48. package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +201 -1
  49. package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +201 -1
  50. package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +201 -1
  51. package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +201 -1
  52. package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +201 -1
  53. package/.docs/organized/changelogs/%40mastra%2Fvoice-gladia.md +92 -1
  54. package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +67 -1
  55. package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +201 -1
  56. package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +201 -1
  57. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +201 -1
  58. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +201 -1
  59. package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +201 -1
  60. package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +201 -1
  61. package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +201 -1
  62. package/.docs/organized/changelogs/create-mastra.md +201 -1
  63. package/.docs/organized/changelogs/mastra.md +201 -1
  64. package/.docs/organized/code-examples/agui.md +1 -0
  65. package/.docs/organized/code-examples/ai-elements.md +2 -2
  66. package/.docs/organized/code-examples/ai-sdk-useChat.md +2 -2
  67. package/.docs/organized/code-examples/ai-sdk-v5.md +3 -2
  68. package/.docs/organized/code-examples/assistant-ui.md +2 -2
  69. package/.docs/organized/code-examples/bird-checker-with-express.md +1 -1
  70. package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +2 -2
  71. package/.docs/organized/code-examples/bird-checker-with-nextjs.md +2 -2
  72. package/.docs/organized/code-examples/client-side-tools.md +1 -1
  73. package/.docs/organized/code-examples/crypto-chatbot.md +2 -2
  74. package/.docs/organized/code-examples/fireworks-r1.md +1 -1
  75. package/.docs/organized/code-examples/heads-up-game.md +1 -1
  76. package/.docs/organized/code-examples/mcp-configuration.md +0 -3
  77. package/.docs/organized/code-examples/mcp-server-adapters.md +720 -0
  78. package/.docs/organized/code-examples/memory-per-resource-example.md +1 -1
  79. package/.docs/organized/code-examples/memory-with-processors.md +1 -1
  80. package/.docs/organized/code-examples/openapi-spec-writer.md +1 -1
  81. package/.docs/organized/code-examples/processors-with-ai-sdk.md +14 -0
  82. package/.docs/organized/code-examples/quick-start.md +2 -2
  83. package/.docs/organized/code-examples/server-app-access.md +342 -0
  84. package/.docs/organized/code-examples/server-express-adapter.md +87 -0
  85. package/.docs/organized/code-examples/server-hono-adapter.md +85 -0
  86. package/.docs/organized/code-examples/stock-price-tool.md +1 -21
  87. package/.docs/organized/code-examples/workflow-ai-recruiter.md +1 -1
  88. package/.docs/organized/code-examples/workflow-with-inline-steps.md +1 -1
  89. package/.docs/organized/code-examples/workflow-with-memory.md +1 -1
  90. package/.docs/organized/code-examples/workflow-with-separate-steps.md +1 -1
  91. package/.docs/organized/code-examples/workflow-with-suspend-resume.md +1 -1
  92. package/.docs/raw/agents/adding-voice.mdx +56 -10
  93. package/.docs/raw/agents/agent-approval.mdx +189 -0
  94. package/.docs/raw/agents/agent-memory.mdx +1 -1
  95. package/.docs/raw/agents/guardrails.mdx +70 -30
  96. package/.docs/raw/agents/networks.mdx +3 -3
  97. package/.docs/raw/agents/overview.mdx +18 -167
  98. package/.docs/raw/agents/processors.mdx +430 -0
  99. package/.docs/raw/agents/structured-output.mdx +224 -0
  100. package/.docs/raw/agents/using-tools.mdx +14 -14
  101. package/.docs/raw/auth/auth0.mdx +1 -1
  102. package/.docs/raw/auth/clerk.mdx +1 -1
  103. package/.docs/raw/auth/firebase.mdx +1 -1
  104. package/.docs/raw/auth/index.mdx +1 -1
  105. package/.docs/raw/auth/jwt.mdx +1 -1
  106. package/.docs/raw/auth/supabase.mdx +1 -1
  107. package/.docs/raw/auth/workos.mdx +1 -1
  108. package/.docs/raw/community/contributing-templates.mdx +1 -1
  109. package/.docs/raw/community/discord.mdx +2 -2
  110. package/.docs/raw/community/licensing.mdx +1 -1
  111. package/.docs/raw/course/01-first-agent/05-running-playground.md +5 -5
  112. package/.docs/raw/course/01-first-agent/09-testing-your-agent.md +3 -3
  113. package/.docs/raw/course/01-first-agent/13-testing-your-tool.md +3 -3
  114. package/.docs/raw/course/01-first-agent/17-testing-memory.md +2 -2
  115. package/.docs/raw/course/04-workflows/07-using-playground.md +1 -1
  116. package/.docs/raw/deployment/{server-deployment.mdx → building-mastra.mdx} +4 -4
  117. package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +2 -2
  118. package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +3 -3
  119. package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +2 -2
  120. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/cloudflare-deployer.mdx +1 -1
  121. package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +2 -2
  122. package/.docs/raw/deployment/cloud-providers/index.mdx +26 -29
  123. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/netlify-deployer.mdx +45 -14
  124. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/vercel-deployer.mdx +1 -1
  125. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/dashboard.mdx +3 -3
  126. package/.docs/raw/deployment/mastra-cloud/observability.mdx +53 -0
  127. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/overview.mdx +3 -3
  128. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/setting-up.mdx +4 -4
  129. package/.docs/raw/deployment/monorepo.mdx +3 -3
  130. package/.docs/raw/deployment/overview.mdx +7 -7
  131. package/.docs/raw/deployment/web-framework.mdx +6 -6
  132. package/.docs/raw/evals/{off-the-shelf-scorers.mdx → built-in-scorers.mdx} +17 -15
  133. package/.docs/raw/evals/custom-scorers.mdx +4 -6
  134. package/.docs/raw/evals/overview.mdx +5 -6
  135. package/.docs/raw/evals/running-in-ci.mdx +2 -4
  136. package/.docs/raw/getting-started/{installation.mdx → manual-install.mdx} +6 -80
  137. package/.docs/raw/getting-started/mcp-docs-server.mdx +63 -6
  138. package/.docs/raw/getting-started/project-structure.mdx +2 -2
  139. package/.docs/raw/getting-started/start.mdx +72 -0
  140. package/.docs/raw/getting-started/studio.mdx +32 -7
  141. package/.docs/raw/guides/agent-frameworks/ai-sdk.mdx +147 -0
  142. package/.docs/raw/guides/build-your-ui/ai-sdk-ui.mdx +627 -0
  143. package/.docs/raw/{frameworks/agentic-uis → guides/build-your-ui}/assistant-ui.mdx +71 -19
  144. package/.docs/raw/guides/build-your-ui/copilotkit.mdx +206 -0
  145. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/astro.mdx +24 -26
  146. package/.docs/raw/{frameworks/servers → guides/getting-started}/express.mdx +4 -5
  147. package/.docs/raw/guides/{quickstarts/nextjs.mdx → getting-started/next-js.mdx} +26 -25
  148. package/.docs/raw/guides/getting-started/quickstart.mdx +97 -0
  149. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/sveltekit.mdx +24 -26
  150. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/vite-react.mdx +7 -7
  151. package/.docs/raw/guides/guide/ai-recruiter.mdx +2 -3
  152. package/.docs/raw/guides/guide/chef-michel.mdx +2 -3
  153. package/.docs/raw/guides/guide/notes-mcp-server.mdx +2 -2
  154. package/.docs/raw/guides/guide/research-assistant.mdx +7 -8
  155. package/.docs/raw/guides/guide/stock-agent.mdx +4 -6
  156. package/.docs/raw/guides/guide/web-search.mdx +12 -10
  157. package/.docs/raw/guides/guide/whatsapp-chat-bot.mdx +421 -0
  158. package/.docs/raw/guides/index.mdx +3 -35
  159. package/.docs/raw/guides/migrations/agentnetwork.mdx +4 -4
  160. package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +119 -0
  161. package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +121 -1
  162. package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +42 -2
  163. package/.docs/raw/guides/migrations/upgrade-to-v1/evals.mdx +31 -1
  164. package/.docs/raw/guides/migrations/upgrade-to-v1/mastra.mdx +27 -3
  165. package/.docs/raw/guides/migrations/upgrade-to-v1/mcp.mdx +1 -1
  166. package/.docs/raw/guides/migrations/upgrade-to-v1/memory.mdx +28 -0
  167. package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +25 -3
  168. package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +80 -0
  169. package/.docs/raw/guides/migrations/upgrade-to-v1/tools.mdx +68 -3
  170. package/.docs/raw/guides/migrations/upgrade-to-v1/vectors.mdx +25 -1
  171. package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +174 -1
  172. package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +2 -2
  173. package/.docs/raw/index.mdx +3 -3
  174. package/.docs/raw/mcp/overview.mdx +358 -0
  175. package/.docs/raw/mcp/publishing-mcp-server.mdx +139 -0
  176. package/.docs/raw/memory/conversation-history.mdx +1 -1
  177. package/.docs/raw/memory/memory-processors.mdx +265 -80
  178. package/.docs/raw/memory/overview.mdx +2 -2
  179. package/.docs/raw/memory/semantic-recall.mdx +9 -9
  180. package/.docs/raw/memory/storage/memory-with-libsql.mdx +3 -8
  181. package/.docs/raw/memory/storage/memory-with-mongodb.mdx +150 -0
  182. package/.docs/raw/memory/storage/memory-with-pg.mdx +3 -8
  183. package/.docs/raw/memory/storage/memory-with-upstash.mdx +3 -8
  184. package/.docs/raw/memory/threads-and-resources.mdx +4 -4
  185. package/.docs/raw/memory/working-memory.mdx +16 -8
  186. package/.docs/raw/{logging.mdx → observability/logging.mdx} +7 -7
  187. package/.docs/raw/observability/overview.mdx +3 -4
  188. package/.docs/raw/observability/tracing/bridges/otel.mdx +200 -0
  189. package/.docs/raw/observability/tracing/exporters/arize.mdx +37 -1
  190. package/.docs/raw/observability/tracing/exporters/braintrust.mdx +20 -1
  191. package/.docs/raw/observability/tracing/exporters/cloud.mdx +2 -2
  192. package/.docs/raw/observability/tracing/exporters/default.mdx +1 -1
  193. package/.docs/raw/observability/tracing/exporters/langfuse.mdx +84 -1
  194. package/.docs/raw/observability/tracing/exporters/langsmith.mdx +13 -1
  195. package/.docs/raw/observability/tracing/exporters/otel.mdx +123 -25
  196. package/.docs/raw/observability/tracing/exporters/posthog.mdx +127 -0
  197. package/.docs/raw/observability/tracing/overview.mdx +80 -9
  198. package/.docs/raw/observability/tracing/processors/sensitive-data-filter.mdx +1 -2
  199. package/.docs/raw/rag/chunking-and-embedding.mdx +16 -17
  200. package/.docs/raw/rag/overview.mdx +4 -3
  201. package/.docs/raw/rag/retrieval.mdx +44 -39
  202. package/.docs/raw/rag/vector-databases.mdx +94 -3
  203. package/.docs/raw/reference/agents/agent.mdx +19 -16
  204. package/.docs/raw/reference/agents/generate.mdx +67 -99
  205. package/.docs/raw/reference/agents/generateLegacy.mdx +3 -3
  206. package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +1 -1
  207. package/.docs/raw/reference/agents/getDefaultOptions.mdx +1 -1
  208. package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +1 -1
  209. package/.docs/raw/reference/agents/getDescription.mdx +1 -1
  210. package/.docs/raw/reference/agents/getInstructions.mdx +1 -1
  211. package/.docs/raw/reference/agents/getLLM.mdx +2 -2
  212. package/.docs/raw/reference/agents/getMemory.mdx +1 -1
  213. package/.docs/raw/reference/agents/getModel.mdx +1 -1
  214. package/.docs/raw/reference/agents/getTools.mdx +69 -0
  215. package/.docs/raw/reference/agents/getVoice.mdx +1 -1
  216. package/.docs/raw/reference/agents/listAgents.mdx +1 -1
  217. package/.docs/raw/reference/agents/listScorers.mdx +1 -1
  218. package/.docs/raw/reference/agents/listTools.mdx +2 -2
  219. package/.docs/raw/reference/agents/listWorkflows.mdx +1 -1
  220. package/.docs/raw/reference/agents/network.mdx +33 -72
  221. package/.docs/raw/reference/ai-sdk/chat-route.mdx +127 -0
  222. package/.docs/raw/reference/ai-sdk/handle-chat-stream.mdx +117 -0
  223. package/.docs/raw/reference/ai-sdk/handle-network-stream.mdx +64 -0
  224. package/.docs/raw/reference/ai-sdk/handle-workflow-stream.mdx +116 -0
  225. package/.docs/raw/reference/ai-sdk/network-route.mdx +99 -0
  226. package/.docs/raw/reference/ai-sdk/to-ai-sdk-stream.mdx +289 -0
  227. package/.docs/raw/reference/ai-sdk/with-mastra.mdx +119 -0
  228. package/.docs/raw/reference/ai-sdk/workflow-route.mdx +110 -0
  229. package/.docs/raw/reference/auth/auth0.mdx +1 -1
  230. package/.docs/raw/reference/auth/clerk.mdx +1 -1
  231. package/.docs/raw/reference/auth/firebase.mdx +1 -1
  232. package/.docs/raw/reference/auth/jwt.mdx +1 -1
  233. package/.docs/raw/reference/auth/supabase.mdx +1 -1
  234. package/.docs/raw/reference/auth/workos.mdx +1 -1
  235. package/.docs/raw/reference/cli/create-mastra.mdx +1 -1
  236. package/.docs/raw/reference/cli/mastra.mdx +19 -6
  237. package/.docs/raw/reference/client-js/agents.mdx +252 -68
  238. package/.docs/raw/reference/client-js/error-handling.mdx +1 -1
  239. package/.docs/raw/reference/client-js/logs.mdx +1 -1
  240. package/.docs/raw/reference/client-js/mastra-client.mdx +4 -4
  241. package/.docs/raw/reference/client-js/memory.mdx +48 -2
  242. package/.docs/raw/reference/client-js/observability.mdx +1 -1
  243. package/.docs/raw/reference/client-js/telemetry.mdx +1 -1
  244. package/.docs/raw/reference/client-js/tools.mdx +1 -1
  245. package/.docs/raw/reference/client-js/vectors.mdx +1 -1
  246. package/.docs/raw/reference/client-js/workflows.mdx +93 -64
  247. package/.docs/raw/reference/core/addGateway.mdx +59 -0
  248. package/.docs/raw/reference/core/getAgent.mdx +1 -1
  249. package/.docs/raw/reference/core/getAgentById.mdx +1 -1
  250. package/.docs/raw/reference/core/getDeployer.mdx +1 -1
  251. package/.docs/raw/reference/core/getGateway.mdx +59 -0
  252. package/.docs/raw/reference/core/getGatewayById.mdx +62 -0
  253. package/.docs/raw/reference/core/getLogger.mdx +2 -2
  254. package/.docs/raw/reference/core/getMCPServer.mdx +2 -2
  255. package/.docs/raw/reference/core/getMCPServerById.mdx +2 -2
  256. package/.docs/raw/reference/core/getMemory.mdx +73 -0
  257. package/.docs/raw/reference/core/getScorer.mdx +1 -1
  258. package/.docs/raw/reference/core/getScorerById.mdx +1 -1
  259. package/.docs/raw/reference/core/getServer.mdx +3 -3
  260. package/.docs/raw/reference/core/getStorage.mdx +1 -1
  261. package/.docs/raw/reference/core/getStoredAgentById.mdx +183 -0
  262. package/.docs/raw/reference/core/getTelemetry.mdx +1 -1
  263. package/.docs/raw/reference/core/getVector.mdx +1 -1
  264. package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
  265. package/.docs/raw/reference/core/listAgents.mdx +1 -1
  266. package/.docs/raw/reference/core/listGateways.mdx +53 -0
  267. package/.docs/raw/reference/core/listLogs.mdx +2 -2
  268. package/.docs/raw/reference/core/listLogsByRunId.mdx +2 -2
  269. package/.docs/raw/reference/core/listMCPServers.mdx +2 -2
  270. package/.docs/raw/reference/core/listMemory.mdx +70 -0
  271. package/.docs/raw/reference/core/listScorers.mdx +1 -1
  272. package/.docs/raw/reference/core/listStoredAgents.mdx +151 -0
  273. package/.docs/raw/reference/core/listVectors.mdx +1 -1
  274. package/.docs/raw/reference/core/listWorkflows.mdx +1 -1
  275. package/.docs/raw/reference/core/mastra-class.mdx +17 -1
  276. package/.docs/raw/reference/core/mastra-model-gateway.mdx +227 -0
  277. package/.docs/raw/reference/core/setLogger.mdx +2 -2
  278. package/.docs/raw/reference/core/setStorage.mdx +1 -1
  279. package/.docs/raw/reference/core/setTelemetry.mdx +2 -2
  280. package/.docs/raw/reference/deployer/cloudflare.mdx +1 -1
  281. package/.docs/raw/reference/deployer/deployer.mdx +1 -1
  282. package/.docs/raw/reference/deployer/netlify.mdx +2 -3
  283. package/.docs/raw/reference/deployer/vercel.mdx +1 -1
  284. package/.docs/raw/reference/evals/answer-relevancy.mdx +29 -99
  285. package/.docs/raw/reference/evals/answer-similarity.mdx +13 -259
  286. package/.docs/raw/reference/evals/bias.mdx +30 -88
  287. package/.docs/raw/reference/evals/completeness.mdx +32 -91
  288. package/.docs/raw/reference/evals/content-similarity.mdx +29 -89
  289. package/.docs/raw/reference/evals/context-precision.mdx +29 -131
  290. package/.docs/raw/reference/evals/context-relevance.mdx +12 -12
  291. package/.docs/raw/reference/evals/create-scorer.mdx +1 -1
  292. package/.docs/raw/reference/evals/faithfulness.mdx +29 -102
  293. package/.docs/raw/reference/evals/hallucination.mdx +29 -104
  294. package/.docs/raw/reference/evals/keyword-coverage.mdx +29 -108
  295. package/.docs/raw/reference/evals/mastra-scorer.mdx +1 -1
  296. package/.docs/raw/reference/evals/noise-sensitivity.mdx +12 -12
  297. package/.docs/raw/reference/evals/prompt-alignment.mdx +16 -16
  298. package/.docs/raw/reference/evals/run-evals.mdx +1 -1
  299. package/.docs/raw/reference/evals/scorer-utils.mdx +362 -0
  300. package/.docs/raw/reference/evals/textual-difference.mdx +28 -101
  301. package/.docs/raw/reference/evals/tone-consistency.mdx +26 -99
  302. package/.docs/raw/reference/evals/tool-call-accuracy.mdx +8 -8
  303. package/.docs/raw/reference/evals/toxicity.mdx +30 -93
  304. package/.docs/raw/reference/index.mdx +1 -0
  305. package/.docs/raw/reference/logging/pino-logger.mdx +2 -2
  306. package/.docs/raw/reference/memory/createThread.mdx +1 -1
  307. package/.docs/raw/reference/memory/deleteMessages.mdx +1 -1
  308. package/.docs/raw/reference/memory/getThreadById.mdx +1 -1
  309. package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +1 -1
  310. package/.docs/raw/reference/memory/memory-class.mdx +6 -8
  311. package/.docs/raw/reference/memory/query.mdx +1 -1
  312. package/.docs/raw/reference/memory/recall.mdx +1 -1
  313. package/.docs/raw/reference/observability/tracing/bridges/otel.mdx +177 -0
  314. package/.docs/raw/reference/observability/tracing/configuration.mdx +1 -5
  315. package/.docs/raw/reference/observability/tracing/exporters/arize.mdx +30 -1
  316. package/.docs/raw/reference/observability/tracing/exporters/braintrust.mdx +1 -1
  317. package/.docs/raw/reference/observability/tracing/exporters/cloud-exporter.mdx +1 -1
  318. package/.docs/raw/reference/observability/tracing/exporters/console-exporter.mdx +1 -1
  319. package/.docs/raw/reference/observability/tracing/exporters/default-exporter.mdx +1 -1
  320. package/.docs/raw/reference/observability/tracing/exporters/langfuse.mdx +44 -1
  321. package/.docs/raw/reference/observability/tracing/exporters/langsmith.mdx +18 -2
  322. package/.docs/raw/reference/observability/tracing/exporters/otel.mdx +34 -44
  323. package/.docs/raw/reference/observability/tracing/exporters/posthog.mdx +132 -0
  324. package/.docs/raw/reference/observability/tracing/instances.mdx +1 -5
  325. package/.docs/raw/reference/observability/tracing/interfaces.mdx +30 -5
  326. package/.docs/raw/reference/observability/tracing/processors/sensitive-data-filter.mdx +1 -1
  327. package/.docs/raw/reference/observability/tracing/spans.mdx +1 -5
  328. package/.docs/raw/reference/processors/batch-parts-processor.mdx +2 -2
  329. package/.docs/raw/reference/processors/language-detector.mdx +11 -4
  330. package/.docs/raw/reference/processors/message-history-processor.mdx +131 -0
  331. package/.docs/raw/reference/processors/moderation-processor.mdx +13 -6
  332. package/.docs/raw/reference/processors/pii-detector.mdx +13 -6
  333. package/.docs/raw/reference/processors/processor-interface.mdx +803 -0
  334. package/.docs/raw/reference/processors/prompt-injection-detector.mdx +11 -4
  335. package/.docs/raw/reference/processors/semantic-recall-processor.mdx +197 -0
  336. package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +4 -5
  337. package/.docs/raw/reference/processors/token-limiter-processor.mdx +3 -3
  338. package/.docs/raw/reference/processors/tool-call-filter.mdx +125 -0
  339. package/.docs/raw/reference/processors/unicode-normalizer.mdx +2 -2
  340. package/.docs/raw/reference/processors/working-memory-processor.mdx +221 -0
  341. package/.docs/raw/reference/rag/chunk.mdx +1 -1
  342. package/.docs/raw/reference/rag/database-config.mdx +1 -1
  343. package/.docs/raw/reference/rag/document.mdx +1 -1
  344. package/.docs/raw/reference/rag/embeddings.mdx +6 -6
  345. package/.docs/raw/reference/rag/extract-params.mdx +1 -1
  346. package/.docs/raw/reference/rag/graph-rag.mdx +1 -1
  347. package/.docs/raw/reference/rag/metadata-filters.mdx +1 -1
  348. package/.docs/raw/reference/rag/rerank.mdx +2 -3
  349. package/.docs/raw/reference/rag/rerankWithScorer.mdx +1 -2
  350. package/.docs/raw/reference/server/create-route.mdx +328 -0
  351. package/.docs/raw/reference/server/express-adapter.mdx +260 -0
  352. package/.docs/raw/reference/server/hono-adapter.mdx +242 -0
  353. package/.docs/raw/reference/server/mastra-server.mdx +345 -0
  354. package/.docs/raw/reference/server/routes.mdx +250 -0
  355. package/.docs/raw/reference/storage/cloudflare-d1.mdx +38 -1
  356. package/.docs/raw/reference/storage/cloudflare.mdx +1 -1
  357. package/.docs/raw/reference/storage/convex.mdx +164 -0
  358. package/.docs/raw/reference/storage/dynamodb.mdx +1 -1
  359. package/.docs/raw/reference/storage/lance.mdx +34 -1
  360. package/.docs/raw/reference/storage/libsql.mdx +38 -1
  361. package/.docs/raw/reference/storage/mongodb.mdx +40 -1
  362. package/.docs/raw/reference/storage/mssql.mdx +38 -1
  363. package/.docs/raw/reference/storage/postgresql.mdx +38 -1
  364. package/.docs/raw/reference/storage/upstash.mdx +1 -1
  365. package/.docs/raw/reference/streaming/ChunkType.mdx +25 -4
  366. package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +1 -1
  367. package/.docs/raw/reference/streaming/agents/stream.mdx +84 -124
  368. package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +1 -1
  369. package/.docs/raw/reference/streaming/workflows/observeStream.mdx +8 -10
  370. package/.docs/raw/reference/streaming/workflows/{resumeStreamVNext.mdx → resumeStream.mdx} +51 -11
  371. package/.docs/raw/reference/streaming/workflows/stream.mdx +84 -25
  372. package/.docs/raw/reference/streaming/workflows/timeTravelStream.mdx +170 -0
  373. package/.docs/raw/reference/templates/overview.mdx +2 -5
  374. package/.docs/raw/reference/tools/client.mdx +2 -3
  375. package/.docs/raw/reference/tools/create-tool.mdx +135 -4
  376. package/.docs/raw/reference/tools/document-chunker-tool.mdx +1 -1
  377. package/.docs/raw/reference/tools/graph-rag-tool.mdx +7 -7
  378. package/.docs/raw/reference/tools/mcp-client.mdx +131 -23
  379. package/.docs/raw/reference/tools/mcp-server.mdx +56 -8
  380. package/.docs/raw/reference/tools/vector-query-tool.mdx +16 -17
  381. package/.docs/raw/reference/vectors/astra.mdx +1 -1
  382. package/.docs/raw/reference/vectors/chroma.mdx +82 -2
  383. package/.docs/raw/reference/vectors/convex.mdx +429 -0
  384. package/.docs/raw/reference/vectors/couchbase.mdx +25 -18
  385. package/.docs/raw/reference/vectors/duckdb.mdx +462 -0
  386. package/.docs/raw/reference/vectors/elasticsearch.mdx +310 -0
  387. package/.docs/raw/reference/vectors/lance.mdx +39 -23
  388. package/.docs/raw/reference/vectors/libsql.mdx +36 -3
  389. package/.docs/raw/reference/vectors/mongodb.mdx +36 -3
  390. package/.docs/raw/reference/vectors/opensearch.mdx +38 -17
  391. package/.docs/raw/reference/vectors/pg.mdx +44 -37
  392. package/.docs/raw/reference/vectors/pinecone.mdx +70 -3
  393. package/.docs/raw/reference/vectors/qdrant.mdx +37 -2
  394. package/.docs/raw/reference/vectors/s3vectors.mdx +1 -1
  395. package/.docs/raw/reference/vectors/turbopuffer.mdx +75 -1
  396. package/.docs/raw/reference/vectors/upstash.mdx +1 -1
  397. package/.docs/raw/reference/vectors/vectorize.mdx +1 -1
  398. package/.docs/raw/reference/voice/azure.mdx +96 -81
  399. package/.docs/raw/reference/voice/cloudflare.mdx +1 -1
  400. package/.docs/raw/reference/voice/composite-voice.mdx +72 -29
  401. package/.docs/raw/reference/voice/deepgram.mdx +1 -1
  402. package/.docs/raw/reference/voice/elevenlabs.mdx +1 -1
  403. package/.docs/raw/reference/voice/google-gemini-live.mdx +1 -1
  404. package/.docs/raw/reference/voice/google.mdx +160 -21
  405. package/.docs/raw/reference/voice/mastra-voice.mdx +1 -1
  406. package/.docs/raw/reference/voice/murf.mdx +1 -1
  407. package/.docs/raw/reference/voice/openai-realtime.mdx +3 -3
  408. package/.docs/raw/reference/voice/openai.mdx +1 -1
  409. package/.docs/raw/reference/voice/playai.mdx +1 -1
  410. package/.docs/raw/reference/voice/sarvam.mdx +1 -1
  411. package/.docs/raw/reference/voice/speechify.mdx +1 -1
  412. package/.docs/raw/reference/voice/voice.addInstructions.mdx +3 -4
  413. package/.docs/raw/reference/voice/voice.addTools.mdx +2 -2
  414. package/.docs/raw/reference/voice/voice.answer.mdx +2 -2
  415. package/.docs/raw/reference/voice/voice.close.mdx +2 -2
  416. package/.docs/raw/reference/voice/voice.connect.mdx +2 -2
  417. package/.docs/raw/reference/voice/voice.events.mdx +1 -1
  418. package/.docs/raw/reference/voice/voice.getSpeakers.mdx +1 -1
  419. package/.docs/raw/reference/voice/voice.listen.mdx +87 -53
  420. package/.docs/raw/reference/voice/voice.off.mdx +2 -2
  421. package/.docs/raw/reference/voice/voice.on.mdx +2 -2
  422. package/.docs/raw/reference/voice/voice.send.mdx +2 -2
  423. package/.docs/raw/reference/voice/voice.speak.mdx +76 -41
  424. package/.docs/raw/reference/voice/voice.updateConfig.mdx +2 -2
  425. package/.docs/raw/reference/workflows/run-methods/cancel.mdx +1 -1
  426. package/.docs/raw/reference/workflows/run-methods/restart.mdx +142 -0
  427. package/.docs/raw/reference/workflows/run-methods/resume.mdx +45 -1
  428. package/.docs/raw/reference/workflows/run-methods/start.mdx +48 -4
  429. package/.docs/raw/reference/workflows/run-methods/timeTravel.mdx +310 -0
  430. package/.docs/raw/reference/workflows/run.mdx +28 -6
  431. package/.docs/raw/reference/workflows/step.mdx +65 -1
  432. package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +1 -1
  433. package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
  434. package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +1 -1
  435. package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
  436. package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
  437. package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +69 -4
  438. package/.docs/raw/reference/workflows/workflow-methods/map.mdx +1 -1
  439. package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
  440. package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +1 -1
  441. package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +1 -1
  442. package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +1 -1
  443. package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
  444. package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +1 -1
  445. package/.docs/raw/reference/workflows/workflow.mdx +44 -2
  446. package/.docs/raw/server-db/custom-adapters.mdx +386 -0
  447. package/.docs/raw/server-db/custom-api-routes.mdx +6 -6
  448. package/.docs/raw/server-db/mastra-client.mdx +3 -4
  449. package/.docs/raw/server-db/{production-server.mdx → mastra-server.mdx} +22 -12
  450. package/.docs/raw/server-db/middleware.mdx +31 -31
  451. package/.docs/raw/server-db/request-context.mdx +3 -4
  452. package/.docs/raw/server-db/server-adapters.mdx +312 -0
  453. package/.docs/raw/server-db/storage.mdx +12 -1
  454. package/.docs/raw/streaming/events.mdx +1 -1
  455. package/.docs/raw/streaming/overview.mdx +27 -16
  456. package/.docs/raw/streaming/tool-streaming.mdx +58 -19
  457. package/.docs/raw/streaming/workflow-streaming.mdx +6 -12
  458. package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -3
  459. package/.docs/raw/tools-mcp/mcp-overview.mdx +4 -6
  460. package/.docs/raw/tools-mcp/overview.mdx +1 -1
  461. package/.docs/raw/voice/overview.mdx +88 -41
  462. package/.docs/raw/voice/speech-to-speech.mdx +5 -5
  463. package/.docs/raw/voice/speech-to-text.mdx +2 -3
  464. package/.docs/raw/voice/text-to-speech.mdx +2 -3
  465. package/.docs/raw/workflows/agents-and-tools.mdx +43 -5
  466. package/.docs/raw/workflows/control-flow.mdx +534 -3
  467. package/.docs/raw/workflows/error-handling.mdx +5 -4
  468. package/.docs/raw/workflows/human-in-the-loop.mdx +160 -213
  469. package/.docs/raw/workflows/inngest-workflow.mdx +1 -1
  470. package/.docs/raw/workflows/input-data-mapping.mdx +1 -1
  471. package/.docs/raw/workflows/overview.mdx +67 -47
  472. package/.docs/raw/workflows/snapshots.mdx +5 -3
  473. package/.docs/raw/workflows/suspend-and-resume.mdx +121 -204
  474. package/.docs/raw/workflows/time-travel.mdx +313 -0
  475. package/.docs/raw/workflows/workflow-state.mdx +190 -0
  476. package/CHANGELOG.md +88 -0
  477. package/dist/{chunk-5NJC7NRO.js → chunk-4CM2BQNP.js} +24 -4
  478. package/dist/prepare-docs/package-changes.d.ts.map +1 -1
  479. package/dist/prepare-docs/prepare.js +1 -1
  480. package/dist/stdio.js +17 -19
  481. package/package.json +10 -14
  482. package/.docs/raw/deployment/serverless-platforms/index.mdx +0 -58
  483. package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +0 -688
  484. package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +0 -123
  485. package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +0 -382
  486. package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +0 -179
  487. package/.docs/raw/frameworks/web-frameworks/next-js.mdx +0 -379
  488. package/.docs/raw/getting-started/templates.mdx +0 -73
  489. package/.docs/raw/mastra-cloud/observability.mdx +0 -51
  490. package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +0 -47
  491. package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +0 -153
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Using Agents | Agents | Mastra Docs"
2
+ title: "Using Agents | Agents"
3
3
  description: Overview of agents in Mastra, detailing their capabilities and how they interact with tools, workflows, and external systems.
4
4
  ---
5
5
 
@@ -21,10 +21,9 @@ An introduction to agents, and how they compare to workflows on [YouTube (7 minu
21
21
  :::
22
22
 
23
23
  ## Setting up agents
24
+ ### Installation
24
25
 
25
- <Tabs>
26
- <TabItem value="mastra-model-router" label="Model router">
27
- <Steps>
26
+ <Steps>
28
27
 
29
28
  <StepItem>
30
29
 
@@ -63,63 +62,13 @@ export const testAgent = new Agent({
63
62
  id: "test-agent",
64
63
  name: "Test Agent",
65
64
  instructions: "You are a helpful assistant.",
66
- model: "openai/gpt-4o-mini",
65
+ model: "openai/gpt-5.1",
67
66
  });
68
67
  ```
69
68
 
70
69
  </StepItem>
71
70
 
72
71
  </Steps>
73
- </TabItem>
74
- <TabItem value="vercel-ai-sdk" label="Vercel AI SDK">
75
- <Steps>
76
-
77
- <StepItem>
78
-
79
- Include the Mastra core package alongside the Vercel AI SDK provider you want to use:
80
-
81
- ```bash
82
- npm install @mastra/core@beta @ai-sdk/openai
83
- ```
84
-
85
- </StepItem>
86
-
87
- <StepItem>
88
-
89
- Set the corresponding environment variable for your provider. For OpenAI via the AI SDK:
90
-
91
- ```bash title=".env" copy
92
- OPENAI_API_KEY=<your-api-key>
93
- ```
94
-
95
- :::note
96
-
97
- See the [AI SDK Providers](https://ai-sdk.dev/providers/ai-sdk-providers) in the Vercel AI SDK docs for additional configuration options.
98
-
99
- :::
100
-
101
- </StepItem>
102
-
103
- <StepItem>
104
-
105
- To create an agent in Mastra, use the `Agent` class. Every agent must include `instructions` to define its behavior, and a `model` parameter to specify the LLM provider and model. When using the Vercel AI SDK, provide the client to your agent's `model` field:
106
-
107
- ```typescript title="src/mastra/agents/test-agent.ts" copy
108
- import { openai } from "@ai-sdk/openai";
109
- import { Agent } from "@mastra/core/agent";
110
-
111
- export const testAgent = new Agent({
112
- id: "test-agent",
113
- name: "Test Agent",
114
- instructions: "You are a helpful assistant.",
115
- model: openai("gpt-4o-mini"),
116
- });
117
- ```
118
-
119
- </StepItem>
120
- </Steps>
121
- </TabItem>
122
- </Tabs>
123
72
 
124
73
  ### Instruction formats
125
74
 
@@ -187,13 +136,11 @@ You can call agents from workflow steps, tools, the Mastra Client, or the comman
187
136
  const testAgent = mastra.getAgent("testAgent");
188
137
  ```
189
138
 
190
- :::info
139
+ ::::info
191
140
 
192
141
  `mastra.getAgent()` is preferred over a direct import, since it provides access to the Mastra instance configuration (logger, telemetry, storage, registered agents, and vector stores).
193
142
 
194
- See [Calling agents](/examples/v1/agents/calling-agents) for more information.
195
-
196
- :::
143
+ ::::
197
144
 
198
145
  ## Generating responses
199
146
 
@@ -265,105 +212,11 @@ for await (const chunk of stream.textStream) {
265
212
 
266
213
  ## Structured output
267
214
 
268
- Agents can return structured, type-safe data by defining the expected output using either [Zod](https://zod.dev/) or [JSON Schema](https://json-schema.org/). We recommend Zod for better TypeScript support and developer experience. The parsed result is available on `response.object`, allowing you to work directly with validated and typed data.
269
-
270
- ### Using Zod
271
-
272
- Define the `output` shape using [Zod](https://zod.dev/):
273
-
274
- ```typescript showLineNumbers copy
275
- import { z } from "zod";
276
-
277
- const response = await testAgent.generate(
278
- [
279
- {
280
- role: "system",
281
- content: "Provide a summary and keywords for the following text:",
282
- },
283
- {
284
- role: "user",
285
- content: "Monkey, Ice Cream, Boat",
286
- },
287
- ],
288
- {
289
- structuredOutput: {
290
- schema: z.object({
291
- summary: z.string(),
292
- keywords: z.array(z.string()),
293
- }),
294
- },
295
- },
296
- );
215
+ Agents can return structured, type-safe data using Zod or JSON Schema. The parsed result is available on `response.object`.
297
216
 
298
- console.log(response.object);
299
- ```
300
-
301
- ### With Tool Calling
302
-
303
- Use the `model` property to ensure that your agent can execute multi-step LLM calls with tool calling.
304
-
305
- ```typescript showLineNumbers copy
306
- import { z } from "zod";
307
-
308
- const response = await testAgentWithTools.generate(
309
- [
310
- {
311
- role: "system",
312
- content: "Provide a summary and keywords for the following text:",
313
- },
314
- {
315
- role: "user",
316
- content: "Please use your test tool and let me know the results",
317
- },
318
- ],
319
- {
320
- structuredOutput: {
321
- schema: z.object({
322
- summary: z.string(),
323
- keywords: z.array(z.string()),
324
- }),
325
- model: "openai/gpt-4o",
326
- },
327
- },
328
- );
329
-
330
- console.log(response.object);
331
- console.log(response.toolResults);
332
- ```
333
-
334
- ### Response format
335
-
336
- By default `structuredOutput` will use `response_format` to pass the schema to the model provider. If the model provider does not natively support `response_format` it's possible that this will error or not give the desired results. To keep using the same model use `jsonPromptInjection` to bypass response format and inject a system prompt message to coerce the model to return structured output.
337
-
338
- ```typescript showLineNumbers copy
339
- import { z } from "zod";
340
-
341
- const response = await testAgentThatDoesntSupportStructuredOutput.generate(
342
- [
343
- {
344
- role: "system",
345
- content: "Provide a summary and keywords for the following text:",
346
- },
347
- {
348
- role: "user",
349
- content: "Monkey, Ice Cream, Boat",
350
- },
351
- ],
352
- {
353
- structuredOutput: {
354
- schema: z.object({
355
- summary: z.string(),
356
- keywords: z.array(z.string()),
357
- }),
358
- jsonPromptInjection: true,
359
- },
360
- },
361
- );
362
-
363
- console.log(response.object);
364
- ```
217
+ > See [Structured Output](/docs/v1/agents/structured-output) for more information.
365
218
 
366
- ## Working with images
219
+ ## Analyzing images
367
220
 
368
221
  Agents can analyze and describe images by processing both the visual content and any text within them. To enable image analysis, pass an object with `type: 'image'` and the image URL in the `content` array. You can combine image content with text prompts to guide the agent's analysis.
369
222
 
@@ -388,21 +241,20 @@ const response = await testAgent.generate([
388
241
  console.log(response.text);
389
242
  ```
390
243
 
391
- For a detailed guide to creating and configuring tools, see the [Tools Overview](../tools-mcp/overview) page.
392
244
 
393
- ### Using `maxSteps`
245
+ ## Using `maxSteps`
394
246
 
395
247
  The `maxSteps` parameter controls the maximum number of sequential LLM calls an agent can make. Each step includes generating a response, executing any tool calls, and processing the result. Limiting steps helps prevent infinite loops, reduce latency, and control token usage for agents that use tools. The default is 1, but can be increased:
396
248
 
397
249
  ```typescript showLineNumbers copy
398
250
  const response = await testAgent.generate("Help me organize my day", {
399
- maxSteps: 5,
251
+ maxSteps: 10,
400
252
  });
401
253
 
402
254
  console.log(response.text);
403
255
  ```
404
256
 
405
- ### Using `onStepFinish`
257
+ ## Using `onStepFinish`
406
258
 
407
259
  You can monitor the progress of multi-step operations using the `onStepFinish` callback. This is useful for debugging or providing progress updates to users.
408
260
 
@@ -429,7 +281,7 @@ export const testAgent = new Agent({
429
281
  });
430
282
  ```
431
283
 
432
- > See [Using Tools](./using-tools) for more information.
284
+ > See [Using Tools](/docs/v1/agents/using-tools) for more information.
433
285
 
434
286
  ## Using `RequestContext`
435
287
 
@@ -448,8 +300,8 @@ export const testAgent = new Agent({
448
300
  const userTier = requestContext.get("user-tier") as UserTier["user-tier"];
449
301
 
450
302
  return userTier === "enterprise"
451
- ? openai("gpt-4o-mini")
452
- : openai("gpt-4.1-nano");
303
+ ? "openai/gpt-5"
304
+ : "openai/gpt-4.1-nano";
453
305
  },
454
306
  });
455
307
  ```
@@ -462,7 +314,6 @@ Use [Studio](/docs/v1/getting-started/studio) to test agents with different mess
462
314
 
463
315
  ## Related
464
316
 
465
- - [Using Tools](./using-tools)
466
- - [Agent Memory](./agent-memory)
467
- - [Request Context](/examples/v1/agents/request-context)
468
- - [Calling Agents](/examples/v1/agents/calling-agents)
317
+ - [Using Tools](/docs/v1/agents/using-tools)
318
+ - [Agent Memory](/docs/v1/agents/agent-memory)
319
+ - [Request Context](/docs/v1/server-db/request-context)
@@ -0,0 +1,430 @@
1
+ ---
2
+ title: "Processors | Agents | Mastra Docs"
3
+ description: "Learn how to use input and output processors to transform, validate, and control messages in Mastra agents."
4
+ ---
5
+
6
+ # Processors
7
+
8
+ Processors transform, validate, or control messages as they pass through an agent. They run at specific points in the agent's execution pipeline, allowing you to modify inputs before they reach the language model or outputs before they're returned to users.
9
+
10
+ Processors are configured as:
11
+
12
+ - **`inputProcessors`**: Run before messages reach the language model.
13
+ - **`outputProcessors`**: Run after the language model generates a response, but before it's returned to users.
14
+
15
+ You can use individual `Processor` objects or compose them into workflows using Mastra's workflow primitives. Workflows give you advanced control over processor execution order, parallel processing, and conditional logic.
16
+
17
+ Some processors implement both input and output logic and can be used in either array depending on where the transformation should occur.
18
+
19
+ ## When to use processors
20
+
21
+ Use processors to:
22
+
23
+ - Normalize or validate user input
24
+ - Add guardrails to your agent
25
+ - Detect and prevent prompt injection or jailbreak attempts
26
+ - Moderate content for safety or compliance
27
+ - Transform messages (e.g., translate languages, filter tool calls)
28
+ - Limit token usage or message history length
29
+ - Redact sensitive information (PII)
30
+ - Apply custom business logic to messages
31
+
32
+ Mastra includes several processors for common use cases. You can also create custom processors for application-specific requirements.
33
+
34
+ ## Adding processors to an agent
35
+
36
+ Import and instantiate the processor, then pass it to the agent's `inputProcessors` or `outputProcessors` array:
37
+
38
+ ```typescript {3,9-15} title="src/mastra/agents/moderated-agent.ts" showLineNumbers copy
39
+ import { openai } from "@ai-sdk/openai";
40
+ import { Agent } from "@mastra/core/agent";
41
+ import { ModerationProcessor } from "@mastra/core/processors";
42
+
43
+ export const moderatedAgent = new Agent({
44
+ name: "moderated-agent",
45
+ instructions: "You are a helpful assistant",
46
+ model: openai("gpt-4o-mini"),
47
+ inputProcessors: [
48
+ new ModerationProcessor({
49
+ model: openai("gpt-4.1-nano"),
50
+ categories: ["hate", "harassment", "violence"],
51
+ threshold: 0.7,
52
+ strategy: "block",
53
+ }),
54
+ ],
55
+ });
56
+ ```
57
+
58
+ ## Execution order
59
+
60
+ Processors run in the order they appear in the array:
61
+
62
+ ```typescript
63
+ inputProcessors: [
64
+ new UnicodeNormalizer(),
65
+ new PromptInjectionDetector(),
66
+ new ModerationProcessor(),
67
+ ];
68
+ ```
69
+
70
+ For output processors, the order determines the sequence of transformations applied to the model's response.
71
+
72
+ ### With memory enabled
73
+
74
+ When memory is enabled on an agent, memory processors are automatically added to the pipeline:
75
+
76
+ **Input processors:**
77
+ ```
78
+ [Memory Processors] → [Your inputProcessors]
79
+ ```
80
+ Memory loads conversation history first, then your processors run.
81
+
82
+ **Output processors:**
83
+ ```
84
+ [Your outputProcessors] → [Memory Processors]
85
+ ```
86
+ Your processors run first, then memory persists messages.
87
+
88
+ This ordering ensures that if your output guardrail calls `abort()`, memory processors are skipped and no messages are saved. See [Memory Processors](/docs/v1/memory/memory-processors#processor-execution-order) for details.
89
+
90
+ ## Creating custom processors
91
+
92
+ Custom processors implement the `Processor` interface:
93
+
94
+ ### Custom input processor
95
+
96
+ ```typescript title="src/mastra/processors/custom-input.ts" showLineNumbers copy
97
+ import type {
98
+ Processor,
99
+ MastraDBMessage,
100
+ RequestContext,
101
+ } from "@mastra/core";
102
+
103
+ export class CustomInputProcessor implements Processor {
104
+ id = "custom-input";
105
+
106
+ async processInput({
107
+ messages,
108
+ systemMessages,
109
+ context,
110
+ }: {
111
+ messages: MastraDBMessage[];
112
+ systemMessages: CoreMessage[];
113
+ context: RequestContext;
114
+ }): Promise<MastraDBMessage[]> {
115
+ // Transform messages before they reach the LLM
116
+ return messages.map((msg) => ({
117
+ ...msg,
118
+ content: {
119
+ ...msg.content,
120
+ content: msg.content.content.toLowerCase(),
121
+ },
122
+ }));
123
+ }
124
+ }
125
+ ```
126
+
127
+ The `processInput` method receives:
128
+ - `messages`: User and assistant messages (not system messages)
129
+ - `systemMessages`: All system messages (agent instructions, memory context, user-provided system prompts)
130
+ - `messageList`: The full MessageList instance for advanced use cases
131
+ - `abort`: Function to stop processing and return early
132
+ - `requestContext`: Execution metadata like `threadId` and `resourceId`
133
+
134
+ The method can return:
135
+ - `MastraDBMessage[]` — Transformed messages array (backward compatible)
136
+ - `{ messages: MastraDBMessage[]; systemMessages: CoreMessage[] }` — Both messages and modified system messages
137
+
138
+ The framework handles both return formats, so modifying system messages is optional and existing processors continue to work.
139
+
140
+ ### Modifying system messages
141
+
142
+ To modify system messages (e.g., trim verbose prompts for smaller models), return an object with both `messages` and `systemMessages`:
143
+
144
+ ```typescript title="src/mastra/processors/system-trimmer.ts" showLineNumbers copy
145
+ import type { Processor, CoreMessage, MastraDBMessage } from "@mastra/core";
146
+
147
+ export class SystemTrimmer implements Processor {
148
+ id = "system-trimmer";
149
+
150
+ async processInput({
151
+ messages,
152
+ systemMessages,
153
+ }): Promise<{ messages: MastraDBMessage[]; systemMessages: CoreMessage[] }> {
154
+ // Trim system messages for smaller models
155
+ const trimmedSystemMessages = systemMessages.map((msg) => ({
156
+ ...msg,
157
+ content:
158
+ typeof msg.content === "string"
159
+ ? msg.content.substring(0, 500)
160
+ : msg.content,
161
+ }));
162
+
163
+ return { messages, systemMessages: trimmedSystemMessages };
164
+ }
165
+ }
166
+ ```
167
+
168
+ This is useful for:
169
+ - Trimming verbose system prompts for models with smaller context windows
170
+ - Filtering or modifying semantic recall content to prevent "prompt too long" errors
171
+ - Dynamically adjusting system instructions based on the conversation
172
+
173
+ ### Per-step processing with processInputStep
174
+
175
+ While `processInput` runs once at the start of agent execution, `processInputStep` runs at **each step** of the agentic loop (including tool call continuations). This enables per-step configuration changes like dynamic model switching or tool choice modifications.
176
+
177
+ ```typescript title="src/mastra/processors/step-processor.ts" showLineNumbers copy
178
+ import type { Processor, ProcessInputStepArgs, ProcessInputStepResult } from "@mastra/core";
179
+
180
+ export class DynamicModelProcessor implements Processor {
181
+ id = "dynamic-model";
182
+
183
+ async processInputStep({
184
+ stepNumber,
185
+ model,
186
+ toolChoice,
187
+ messageList,
188
+ }: ProcessInputStepArgs): Promise<ProcessInputStepResult> {
189
+ // Use a fast model for initial response
190
+ if (stepNumber === 0) {
191
+ return { model: "openai/gpt-4o-mini" };
192
+ }
193
+
194
+ // Disable tools after 5 steps to force completion
195
+ if (stepNumber > 5) {
196
+ return { toolChoice: "none" };
197
+ }
198
+
199
+ // No changes for other steps
200
+ return {};
201
+ }
202
+ }
203
+ ```
204
+
205
+ The `processInputStep` method receives:
206
+ - `stepNumber`: Current step in the agentic loop (0-indexed)
207
+ - `steps`: Results from previous steps
208
+ - `messages`: Current messages snapshot (read-only)
209
+ - `systemMessages`: Current system messages (read-only)
210
+ - `messageList`: The full MessageList instance for mutations
211
+ - `model`: Current model being used
212
+ - `tools`: Current tools available for this step
213
+ - `toolChoice`: Current tool choice setting
214
+ - `activeTools`: Currently active tools
215
+ - `providerOptions`: Provider-specific options
216
+ - `modelSettings`: Model settings like temperature
217
+ - `structuredOutput`: Structured output configuration
218
+
219
+ The method can return any combination of:
220
+ - `model`: Change the model for this step
221
+ - `tools`: Replace or add tools (use spread to merge: `{ tools: { ...tools, newTool } }`)
222
+ - `toolChoice`: Change tool selection behavior
223
+ - `activeTools`: Filter which tools are available
224
+ - `messages`: Replace messages (applied to messageList)
225
+ - `systemMessages`: Replace all system messages
226
+ - `providerOptions`: Modify provider options
227
+ - `modelSettings`: Modify model settings
228
+ - `structuredOutput`: Modify structured output configuration
229
+
230
+ #### Using prepareStep callback
231
+
232
+ For simpler per-step logic, you can use the `prepareStep` callback on `generate()` or `stream()` instead of creating a full processor:
233
+
234
+ ```typescript
235
+ await agent.generate({
236
+ prompt: "Complex task",
237
+ prepareStep: async ({ stepNumber, model }) => {
238
+ if (stepNumber === 0) {
239
+ return { model: "openai/gpt-4o-mini" };
240
+ }
241
+ if (stepNumber > 5) {
242
+ return { toolChoice: "none" };
243
+ }
244
+ },
245
+ });
246
+ ```
247
+
248
+ ### Custom output processor
249
+
250
+ ```typescript title="src/mastra/processors/custom-output.ts" showLineNumbers copy
251
+ import type {
252
+ Processor,
253
+ MastraDBMessage,
254
+ RequestContext,
255
+ } from "@mastra/core";
256
+
257
+ export class CustomOutputProcessor implements Processor {
258
+ id = "custom-output";
259
+
260
+ async processOutputResult({
261
+ messages,
262
+ context,
263
+ }: {
264
+ messages: MastraDBMessage[];
265
+ context: RequestContext;
266
+ }): Promise<MastraDBMessage[]> {
267
+ // Transform messages after the LLM generates them
268
+ return messages.filter((msg) => msg.role !== "system");
269
+ }
270
+
271
+ async processOutputStream({
272
+ stream,
273
+ context,
274
+ }: {
275
+ stream: ReadableStream;
276
+ context: RequestContext;
277
+ }): Promise<ReadableStream> {
278
+ // Transform streaming responses
279
+ return stream;
280
+ }
281
+ }
282
+ ```
283
+
284
+ ## Built-in Utility Processors
285
+
286
+ Mastra provides utility processors for common tasks:
287
+
288
+ **For security and validation processors**, see the [Guardrails](/docs/v1/agents/guardrails) page for input/output guardrails and moderation processors.
289
+ **For memory-specific processors**, see the [Memory Processors](/docs/v1/memory/memory-processors) page for processors that handle message history, semantic recall, and working memory.
290
+
291
+ ### TokenLimiter
292
+
293
+ Prevents context window overflow by removing older messages when the total token count exceeds a specified limit.
294
+
295
+ ```typescript copy showLineNumbers {9-12}
296
+ import { Agent } from "@mastra/core/agent";
297
+ import { TokenLimiter } from "@mastra/core/processors";
298
+ import { openai } from "@ai-sdk/openai";
299
+
300
+ const agent = new Agent({
301
+ name: "my-agent",
302
+ model: openai("gpt-4o"),
303
+ inputProcessors: [
304
+ // Ensure the total tokens don't exceed ~127k
305
+ new TokenLimiter(127000),
306
+ ],
307
+ });
308
+ ```
309
+
310
+ The `TokenLimiter` uses the `o200k_base` encoding by default (suitable for GPT-4o). You can specify other encodings for different models:
311
+
312
+ ```typescript copy showLineNumbers {6-9}
313
+ import cl100k_base from "js-tiktoken/ranks/cl100k_base";
314
+
315
+ const agent = new Agent({
316
+ name: "my-agent",
317
+ inputProcessors: [
318
+ new TokenLimiter({
319
+ limit: 16000, // Example limit for a 16k context model
320
+ encoding: cl100k_base,
321
+ }),
322
+ ],
323
+ });
324
+ ```
325
+
326
+ ### ToolCallFilter
327
+
328
+ Removes tool calls from messages sent to the LLM, saving tokens by excluding potentially verbose tool interactions.
329
+
330
+ ```typescript copy showLineNumbers {5-14}
331
+ import { Agent } from "@mastra/core/agent";
332
+ import { ToolCallFilter, TokenLimiter } from "@mastra/core/processors";
333
+ import { openai } from "@ai-sdk/openai";
334
+
335
+ const agent = new Agent({
336
+ name: "my-agent",
337
+ model: openai("gpt-4o"),
338
+ inputProcessors: [
339
+ // Example 1: Remove all tool calls/results
340
+ new ToolCallFilter(),
341
+
342
+ // Example 2: Remove only specific tool calls
343
+ new ToolCallFilter({ exclude: ["generateImageTool"] }),
344
+
345
+ // Always place TokenLimiter last
346
+ new TokenLimiter(127000),
347
+ ],
348
+ });
349
+ ```
350
+
351
+ > **Note:** The example above filters tool calls and limits tokens for the LLM, but these filtered messages will still be saved to memory. To also filter messages before they're saved to memory, manually add memory processors before utility processors. See [Memory Processors](/docs/v1/memory/memory-processors#manual-control-and-deduplication) for details.
352
+
353
+ ## Using workflows as processors
354
+
355
+ You can use Mastra workflows as processors to create complex processing pipelines with parallel execution, conditional branching, and error handling:
356
+
357
+ ```typescript title="src/mastra/processors/moderation-workflow.ts" showLineNumbers copy
358
+ import { createWorkflow, createStep } from "@mastra/core/workflows";
359
+ import { ProcessorStepSchema } from "@mastra/core/processors";
360
+ import { Agent } from "@mastra/core/agent";
361
+
362
+ // Create a workflow that runs multiple checks in parallel
363
+ const moderationWorkflow = createWorkflow({
364
+ id: "moderation-pipeline",
365
+ inputSchema: ProcessorStepSchema,
366
+ outputSchema: ProcessorStepSchema,
367
+ })
368
+ .then(createStep(new LengthValidator({ maxLength: 10000 })))
369
+ .parallel([
370
+ createStep(new PIIDetector({ strategy: "redact" })),
371
+ createStep(new ToxicityChecker({ threshold: 0.8 })),
372
+ ])
373
+ .commit();
374
+
375
+ // Use the workflow as an input processor
376
+ const agent = new Agent({
377
+ id: "moderated-agent",
378
+ name: "Moderated Agent",
379
+ model: "openai/gpt-4o",
380
+ inputProcessors: [moderationWorkflow],
381
+ });
382
+ ```
383
+
384
+ When an agent is registered with Mastra, processor workflows are automatically registered as workflows, allowing you to view and debug them in the playground.
385
+
386
+ ## Retry mechanism
387
+
388
+ Processors can request that the LLM retry its response with feedback. This is useful for implementing quality checks, output validation, or iterative refinement:
389
+
390
+ ```typescript title="src/mastra/processors/quality-checker.ts" showLineNumbers copy
391
+ import type { Processor } from "@mastra/core";
392
+
393
+ export class QualityChecker implements Processor {
394
+ id = "quality-checker";
395
+
396
+ async processOutputStep({ text, abort, retryCount }) {
397
+ const qualityScore = await evaluateQuality(text);
398
+
399
+ if (qualityScore < 0.7 && retryCount < 3) {
400
+ // Request a retry with feedback for the LLM
401
+ abort("Response quality score too low. Please provide a more detailed answer.", {
402
+ retry: true,
403
+ metadata: { score: qualityScore },
404
+ });
405
+ }
406
+
407
+ return [];
408
+ }
409
+ }
410
+
411
+ const agent = new Agent({
412
+ id: "quality-agent",
413
+ name: "Quality Agent",
414
+ model: "openai/gpt-4o",
415
+ outputProcessors: [new QualityChecker()],
416
+ maxProcessorRetries: 3, // Maximum retry attempts (default: 3)
417
+ });
418
+ ```
419
+
420
+ The retry mechanism:
421
+ - Only works in `processOutputStep` and `processInputStep` methods
422
+ - Replays the step with the abort reason added as context for the LLM
423
+ - Tracks retry count via the `retryCount` parameter
424
+ - Respects `maxProcessorRetries` limit on the agent
425
+
426
+ ## Related documentation
427
+
428
+ - [Guardrails](/docs/v1/agents/guardrails) - Security and validation processors
429
+ - [Memory Processors](/docs/v1/memory/memory-processors) - Memory-specific processors and automatic integration
430
+ - [Processor Interface](/reference/v1/processors/processor-interface) - Full API reference for processors