@mastra/mcp-docs-server 0.13.39-alpha.0 → 1.0.0-beta.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 (480) hide show
  1. package/.docs/organized/changelogs/%40internal%2Fai-sdk-v4.md +1 -0
  2. package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +0 -8
  3. package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +0 -8
  4. package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +29 -29
  5. package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +0 -8
  6. package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +70 -70
  7. package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +25 -25
  8. package/.docs/organized/changelogs/%40mastra%2Fastra.md +11 -11
  9. package/.docs/organized/changelogs/%40mastra%2Fauth.md +4 -8
  10. package/.docs/organized/changelogs/%40mastra%2Fchroma.md +11 -11
  11. package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +199 -199
  12. package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +223 -223
  13. package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +189 -189
  14. package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +198 -198
  15. package/.docs/organized/changelogs/%40mastra%2Fcodemod.md +7 -0
  16. package/.docs/organized/changelogs/%40mastra%2Fcore.md +214 -214
  17. package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +16 -16
  18. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +63 -63
  19. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +57 -57
  20. package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +60 -60
  21. package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +57 -57
  22. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +209 -209
  23. package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +191 -191
  24. package/.docs/organized/changelogs/%40mastra%2Fevals.md +38 -38
  25. package/.docs/organized/changelogs/%40mastra%2Ffastembed.md +5 -7
  26. package/.docs/organized/changelogs/%40mastra%2Flance.md +186 -186
  27. package/.docs/organized/changelogs/%40mastra%2Flibsql.md +199 -199
  28. package/.docs/organized/changelogs/%40mastra%2Floggers.md +11 -11
  29. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +53 -53
  30. package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +11 -11
  31. package/.docs/organized/changelogs/%40mastra%2Fmcp.md +69 -69
  32. package/.docs/organized/changelogs/%40mastra%2Fmemory.md +221 -221
  33. package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +199 -199
  34. package/.docs/organized/changelogs/%40mastra%2Fmssql.md +206 -206
  35. package/.docs/organized/changelogs/%40mastra%2Fopensearch.md +11 -11
  36. package/.docs/organized/changelogs/%40mastra%2Fpg.md +197 -197
  37. package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +16 -16
  38. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +218 -218
  39. package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +16 -16
  40. package/.docs/organized/changelogs/%40mastra%2Frag.md +65 -65
  41. package/.docs/organized/changelogs/%40mastra%2Freact.md +61 -61
  42. package/.docs/organized/changelogs/%40mastra%2Fs3vectors.md +10 -9
  43. package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +6 -24
  44. package/.docs/organized/changelogs/%40mastra%2Fserver.md +206 -206
  45. package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +16 -16
  46. package/.docs/organized/changelogs/%40mastra%2Fupstash.md +191 -191
  47. package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +11 -11
  48. package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +11 -11
  49. package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +11 -11
  50. package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +11 -11
  51. package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +11 -11
  52. package/.docs/organized/changelogs/%40mastra%2Fvoice-gladia.md +11 -11
  53. package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +58 -58
  54. package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +11 -11
  55. package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +11 -11
  56. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +56 -56
  57. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +11 -11
  58. package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +11 -11
  59. package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +11 -11
  60. package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +11 -11
  61. package/.docs/organized/changelogs/create-mastra.md +27 -27
  62. package/.docs/organized/changelogs/mastra.md +87 -87
  63. package/.docs/organized/code-examples/a2a.md +4 -2
  64. package/.docs/organized/code-examples/agui.md +12 -9
  65. package/.docs/organized/code-examples/ai-sdk-useChat.md +12 -18
  66. package/.docs/organized/code-examples/ai-sdk-v5.md +4 -2
  67. package/.docs/organized/code-examples/bird-checker-with-express.md +5 -4
  68. package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +4 -3
  69. package/.docs/organized/code-examples/bird-checker-with-nextjs.md +4 -3
  70. package/.docs/organized/code-examples/client-side-tools.md +1 -0
  71. package/.docs/organized/code-examples/crypto-chatbot.md +1 -1
  72. package/.docs/organized/code-examples/experimental-auth-weather-agent.md +8 -177
  73. package/.docs/organized/code-examples/fireworks-r1.md +2 -2
  74. package/.docs/organized/code-examples/heads-up-game.md +10 -7
  75. package/.docs/organized/code-examples/mcp-configuration.md +5 -3
  76. package/.docs/organized/code-examples/mcp-registry-registry.md +3 -2
  77. package/.docs/organized/code-examples/memory-per-resource-example.md +4 -2
  78. package/.docs/organized/code-examples/memory-todo-agent.md +1 -0
  79. package/.docs/organized/code-examples/memory-with-context.md +2 -1
  80. package/.docs/organized/code-examples/memory-with-libsql.md +4 -2
  81. package/.docs/organized/code-examples/memory-with-mongodb.md +4 -2
  82. package/.docs/organized/code-examples/memory-with-pg.md +4 -2
  83. package/.docs/organized/code-examples/memory-with-processors.md +13 -8
  84. package/.docs/organized/code-examples/memory-with-upstash.md +5 -3
  85. package/.docs/organized/code-examples/openapi-spec-writer.md +32 -41
  86. package/.docs/organized/code-examples/quick-start.md +5 -32
  87. package/.docs/organized/code-examples/stock-price-tool.md +6 -5
  88. package/.docs/organized/code-examples/weather-agent.md +21 -16
  89. package/.docs/organized/code-examples/workflow-ai-recruiter.md +3 -2
  90. package/.docs/organized/code-examples/workflow-with-inline-steps.md +9 -12
  91. package/.docs/organized/code-examples/workflow-with-memory.md +16 -15
  92. package/.docs/organized/code-examples/workflow-with-separate-steps.md +2 -2
  93. package/.docs/organized/code-examples/workflow-with-suspend-resume.md +3 -2
  94. package/.docs/raw/agents/adding-voice.mdx +27 -22
  95. package/.docs/raw/agents/agent-memory.mdx +23 -15
  96. package/.docs/raw/agents/guardrails.mdx +33 -12
  97. package/.docs/raw/agents/networks.mdx +8 -4
  98. package/.docs/raw/agents/overview.mdx +21 -15
  99. package/.docs/raw/agents/using-tools.mdx +11 -8
  100. package/.docs/raw/auth/auth0.mdx +8 -8
  101. package/.docs/raw/auth/clerk.mdx +6 -6
  102. package/.docs/raw/auth/firebase.mdx +8 -8
  103. package/.docs/raw/auth/index.mdx +6 -6
  104. package/.docs/raw/auth/jwt.mdx +6 -6
  105. package/.docs/raw/auth/supabase.mdx +7 -7
  106. package/.docs/raw/auth/workos.mdx +8 -8
  107. package/.docs/raw/community/contributing-templates.mdx +3 -3
  108. package/.docs/raw/community/discord.mdx +1 -1
  109. package/.docs/raw/course/01-first-agent/08-exporting-your-agent.md +2 -1
  110. package/.docs/raw/course/01-first-agent/16-adding-memory-to-agent.md +2 -1
  111. package/.docs/raw/course/02-agent-tools-mcp/31-enhancing-memory-configuration.md +2 -0
  112. package/.docs/raw/course/03-agent-memory/04-creating-basic-memory-agent.md +1 -0
  113. package/.docs/raw/course/03-agent-memory/10-storage-configuration.md +2 -3
  114. package/.docs/raw/course/03-agent-memory/13-vector-store-configuration.md +2 -0
  115. package/.docs/raw/course/03-agent-memory/16-configuring-semantic-recall.md +2 -0
  116. package/.docs/raw/course/03-agent-memory/18-advanced-configuration-semantic-recall.md +1 -0
  117. package/.docs/raw/course/03-agent-memory/21-configuring-working-memory.md +2 -0
  118. package/.docs/raw/course/03-agent-memory/22-custom-working-memory-templates.md +1 -0
  119. package/.docs/raw/course/03-agent-memory/25-combining-memory-features.md +1 -0
  120. package/.docs/raw/course/03-agent-memory/27-creating-learning-assistant.md +1 -0
  121. package/.docs/raw/course/04-workflows/08-running-workflows-programmatically.md +2 -2
  122. package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +5 -5
  123. package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +7 -5
  124. package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +3 -3
  125. package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +4 -4
  126. package/.docs/raw/deployment/cloud-providers/index.mdx +11 -8
  127. package/.docs/raw/deployment/monorepo.mdx +2 -2
  128. package/.docs/raw/deployment/overview.mdx +2 -2
  129. package/.docs/raw/deployment/server-deployment.mdx +2 -10
  130. package/.docs/raw/deployment/serverless-platforms/cloudflare-deployer.mdx +4 -4
  131. package/.docs/raw/deployment/serverless-platforms/index.mdx +10 -7
  132. package/.docs/raw/deployment/serverless-platforms/netlify-deployer.mdx +4 -4
  133. package/.docs/raw/deployment/serverless-platforms/vercel-deployer.mdx +4 -4
  134. package/.docs/raw/deployment/web-framework.mdx +8 -8
  135. package/.docs/raw/{scorers → evals}/custom-scorers.mdx +6 -6
  136. package/.docs/raw/evals/off-the-shelf-scorers.mdx +50 -0
  137. package/.docs/raw/{scorers → evals}/overview.mdx +8 -8
  138. package/.docs/raw/evals/running-in-ci.mdx +113 -0
  139. package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +22 -21
  140. package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +8 -8
  141. package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +3 -0
  142. package/.docs/raw/frameworks/servers/express.mdx +10 -9
  143. package/.docs/raw/frameworks/web-frameworks/astro.mdx +6 -6
  144. package/.docs/raw/frameworks/web-frameworks/next-js.mdx +3 -3
  145. package/.docs/raw/frameworks/web-frameworks/sveltekit.mdx +4 -4
  146. package/.docs/raw/frameworks/web-frameworks/vite-react.mdx +2 -2
  147. package/.docs/raw/getting-started/installation.mdx +13 -12
  148. package/.docs/raw/getting-started/mcp-docs-server.mdx +1 -1
  149. package/.docs/raw/getting-started/project-structure.mdx +4 -4
  150. package/.docs/raw/getting-started/studio.mdx +8 -8
  151. package/.docs/raw/getting-started/templates.mdx +1 -1
  152. package/.docs/raw/guides/guide/ai-recruiter.mdx +264 -0
  153. package/.docs/raw/guides/guide/chef-michel.mdx +271 -0
  154. package/.docs/raw/guides/guide/notes-mcp-server.mdx +450 -0
  155. package/.docs/raw/guides/guide/research-assistant.mdx +389 -0
  156. package/.docs/raw/guides/guide/stock-agent.mdx +185 -0
  157. package/.docs/raw/guides/guide/web-search.mdx +291 -0
  158. package/.docs/raw/guides/index.mdx +43 -0
  159. package/.docs/raw/guides/migrations/agentnetwork.mdx +114 -0
  160. package/.docs/raw/guides/migrations/upgrade-to-v1/_template.mdx +50 -0
  161. package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +265 -0
  162. package/.docs/raw/guides/migrations/upgrade-to-v1/cli.mdx +48 -0
  163. package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +153 -0
  164. package/.docs/raw/guides/migrations/upgrade-to-v1/evals.mdx +230 -0
  165. package/.docs/raw/guides/migrations/upgrade-to-v1/mastra.mdx +171 -0
  166. package/.docs/raw/guides/migrations/upgrade-to-v1/mcp.mdx +114 -0
  167. package/.docs/raw/guides/migrations/upgrade-to-v1/memory.mdx +241 -0
  168. package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +83 -0
  169. package/.docs/raw/guides/migrations/upgrade-to-v1/processors.mdx +62 -0
  170. package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +270 -0
  171. package/.docs/raw/guides/migrations/upgrade-to-v1/tools.mdx +115 -0
  172. package/.docs/raw/guides/migrations/upgrade-to-v1/tracing.mdx +280 -0
  173. package/.docs/raw/guides/migrations/upgrade-to-v1/vectors.mdx +23 -0
  174. package/.docs/raw/guides/migrations/upgrade-to-v1/voice.mdx +39 -0
  175. package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +178 -0
  176. package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +367 -0
  177. package/.docs/raw/index.mdx +9 -9
  178. package/.docs/raw/{observability/logging.mdx → logging.mdx} +4 -4
  179. package/.docs/raw/mastra-cloud/dashboard.mdx +2 -2
  180. package/.docs/raw/mastra-cloud/observability.mdx +6 -6
  181. package/.docs/raw/mastra-cloud/overview.mdx +2 -2
  182. package/.docs/raw/mastra-cloud/setting-up.mdx +4 -4
  183. package/.docs/raw/memory/conversation-history.mdx +1 -0
  184. package/.docs/raw/memory/memory-processors.mdx +4 -3
  185. package/.docs/raw/memory/overview.mdx +9 -5
  186. package/.docs/raw/memory/semantic-recall.mdx +12 -7
  187. package/.docs/raw/memory/storage/memory-with-libsql.mdx +10 -5
  188. package/.docs/raw/memory/storage/memory-with-pg.mdx +9 -4
  189. package/.docs/raw/memory/storage/memory-with-upstash.mdx +9 -4
  190. package/.docs/raw/memory/threads-and-resources.mdx +11 -13
  191. package/.docs/raw/memory/working-memory.mdx +30 -14
  192. package/.docs/raw/observability/overview.mdx +13 -30
  193. package/.docs/raw/observability/{ai-tracing → tracing}/exporters/arize.mdx +10 -18
  194. package/.docs/raw/observability/{ai-tracing → tracing}/exporters/braintrust.mdx +7 -16
  195. package/.docs/raw/observability/{ai-tracing → tracing}/exporters/cloud.mdx +11 -17
  196. package/.docs/raw/observability/{ai-tracing → tracing}/exporters/default.mdx +16 -20
  197. package/.docs/raw/observability/{ai-tracing → tracing}/exporters/langfuse.mdx +7 -16
  198. package/.docs/raw/observability/{ai-tracing → tracing}/exporters/langsmith.mdx +7 -16
  199. package/.docs/raw/observability/{ai-tracing → tracing}/exporters/otel.mdx +9 -18
  200. package/.docs/raw/observability/{ai-tracing → tracing}/overview.mdx +107 -142
  201. package/.docs/raw/observability/{ai-tracing → tracing}/processors/sensitive-data-filter.mdx +14 -13
  202. package/.docs/raw/rag/chunking-and-embedding.mdx +5 -5
  203. package/.docs/raw/rag/overview.mdx +3 -13
  204. package/.docs/raw/rag/retrieval.mdx +24 -12
  205. package/.docs/raw/rag/vector-databases.mdx +7 -1
  206. package/.docs/raw/reference/agents/agent.mdx +33 -28
  207. package/.docs/raw/reference/agents/generate.mdx +10 -10
  208. package/.docs/raw/reference/agents/generateLegacy.mdx +8 -8
  209. package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +21 -15
  210. package/.docs/raw/reference/agents/getDefaultOptions.mdx +69 -0
  211. package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +22 -16
  212. package/.docs/raw/reference/agents/getDescription.mdx +1 -1
  213. package/.docs/raw/reference/agents/getInstructions.mdx +8 -8
  214. package/.docs/raw/reference/agents/getLLM.mdx +9 -9
  215. package/.docs/raw/reference/agents/getMemory.mdx +9 -9
  216. package/.docs/raw/reference/agents/getModel.mdx +10 -10
  217. package/.docs/raw/reference/agents/getVoice.mdx +8 -8
  218. package/.docs/raw/reference/agents/listAgents.mdx +9 -9
  219. package/.docs/raw/reference/agents/listScorers.mdx +7 -7
  220. package/.docs/raw/reference/agents/listTools.mdx +7 -7
  221. package/.docs/raw/reference/agents/listWorkflows.mdx +7 -7
  222. package/.docs/raw/reference/agents/network.mdx +11 -10
  223. package/.docs/raw/reference/auth/auth0.mdx +4 -4
  224. package/.docs/raw/reference/auth/clerk.mdx +4 -4
  225. package/.docs/raw/reference/auth/firebase.mdx +6 -6
  226. package/.docs/raw/reference/auth/jwt.mdx +4 -4
  227. package/.docs/raw/reference/auth/supabase.mdx +4 -4
  228. package/.docs/raw/reference/auth/workos.mdx +4 -4
  229. package/.docs/raw/reference/cli/mastra.mdx +7 -7
  230. package/.docs/raw/reference/client-js/agents.mdx +6 -2
  231. package/.docs/raw/reference/client-js/mastra-client.mdx +7 -7
  232. package/.docs/raw/reference/client-js/memory.mdx +24 -16
  233. package/.docs/raw/reference/client-js/observability.mdx +11 -11
  234. package/.docs/raw/reference/client-js/workflows.mdx +6 -34
  235. package/.docs/raw/reference/core/getAgent.mdx +1 -1
  236. package/.docs/raw/reference/core/getAgentById.mdx +1 -1
  237. package/.docs/raw/reference/core/getDeployer.mdx +2 -2
  238. package/.docs/raw/reference/core/getLogger.mdx +2 -2
  239. package/.docs/raw/reference/core/getMCPServer.mdx +31 -15
  240. package/.docs/raw/reference/core/getMCPServerById.mdx +81 -0
  241. package/.docs/raw/reference/core/getScorer.mdx +3 -3
  242. package/.docs/raw/reference/core/getScorerById.mdx +79 -0
  243. package/.docs/raw/reference/core/getServer.mdx +2 -2
  244. package/.docs/raw/reference/core/getStorage.mdx +2 -2
  245. package/.docs/raw/reference/core/getTelemetry.mdx +2 -2
  246. package/.docs/raw/reference/core/getVector.mdx +2 -2
  247. package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
  248. package/.docs/raw/reference/core/listAgents.mdx +1 -1
  249. package/.docs/raw/reference/core/listLogs.mdx +2 -2
  250. package/.docs/raw/reference/core/listLogsByRunId.mdx +2 -2
  251. package/.docs/raw/reference/core/listMCPServers.mdx +65 -0
  252. package/.docs/raw/reference/core/listScorers.mdx +3 -3
  253. package/.docs/raw/reference/core/listVectors.mdx +36 -0
  254. package/.docs/raw/reference/core/listWorkflows.mdx +6 -6
  255. package/.docs/raw/reference/core/mastra-class.mdx +3 -2
  256. package/.docs/raw/reference/core/setLogger.mdx +2 -2
  257. package/.docs/raw/reference/core/setStorage.mdx +3 -2
  258. package/.docs/raw/reference/core/setTelemetry.mdx +2 -2
  259. package/.docs/raw/reference/deployer/cloudflare.mdx +2 -2
  260. package/.docs/raw/reference/deployer/deployer.mdx +0 -6
  261. package/.docs/raw/reference/deployer/netlify.mdx +2 -2
  262. package/.docs/raw/reference/deployer/vercel.mdx +3 -3
  263. package/.docs/raw/reference/evals/answer-relevancy.mdx +164 -126
  264. package/.docs/raw/reference/{scorers → evals}/answer-similarity.mdx +27 -27
  265. package/.docs/raw/reference/evals/bias.mdx +149 -115
  266. package/.docs/raw/reference/evals/completeness.mdx +148 -117
  267. package/.docs/raw/reference/evals/content-similarity.mdx +126 -113
  268. package/.docs/raw/reference/evals/context-precision.mdx +290 -133
  269. package/.docs/raw/reference/{scorers → evals}/context-relevance.mdx +6 -6
  270. package/.docs/raw/reference/{scorers → evals}/create-scorer.mdx +11 -11
  271. package/.docs/raw/reference/evals/faithfulness.mdx +163 -121
  272. package/.docs/raw/reference/evals/hallucination.mdx +159 -132
  273. package/.docs/raw/reference/evals/keyword-coverage.mdx +169 -125
  274. package/.docs/raw/reference/{scorers → evals}/mastra-scorer.mdx +5 -5
  275. package/.docs/raw/reference/{scorers → evals}/noise-sensitivity.mdx +9 -9
  276. package/.docs/raw/reference/evals/prompt-alignment.mdx +604 -182
  277. package/.docs/raw/reference/{scorers/run-experiment.mdx → evals/run-evals.mdx} +17 -18
  278. package/.docs/raw/reference/evals/textual-difference.mdx +149 -117
  279. package/.docs/raw/reference/evals/tone-consistency.mdx +149 -125
  280. package/.docs/raw/reference/{scorers → evals}/tool-call-accuracy.mdx +8 -6
  281. package/.docs/raw/reference/evals/toxicity.mdx +152 -96
  282. package/.docs/raw/reference/{observability/logging → logging}/pino-logger.mdx +2 -2
  283. package/.docs/raw/reference/memory/createThread.mdx +5 -5
  284. package/.docs/raw/reference/memory/deleteMessages.mdx +7 -7
  285. package/.docs/raw/reference/memory/getThreadById.mdx +4 -4
  286. package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +110 -0
  287. package/.docs/raw/reference/memory/memory-class.mdx +13 -9
  288. package/.docs/raw/reference/memory/query.mdx +58 -57
  289. package/.docs/raw/reference/memory/recall.mdx +185 -0
  290. package/.docs/raw/reference/observability/tracing/configuration.mdx +245 -0
  291. package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/arize.mdx +13 -13
  292. package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/braintrust.mdx +11 -8
  293. package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/cloud-exporter.mdx +21 -19
  294. package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/console-exporter.mdx +49 -17
  295. package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/default-exporter.mdx +42 -41
  296. package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/langfuse.mdx +10 -7
  297. package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/langsmith.mdx +10 -7
  298. package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/otel.mdx +5 -5
  299. package/.docs/raw/reference/observability/tracing/instances.mdx +168 -0
  300. package/.docs/raw/reference/observability/{ai-tracing → tracing}/interfaces.mdx +115 -89
  301. package/.docs/raw/reference/observability/{ai-tracing → tracing}/processors/sensitive-data-filter.mdx +3 -3
  302. package/.docs/raw/reference/observability/{ai-tracing/span.mdx → tracing/spans.mdx} +59 -41
  303. package/.docs/raw/reference/processors/batch-parts-processor.mdx +1 -1
  304. package/.docs/raw/reference/processors/language-detector.mdx +1 -1
  305. package/.docs/raw/reference/processors/moderation-processor.mdx +1 -1
  306. package/.docs/raw/reference/processors/pii-detector.mdx +1 -1
  307. package/.docs/raw/reference/processors/prompt-injection-detector.mdx +1 -1
  308. package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +1 -1
  309. package/.docs/raw/reference/processors/token-limiter-processor.mdx +1 -1
  310. package/.docs/raw/reference/processors/unicode-normalizer.mdx +1 -1
  311. package/.docs/raw/reference/rag/chunk.mdx +1 -8
  312. package/.docs/raw/reference/rag/database-config.mdx +7 -7
  313. package/.docs/raw/reference/rag/metadata-filters.mdx +14 -11
  314. package/.docs/raw/reference/storage/libsql.mdx +2 -0
  315. package/.docs/raw/reference/storage/mssql.mdx +5 -0
  316. package/.docs/raw/reference/storage/postgresql.mdx +6 -0
  317. package/.docs/raw/reference/storage/upstash.mdx +1 -0
  318. package/.docs/raw/reference/streaming/agents/stream.mdx +12 -12
  319. package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +8 -8
  320. package/.docs/raw/reference/streaming/workflows/observeStream.mdx +3 -3
  321. package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +3 -3
  322. package/.docs/raw/reference/streaming/workflows/resumeStreamVNext.mdx +6 -6
  323. package/.docs/raw/reference/streaming/workflows/stream.mdx +10 -10
  324. package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +11 -11
  325. package/.docs/raw/reference/templates/overview.mdx +2 -2
  326. package/.docs/raw/reference/tools/create-tool.mdx +52 -35
  327. package/.docs/raw/reference/tools/graph-rag-tool.mdx +15 -15
  328. package/.docs/raw/reference/tools/mcp-client.mdx +1 -1
  329. package/.docs/raw/reference/tools/mcp-server.mdx +119 -35
  330. package/.docs/raw/reference/tools/vector-query-tool.mdx +27 -26
  331. package/.docs/raw/reference/vectors/libsql.mdx +1 -0
  332. package/.docs/raw/reference/vectors/pg.mdx +3 -0
  333. package/.docs/raw/reference/vectors/upstash.mdx +1 -0
  334. package/.docs/raw/reference/voice/google-gemini-live.mdx +1 -1
  335. package/.docs/raw/reference/voice/voice.addTools.mdx +3 -3
  336. package/.docs/raw/reference/workflows/run-methods/cancel.mdx +4 -4
  337. package/.docs/raw/reference/workflows/run-methods/resume.mdx +14 -14
  338. package/.docs/raw/reference/workflows/run-methods/start.mdx +17 -17
  339. package/.docs/raw/reference/workflows/run.mdx +1 -8
  340. package/.docs/raw/reference/workflows/step.mdx +5 -5
  341. package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +2 -2
  342. package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
  343. package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +7 -13
  344. package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
  345. package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
  346. package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
  347. package/.docs/raw/reference/workflows/workflow-methods/map.mdx +5 -0
  348. package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
  349. package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +2 -2
  350. package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +1 -1
  351. package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +1 -1
  352. package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
  353. package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +1 -1
  354. package/.docs/raw/reference/workflows/workflow.mdx +1 -1
  355. package/.docs/raw/server-db/custom-api-routes.mdx +2 -2
  356. package/.docs/raw/server-db/mastra-client.mdx +19 -18
  357. package/.docs/raw/server-db/middleware.mdx +7 -7
  358. package/.docs/raw/server-db/production-server.mdx +4 -4
  359. package/.docs/raw/server-db/{runtime-context.mdx → request-context.mdx} +46 -45
  360. package/.docs/raw/server-db/storage.mdx +29 -21
  361. package/.docs/raw/streaming/events.mdx +3 -3
  362. package/.docs/raw/streaming/overview.mdx +5 -5
  363. package/.docs/raw/streaming/tool-streaming.mdx +18 -17
  364. package/.docs/raw/streaming/workflow-streaming.mdx +1 -1
  365. package/.docs/raw/tools-mcp/advanced-usage.mdx +5 -4
  366. package/.docs/raw/tools-mcp/mcp-overview.mdx +32 -19
  367. package/.docs/raw/tools-mcp/overview.mdx +11 -11
  368. package/.docs/raw/voice/overview.mdx +63 -43
  369. package/.docs/raw/voice/speech-to-speech.mdx +5 -3
  370. package/.docs/raw/voice/speech-to-text.mdx +9 -8
  371. package/.docs/raw/voice/text-to-speech.mdx +12 -11
  372. package/.docs/raw/workflows/agents-and-tools.mdx +9 -5
  373. package/.docs/raw/workflows/control-flow.mdx +3 -3
  374. package/.docs/raw/workflows/error-handling.mdx +2 -21
  375. package/.docs/raw/workflows/human-in-the-loop.mdx +7 -4
  376. package/.docs/raw/workflows/inngest-workflow.mdx +2 -2
  377. package/.docs/raw/workflows/input-data-mapping.mdx +107 -0
  378. package/.docs/raw/workflows/overview.mdx +17 -16
  379. package/.docs/raw/workflows/snapshots.mdx +13 -11
  380. package/.docs/raw/workflows/suspend-and-resume.mdx +23 -15
  381. package/CHANGELOG.md +52 -47
  382. package/README.md +11 -2
  383. package/dist/{chunk-TUAHUTTB.js → chunk-5NJC7NRO.js} +3 -0
  384. package/dist/index.d.ts.map +1 -1
  385. package/dist/prepare-docs/copy-raw.d.ts.map +1 -1
  386. package/dist/prepare-docs/prepare.js +1 -1
  387. package/dist/prompts/migration.d.ts +6 -0
  388. package/dist/prompts/migration.d.ts.map +1 -0
  389. package/dist/stdio.js +402 -30
  390. package/dist/tools/migration.d.ts +40 -0
  391. package/dist/tools/migration.d.ts.map +1 -0
  392. package/package.json +8 -12
  393. package/.docs/organized/changelogs/%40mastra%2Fcloud.md +0 -302
  394. package/.docs/raw/observability/nextjs-tracing.mdx +0 -109
  395. package/.docs/raw/observability/otel-tracing.mdx +0 -189
  396. package/.docs/raw/reference/agents/getScorers.mdx +0 -69
  397. package/.docs/raw/reference/agents/getTools.mdx +0 -69
  398. package/.docs/raw/reference/agents/getWorkflows.mdx +0 -69
  399. package/.docs/raw/reference/client-js/workflows-legacy.mdx +0 -143
  400. package/.docs/raw/reference/core/getAgents.mdx +0 -35
  401. package/.docs/raw/reference/core/getLogs.mdx +0 -96
  402. package/.docs/raw/reference/core/getLogsByRunId.mdx +0 -87
  403. package/.docs/raw/reference/core/getMCPServers.mdx +0 -36
  404. package/.docs/raw/reference/core/getMemory.mdx +0 -36
  405. package/.docs/raw/reference/core/getScorerByName.mdx +0 -78
  406. package/.docs/raw/reference/core/getScorers.mdx +0 -43
  407. package/.docs/raw/reference/core/getVectors.mdx +0 -36
  408. package/.docs/raw/reference/core/getWorkflows.mdx +0 -45
  409. package/.docs/raw/reference/evals/context-position.mdx +0 -197
  410. package/.docs/raw/reference/evals/context-relevancy.mdx +0 -196
  411. package/.docs/raw/reference/evals/contextual-recall.mdx +0 -196
  412. package/.docs/raw/reference/evals/summarization.mdx +0 -212
  413. package/.docs/raw/reference/legacyWorkflows/after.mdx +0 -89
  414. package/.docs/raw/reference/legacyWorkflows/afterEvent.mdx +0 -79
  415. package/.docs/raw/reference/legacyWorkflows/commit.mdx +0 -33
  416. package/.docs/raw/reference/legacyWorkflows/createRun.mdx +0 -76
  417. package/.docs/raw/reference/legacyWorkflows/else.mdx +0 -68
  418. package/.docs/raw/reference/legacyWorkflows/events.mdx +0 -305
  419. package/.docs/raw/reference/legacyWorkflows/execute.mdx +0 -110
  420. package/.docs/raw/reference/legacyWorkflows/if.mdx +0 -108
  421. package/.docs/raw/reference/legacyWorkflows/resume.mdx +0 -158
  422. package/.docs/raw/reference/legacyWorkflows/resumeWithEvent.mdx +0 -133
  423. package/.docs/raw/reference/legacyWorkflows/snapshots.mdx +0 -207
  424. package/.docs/raw/reference/legacyWorkflows/start.mdx +0 -87
  425. package/.docs/raw/reference/legacyWorkflows/step-class.mdx +0 -100
  426. package/.docs/raw/reference/legacyWorkflows/step-condition.mdx +0 -137
  427. package/.docs/raw/reference/legacyWorkflows/step-function.mdx +0 -93
  428. package/.docs/raw/reference/legacyWorkflows/step-options.mdx +0 -69
  429. package/.docs/raw/reference/legacyWorkflows/step-retries.mdx +0 -196
  430. package/.docs/raw/reference/legacyWorkflows/suspend.mdx +0 -70
  431. package/.docs/raw/reference/legacyWorkflows/then.mdx +0 -72
  432. package/.docs/raw/reference/legacyWorkflows/until.mdx +0 -168
  433. package/.docs/raw/reference/legacyWorkflows/watch.mdx +0 -124
  434. package/.docs/raw/reference/legacyWorkflows/while.mdx +0 -168
  435. package/.docs/raw/reference/legacyWorkflows/workflow.mdx +0 -234
  436. package/.docs/raw/reference/memory/getThreadsByResourceId.mdx +0 -79
  437. package/.docs/raw/reference/memory/getThreadsByResourceIdPaginated.mdx +0 -110
  438. package/.docs/raw/reference/observability/ai-tracing/ai-tracing.mdx +0 -185
  439. package/.docs/raw/reference/observability/ai-tracing/configuration.mdx +0 -238
  440. package/.docs/raw/reference/observability/otel-tracing/otel-config.mdx +0 -117
  441. package/.docs/raw/reference/observability/otel-tracing/providers/arize-ax.mdx +0 -81
  442. package/.docs/raw/reference/observability/otel-tracing/providers/arize-phoenix.mdx +0 -121
  443. package/.docs/raw/reference/observability/otel-tracing/providers/braintrust.mdx +0 -40
  444. package/.docs/raw/reference/observability/otel-tracing/providers/dash0.mdx +0 -40
  445. package/.docs/raw/reference/observability/otel-tracing/providers/index.mdx +0 -20
  446. package/.docs/raw/reference/observability/otel-tracing/providers/keywordsai.mdx +0 -73
  447. package/.docs/raw/reference/observability/otel-tracing/providers/laminar.mdx +0 -41
  448. package/.docs/raw/reference/observability/otel-tracing/providers/langfuse.mdx +0 -84
  449. package/.docs/raw/reference/observability/otel-tracing/providers/langsmith.mdx +0 -48
  450. package/.docs/raw/reference/observability/otel-tracing/providers/langwatch.mdx +0 -43
  451. package/.docs/raw/reference/observability/otel-tracing/providers/new-relic.mdx +0 -40
  452. package/.docs/raw/reference/observability/otel-tracing/providers/signoz.mdx +0 -40
  453. package/.docs/raw/reference/observability/otel-tracing/providers/traceloop.mdx +0 -40
  454. package/.docs/raw/reference/scorers/answer-relevancy.mdx +0 -227
  455. package/.docs/raw/reference/scorers/bias.mdx +0 -228
  456. package/.docs/raw/reference/scorers/completeness.mdx +0 -214
  457. package/.docs/raw/reference/scorers/content-similarity.mdx +0 -197
  458. package/.docs/raw/reference/scorers/context-precision.mdx +0 -352
  459. package/.docs/raw/reference/scorers/faithfulness.mdx +0 -241
  460. package/.docs/raw/reference/scorers/hallucination.mdx +0 -252
  461. package/.docs/raw/reference/scorers/keyword-coverage.mdx +0 -229
  462. package/.docs/raw/reference/scorers/prompt-alignment.mdx +0 -668
  463. package/.docs/raw/reference/scorers/textual-difference.mdx +0 -203
  464. package/.docs/raw/reference/scorers/tone-consistency.mdx +0 -211
  465. package/.docs/raw/reference/scorers/toxicity.mdx +0 -228
  466. package/.docs/raw/reference/workflows/run-methods/watch.mdx +0 -73
  467. package/.docs/raw/scorers/evals-old-api/custom-eval.mdx +0 -24
  468. package/.docs/raw/scorers/evals-old-api/overview.mdx +0 -106
  469. package/.docs/raw/scorers/evals-old-api/running-in-ci.mdx +0 -85
  470. package/.docs/raw/scorers/evals-old-api/textual-evals.mdx +0 -58
  471. package/.docs/raw/scorers/off-the-shelf-scorers.mdx +0 -50
  472. package/.docs/raw/workflows-legacy/control-flow.mdx +0 -774
  473. package/.docs/raw/workflows-legacy/dynamic-workflows.mdx +0 -239
  474. package/.docs/raw/workflows-legacy/error-handling.mdx +0 -187
  475. package/.docs/raw/workflows-legacy/nested-workflows.mdx +0 -360
  476. package/.docs/raw/workflows-legacy/overview.mdx +0 -182
  477. package/.docs/raw/workflows-legacy/runtime-variables.mdx +0 -156
  478. package/.docs/raw/workflows-legacy/steps.mdx +0 -115
  479. package/.docs/raw/workflows-legacy/suspend-and-resume.mdx +0 -406
  480. package/.docs/raw/workflows-legacy/variables.mdx +0 -318
