@mastra/mcp-docs-server 1.1.4 → 1.1.5-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (547) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/package.json +3 -3
  3. package/.docs/docs/agents/adding-voice.md +0 -353
  4. package/.docs/docs/agents/agent-approval.md +0 -377
  5. package/.docs/docs/agents/agent-memory.md +0 -212
  6. package/.docs/docs/agents/guardrails.md +0 -382
  7. package/.docs/docs/agents/network-approval.md +0 -275
  8. package/.docs/docs/agents/networks.md +0 -290
  9. package/.docs/docs/agents/overview.md +0 -309
  10. package/.docs/docs/agents/processors.md +0 -632
  11. package/.docs/docs/agents/structured-output.md +0 -271
  12. package/.docs/docs/agents/using-tools.md +0 -214
  13. package/.docs/docs/build-with-ai/mcp-docs-server.md +0 -241
  14. package/.docs/docs/build-with-ai/skills.md +0 -35
  15. package/.docs/docs/community/contributing-templates.md +0 -3
  16. package/.docs/docs/community/discord.md +0 -9
  17. package/.docs/docs/community/licensing.md +0 -66
  18. package/.docs/docs/deployment/cloud-providers.md +0 -15
  19. package/.docs/docs/deployment/mastra-server.md +0 -122
  20. package/.docs/docs/deployment/monorepo.md +0 -142
  21. package/.docs/docs/deployment/overview.md +0 -62
  22. package/.docs/docs/deployment/studio.md +0 -234
  23. package/.docs/docs/deployment/web-framework.md +0 -52
  24. package/.docs/docs/deployment/workflow-runners.md +0 -9
  25. package/.docs/docs/evals/built-in-scorers.md +0 -47
  26. package/.docs/docs/evals/custom-scorers.md +0 -519
  27. package/.docs/docs/evals/overview.md +0 -146
  28. package/.docs/docs/evals/running-in-ci.md +0 -106
  29. package/.docs/docs/getting-started/build-with-ai.md +0 -68
  30. package/.docs/docs/getting-started/manual-install.md +0 -226
  31. package/.docs/docs/getting-started/project-structure.md +0 -60
  32. package/.docs/docs/getting-started/start.md +0 -28
  33. package/.docs/docs/getting-started/studio.md +0 -101
  34. package/.docs/docs/index.md +0 -43
  35. package/.docs/docs/mastra-cloud/deployment.md +0 -77
  36. package/.docs/docs/mastra-cloud/observability.md +0 -38
  37. package/.docs/docs/mastra-cloud/overview.md +0 -23
  38. package/.docs/docs/mastra-cloud/setup.md +0 -42
  39. package/.docs/docs/mastra-cloud/studio.md +0 -24
  40. package/.docs/docs/mcp/overview.md +0 -370
  41. package/.docs/docs/mcp/publishing-mcp-server.md +0 -95
  42. package/.docs/docs/memory/memory-processors.md +0 -316
  43. package/.docs/docs/memory/message-history.md +0 -260
  44. package/.docs/docs/memory/observational-memory.md +0 -246
  45. package/.docs/docs/memory/overview.md +0 -45
  46. package/.docs/docs/memory/semantic-recall.md +0 -272
  47. package/.docs/docs/memory/storage.md +0 -261
  48. package/.docs/docs/memory/working-memory.md +0 -400
  49. package/.docs/docs/observability/datasets/overview.md +0 -188
  50. package/.docs/docs/observability/datasets/running-experiments.md +0 -266
  51. package/.docs/docs/observability/logging.md +0 -99
  52. package/.docs/docs/observability/overview.md +0 -70
  53. package/.docs/docs/observability/tracing/bridges/otel.md +0 -209
  54. package/.docs/docs/observability/tracing/exporters/arize.md +0 -274
  55. package/.docs/docs/observability/tracing/exporters/braintrust.md +0 -111
  56. package/.docs/docs/observability/tracing/exporters/cloud.md +0 -129
  57. package/.docs/docs/observability/tracing/exporters/datadog.md +0 -187
  58. package/.docs/docs/observability/tracing/exporters/default.md +0 -211
  59. package/.docs/docs/observability/tracing/exporters/laminar.md +0 -100
  60. package/.docs/docs/observability/tracing/exporters/langfuse.md +0 -217
  61. package/.docs/docs/observability/tracing/exporters/langsmith.md +0 -202
  62. package/.docs/docs/observability/tracing/exporters/otel.md +0 -479
  63. package/.docs/docs/observability/tracing/exporters/posthog.md +0 -148
  64. package/.docs/docs/observability/tracing/exporters/sentry.md +0 -208
  65. package/.docs/docs/observability/tracing/overview.md +0 -1114
  66. package/.docs/docs/observability/tracing/processors/sensitive-data-filter.md +0 -303
  67. package/.docs/docs/rag/chunking-and-embedding.md +0 -183
  68. package/.docs/docs/rag/graph-rag.md +0 -215
  69. package/.docs/docs/rag/overview.md +0 -72
  70. package/.docs/docs/rag/retrieval.md +0 -521
  71. package/.docs/docs/rag/vector-databases.md +0 -648
  72. package/.docs/docs/server/auth/auth0.md +0 -222
  73. package/.docs/docs/server/auth/better-auth.md +0 -203
  74. package/.docs/docs/server/auth/clerk.md +0 -132
  75. package/.docs/docs/server/auth/composite-auth.md +0 -234
  76. package/.docs/docs/server/auth/custom-auth-provider.md +0 -513
  77. package/.docs/docs/server/auth/firebase.md +0 -272
  78. package/.docs/docs/server/auth/jwt.md +0 -110
  79. package/.docs/docs/server/auth/simple-auth.md +0 -178
  80. package/.docs/docs/server/auth/supabase.md +0 -117
  81. package/.docs/docs/server/auth/workos.md +0 -190
  82. package/.docs/docs/server/auth.md +0 -38
  83. package/.docs/docs/server/custom-adapters.md +0 -374
  84. package/.docs/docs/server/custom-api-routes.md +0 -267
  85. package/.docs/docs/server/mastra-client.md +0 -243
  86. package/.docs/docs/server/mastra-server.md +0 -71
  87. package/.docs/docs/server/middleware.md +0 -228
  88. package/.docs/docs/server/request-context.md +0 -478
  89. package/.docs/docs/server/server-adapters.md +0 -547
  90. package/.docs/docs/streaming/events.md +0 -247
  91. package/.docs/docs/streaming/overview.md +0 -181
  92. package/.docs/docs/streaming/tool-streaming.md +0 -178
  93. package/.docs/docs/streaming/workflow-streaming.md +0 -109
  94. package/.docs/docs/voice/overview.md +0 -979
  95. package/.docs/docs/voice/speech-to-speech.md +0 -103
  96. package/.docs/docs/voice/speech-to-text.md +0 -80
  97. package/.docs/docs/voice/text-to-speech.md +0 -84
  98. package/.docs/docs/workflows/agents-and-tools.md +0 -170
  99. package/.docs/docs/workflows/control-flow.md +0 -823
  100. package/.docs/docs/workflows/error-handling.md +0 -360
  101. package/.docs/docs/workflows/human-in-the-loop.md +0 -213
  102. package/.docs/docs/workflows/overview.md +0 -372
  103. package/.docs/docs/workflows/snapshots.md +0 -238
  104. package/.docs/docs/workflows/suspend-and-resume.md +0 -205
  105. package/.docs/docs/workflows/time-travel.md +0 -309
  106. package/.docs/docs/workflows/workflow-state.md +0 -181
  107. package/.docs/docs/workspace/filesystem.md +0 -162
  108. package/.docs/docs/workspace/overview.md +0 -239
  109. package/.docs/docs/workspace/sandbox.md +0 -63
  110. package/.docs/docs/workspace/search.md +0 -219
  111. package/.docs/docs/workspace/skills.md +0 -126
  112. package/.docs/guides/agent-frameworks/ai-sdk.md +0 -140
  113. package/.docs/guides/build-your-ui/ai-sdk-ui.md +0 -1463
  114. package/.docs/guides/build-your-ui/assistant-ui.md +0 -156
  115. package/.docs/guides/build-your-ui/copilotkit.md +0 -292
  116. package/.docs/guides/deployment/amazon-ec2.md +0 -130
  117. package/.docs/guides/deployment/aws-lambda.md +0 -248
  118. package/.docs/guides/deployment/azure-app-services.md +0 -114
  119. package/.docs/guides/deployment/cloudflare.md +0 -99
  120. package/.docs/guides/deployment/digital-ocean.md +0 -168
  121. package/.docs/guides/deployment/inngest.md +0 -685
  122. package/.docs/guides/deployment/netlify.md +0 -77
  123. package/.docs/guides/deployment/vercel.md +0 -101
  124. package/.docs/guides/getting-started/astro.md +0 -408
  125. package/.docs/guides/getting-started/electron.md +0 -504
  126. package/.docs/guides/getting-started/express.md +0 -251
  127. package/.docs/guides/getting-started/hono.md +0 -191
  128. package/.docs/guides/getting-started/next-js.md +0 -355
  129. package/.docs/guides/getting-started/nuxt.md +0 -476
  130. package/.docs/guides/getting-started/quickstart.md +0 -67
  131. package/.docs/guides/getting-started/sveltekit.md +0 -300
  132. package/.docs/guides/getting-started/vite-react.md +0 -439
  133. package/.docs/guides/guide/ai-recruiter.md +0 -227
  134. package/.docs/guides/guide/chef-michel.md +0 -215
  135. package/.docs/guides/guide/code-review-bot.md +0 -221
  136. package/.docs/guides/guide/dev-assistant.md +0 -304
  137. package/.docs/guides/guide/docs-manager.md +0 -238
  138. package/.docs/guides/guide/github-actions-pr-description.md +0 -236
  139. package/.docs/guides/guide/notes-mcp-server.md +0 -425
  140. package/.docs/guides/guide/research-assistant.md +0 -349
  141. package/.docs/guides/guide/stock-agent.md +0 -134
  142. package/.docs/guides/guide/web-search.md +0 -326
  143. package/.docs/guides/guide/whatsapp-chat-bot.md +0 -416
  144. package/.docs/guides/index.md +0 -3
  145. package/.docs/guides/migrations/agentnetwork.md +0 -101
  146. package/.docs/guides/migrations/ai-sdk-v4-to-v5.md +0 -112
  147. package/.docs/guides/migrations/upgrade-to-v1/agent.md +0 -404
  148. package/.docs/guides/migrations/upgrade-to-v1/cli.md +0 -57
  149. package/.docs/guides/migrations/upgrade-to-v1/client.md +0 -337
  150. package/.docs/guides/migrations/upgrade-to-v1/deployment.md +0 -37
  151. package/.docs/guides/migrations/upgrade-to-v1/evals.md +0 -239
  152. package/.docs/guides/migrations/upgrade-to-v1/mastra.md +0 -143
  153. package/.docs/guides/migrations/upgrade-to-v1/mcp.md +0 -97
  154. package/.docs/guides/migrations/upgrade-to-v1/memory.md +0 -285
  155. package/.docs/guides/migrations/upgrade-to-v1/overview.md +0 -119
  156. package/.docs/guides/migrations/upgrade-to-v1/processors.md +0 -68
  157. package/.docs/guides/migrations/upgrade-to-v1/rag.md +0 -42
  158. package/.docs/guides/migrations/upgrade-to-v1/storage.md +0 -553
  159. package/.docs/guides/migrations/upgrade-to-v1/tools.md +0 -180
  160. package/.docs/guides/migrations/upgrade-to-v1/tracing.md +0 -417
  161. package/.docs/guides/migrations/upgrade-to-v1/vectors.md +0 -87
  162. package/.docs/guides/migrations/upgrade-to-v1/voice.md +0 -30
  163. package/.docs/guides/migrations/upgrade-to-v1/workflows.md +0 -341
  164. package/.docs/guides/migrations/vnext-to-standard-apis.md +0 -364
  165. package/.docs/models/embeddings.md +0 -161
  166. package/.docs/models/gateways/azure-openai.md +0 -128
  167. package/.docs/models/gateways/custom-gateways.md +0 -545
  168. package/.docs/models/gateways/netlify.md +0 -88
  169. package/.docs/models/gateways/openrouter.md +0 -219
  170. package/.docs/models/gateways/vercel.md +0 -225
  171. package/.docs/models/gateways.md +0 -14
  172. package/.docs/models/index.md +0 -286
  173. package/.docs/models/providers/302ai.md +0 -134
  174. package/.docs/models/providers/abacus.md +0 -125
  175. package/.docs/models/providers/agentrouter.md +0 -90
  176. package/.docs/models/providers/aihubmix.md +0 -107
  177. package/.docs/models/providers/alibaba-cn.md +0 -135
  178. package/.docs/models/providers/alibaba.md +0 -111
  179. package/.docs/models/providers/amazon-bedrock.md +0 -33
  180. package/.docs/models/providers/anthropic.md +0 -153
  181. package/.docs/models/providers/azure.md +0 -33
  182. package/.docs/models/providers/bailing.md +0 -72
  183. package/.docs/models/providers/baseten.md +0 -77
  184. package/.docs/models/providers/berget.md +0 -78
  185. package/.docs/models/providers/cerebras.md +0 -101
  186. package/.docs/models/providers/chutes.md +0 -136
  187. package/.docs/models/providers/cloudflare-ai-gateway.md +0 -33
  188. package/.docs/models/providers/cloudflare-workers-ai.md +0 -109
  189. package/.docs/models/providers/cohere.md +0 -33
  190. package/.docs/models/providers/cortecs.md +0 -91
  191. package/.docs/models/providers/deepinfra.md +0 -112
  192. package/.docs/models/providers/deepseek.md +0 -88
  193. package/.docs/models/providers/fastrouter.md +0 -84
  194. package/.docs/models/providers/fireworks-ai.md +0 -89
  195. package/.docs/models/providers/firmware.md +0 -85
  196. package/.docs/models/providers/friendli.md +0 -78
  197. package/.docs/models/providers/github-models.md +0 -125
  198. package/.docs/models/providers/google-vertex.md +0 -33
  199. package/.docs/models/providers/google.md +0 -159
  200. package/.docs/models/providers/groq.md +0 -107
  201. package/.docs/models/providers/helicone.md +0 -161
  202. package/.docs/models/providers/huggingface.md +0 -90
  203. package/.docs/models/providers/iflowcn.md +0 -84
  204. package/.docs/models/providers/inception.md +0 -72
  205. package/.docs/models/providers/inference.md +0 -79
  206. package/.docs/models/providers/io-intelligence.md +0 -87
  207. package/.docs/models/providers/io-net.md +0 -87
  208. package/.docs/models/providers/jiekou.md +0 -131
  209. package/.docs/models/providers/kilo.md +0 -333
  210. package/.docs/models/providers/kimi-for-coding.md +0 -100
  211. package/.docs/models/providers/kuae-cloud-coding-plan.md +0 -71
  212. package/.docs/models/providers/llama.md +0 -77
  213. package/.docs/models/providers/lmstudio.md +0 -73
  214. package/.docs/models/providers/lucidquery.md +0 -72
  215. package/.docs/models/providers/minimax-cn-coding-plan.md +0 -102
  216. package/.docs/models/providers/minimax-cn.md +0 -102
  217. package/.docs/models/providers/minimax-coding-plan.md +0 -102
  218. package/.docs/models/providers/minimax.md +0 -104
  219. package/.docs/models/providers/mistral.md +0 -124
  220. package/.docs/models/providers/moark.md +0 -72
  221. package/.docs/models/providers/modelscope.md +0 -77
  222. package/.docs/models/providers/moonshotai-cn.md +0 -76
  223. package/.docs/models/providers/moonshotai.md +0 -76
  224. package/.docs/models/providers/morph.md +0 -73
  225. package/.docs/models/providers/nano-gpt.md +0 -103
  226. package/.docs/models/providers/nebius.md +0 -116
  227. package/.docs/models/providers/nova.md +0 -72
  228. package/.docs/models/providers/novita-ai.md +0 -154
  229. package/.docs/models/providers/nvidia.md +0 -141
  230. package/.docs/models/providers/ollama-cloud.md +0 -103
  231. package/.docs/models/providers/ollama.md +0 -33
  232. package/.docs/models/providers/openai.md +0 -193
  233. package/.docs/models/providers/opencode.md +0 -100
  234. package/.docs/models/providers/ovhcloud.md +0 -83
  235. package/.docs/models/providers/perplexity.md +0 -100
  236. package/.docs/models/providers/poe.md +0 -183
  237. package/.docs/models/providers/privatemode-ai.md +0 -75
  238. package/.docs/models/providers/requesty.md +0 -90
  239. package/.docs/models/providers/scaleway.md +0 -84
  240. package/.docs/models/providers/siliconflow-cn.md +0 -138
  241. package/.docs/models/providers/siliconflow.md +0 -140
  242. package/.docs/models/providers/stackit.md +0 -78
  243. package/.docs/models/providers/stepfun.md +0 -73
  244. package/.docs/models/providers/submodel.md +0 -79
  245. package/.docs/models/providers/synthetic.md +0 -96
  246. package/.docs/models/providers/togetherai.md +0 -115
  247. package/.docs/models/providers/upstage.md +0 -73
  248. package/.docs/models/providers/venice.md +0 -95
  249. package/.docs/models/providers/vivgrid.md +0 -106
  250. package/.docs/models/providers/vultr.md +0 -75
  251. package/.docs/models/providers/wandb.md +0 -80
  252. package/.docs/models/providers/xai.md +0 -141
  253. package/.docs/models/providers/xiaomi.md +0 -71
  254. package/.docs/models/providers/zai-coding-plan.md +0 -80
  255. package/.docs/models/providers/zai.md +0 -79
  256. package/.docs/models/providers/zenmux.md +0 -161
  257. package/.docs/models/providers/zhipuai-coding-plan.md +0 -79
  258. package/.docs/models/providers/zhipuai.md +0 -79
  259. package/.docs/models/providers.md +0 -81
  260. package/.docs/reference/agents/agent.md +0 -142
  261. package/.docs/reference/agents/generate.md +0 -174
  262. package/.docs/reference/agents/generateLegacy.md +0 -176
  263. package/.docs/reference/agents/getDefaultGenerateOptions.md +0 -36
  264. package/.docs/reference/agents/getDefaultOptions.md +0 -34
  265. package/.docs/reference/agents/getDefaultStreamOptions.md +0 -36
  266. package/.docs/reference/agents/getDescription.md +0 -21
  267. package/.docs/reference/agents/getInstructions.md +0 -34
  268. package/.docs/reference/agents/getLLM.md +0 -37
  269. package/.docs/reference/agents/getMemory.md +0 -34
  270. package/.docs/reference/agents/getModel.md +0 -34
  271. package/.docs/reference/agents/getTools.md +0 -29
  272. package/.docs/reference/agents/getVoice.md +0 -34
  273. package/.docs/reference/agents/listAgents.md +0 -35
  274. package/.docs/reference/agents/listScorers.md +0 -34
  275. package/.docs/reference/agents/listTools.md +0 -34
  276. package/.docs/reference/agents/listWorkflows.md +0 -34
  277. package/.docs/reference/agents/network.md +0 -134
  278. package/.docs/reference/ai-sdk/chat-route.md +0 -82
  279. package/.docs/reference/ai-sdk/handle-chat-stream.md +0 -53
  280. package/.docs/reference/ai-sdk/handle-network-stream.md +0 -37
  281. package/.docs/reference/ai-sdk/handle-workflow-stream.md +0 -55
  282. package/.docs/reference/ai-sdk/network-route.md +0 -74
  283. package/.docs/reference/ai-sdk/to-ai-sdk-stream.md +0 -232
  284. package/.docs/reference/ai-sdk/to-ai-sdk-v4-messages.md +0 -79
  285. package/.docs/reference/ai-sdk/to-ai-sdk-v5-messages.md +0 -73
  286. package/.docs/reference/ai-sdk/with-mastra.md +0 -59
  287. package/.docs/reference/ai-sdk/workflow-route.md +0 -79
  288. package/.docs/reference/auth/auth0.md +0 -73
  289. package/.docs/reference/auth/better-auth.md +0 -71
  290. package/.docs/reference/auth/clerk.md +0 -36
  291. package/.docs/reference/auth/firebase.md +0 -80
  292. package/.docs/reference/auth/jwt.md +0 -26
  293. package/.docs/reference/auth/supabase.md +0 -33
  294. package/.docs/reference/auth/workos.md +0 -84
  295. package/.docs/reference/cli/create-mastra.md +0 -137
  296. package/.docs/reference/cli/mastra.md +0 -336
  297. package/.docs/reference/client-js/agents.md +0 -438
  298. package/.docs/reference/client-js/error-handling.md +0 -16
  299. package/.docs/reference/client-js/logs.md +0 -24
  300. package/.docs/reference/client-js/mastra-client.md +0 -63
  301. package/.docs/reference/client-js/memory.md +0 -225
  302. package/.docs/reference/client-js/observability.md +0 -72
  303. package/.docs/reference/client-js/telemetry.md +0 -20
  304. package/.docs/reference/client-js/tools.md +0 -44
  305. package/.docs/reference/client-js/vectors.md +0 -79
  306. package/.docs/reference/client-js/workflows.md +0 -199
  307. package/.docs/reference/configuration.md +0 -749
  308. package/.docs/reference/core/addGateway.md +0 -42
  309. package/.docs/reference/core/getAgent.md +0 -21
  310. package/.docs/reference/core/getAgentById.md +0 -21
  311. package/.docs/reference/core/getDeployer.md +0 -22
  312. package/.docs/reference/core/getGateway.md +0 -38
  313. package/.docs/reference/core/getGatewayById.md +0 -41
  314. package/.docs/reference/core/getLogger.md +0 -22
  315. package/.docs/reference/core/getMCPServer.md +0 -45
  316. package/.docs/reference/core/getMCPServerById.md +0 -53
  317. package/.docs/reference/core/getMemory.md +0 -50
  318. package/.docs/reference/core/getScorer.md +0 -54
  319. package/.docs/reference/core/getScorerById.md +0 -54
  320. package/.docs/reference/core/getServer.md +0 -22
  321. package/.docs/reference/core/getStorage.md +0 -22
  322. package/.docs/reference/core/getStoredAgentById.md +0 -89
  323. package/.docs/reference/core/getTelemetry.md +0 -22
  324. package/.docs/reference/core/getVector.md +0 -22
  325. package/.docs/reference/core/getWorkflow.md +0 -40
  326. package/.docs/reference/core/listAgents.md +0 -21
  327. package/.docs/reference/core/listGateways.md +0 -40
  328. package/.docs/reference/core/listLogs.md +0 -38
  329. package/.docs/reference/core/listLogsByRunId.md +0 -36
  330. package/.docs/reference/core/listMCPServers.md +0 -51
  331. package/.docs/reference/core/listMemory.md +0 -56
  332. package/.docs/reference/core/listScorers.md +0 -29
  333. package/.docs/reference/core/listStoredAgents.md +0 -93
  334. package/.docs/reference/core/listVectors.md +0 -22
  335. package/.docs/reference/core/listWorkflows.md +0 -21
  336. package/.docs/reference/core/mastra-class.md +0 -66
  337. package/.docs/reference/core/mastra-model-gateway.md +0 -153
  338. package/.docs/reference/core/setLogger.md +0 -26
  339. package/.docs/reference/core/setStorage.md +0 -27
  340. package/.docs/reference/datasets/addItem.md +0 -35
  341. package/.docs/reference/datasets/addItems.md +0 -33
  342. package/.docs/reference/datasets/compareExperiments.md +0 -48
  343. package/.docs/reference/datasets/create.md +0 -49
  344. package/.docs/reference/datasets/dataset.md +0 -78
  345. package/.docs/reference/datasets/datasets-manager.md +0 -84
  346. package/.docs/reference/datasets/delete.md +0 -23
  347. package/.docs/reference/datasets/deleteExperiment.md +0 -25
  348. package/.docs/reference/datasets/deleteItem.md +0 -25
  349. package/.docs/reference/datasets/deleteItems.md +0 -27
  350. package/.docs/reference/datasets/get.md +0 -29
  351. package/.docs/reference/datasets/getDetails.md +0 -45
  352. package/.docs/reference/datasets/getExperiment.md +0 -28
  353. package/.docs/reference/datasets/getItem.md +0 -31
  354. package/.docs/reference/datasets/getItemHistory.md +0 -29
  355. package/.docs/reference/datasets/list.md +0 -29
  356. package/.docs/reference/datasets/listExperimentResults.md +0 -37
  357. package/.docs/reference/datasets/listExperiments.md +0 -31
  358. package/.docs/reference/datasets/listItems.md +0 -44
  359. package/.docs/reference/datasets/listVersions.md +0 -31
  360. package/.docs/reference/datasets/startExperiment.md +0 -60
  361. package/.docs/reference/datasets/startExperimentAsync.md +0 -41
  362. package/.docs/reference/datasets/update.md +0 -46
  363. package/.docs/reference/datasets/updateItem.md +0 -36
  364. package/.docs/reference/deployer/cloudflare.md +0 -79
  365. package/.docs/reference/deployer/netlify.md +0 -82
  366. package/.docs/reference/deployer/vercel.md +0 -91
  367. package/.docs/reference/deployer.md +0 -100
  368. package/.docs/reference/evals/answer-relevancy.md +0 -105
  369. package/.docs/reference/evals/answer-similarity.md +0 -99
  370. package/.docs/reference/evals/bias.md +0 -120
  371. package/.docs/reference/evals/completeness.md +0 -137
  372. package/.docs/reference/evals/content-similarity.md +0 -101
  373. package/.docs/reference/evals/context-precision.md +0 -196
  374. package/.docs/reference/evals/context-relevance.md +0 -536
  375. package/.docs/reference/evals/create-scorer.md +0 -270
  376. package/.docs/reference/evals/faithfulness.md +0 -114
  377. package/.docs/reference/evals/hallucination.md +0 -220
  378. package/.docs/reference/evals/keyword-coverage.md +0 -128
  379. package/.docs/reference/evals/mastra-scorer.md +0 -123
  380. package/.docs/reference/evals/noise-sensitivity.md +0 -685
  381. package/.docs/reference/evals/prompt-alignment.md +0 -619
  382. package/.docs/reference/evals/run-evals.md +0 -138
  383. package/.docs/reference/evals/scorer-utils.md +0 -330
  384. package/.docs/reference/evals/textual-difference.md +0 -113
  385. package/.docs/reference/evals/tone-consistency.md +0 -119
  386. package/.docs/reference/evals/tool-call-accuracy.md +0 -533
  387. package/.docs/reference/evals/toxicity.md +0 -123
  388. package/.docs/reference/harness/harness-class.md +0 -645
  389. package/.docs/reference/index.md +0 -276
  390. package/.docs/reference/logging/pino-logger.md +0 -117
  391. package/.docs/reference/memory/clone-utilities.md +0 -199
  392. package/.docs/reference/memory/cloneThread.md +0 -130
  393. package/.docs/reference/memory/createThread.md +0 -68
  394. package/.docs/reference/memory/deleteMessages.md +0 -40
  395. package/.docs/reference/memory/getThreadById.md +0 -24
  396. package/.docs/reference/memory/listThreads.md +0 -145
  397. package/.docs/reference/memory/memory-class.md +0 -147
  398. package/.docs/reference/memory/observational-memory.md +0 -565
  399. package/.docs/reference/memory/recall.md +0 -91
  400. package/.docs/reference/observability/tracing/bridges/otel.md +0 -131
  401. package/.docs/reference/observability/tracing/configuration.md +0 -178
  402. package/.docs/reference/observability/tracing/exporters/arize.md +0 -141
  403. package/.docs/reference/observability/tracing/exporters/braintrust.md +0 -93
  404. package/.docs/reference/observability/tracing/exporters/cloud-exporter.md +0 -163
  405. package/.docs/reference/observability/tracing/exporters/console-exporter.md +0 -138
  406. package/.docs/reference/observability/tracing/exporters/datadog.md +0 -116
  407. package/.docs/reference/observability/tracing/exporters/default-exporter.md +0 -174
  408. package/.docs/reference/observability/tracing/exporters/laminar.md +0 -78
  409. package/.docs/reference/observability/tracing/exporters/langfuse.md +0 -134
  410. package/.docs/reference/observability/tracing/exporters/langsmith.md +0 -110
  411. package/.docs/reference/observability/tracing/exporters/otel.md +0 -199
  412. package/.docs/reference/observability/tracing/exporters/posthog.md +0 -92
  413. package/.docs/reference/observability/tracing/exporters/sentry.md +0 -184
  414. package/.docs/reference/observability/tracing/instances.md +0 -109
  415. package/.docs/reference/observability/tracing/interfaces.md +0 -749
  416. package/.docs/reference/observability/tracing/processors/sensitive-data-filter.md +0 -144
  417. package/.docs/reference/observability/tracing/spans.md +0 -224
  418. package/.docs/reference/processors/batch-parts-processor.md +0 -61
  419. package/.docs/reference/processors/language-detector.md +0 -81
  420. package/.docs/reference/processors/message-history-processor.md +0 -85
  421. package/.docs/reference/processors/moderation-processor.md +0 -104
  422. package/.docs/reference/processors/pii-detector.md +0 -107
  423. package/.docs/reference/processors/processor-interface.md +0 -525
  424. package/.docs/reference/processors/prompt-injection-detector.md +0 -71
  425. package/.docs/reference/processors/semantic-recall-processor.md +0 -123
  426. package/.docs/reference/processors/system-prompt-scrubber.md +0 -80
  427. package/.docs/reference/processors/token-limiter-processor.md +0 -113
  428. package/.docs/reference/processors/tool-call-filter.md +0 -85
  429. package/.docs/reference/processors/tool-search-processor.md +0 -113
  430. package/.docs/reference/processors/unicode-normalizer.md +0 -62
  431. package/.docs/reference/processors/working-memory-processor.md +0 -154
  432. package/.docs/reference/rag/chunk.md +0 -221
  433. package/.docs/reference/rag/database-config.md +0 -264
  434. package/.docs/reference/rag/document.md +0 -114
  435. package/.docs/reference/rag/embeddings.md +0 -92
  436. package/.docs/reference/rag/extract-params.md +0 -168
  437. package/.docs/reference/rag/graph-rag.md +0 -111
  438. package/.docs/reference/rag/metadata-filters.md +0 -216
  439. package/.docs/reference/rag/rerank.md +0 -80
  440. package/.docs/reference/rag/rerankWithScorer.md +0 -80
  441. package/.docs/reference/server/create-route.md +0 -260
  442. package/.docs/reference/server/express-adapter.md +0 -176
  443. package/.docs/reference/server/fastify-adapter.md +0 -90
  444. package/.docs/reference/server/hono-adapter.md +0 -162
  445. package/.docs/reference/server/koa-adapter.md +0 -127
  446. package/.docs/reference/server/mastra-server.md +0 -298
  447. package/.docs/reference/server/register-api-route.md +0 -249
  448. package/.docs/reference/server/routes.md +0 -306
  449. package/.docs/reference/storage/cloudflare-d1.md +0 -218
  450. package/.docs/reference/storage/cloudflare.md +0 -88
  451. package/.docs/reference/storage/composite.md +0 -235
  452. package/.docs/reference/storage/convex.md +0 -161
  453. package/.docs/reference/storage/dynamodb.md +0 -282
  454. package/.docs/reference/storage/lance.md +0 -131
  455. package/.docs/reference/storage/libsql.md +0 -135
  456. package/.docs/reference/storage/mongodb.md +0 -262
  457. package/.docs/reference/storage/mssql.md +0 -155
  458. package/.docs/reference/storage/overview.md +0 -121
  459. package/.docs/reference/storage/postgresql.md +0 -529
  460. package/.docs/reference/storage/upstash.md +0 -160
  461. package/.docs/reference/streaming/ChunkType.md +0 -292
  462. package/.docs/reference/streaming/agents/MastraModelOutput.md +0 -182
  463. package/.docs/reference/streaming/agents/stream.md +0 -212
  464. package/.docs/reference/streaming/agents/streamLegacy.md +0 -142
  465. package/.docs/reference/streaming/workflows/observeStream.md +0 -42
  466. package/.docs/reference/streaming/workflows/resumeStream.md +0 -61
  467. package/.docs/reference/streaming/workflows/stream.md +0 -88
  468. package/.docs/reference/streaming/workflows/timeTravelStream.md +0 -142
  469. package/.docs/reference/templates/overview.md +0 -194
  470. package/.docs/reference/tools/create-tool.md +0 -237
  471. package/.docs/reference/tools/document-chunker-tool.md +0 -89
  472. package/.docs/reference/tools/graph-rag-tool.md +0 -185
  473. package/.docs/reference/tools/mcp-client.md +0 -962
  474. package/.docs/reference/tools/mcp-server.md +0 -1275
  475. package/.docs/reference/tools/vector-query-tool.md +0 -459
  476. package/.docs/reference/vectors/astra.md +0 -121
  477. package/.docs/reference/vectors/chroma.md +0 -267
  478. package/.docs/reference/vectors/convex.md +0 -303
  479. package/.docs/reference/vectors/couchbase.md +0 -226
  480. package/.docs/reference/vectors/duckdb.md +0 -318
  481. package/.docs/reference/vectors/elasticsearch.md +0 -189
  482. package/.docs/reference/vectors/lance.md +0 -220
  483. package/.docs/reference/vectors/libsql.md +0 -305
  484. package/.docs/reference/vectors/mongodb.md +0 -295
  485. package/.docs/reference/vectors/opensearch.md +0 -99
  486. package/.docs/reference/vectors/pg.md +0 -408
  487. package/.docs/reference/vectors/pinecone.md +0 -168
  488. package/.docs/reference/vectors/qdrant.md +0 -222
  489. package/.docs/reference/vectors/s3vectors.md +0 -277
  490. package/.docs/reference/vectors/turbopuffer.md +0 -157
  491. package/.docs/reference/vectors/upstash.md +0 -294
  492. package/.docs/reference/vectors/vectorize.md +0 -147
  493. package/.docs/reference/voice/azure.md +0 -148
  494. package/.docs/reference/voice/cloudflare.md +0 -83
  495. package/.docs/reference/voice/composite-voice.md +0 -121
  496. package/.docs/reference/voice/deepgram.md +0 -79
  497. package/.docs/reference/voice/elevenlabs.md +0 -98
  498. package/.docs/reference/voice/google-gemini-live.md +0 -378
  499. package/.docs/reference/voice/google.md +0 -228
  500. package/.docs/reference/voice/mastra-voice.md +0 -313
  501. package/.docs/reference/voice/murf.md +0 -122
  502. package/.docs/reference/voice/openai-realtime.md +0 -203
  503. package/.docs/reference/voice/openai.md +0 -88
  504. package/.docs/reference/voice/playai.md +0 -80
  505. package/.docs/reference/voice/sarvam.md +0 -126
  506. package/.docs/reference/voice/speechify.md +0 -75
  507. package/.docs/reference/voice/voice.addInstructions.md +0 -56
  508. package/.docs/reference/voice/voice.addTools.md +0 -67
  509. package/.docs/reference/voice/voice.answer.md +0 -54
  510. package/.docs/reference/voice/voice.close.md +0 -51
  511. package/.docs/reference/voice/voice.connect.md +0 -94
  512. package/.docs/reference/voice/voice.events.md +0 -37
  513. package/.docs/reference/voice/voice.getSpeakers.md +0 -129
  514. package/.docs/reference/voice/voice.listen.md +0 -164
  515. package/.docs/reference/voice/voice.off.md +0 -54
  516. package/.docs/reference/voice/voice.on.md +0 -111
  517. package/.docs/reference/voice/voice.send.md +0 -65
  518. package/.docs/reference/voice/voice.speak.md +0 -157
  519. package/.docs/reference/voice/voice.updateConfig.md +0 -60
  520. package/.docs/reference/workflows/run-methods/cancel.md +0 -86
  521. package/.docs/reference/workflows/run-methods/restart.md +0 -33
  522. package/.docs/reference/workflows/run-methods/resume.md +0 -59
  523. package/.docs/reference/workflows/run-methods/start.md +0 -58
  524. package/.docs/reference/workflows/run-methods/startAsync.md +0 -67
  525. package/.docs/reference/workflows/run-methods/timeTravel.md +0 -142
  526. package/.docs/reference/workflows/run.md +0 -59
  527. package/.docs/reference/workflows/step.md +0 -119
  528. package/.docs/reference/workflows/workflow-methods/branch.md +0 -25
  529. package/.docs/reference/workflows/workflow-methods/commit.md +0 -17
  530. package/.docs/reference/workflows/workflow-methods/create-run.md +0 -63
  531. package/.docs/reference/workflows/workflow-methods/dountil.md +0 -25
  532. package/.docs/reference/workflows/workflow-methods/dowhile.md +0 -25
  533. package/.docs/reference/workflows/workflow-methods/foreach.md +0 -118
  534. package/.docs/reference/workflows/workflow-methods/map.md +0 -93
  535. package/.docs/reference/workflows/workflow-methods/parallel.md +0 -21
  536. package/.docs/reference/workflows/workflow-methods/sleep.md +0 -35
  537. package/.docs/reference/workflows/workflow-methods/sleepUntil.md +0 -35
  538. package/.docs/reference/workflows/workflow-methods/then.md +0 -21
  539. package/.docs/reference/workflows/workflow.md +0 -157
  540. package/.docs/reference/workspace/e2b-sandbox.md +0 -288
  541. package/.docs/reference/workspace/filesystem.md +0 -202
  542. package/.docs/reference/workspace/gcs-filesystem.md +0 -170
  543. package/.docs/reference/workspace/local-filesystem.md +0 -327
  544. package/.docs/reference/workspace/local-sandbox.md +0 -285
  545. package/.docs/reference/workspace/s3-filesystem.md +0 -169
  546. package/.docs/reference/workspace/sandbox.md +0 -81
  547. package/.docs/reference/workspace/workspace-class.md +0 -226