@@ -55,13 +55,13 @@ Top-level files define how your Mastra project is configured, built, and connect
55
55
  | File | Description |
56
56
  | --------------------- | ----------------------------------------------------------------------------------------------------------------- |
57
57
  | `src/mastra/index.ts` | Central entry point where you configure and initialize Mastra. |
58
- | `.env.example` | Template for environment variables - copy and rename to `.env` to add your secret [model provider](/models) keys. |
58
+ | `.env.example` | Template for environment variables - copy and rename to `.env` to add your secret [model provider](/models/v1) keys. |
59
59
  | `package.json` | Defines project metadata, dependencies, and available npm scripts. |
60
60
  | `tsconfig.json` | Configures TypeScript options such as path aliases, compiler settings, and build output. |
61
61
 
62
62
  ## Next steps
63
63
 
64
- - Read more about [Mastra's features](/docs#why-mastra).
65
- - Integrate Mastra with your frontend framework: [Next.js](/docs/frameworks/web-frameworks/next-js), [React](/docs/frameworks/web-frameworks/vite-react), or [Astro](/docs/frameworks/web-frameworks/astro).
66
- - Build an agent from scratch following one of our [guides](/guides).
64
+ - Read more about [Mastra's features](/docs/v1#why-mastra).
65
+ - Integrate Mastra with your frontend framework: [Next.js](/docs/v1/frameworks/web-frameworks/next-js), [React](/docs/v1/frameworks/web-frameworks/vite-react), or [Astro](/docs/v1/frameworks/web-frameworks/astro).
66
+ - Build an agent from scratch following one of our [guides](/guides/v1).
67
67
  - Watch conceptual guides on our [YouTube channel](https://www.youtube.com/@mastra-ai) and [subscribe](https://www.youtube.com/@mastra-ai?sub_confirmation=1)!
@@ -61,7 +61,7 @@ The Studio UI provides an interactive development environment for you to test yo
61
61
 
62
62
  ### Agents
63
63
 
64
- Chat with your agent directly, dynamically switch [models](/models), and tweak settings like temperature and top-p to understand how they affect the output.
64
+ Chat with your agent directly, dynamically switch [models](/models/v1), and tweak settings like temperature and top-p to understand how they affect the output.
65
65
 
66
66
  <VideoPlayer src="https://res.cloudinary.com/mastra-assets/video/upload/v1751406022/local-dev-agents-playground_100_m3begx.mp4" />
67
67
 
@@ -91,7 +91,7 @@ When you run an agent or workflow, the Observability tab displays traces that hi
91
91
 
92
92
  ![](https://mastra.ai/_next/image?url=%2Ftracingafter.png&w=1920&q=75)
93
93
 
94
- AI Tracing filters out low-level framework details so your traces stay focused and readable.
94
+ Tracing filters out low-level framework details so your traces stay focused and readable.
95
95
 
96
96
  ### Scorers
97
97
 
@@ -99,7 +99,7 @@ The Scorers tab displays the results of your agent's scorers as they run. When m
99
99
 
100
100
  ## REST API
101
101
 
102
- The local development server exposes a complete set of REST API routes, allowing you to programmatically interact with your agents, workflows, and tools during development. This is particularly helpful if you plan to deploy the Mastra server, since the local development server uses the exact same API routes as the [production server](/docs/server-db/production-server), allowing you to develop and test against it with full parity.
102
+ The local development server exposes a complete set of REST API routes, allowing you to programmatically interact with your agents, workflows, and tools during development. This is particularly helpful if you plan to deploy the Mastra server, since the local development server uses the exact same API routes as the [production server](/docs/v1/server-db/production-server), allowing you to develop and test against it with full parity.
103
103
 
104
104
  You can explore all available endpoints in the OpenAPI specification at http://localhost:4111/openapi.json, which details every endpoint and its request and response schemas.
105
105
 
@@ -116,7 +116,7 @@ The OpenAPI and Swagger endpoints are disabled in production by default. To enab
116
116
  By default, the development server runs at http://localhost:4111. You can change the `host` and `port` in the Mastra server configuration:
117
117
 
118
118
  ```typescript
119
- import { Mastra } from "@mastra/core/mastra";
119
+ import { Mastra } from "@mastra/core";
120
120
 
121
121
  export const mastra = new Mastra({
122
122
  server: {
@@ -128,10 +128,10 @@ export const mastra = new Mastra({
128
128
 
129
129
  ### Local HTTPS
130
130
 
131
- Mastra supports local HTTPS development through the [`--https`](/reference/cli/mastra#--https) flag, which automatically creates and manages certificates for your project. When you run `mastra dev --https`, a private key and certificate are generated for localhost (or your configured host). For custom certificate management, you can provide your own key and certificate files through the server configuration:
131
+ Mastra supports local HTTPS development through the [`--https`](/reference/v1/cli/mastra#--https) flag, which automatically creates and manages certificates for your project. When you run `mastra dev --https`, a private key and certificate are generated for localhost (or your configured host). For custom certificate management, you can provide your own key and certificate files through the server configuration:
132
132
 
133
133
  ```typescript
134
- import { Mastra } from "@mastra/core/mastra";
134
+ import { Mastra } from "@mastra/core";
135
135
  import fs from "node:fs";
136
136
 
137
137
  export const mastra = new Mastra({
@@ -146,5 +146,5 @@ export const mastra = new Mastra({
146
146
 
147
147
  ## Next steps
148
148
 
149
- - Learn more about Mastra's suggested [project structure](/docs/getting-started/project-structure).
150
- - Integrate Mastra with your frontend framework of choice - [Next.js](/docs/frameworks/web-frameworks/next-js), [React](/docs/frameworks/web-frameworks/vite-react), or [Astro](/docs/frameworks/web-frameworks/astro).
149
+ - Learn more about Mastra's suggested [project structure](/docs/v1/getting-started/project-structure).
150
+ - Integrate Mastra with your frontend framework of choice - [Next.js](/docs/v1/frameworks/web-frameworks/next-js), [React](/docs/v1/frameworks/web-frameworks/vite-react), or [Astro](/docs/v1/frameworks/web-frameworks/astro).
@@ -70,4 +70,4 @@ After installation:
70
70
  Each template includes a comprehensive README with specific setup instructions and usage examples.
71
71
  :::
72
72
 
73
- For detailed information on creating templates, see the [Templates Reference](/reference/templates/overview).
73
+ For detailed information on creating templates, see the [Templates Reference](/reference/v1/templates/overview).
@@ -0,0 +1,264 @@
1
+ ---
2
+ title: "Guide: Building an AI Recruiter | Mastra Workflows | Guides"
3
+ description: Guide on building a recruiter workflow in Mastra to gather and process candidate information using LLMs.
4
+ ---
5
+
6
+ import Steps from "@site/src/components/Steps";
7
+ import StepItem from "@site/src/components/StepItem";
8
+
9
+ # Building an AI Recruiter
10
+
11
+ In this guide, you'll learn how Mastra helps you build workflows with LLMs.
12
+
13
+ You'll create a workflow that gathers information from a candidate's resume, then branches to either a technical or behavioral question based on the candidate's profile. Along the way, you'll see how to structure workflow steps, handle branching, and integrate LLM calls.
14
+
15
+ ## Prerequisites
16
+
17
+ - Node.js `v22.13.0` or later installed
18
+ - An API key from a supported [Model Provider](/models/v1)
19
+ - An existing Mastra project (Follow the [installation guide](/docs/v1/getting-started/installation) to set up a new project)
20
+
21
+ ## Building the Workflow
22
+
23
+ Set up the Workflow, define steps to extract and classify candidate data, and then ask suitable follow-up questions.
24
+
25
+ <Steps>
26
+
27
+ <StepItem>
28
+
29
+ Create a new file `src/mastra/workflows/candidate-workflow.ts` and define your workflow:
30
+
31
+ ```ts copy title="src/mastra/workflows/candidate-workflow.ts"
32
+ import { createWorkflow, createStep } from "@mastra/core/workflows";
33
+ import { z } from "zod";
34
+
35
+ export const candidateWorkflow = createWorkflow({
36
+ id: "candidate-workflow",
37
+ inputSchema: z.object({
38
+ resumeText: z.string(),
39
+ }),
40
+ outputSchema: z.object({
41
+ askAboutSpecialty: z.object({
42
+ question: z.string(),
43
+ }),
44
+ askAboutRole: z.object({
45
+ question: z.string(),
46
+ }),
47
+ }),
48
+ }).commit();
49
+ ```
50
+
51
+ </StepItem>
52
+
53
+ <StepItem>
54
+
55
+ You want to extract candidate details from the resume text and classify the person as "technical" or "non-technical". This step calls an LLM to parse the resume and returns structured JSON, including the name, technical status, specialty, and the original resume text. Defined through the `inputSchema` you get access to the `resumeText` inside `execute()`. Use it to prompt an LLM and return the organized fields.
56
+
57
+ To the existing `src/mastra/workflows/candidate-workflow.ts` file add the following:
58
+
59
+ ```ts copy title="src/mastra/workflows/candidate-workflow.ts"
60
+ import { Agent } from "@mastra/core/agent";
61
+ import { openai } from "@ai-sdk/openai";
62
+
63
+ const recruiter = new Agent({
64
+ id: "recruiter-agent",
65
+ name: "Recruiter Agent",
66
+ instructions: `You are a recruiter.`,
67
+ model: openai("gpt-4o-mini"),
68
+ });
69
+
70
+ const gatherCandidateInfo = createStep({
71
+ id: "gatherCandidateInfo",
72
+ inputSchema: z.object({
73
+ resumeText: z.string(),
74
+ }),
75
+ outputSchema: z.object({
76
+ candidateName: z.string(),
77
+ isTechnical: z.boolean(),
78
+ specialty: z.string(),
79
+ resumeText: z.string(),
80
+ }),
81
+ execute: async ({ inputData }) => {
82
+ const resumeText = inputData?.resumeText;
83
+
84
+ const prompt = `Extract details from the resume text:
85
+ "${resumeText}"`;
86
+
87
+ const res = await recruiter.generate(prompt, {
88
+ structuredOutput: {
89
+ schema: z.object({
90
+ candidateName: z.string(),
91
+ isTechnical: z.boolean(),
92
+ specialty: z.string(),
93
+ resumeText: z.string(),
94
+ }),
95
+ },
96
+ });
97
+
98
+ return res.object;
99
+ },
100
+ });
101
+ ```
102
+
103
+ Since you're using a Recruiter agent inside `execute()` you need to define it above the step and add the necessary imports.
104
+
105
+ </StepItem>
106
+
107
+ <StepItem>
108
+
109
+ This step prompts a candidate who is identified as "technical" for more information about how they got into their specialty. It uses the entire resume text so the LLM can craft a relevant follow-up question.
110
+
111
+ To the existing `src/mastra/workflows/candidate-workflow.ts` file add the following:
112
+
113
+ ```ts copy title="src/mastra/workflows/candidate-workflow.ts"
114
+ const askAboutSpecialty = createStep({
115
+ id: "askAboutSpecialty",
116
+ inputSchema: z.object({
117
+ candidateName: z.string(),
118
+ isTechnical: z.boolean(),
119
+ specialty: z.string(),
120
+ resumeText: z.string(),
121
+ }),
122
+ outputSchema: z.object({
123
+ question: z.string(),
124
+ }),
125
+ execute: async ({ inputData: candidateInfo }) => {
126
+ const prompt = `You are a recruiter. Given the resume below, craft a short question
127
+ for ${candidateInfo?.candidateName} about how they got into "${candidateInfo?.specialty}".
128
+ Resume: ${candidateInfo?.resumeText}`;
129
+ const res = await recruiter.generate(prompt);
130
+
131
+ return { question: res?.text?.trim() || "" };
132
+ },
133
+ });
134
+ ```
135
+
136
+ </StepItem>
137
+
138
+ <StepItem>
139
+
140
+ If the candidate is "non-technical", you want a different follow-up question. This step asks what interests them most about the role, again referencing their complete resume text. The `execute()` function solicits a role-focused query from the LLM.
141
+
142
+ To the existing `src/mastra/workflows/candidate-workflow.ts` file add the following:
143
+
144
+ ```ts title="src/mastra/workflows/candidate-workflow.ts" copy
145
+ const askAboutRole = createStep({
146
+ id: "askAboutRole",
147
+ inputSchema: z.object({
148
+ candidateName: z.string(),
149
+ isTechnical: z.boolean(),
150
+ specialty: z.string(),
151
+ resumeText: z.string(),
152
+ }),
153
+ outputSchema: z.object({
154
+ question: z.string(),
155
+ }),
156
+ execute: async ({ inputData: candidateInfo }) => {
157
+ const prompt = `You are a recruiter. Given the resume below, craft a short question
158
+ for ${candidateInfo?.candidateName} asking what interests them most about this role.
159
+ Resume: ${candidateInfo?.resumeText}`;
160
+ const res = await recruiter.generate(prompt);
161
+ return { question: res?.text?.trim() || "" };
162
+ },
163
+ });
164
+ ```
165
+
166
+ </StepItem>
167
+
168
+ <StepItem>
169
+
170
+ You now combine the steps to implement branching logic based on the candidate's technical status. The workflow first gathers candidate data, then either asks about their specialty or about their role, depending on `isTechnical`. This is done by chaining `gatherCandidateInfo` with `askAboutSpecialty` and `askAboutRole`.
171
+
172
+ To the existing `src/mastra/workflows/candidate-workflow.ts` file change the `candidateWorkflow` like so:
173
+
174
+ ```ts title="src/mastra/workflows/candidate-workflow.ts" copy {10-14}
175
+ export const candidateWorkflow = createWorkflow({
176
+ id: "candidate-workflow",
177
+ inputSchema: z.object({
178
+ resumeText: z.string(),
179
+ }),
180
+ outputSchema: z.object({
181
+ askAboutSpecialty: z.object({
182
+ question: z.string(),
183
+ }),
184
+ askAboutRole: z.object({
185
+ question: z.string(),
186
+ }),
187
+ }),
188
+ })
189
+ .then(gatherCandidateInfo)
190
+ .branch([
191
+ [async ({ inputData: { isTechnical } }) => isTechnical, askAboutSpecialty],
192
+ [async ({ inputData: { isTechnical } }) => !isTechnical, askAboutRole],
193
+ ])
194
+ .commit();
195
+ ```
196
+
197
+ </StepItem>
198
+
199
+ <StepItem>
200
+
201
+ In your `src/mastra/index.ts` file, register the workflow:
202
+
203
+ ```ts copy title="src/mastra/index.ts" {2, 5}
204
+ import { Mastra } from "@mastra/core";
205
+ import { candidateWorkflow } from "./workflows/candidate-workflow";
206
+
207
+ export const mastra = new Mastra({
208
+ workflows: { candidateWorkflow },
209
+ });
210
+ ```
211
+
212
+ </StepItem>
213
+
214
+ </Steps>
215
+
216
+ ## Testing the Workflow
217
+
218
+ You can test your workflow inside [Studio](/docs/v1/getting-started/studio) by starting the development server:
219
+
220
+ ```bash copy
221
+ mastra dev
222
+ ```
223
+
224
+ In the sidebar, navigate to **Workflows** and select **candidate-workflow**. In the middle you'll see a graph view of your workflow and on the right sidebar the **Run** tab is selected by default. Inside this tab you can enter a resume text, for example:
225
+
226
+ ```text copy
227
+ Knowledgeable Software Engineer with more than 10 years of experience in software development. Proven expertise in the design and development of software databases and optimization of user interfaces.
228
+ ```
229
+
230
+ After entering the resume text, press the **Run** button. You should now see two status boxes (`GatherCandidateInfo` and `AskAboutSpecialty`) which contain the output of the workflow steps.
231
+
232
+ You can also test the workflow programmatically by calling [`.createRun()`](/reference/v1/workflows/workflow-methods/create-run) and [`.start()`](/reference/v1/workflows/run-methods/start). Create a new file `src/test-workflow.ts` and add the following:
233
+
234
+ ```ts copy title="src/test-workflow.ts"
235
+ import { mastra } from "./mastra";
236
+
237
+ const run = await mastra.getWorkflow("candidateWorkflow").createRun();
238
+
239
+ const res = await run.start({
240
+ inputData: {
241
+ resumeText:
242
+ "Knowledgeable Software Engineer with more than 10 years of experience in software development. Proven expertise in the design and development of software databases and optimization of user interfaces.",
243
+ },
244
+ });
245
+
246
+ // Dump the complete workflow result (includes status, steps and result)
247
+ console.log(JSON.stringify(res, null, 2));
248
+
249
+ // Get the workflow output value
250
+ if (res.status === "success") {
251
+ const question =
252
+ res.result.askAboutRole?.question ?? res.result.askAboutSpecialty?.question;
253
+
254
+ console.log(`Output value: ${question}`);
255
+ }
256
+ ```
257
+
258
+ Now, run the workflow and get output in your terminal:
259
+
260
+ ```bash copy
261
+ npx tsx src/test-workflow.ts
262
+ ```
263
+
264
+ You've just built a workflow to parse a resume and decide which question to ask based on the candidate's technical abilities. Congrats and happy hacking!
@@ -0,0 +1,271 @@
1
+ ---
2
+ title: "Guide: Building an AI Chef Assistant | Mastra Agent Guides"
3
+ description: Guide on creating a Chef Assistant agent in Mastra to help users cook meals with available ingredients.
4
+ ---
5
+
6
+ import Steps from "@site/src/components/Steps";
7
+ import StepItem from "@site/src/components/StepItem";
8
+ import YouTube from "@site/src/components/YouTube-player";
9
+
10
+ # Building an AI Chef Assistant
11
+
12
+ In this guide, you'll create a "Chef Assistant" agent that helps users cook meals with available ingredients.
13
+
14
+ You'll learn how to create the agent and register it with Mastra. Next, you'll interact with the agent through your terminal and get to know different response formats. Lastly, you'll access the agent through Mastra's local API endpoints.
15
+
16
+ <YouTube id="_tZhOqHCrF0" />
17
+
18
+ ## Prerequisites
19
+
20
+ - Node.js `v22.13.0` or later installed
21
+ - An API key from a supported [Model Provider](/models/v1)
22
+ - An existing Mastra project (Follow the [installation guide](/docs/v1/getting-started/installation) to set up a new project)
23
+
24
+ ## Creating the Agent
25
+
26
+ To create an agent in Mastra use the `Agent` class to define it and then register it with Mastra.
27
+
28
+ <Steps>
29
+
30
+ <StepItem>
31
+
32
+ Create a new file `src/mastra/agents/chefAgent.ts` and define your agent:
33
+
34
+ ```ts copy title="src/mastra/agents/chefAgent.ts"
35
+ import { openai } from "@ai-sdk/openai";
36
+ import { Agent } from "@mastra/core/agent";
37
+
38
+ export const chefAgent = new Agent({
39
+ id: "chef-agent",
40
+ name: "chef-agent",
41
+ instructions:
42
+ "You are Michel, a practical and experienced home chef" +
43
+ "You help people cook with whatever ingredients they have available.",
44
+ model: openai("gpt-4o-mini"),
45
+ });
46
+ ```
47
+
48
+ </StepItem>
49
+
50
+ <StepItem>
51
+
52
+ In your `src/mastra/index.ts` file, register the agent:
53
+
54
+ ```ts copy title="src/mastra/index.ts" {2, 5}
55
+ import { Mastra } from "@mastra/core";
56
+ import { chefAgent } from "./agents/chefAgent";
57
+
58
+ export const mastra = new Mastra({
59
+ agents: { chefAgent },
60
+ });
61
+ ```
62
+
63
+ </StepItem>
64
+
65
+ </Steps >
66
+
67
+ ## Interacting with the Agent
68
+
69
+ Depending on your requirements you can interact and get responses from the agent in different formats. In the following steps you'll learn how to generate, stream, and get structured output.
70
+
71
+ <Steps>
72
+
73
+ <StepItem>
74
+
75
+ Create a new file `src/index.ts` and add a `main()` function to it. Inside, craft a query to ask the agent and log its response.
76
+
77
+ ```ts copy title="src/index.ts"
78
+ import { chefAgent } from "./mastra/agents/chefAgent";
79
+
80
+ async function main() {
81
+ const query =
82
+ "In my kitchen I have: pasta, canned tomatoes, garlic, olive oil, and some dried herbs (basil and oregano). What can I make?";
83
+ console.log(`Query: ${query}`);
84
+
85
+ const response = await chefAgent.generate([{ role: "user", content: query }]);
86
+ console.log("\nšŸ‘Øā€šŸ³ Chef Michel:", response.text);
87
+ }
88
+
89
+ main();
90
+ ```
91
+
92
+ Afterwards, run the script:
93
+
94
+ ```bash copy
95
+ npx bun src/index.ts
96
+ ```
97
+
98
+ You should get an output similar to this:
99
+
100
+ ```
101
+ Query: In my kitchen I have: pasta, canned tomatoes, garlic, olive oil, and some dried herbs (basil and oregano). What can I make?
102
+
103
+ šŸ‘Øā€šŸ³ Chef Michel: You can make a delicious pasta al pomodoro! Here's how...
104
+ ```
105
+
106
+ </StepItem>
107
+
108
+ <StepItem>
109
+
110
+ In the previous example you might have waited a bit for the response without any sign of progress. To show the agent's output as it creates it you should instead stream its response to the terminal.
111
+
112
+ ```ts copy title="src/index.ts"
113
+ import { chefAgent } from "./mastra/agents/chefAgent";
114
+
115
+ async function main() {
116
+ const query =
117
+ "Now I'm over at my friend's house, and they have: chicken thighs, coconut milk, sweet potatoes, and some curry powder.";
118
+ console.log(`Query: ${query}`);
119
+
120
+ const stream = await chefAgent.stream([{ role: "user", content: query }]);
121
+
122
+ console.log("\n Chef Michel: ");
123
+
124
+ for await (const chunk of stream.textStream) {
125
+ process.stdout.write(chunk);
126
+ }
127
+
128
+ console.log("\n\nāœ… Recipe complete!");
129
+ }
130
+
131
+ main();
132
+ ```
133
+
134
+ Afterwards, run the script again:
135
+
136
+ ```bash copy
137
+ npx bun src/index.ts
138
+ ```
139
+
140
+ You should get an output similar to the one below. This time though you can read it line by line instead of one large block.
141
+
142
+ ```
143
+ Query: Now I'm over at my friend's house, and they have: chicken thighs, coconut milk, sweet potatoes, and some curry powder.
144
+
145
+ šŸ‘Øā€šŸ³ Chef Michel:
146
+ Great! You can make a comforting chicken curry...
147
+
148
+ āœ… Recipe complete!
149
+ ```
150
+
151
+ </StepItem>
152
+
153
+ <StepItem>
154
+
155
+ Instead of showing the agent's response to a human you might want to pass it along to another part of your code. For these instances your agent should return [structured output](/docs/v1/agents/overview#structured-output).
156
+
157
+ Change your `src/index.ts` to the following:
158
+
159
+ ```ts copy title="src/index.ts"
160
+ import { chefAgent } from "./mastra/agents/chefAgent";
161
+ import { z } from "zod";
162
+
163
+ async function main() {
164
+ const query =
165
+ "I want to make lasagna, can you generate a lasagna recipe for me?";
166
+ console.log(`Query: ${query}`);
167
+
168
+ // Define the Zod schema
169
+ const schema = z.object({
170
+ ingredients: z.array(
171
+ z.object({
172
+ name: z.string(),
173
+ amount: z.string(),
174
+ }),
175
+ ),
176
+ steps: z.array(z.string()),
177
+ });
178
+
179
+ const response = await chefAgent.generate(
180
+ [{ role: "user", content: query }],
181
+ {
182
+ structuredOutput: {
183
+ schema,
184
+ },
185
+ },
186
+ );
187
+ console.log("\nšŸ‘Øā€šŸ³ Chef Michel:", response.object);
188
+ }
189
+
190
+ main();
191
+ ```
192
+
193
+ After running the script again you should get an output similar to this:
194
+
195
+ ```
196
+ Query: I want to make lasagna, can you generate a lasagna recipe for me?
197
+
198
+ šŸ‘Øā€šŸ³ Chef Michel: {
199
+ ingredients: [
200
+ { name: "Lasagna noodles", amount: "12 sheets" },
201
+ { name: "Ground beef", amount: "1 pound" },
202
+ // ...
203
+ ],
204
+ steps: [
205
+ "Preheat oven to 375°F (190°C).",
206
+ "Cook the lasagna noodles according to package instructions.",
207
+ // ...
208
+ ]
209
+ }
210
+ ```
211
+
212
+ </StepItem>
213
+
214
+ </Steps >
215
+
216
+ ## Running the Agent Server
217
+
218
+ Learn how to interact with your agent through Mastra's API.
219
+
220
+ <Steps>
221
+
222
+ <StepItem>
223
+
224
+ You can run your agent as a service using the `mastra dev` command:
225
+
226
+ ```bash copy
227
+ mastra dev
228
+ ```
229
+
230
+ This will start a server exposing endpoints to interact with your registered agents. Within [Studio](/docs/v1/getting-started/studio) you can test your agent through a UI.
231
+
232
+ </StepItem>
233
+
234
+ <StepItem>
235
+
236
+ By default, `mastra dev` runs on `http://localhost:4111`. Your Chef Assistant agent will be available at:
237
+
238
+ ```
239
+ POST http://localhost:4111/api/agents/chefAgent/generate
240
+ ```
241
+
242
+ </StepItem>
243
+
244
+ <StepItem>
245
+
246
+ You can interact with the agent using `curl` from the command line:
247
+
248
+ ```bash copy
249
+ curl -X POST http://localhost:4111/api/agents/chefAgent/generate \
250
+ -H "Content-Type: application/json" \
251
+ -d '{
252
+ "messages": [
253
+ {
254
+ "role": "user",
255
+ "content": "I have eggs, flour, and milk. What can I make?"
256
+ }
257
+ ]
258
+ }'
259
+ ```
260
+
261
+ **Sample Response:**
262
+
263
+ ```json
264
+ {
265
+ "text": "You can make delicious pancakes! Here's a simple recipe..."
266
+ }
267
+ ```
268
+
269
+ </StepItem>
270
+
271
+ </Steps>