@@ -1,632 +0,0 @@
1
- # Processors
2
-
3
- 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.
4
-
5
- Processors are configured as:
6
-
7
- - **`inputProcessors`**: Run before messages reach the language model.
8
- - **`outputProcessors`**: Run after the language model generates a response, but before it's returned to users.
9
-
10
- 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.
11
-
12
- Some processors implement both input and output logic and can be used in either array depending on where the transformation should occur.
13
-
14
- ## When to use processors
15
-
16
- Use processors to:
17
-
18
- - Normalize or validate user input
19
- - Add guardrails to your agent
20
- - Detect and prevent prompt injection or jailbreak attempts
21
- - Moderate content for safety or compliance
22
- - Transform messages (e.g., translate languages, filter tool calls)
23
- - Limit token usage or message history length
24
- - Redact sensitive information (PII)
25
- - Apply custom business logic to messages
26
-
27
- Mastra includes several processors for common use cases. You can also create custom processors for application-specific requirements.
28
-
29
- ## Adding processors to an agent
30
-
31
- Import and instantiate the processor, then pass it to the agent's `inputProcessors` or `outputProcessors` array:
32
-
33
- ```typescript
34
- import { Agent } from "@mastra/core/agent";
35
- import { ModerationProcessor } from "@mastra/core/processors";
36
-
37
- export const moderatedAgent = new Agent({
38
- name: "moderated-agent",
39
- instructions: "You are a helpful assistant",
40
- model: "openai/gpt-4o-mini",
41
- inputProcessors: [
42
- new ModerationProcessor({
43
- model: "openai/gpt-4.1-nano",
44
- categories: ["hate", "harassment", "violence"],
45
- threshold: 0.7,
46
- strategy: "block",
47
- }),
48
- ],
49
- });
50
- ```
51
-
52
- ## Execution order
53
-
54
- Processors run in the order they appear in the array:
55
-
56
- ```typescript
57
- inputProcessors: [
58
- new UnicodeNormalizer(),
59
- new PromptInjectionDetector(),
60
- new ModerationProcessor(),
61
- ];
62
- ```
63
-
64
- For output processors, the order determines the sequence of transformations applied to the model's response.
65
-
66
- ### With memory enabled
67
-
68
- When memory is enabled on an agent, memory processors are automatically added to the pipeline:
69
-
70
- **Input processors:**
71
-
72
- ```text
73
- [Memory Processors] → [Your inputProcessors]
74
- ```
75
-
76
- Memory loads message history first, then your processors run.
77
-
78
- **Output processors:**
79
-
80
- ```text
81
- [Your outputProcessors] → [Memory Processors]
82
- ```
83
-
84
- Your processors run first, then memory persists messages.
85
-
86
- This ordering ensures that if your output guardrail calls `abort()`, memory processors are skipped and no messages are saved. See [Memory Processors](https://mastra.ai/docs/memory/memory-processors) for details.
87
-
88
- ## Creating custom processors
89
-
90
- Custom processors implement the `Processor` interface:
91
-
92
- ### Custom input processor
93
-
94
- ```typescript
95
- import type {
96
- Processor,
97
- MastraDBMessage,
98
- RequestContext,
99
- } from "@mastra/core";
100
-
101
- export class CustomInputProcessor implements Processor {
102
- id = "custom-input";
103
-
104
- async processInput({
105
- messages,
106
- systemMessages,
107
- context,
108
- }: {
109
- messages: MastraDBMessage[];
110
- systemMessages: CoreMessage[];
111
- context: RequestContext;
112
- }): Promise<MastraDBMessage[]> {
113
- // Transform messages before they reach the LLM
114
- return messages.map((msg) => ({
115
- ...msg,
116
- content: {
117
- ...msg.content,
118
- content: msg.content.content.toLowerCase(),
119
- },
120
- }));
121
- }
122
- }
123
- ```
124
-
125
- The `processInput` method receives:
126
-
127
- - `messages`: User and assistant messages (not system messages)
128
- - `systemMessages`: All system messages (agent instructions, memory context, user-provided system prompts)
129
- - `messageList`: The full MessageList instance for advanced use cases
130
- - `abort`: Function to stop processing and return early
131
- - `requestContext`: Execution metadata like `threadId` and `resourceId`
132
-
133
- The method can return:
134
-
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
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
-
170
- - Trimming verbose system prompts for models with smaller context windows
171
- - Filtering or modifying semantic recall content to prevent "prompt too long" errors
172
- - Dynamically adjusting system instructions based on the conversation
173
-
174
- ### Per-step processing with processInputStep
175
-
176
- 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.
177
-
178
- ```typescript
179
- import type { Processor, ProcessInputStepArgs, ProcessInputStepResult } from "@mastra/core";
180
-
181
- export class DynamicModelProcessor implements Processor {
182
- id = "dynamic-model";
183
-
184
- async processInputStep({
185
- stepNumber,
186
- model,
187
- toolChoice,
188
- messageList,
189
- }: ProcessInputStepArgs): Promise<ProcessInputStepResult> {
190
- // Use a fast model for initial response
191
- if (stepNumber === 0) {
192
- return { model: "openai/gpt-4o-mini" };
193
- }
194
-
195
- // Disable tools after 5 steps to force completion
196
- if (stepNumber > 5) {
197
- return { toolChoice: "none" };
198
- }
199
-
200
- // No changes for other steps
201
- return {};
202
- }
203
- }
204
- ```
205
-
206
- The `processInputStep` method receives:
207
-
208
- - `stepNumber`: Current step in the agentic loop (0-indexed)
209
- - `steps`: Results from previous steps
210
- - `messages`: Current messages snapshot (read-only)
211
- - `systemMessages`: Current system messages (read-only)
212
- - `messageList`: The full MessageList instance for mutations
213
- - `model`: Current model being used
214
- - `tools`: Current tools available for this step
215
- - `toolChoice`: Current tool choice setting
216
- - `activeTools`: Currently active tools
217
- - `providerOptions`: Provider-specific options
218
- - `modelSettings`: Model settings like temperature
219
- - `structuredOutput`: Structured output configuration
220
-
221
- The method can return any combination of:
222
-
223
- - `model`: Change the model for this step
224
- - `tools`: Replace or add tools (use spread to merge: `{ tools: { ...tools, newTool } }`)
225
- - `toolChoice`: Change tool selection behavior
226
- - `activeTools`: Filter which tools are available
227
- - `messages`: Replace messages (applied to messageList)
228
- - `systemMessages`: Replace all system messages
229
- - `providerOptions`: Modify provider options
230
- - `modelSettings`: Modify model settings
231
- - `structuredOutput`: Modify structured output configuration
232
-
233
- #### Ensuring a final response with maxSteps
234
-
235
- When using `maxSteps` to limit agent execution, the agent may return an empty response if it attempts a tool call on the final step. Use `processInputStep` to force a text response on the last step:
236
-
237
- ```typescript
238
- import { Processor, ProcessInputStepArgs, ProcessInputStepResult } from "@mastra/core/processors";
239
-
240
- export class EnsureFinalResponseProcessor implements Processor {
241
- readonly id = "ensure-final-response";
242
-
243
- private maxSteps: number;
244
-
245
- constructor(maxSteps: number) {
246
- this.maxSteps = maxSteps;
247
- }
248
-
249
- async processInputStep({ stepNumber, systemMessages }: ProcessInputStepArgs): Promise<ProcessInputStepResult> {
250
- // On the last step, prevent tool calls and instruct the LLM to summarize
251
- if (stepNumber === this.maxSteps - 1) {
252
- return {
253
- tools: {},
254
- toolChoice: "none",
255
- systemMessages: [
256
- ...systemMessages,
257
- {
258
- role: "system",
259
- content:
260
- "You have reached the maximum number of steps. Summarize your progress so far and provide a best-effort response. If the task is incomplete, clearly indicate what remains to be done.",
261
- },
262
- ],
263
- };
264
- }
265
- return {};
266
- }
267
- }
268
- ```
269
-
270
- Use it with your agent:
271
-
272
- ```typescript
273
- import { Agent } from "@mastra/core/agent";
274
- import { EnsureFinalResponseProcessor } from "../processors/ensure-final-response";
275
-
276
- const MAX_STEPS = 5;
277
-
278
- const agent = new Agent({
279
- id: "bounded-agent",
280
- name: "Bounded Agent",
281
- model: "openai/gpt-4o-mini",
282
- tools: { /* your tools */ },
283
- inputProcessors: [new EnsureFinalResponseProcessor(MAX_STEPS)],
284
- });
285
-
286
- // Pass maxSteps when calling generate/stream
287
- const result = await agent.generate("Your prompt", { maxSteps: MAX_STEPS });
288
- ```
289
-
290
- This ensures that on the final allowed step (step 4 when `maxSteps` is 5, since steps are 0-indexed), the LLM generates a summary instead of attempting another tool call, and clearly indicates if the task is incomplete.
291
-
292
- #### Using prepareStep callback
293
-
294
- For simpler per-step logic, you can use the `prepareStep` callback on `generate()` or `stream()` instead of creating a full processor:
295
-
296
- ```typescript
297
- await agent.generate("Complex task", {
298
- prepareStep: async ({ stepNumber, model }) => {
299
- if (stepNumber === 0) {
300
- return { model: "openai/gpt-4o-mini" };
301
- }
302
- if (stepNumber > 5) {
303
- return { toolChoice: "none" };
304
- }
305
- },
306
- });
307
- ```
308
-
309
- ### Custom output processor
310
-
311
- ```typescript
312
- import type {
313
- Processor,
314
- MastraDBMessage,
315
- RequestContext,
316
- } from "@mastra/core";
317
-
318
- export class CustomOutputProcessor implements Processor {
319
- id = "custom-output";
320
-
321
- async processOutputResult({
322
- messages,
323
- context,
324
- }: {
325
- messages: MastraDBMessage[];
326
- context: RequestContext;
327
- }): Promise<MastraDBMessage[]> {
328
- // Transform messages after the LLM generates them
329
- return messages.filter((msg) => msg.role !== "system");
330
- }
331
-
332
- async processOutputStream({
333
- stream,
334
- context,
335
- }: {
336
- stream: ReadableStream;
337
- context: RequestContext;
338
- }): Promise<ReadableStream> {
339
- // Transform streaming responses
340
- return stream;
341
- }
342
- }
343
- ```
344
-
345
- #### Emitting custom stream events with writer
346
-
347
- Output processors receive a `writer` object that lets you emit custom data chunks back to the client during streaming. This is useful for use cases like streaming moderation results or sending UI update signals without blocking the original stream.
348
-
349
- ```typescript
350
- import type { Processor, ChunkType, MastraDBMessage } from "@mastra/core";
351
-
352
- export class ModerationProcessor implements Processor {
353
- id = "moderation";
354
-
355
- async processOutputResult({ messages, writer }) {
356
- // Run moderation on the final output
357
- const text = messages
358
- .filter((m) => m.role === "assistant")
359
- .flatMap((m) => m.content.parts?.filter((p) => p.type === "text"))
360
- .map((p) => p.text)
361
- .join(" ");
362
-
363
- const result = await runModeration(text);
364
-
365
- if (result.requiresChange) {
366
- // Emit a custom event to the client with the moderated text
367
- await writer?.custom({
368
- type: "data-moderation-update",
369
- data: {
370
- originalText: text,
371
- moderatedText: result.moderatedText,
372
- reason: result.reason,
373
- },
374
- });
375
- }
376
-
377
- return messages;
378
- }
379
- }
380
- ```
381
-
382
- On the client, listen for the custom chunk type in the stream:
383
-
384
- ```typescript
385
- const stream = await agent.stream("Hello");
386
-
387
- for await (const chunk of stream.fullStream) {
388
- if (chunk.type === "data-moderation-update") {
389
- // Update the UI with moderated text
390
- updateDisplayedMessage(chunk.data.moderatedText);
391
- }
392
- }
393
- ```
394
-
395
- Custom chunk types must use the `data-` prefix (e.g., `data-moderation-update`, `data-status`).
396
-
397
- #### Adding metadata in output processors
398
-
399
- You can add custom metadata to messages in `processOutputResult`. This metadata is accessible via the response object:
400
-
401
- ```typescript
402
- import type { Processor, MastraDBMessage } from "@mastra/core";
403
-
404
- export class MetadataProcessor implements Processor {
405
- id = "metadata-processor";
406
-
407
- async processOutputResult({
408
- messages,
409
- }: {
410
- messages: MastraDBMessage[];
411
- }): Promise<MastraDBMessage[]> {
412
- return messages.map((msg) => {
413
- if (msg.role === "assistant") {
414
- return {
415
- ...msg,
416
- content: {
417
- ...msg.content,
418
- metadata: {
419
- ...msg.content.metadata,
420
- processedAt: new Date().toISOString(),
421
- customData: "your data here",
422
- },
423
- },
424
- };
425
- }
426
- return msg;
427
- });
428
- }
429
- }
430
- ```
431
-
432
- Access the metadata with `generate()`:
433
-
434
- ```typescript
435
- const result = await agent.generate("Hello");
436
-
437
- // The response includes uiMessages with processor-added metadata
438
- const assistantMessage = result.response?.uiMessages?.find((m) => m.role === "assistant");
439
- console.log(assistantMessage?.metadata?.customData);
440
- ```
441
-
442
- Access the metadata when streaming:
443
-
444
- ```typescript
445
- const stream = await agent.stream("Hello");
446
-
447
- for await (const chunk of stream.fullStream) {
448
- if (chunk.type === "finish") {
449
- // Access response with processor-added metadata from the finish chunk
450
- const uiMessages = chunk.payload.response?.uiMessages;
451
- const assistantMessage = uiMessages?.find((m) => m.role === "assistant");
452
- console.log(assistantMessage?.metadata?.customData);
453
- }
454
- }
455
-
456
- // Or via the response promise after consuming the stream
457
- const response = await stream.response;
458
- console.log(response.uiMessages);
459
- ```
460
-
461
- ## Built-in Utility Processors
462
-
463
- Mastra provides utility processors for common tasks:
464
-
465
- **For security and validation processors**, see the [Guardrails](https://mastra.ai/docs/agents/guardrails) page for input/output guardrails and moderation processors. **For memory-specific processors**, see the [Memory Processors](https://mastra.ai/docs/memory/memory-processors) page for processors that handle message history, semantic recall, and working memory.
466
-
467
- ### TokenLimiter
468
-
469
- Prevents context window overflow by removing older messages when the total token count exceeds a specified limit.
470
-
471
- ```typescript
472
- import { Agent } from "@mastra/core/agent";
473
- import { TokenLimiter } from "@mastra/core/processors";
474
-
475
- const agent = new Agent({
476
- name: "my-agent",
477
- model: "openai/gpt-4o",
478
- inputProcessors: [
479
- // Ensure the total tokens don't exceed ~127k
480
- new TokenLimiter(127000),
481
- ],
482
- });
483
- ```
484
-
485
- The `TokenLimiter` uses the `o200k_base` encoding by default (suitable for GPT-4o). You can specify other encodings for different models:
486
-
487
- ```typescript
488
- import cl100k_base from "js-tiktoken/ranks/cl100k_base";
489
-
490
- const agent = new Agent({
491
- name: "my-agent",
492
- inputProcessors: [
493
- new TokenLimiter({
494
- limit: 16000, // Example limit for a 16k context model
495
- encoding: cl100k_base,
496
- }),
497
- ],
498
- });
499
- ```
500
-
501
- ### ToolCallFilter
502
-
503
- Removes tool calls from messages sent to the LLM, saving tokens by excluding potentially verbose tool interactions.
504
-
505
- ```typescript
506
- import { Agent } from "@mastra/core/agent";
507
- import { ToolCallFilter, TokenLimiter } from "@mastra/core/processors";
508
-
509
- const agent = new Agent({
510
- name: "my-agent",
511
- model: "openai/gpt-4o",
512
- inputProcessors: [
513
- // Example 1: Remove all tool calls/results
514
- new ToolCallFilter(),
515
-
516
- // Example 2: Remove only specific tool calls
517
- new ToolCallFilter({ exclude: ["generateImageTool"] }),
518
-
519
- // Always place TokenLimiter last
520
- new TokenLimiter(127000),
521
- ],
522
- });
523
- ```
524
-
525
- > **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](https://mastra.ai/docs/memory/memory-processors) for details.
526
-
527
- ### ToolSearchProcessor
528
-
529
- Enables dynamic tool discovery and loading for agents with large tool libraries. Instead of providing all tools upfront, the agent searches for tools by keyword and loads them on demand, reducing context token usage.
530
-
531
- ```typescript
532
- import { Agent } from "@mastra/core/agent";
533
- import { ToolSearchProcessor } from "@mastra/core/processors";
534
-
535
- const agent = new Agent({
536
- name: "my-agent",
537
- model: "openai/gpt-4o",
538
- inputProcessors: [
539
- new ToolSearchProcessor({
540
- tools: {
541
- createIssue: githubTools.createIssue,
542
- sendEmail: emailTools.send,
543
- // ... hundreds of tools
544
- },
545
- search: { topK: 5, minScore: 0.1 },
546
- }),
547
- ],
548
- });
549
- ```
550
-
551
- The processor gives the agent two meta-tools: `search_tools` to find tools by keyword and `load_tool` to add a tool to the conversation. Loaded tools persist within the thread. See the [ToolSearchProcessor reference](https://mastra.ai/reference/processors/tool-search-processor) for full configuration options.
552
-
553
- ## Using workflows as processors
554
-
555
- You can use Mastra workflows as processors to create complex processing pipelines with parallel execution, conditional branching, and error handling:
556
-
557
- ```typescript
558
- import { createWorkflow, createStep } from "@mastra/core/workflows";
559
- import { ProcessorStepSchema } from "@mastra/core/processors";
560
- import { Agent } from "@mastra/core/agent";
561
-
562
- // Create a workflow that runs multiple checks in parallel
563
- const moderationWorkflow = createWorkflow({
564
- id: "moderation-pipeline",
565
- inputSchema: ProcessorStepSchema,
566
- outputSchema: ProcessorStepSchema,
567
- })
568
- .then(createStep(new LengthValidator({ maxLength: 10000 })))
569
- .parallel([
570
- createStep(new PIIDetector({ strategy: "redact" })),
571
- createStep(new ToxicityChecker({ threshold: 0.8 })),
572
- ])
573
- .commit();
574
-
575
- // Use the workflow as an input processor
576
- const agent = new Agent({
577
- id: "moderated-agent",
578
- name: "Moderated Agent",
579
- model: "openai/gpt-4o",
580
- inputProcessors: [moderationWorkflow],
581
- });
582
- ```
583
-
584
- When an agent is registered with Mastra, processor workflows are automatically registered as workflows, allowing you to view and debug them in the [Studio](https://mastra.ai/docs/getting-started/studio).
585
-
586
- ## Retry mechanism
587
-
588
- Processors can request that the LLM retry its response with feedback. This is useful for implementing quality checks, output validation, or iterative refinement:
589
-
590
- ```typescript
591
- import type { Processor } from "@mastra/core";
592
-
593
- export class QualityChecker implements Processor {
594
- id = "quality-checker";
595
-
596
- async processOutputStep({ text, abort, retryCount }) {
597
- const qualityScore = await evaluateQuality(text);
598
-
599
- if (qualityScore < 0.7 && retryCount < 3) {
600
- // Request a retry with feedback for the LLM
601
- abort("Response quality score too low. Please provide a more detailed answer.", {
602
- retry: true,
603
- metadata: { score: qualityScore },
604
- });
605
- }
606
-
607
- return [];
608
- }
609
- }
610
-
611
- const agent = new Agent({
612
- id: "quality-agent",
613
- name: "Quality Agent",
614
- model: "openai/gpt-4o",
615
- outputProcessors: [new QualityChecker()],
616
- maxProcessorRetries: 3, // Maximum retry attempts (default: 3)
617
- });
618
- ```
619
-
620
- The retry mechanism:
621
-
622
- - Only works in `processOutputStep` and `processInputStep` methods
623
- - Replays the step with the abort reason added as context for the LLM
624
- - Tracks retry count via the `retryCount` parameter
625
- - Respects `maxProcessorRetries` limit on the agent
626
-
627
- ## Related documentation
628
-
629
- - [Guardrails](https://mastra.ai/docs/agents/guardrails) - Security and validation processors
630
- - [Memory Processors](https://mastra.ai/docs/memory/memory-processors) - Memory-specific processors and automatic integration
631
- - [Processor Interface](https://mastra.ai/reference/processors/processor-interface) - Full API reference for processors
632
- - [ToolSearchProcessor Reference](https://mastra.ai/reference/processors/tool-search-processor) - API reference for dynamic tool search