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

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 (345) hide show
  1. package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +29 -29
  2. package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +51 -51
  3. package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +45 -45
  4. package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +180 -180
  5. package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +39 -39
  6. package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +39 -39
  7. package/.docs/organized/changelogs/%40mastra%2Fconvex.md +68 -0
  8. package/.docs/organized/changelogs/%40mastra%2Fcore.md +331 -331
  9. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +31 -31
  10. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +16 -16
  11. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +41 -41
  12. package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +39 -39
  13. package/.docs/organized/changelogs/%40mastra%2Ffastembed.md +6 -0
  14. package/.docs/organized/changelogs/%40mastra%2Flance.md +39 -39
  15. package/.docs/organized/changelogs/%40mastra%2Flibsql.md +45 -45
  16. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +24 -24
  17. package/.docs/organized/changelogs/%40mastra%2Fmemory.md +24 -24
  18. package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +39 -39
  19. package/.docs/organized/changelogs/%40mastra%2Fmssql.md +39 -39
  20. package/.docs/organized/changelogs/%40mastra%2Fpg.md +45 -45
  21. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +96 -96
  22. package/.docs/organized/changelogs/%40mastra%2Frag.md +17 -17
  23. package/.docs/organized/changelogs/%40mastra%2Freact.md +49 -2
  24. package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +6 -0
  25. package/.docs/organized/changelogs/%40mastra%2Fserver.md +122 -122
  26. package/.docs/organized/changelogs/%40mastra%2Fupstash.md +39 -39
  27. package/.docs/organized/changelogs/create-mastra.md +31 -31
  28. package/.docs/organized/changelogs/mastra.md +51 -51
  29. package/.docs/organized/code-examples/agent-v6.md +151 -0
  30. package/.docs/organized/code-examples/ai-elements.md +1 -1
  31. package/.docs/organized/code-examples/quick-start.md +0 -4
  32. package/.docs/organized/code-examples/stock-price-tool.md +21 -2
  33. package/.docs/raw/agents/adding-voice.mdx +2 -3
  34. package/.docs/raw/agents/agent-approval.mdx +139 -6
  35. package/.docs/raw/agents/agent-memory.mdx +24 -32
  36. package/.docs/raw/agents/guardrails.mdx +61 -51
  37. package/.docs/raw/agents/networks.mdx +9 -13
  38. package/.docs/raw/agents/overview.mdx +40 -24
  39. package/.docs/raw/agents/processors.mdx +20 -19
  40. package/.docs/raw/agents/structured-output.mdx +11 -7
  41. package/.docs/raw/agents/using-tools.mdx +5 -6
  42. package/.docs/raw/course/01-first-agent/07-creating-your-agent.md +1 -2
  43. package/.docs/raw/course/01-first-agent/12-connecting-tool-to-agent.md +1 -1
  44. package/.docs/raw/course/01-first-agent/16-adding-memory-to-agent.md +1 -2
  45. package/.docs/raw/course/02-agent-tools-mcp/05-updating-your-agent.md +1 -1
  46. package/.docs/raw/course/02-agent-tools-mcp/10-updating-agent-instructions-zapier.md +1 -1
  47. package/.docs/raw/course/02-agent-tools-mcp/16-updating-agent-instructions-github.md +1 -1
  48. package/.docs/raw/course/02-agent-tools-mcp/21-updating-agent-instructions-hackernews.md +1 -1
  49. package/.docs/raw/course/02-agent-tools-mcp/27-updating-agent-instructions-filesystem.md +1 -1
  50. package/.docs/raw/course/02-agent-tools-mcp/31-enhancing-memory-configuration.md +2 -2
  51. package/.docs/raw/course/03-agent-memory/04-creating-basic-memory-agent.md +1 -2
  52. package/.docs/raw/course/03-agent-memory/08-configuring-conversation-history.md +1 -2
  53. package/.docs/raw/course/03-agent-memory/16-configuring-semantic-recall.md +3 -4
  54. package/.docs/raw/course/03-agent-memory/21-configuring-working-memory.md +2 -3
  55. package/.docs/raw/course/03-agent-memory/22-custom-working-memory-templates.md +2 -3
  56. package/.docs/raw/course/03-agent-memory/25-combining-memory-features.md +1 -2
  57. package/.docs/raw/course/03-agent-memory/27-creating-learning-assistant.md +2 -3
  58. package/.docs/raw/course/04-workflows/11-creating-an-ai-agent.md +2 -3
  59. package/.docs/raw/deployment/cloud-providers.mdx +20 -0
  60. package/.docs/raw/deployment/{building-mastra.mdx → mastra-server.mdx} +5 -5
  61. package/.docs/raw/deployment/monorepo.mdx +23 -44
  62. package/.docs/raw/deployment/overview.mdx +32 -50
  63. package/.docs/raw/deployment/web-framework.mdx +15 -19
  64. package/.docs/raw/evals/custom-scorers.mdx +9 -6
  65. package/.docs/raw/evals/overview.mdx +3 -6
  66. package/.docs/raw/evals/running-in-ci.mdx +2 -2
  67. package/.docs/raw/getting-started/manual-install.mdx +20 -20
  68. package/.docs/raw/getting-started/mcp-docs-server.mdx +2 -2
  69. package/.docs/raw/getting-started/start.mdx +10 -1
  70. package/.docs/raw/getting-started/studio.mdx +1 -1
  71. package/.docs/raw/guides/agent-frameworks/ai-sdk.mdx +4 -4
  72. package/.docs/raw/guides/build-your-ui/ai-sdk-ui.mdx +1033 -79
  73. package/.docs/raw/guides/build-your-ui/assistant-ui.mdx +8 -8
  74. package/.docs/raw/guides/build-your-ui/copilotkit.mdx +11 -11
  75. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/amazon-ec2.mdx +9 -9
  76. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/aws-lambda.mdx +13 -16
  77. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/azure-app-services.mdx +5 -7
  78. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/cloudflare-deployer.mdx +8 -5
  79. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/digital-ocean.mdx +12 -15
  80. package/.docs/raw/guides/deployment/index.mdx +32 -0
  81. package/.docs/raw/guides/deployment/inngest.mdx +386 -0
  82. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/netlify-deployer.mdx +7 -3
  83. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/vercel-deployer.mdx +8 -5
  84. package/.docs/raw/guides/getting-started/astro.mdx +292 -451
  85. package/.docs/raw/guides/getting-started/express.mdx +72 -153
  86. package/.docs/raw/guides/getting-started/hono.mdx +227 -0
  87. package/.docs/raw/guides/getting-started/next-js.mdx +170 -61
  88. package/.docs/raw/guides/getting-started/quickstart.mdx +4 -4
  89. package/.docs/raw/guides/getting-started/sveltekit.mdx +238 -409
  90. package/.docs/raw/guides/getting-started/vite-react.mdx +317 -147
  91. package/.docs/raw/guides/guide/ai-recruiter.mdx +10 -10
  92. package/.docs/raw/guides/guide/chef-michel.mdx +9 -11
  93. package/.docs/raw/guides/guide/notes-mcp-server.mdx +15 -15
  94. package/.docs/raw/guides/guide/research-assistant.mdx +17 -17
  95. package/.docs/raw/guides/guide/stock-agent.mdx +5 -5
  96. package/.docs/raw/guides/guide/web-search.mdx +8 -8
  97. package/.docs/raw/guides/guide/whatsapp-chat-bot.mdx +7 -7
  98. package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +2 -2
  99. package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +1 -1
  100. package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +17 -0
  101. package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +6 -0
  102. package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +0 -2
  103. package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +21 -23
  104. package/.docs/raw/index.mdx +2 -2
  105. package/.docs/raw/{deployment/mastra-cloud → mastra-cloud}/dashboard.mdx +2 -6
  106. package/.docs/raw/{deployment/mastra-cloud → mastra-cloud}/observability.mdx +1 -5
  107. package/.docs/raw/{deployment/mastra-cloud → mastra-cloud}/overview.mdx +2 -6
  108. package/.docs/raw/{deployment/mastra-cloud → mastra-cloud}/setting-up.mdx +8 -7
  109. package/.docs/raw/mcp/overview.mdx +31 -13
  110. package/.docs/raw/mcp/publishing-mcp-server.mdx +2 -2
  111. package/.docs/raw/memory/memory-processors.mdx +9 -9
  112. package/.docs/raw/memory/message-history.mdx +69 -0
  113. package/.docs/raw/memory/overview.mdx +34 -76
  114. package/.docs/raw/memory/semantic-recall.mdx +58 -49
  115. package/.docs/raw/memory/storage.mdx +188 -0
  116. package/.docs/raw/memory/working-memory.mdx +7 -7
  117. package/.docs/raw/observability/logging.mdx +10 -11
  118. package/.docs/raw/observability/overview.mdx +0 -1
  119. package/.docs/raw/observability/tracing/bridges/otel.mdx +2 -2
  120. package/.docs/raw/observability/tracing/exporters/cloud.mdx +1 -1
  121. package/.docs/raw/observability/tracing/exporters/default.mdx +3 -3
  122. package/.docs/raw/observability/tracing/exporters/langfuse.mdx +1 -2
  123. package/.docs/raw/observability/tracing/overview.mdx +23 -25
  124. package/.docs/raw/observability/tracing/processors/sensitive-data-filter.mdx +3 -3
  125. package/.docs/raw/rag/chunking-and-embedding.mdx +18 -31
  126. package/.docs/raw/rag/graph-rag.mdx +220 -0
  127. package/.docs/raw/rag/overview.mdx +2 -3
  128. package/.docs/raw/rag/retrieval.mdx +34 -51
  129. package/.docs/raw/rag/vector-databases.mdx +29 -25
  130. package/.docs/raw/reference/agents/agent.mdx +3 -3
  131. package/.docs/raw/reference/agents/generate.mdx +1 -1
  132. package/.docs/raw/reference/agents/generateLegacy.mdx +2 -2
  133. package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +3 -3
  134. package/.docs/raw/reference/agents/getDefaultOptions.mdx +3 -3
  135. package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +3 -3
  136. package/.docs/raw/reference/agents/getDescription.mdx +1 -1
  137. package/.docs/raw/reference/agents/getInstructions.mdx +3 -3
  138. package/.docs/raw/reference/agents/getLLM.mdx +3 -3
  139. package/.docs/raw/reference/agents/getMemory.mdx +3 -3
  140. package/.docs/raw/reference/agents/getModel.mdx +3 -3
  141. package/.docs/raw/reference/agents/getTools.mdx +2 -2
  142. package/.docs/raw/reference/agents/getVoice.mdx +2 -2
  143. package/.docs/raw/reference/agents/listAgents.mdx +2 -2
  144. package/.docs/raw/reference/agents/listScorers.mdx +3 -3
  145. package/.docs/raw/reference/agents/listTools.mdx +2 -2
  146. package/.docs/raw/reference/agents/listWorkflows.mdx +2 -2
  147. package/.docs/raw/reference/agents/network.mdx +1 -1
  148. package/.docs/raw/reference/ai-sdk/chat-route.mdx +3 -3
  149. package/.docs/raw/reference/ai-sdk/handle-chat-stream.mdx +2 -2
  150. package/.docs/raw/reference/ai-sdk/handle-network-stream.mdx +2 -2
  151. package/.docs/raw/reference/ai-sdk/handle-workflow-stream.mdx +2 -2
  152. package/.docs/raw/reference/ai-sdk/network-route.mdx +3 -3
  153. package/.docs/raw/reference/ai-sdk/to-ai-sdk-stream.mdx +6 -6
  154. package/.docs/raw/reference/ai-sdk/to-ai-sdk-v4-messages.mdx +127 -0
  155. package/.docs/raw/reference/ai-sdk/to-ai-sdk-v5-messages.mdx +107 -0
  156. package/.docs/raw/reference/ai-sdk/with-mastra.mdx +1 -1
  157. package/.docs/raw/reference/ai-sdk/workflow-route.mdx +3 -3
  158. package/.docs/raw/reference/auth/auth0.mdx +2 -3
  159. package/.docs/raw/reference/auth/clerk.mdx +2 -3
  160. package/.docs/raw/reference/auth/firebase.mdx +3 -5
  161. package/.docs/raw/reference/auth/jwt.mdx +2 -3
  162. package/.docs/raw/reference/auth/supabase.mdx +2 -3
  163. package/.docs/raw/reference/auth/workos.mdx +2 -3
  164. package/.docs/raw/reference/cli/create-mastra.mdx +10 -10
  165. package/.docs/raw/reference/cli/mastra.mdx +10 -10
  166. package/.docs/raw/reference/client-js/agents.mdx +1 -2
  167. package/.docs/raw/reference/client-js/mastra-client.mdx +2 -2
  168. package/.docs/raw/reference/client-js/workflows.mdx +20 -0
  169. package/.docs/raw/reference/core/getAgent.mdx +1 -1
  170. package/.docs/raw/reference/core/getAgentById.mdx +1 -1
  171. package/.docs/raw/reference/core/getDeployer.mdx +1 -1
  172. package/.docs/raw/reference/core/getLogger.mdx +1 -1
  173. package/.docs/raw/reference/core/getMCPServer.mdx +1 -1
  174. package/.docs/raw/reference/core/getMCPServerById.mdx +1 -1
  175. package/.docs/raw/reference/core/getMemory.mdx +2 -2
  176. package/.docs/raw/reference/core/getServer.mdx +3 -3
  177. package/.docs/raw/reference/core/getStorage.mdx +2 -2
  178. package/.docs/raw/reference/core/getStoredAgentById.mdx +3 -3
  179. package/.docs/raw/reference/core/getTelemetry.mdx +1 -1
  180. package/.docs/raw/reference/core/getVector.mdx +1 -1
  181. package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
  182. package/.docs/raw/reference/core/listAgents.mdx +1 -1
  183. package/.docs/raw/reference/core/listLogs.mdx +1 -1
  184. package/.docs/raw/reference/core/listLogsByRunId.mdx +1 -1
  185. package/.docs/raw/reference/core/listMCPServers.mdx +1 -1
  186. package/.docs/raw/reference/core/listMemory.mdx +2 -2
  187. package/.docs/raw/reference/core/listStoredAgents.mdx +4 -4
  188. package/.docs/raw/reference/core/listVectors.mdx +1 -1
  189. package/.docs/raw/reference/core/listWorkflows.mdx +1 -1
  190. package/.docs/raw/reference/core/setLogger.mdx +1 -1
  191. package/.docs/raw/reference/core/setStorage.mdx +2 -2
  192. package/.docs/raw/reference/core/setTelemetry.mdx +1 -1
  193. package/.docs/raw/reference/deployer/cloudflare.mdx +1 -2
  194. package/.docs/raw/reference/deployer/deployer.mdx +0 -1
  195. package/.docs/raw/reference/deployer/netlify.mdx +1 -1
  196. package/.docs/raw/reference/deployer/vercel.mdx +2 -4
  197. package/.docs/raw/reference/evals/answer-relevancy.mdx +1 -1
  198. package/.docs/raw/reference/evals/answer-similarity.mdx +1 -1
  199. package/.docs/raw/reference/evals/bias.mdx +1 -1
  200. package/.docs/raw/reference/evals/completeness.mdx +1 -1
  201. package/.docs/raw/reference/evals/content-similarity.mdx +1 -1
  202. package/.docs/raw/reference/evals/context-precision.mdx +1 -1
  203. package/.docs/raw/reference/evals/faithfulness.mdx +1 -1
  204. package/.docs/raw/reference/evals/hallucination.mdx +1 -1
  205. package/.docs/raw/reference/evals/keyword-coverage.mdx +1 -1
  206. package/.docs/raw/reference/evals/prompt-alignment.mdx +7 -7
  207. package/.docs/raw/reference/evals/textual-difference.mdx +1 -1
  208. package/.docs/raw/reference/evals/tone-consistency.mdx +1 -1
  209. package/.docs/raw/reference/evals/tool-call-accuracy.mdx +10 -10
  210. package/.docs/raw/reference/evals/toxicity.mdx +1 -1
  211. package/.docs/raw/reference/logging/pino-logger.mdx +7 -8
  212. package/.docs/raw/reference/memory/createThread.mdx +2 -2
  213. package/.docs/raw/reference/memory/deleteMessages.mdx +2 -2
  214. package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +2 -2
  215. package/.docs/raw/reference/memory/memory-class.mdx +3 -3
  216. package/.docs/raw/reference/memory/query.mdx +2 -2
  217. package/.docs/raw/reference/memory/recall.mdx +2 -2
  218. package/.docs/raw/reference/observability/tracing/exporters/langfuse.mdx +1 -1
  219. package/.docs/raw/reference/processors/batch-parts-processor.mdx +2 -2
  220. package/.docs/raw/reference/processors/language-detector.mdx +2 -2
  221. package/.docs/raw/reference/processors/message-history-processor.mdx +2 -2
  222. package/.docs/raw/reference/processors/moderation-processor.mdx +3 -3
  223. package/.docs/raw/reference/processors/pii-detector.mdx +3 -3
  224. package/.docs/raw/reference/processors/processor-interface.mdx +13 -13
  225. package/.docs/raw/reference/processors/prompt-injection-detector.mdx +2 -2
  226. package/.docs/raw/reference/processors/semantic-recall-processor.mdx +2 -2
  227. package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +2 -2
  228. package/.docs/raw/reference/processors/token-limiter-processor.mdx +2 -2
  229. package/.docs/raw/reference/processors/tool-call-filter.mdx +3 -3
  230. package/.docs/raw/reference/processors/unicode-normalizer.mdx +2 -2
  231. package/.docs/raw/reference/processors/working-memory-processor.mdx +3 -3
  232. package/.docs/raw/reference/rag/chunk.mdx +1 -1
  233. package/.docs/raw/reference/rag/database-config.mdx +1 -1
  234. package/.docs/raw/reference/rag/extract-params.mdx +2 -2
  235. package/.docs/raw/reference/rag/metadata-filters.mdx +7 -7
  236. package/.docs/raw/reference/server/create-route.mdx +14 -14
  237. package/.docs/raw/reference/server/express-adapter.mdx +10 -11
  238. package/.docs/raw/reference/server/hono-adapter.mdx +10 -11
  239. package/.docs/raw/reference/server/mastra-server.mdx +22 -22
  240. package/.docs/raw/reference/server/routes.mdx +28 -1
  241. package/.docs/raw/reference/storage/cloudflare-d1.mdx +3 -3
  242. package/.docs/raw/reference/storage/cloudflare.mdx +2 -2
  243. package/.docs/raw/reference/storage/convex.mdx +6 -6
  244. package/.docs/raw/reference/storage/dynamodb.mdx +4 -4
  245. package/.docs/raw/reference/storage/lance.mdx +3 -3
  246. package/.docs/raw/reference/storage/libsql.mdx +69 -54
  247. package/.docs/raw/reference/storage/mongodb.mdx +80 -7
  248. package/.docs/raw/reference/storage/mssql.mdx +4 -4
  249. package/.docs/raw/{server-db/storage.mdx → reference/storage/overview.mdx} +13 -111
  250. package/.docs/raw/reference/storage/postgresql.mdx +78 -7
  251. package/.docs/raw/reference/storage/upstash.mdx +74 -2
  252. package/.docs/raw/reference/streaming/agents/stream.mdx +27 -5
  253. package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +2 -2
  254. package/.docs/raw/reference/streaming/workflows/observeStream.mdx +1 -1
  255. package/.docs/raw/reference/streaming/workflows/resumeStream.mdx +1 -1
  256. package/.docs/raw/reference/streaming/workflows/stream.mdx +35 -22
  257. package/.docs/raw/reference/streaming/workflows/timeTravelStream.mdx +4 -4
  258. package/.docs/raw/reference/templates/overview.mdx +1 -2
  259. package/.docs/raw/reference/tools/create-tool.mdx +24 -5
  260. package/.docs/raw/reference/tools/graph-rag-tool.mdx +3 -3
  261. package/.docs/raw/reference/tools/vector-query-tool.mdx +4 -4
  262. package/.docs/raw/reference/vectors/astra.mdx +3 -3
  263. package/.docs/raw/reference/vectors/chroma.mdx +3 -3
  264. package/.docs/raw/reference/vectors/convex.mdx +12 -12
  265. package/.docs/raw/reference/vectors/couchbase.mdx +5 -5
  266. package/.docs/raw/reference/vectors/duckdb.mdx +10 -10
  267. package/.docs/raw/reference/vectors/elasticsearch.mdx +4 -4
  268. package/.docs/raw/reference/vectors/lance.mdx +4 -4
  269. package/.docs/raw/reference/vectors/libsql.mdx +61 -11
  270. package/.docs/raw/reference/vectors/mongodb.mdx +58 -5
  271. package/.docs/raw/reference/vectors/pg.mdx +53 -6
  272. package/.docs/raw/reference/vectors/pinecone.mdx +3 -3
  273. package/.docs/raw/reference/vectors/qdrant.mdx +3 -3
  274. package/.docs/raw/reference/vectors/s3vectors.mdx +6 -6
  275. package/.docs/raw/reference/vectors/turbopuffer.mdx +4 -4
  276. package/.docs/raw/reference/vectors/upstash.mdx +55 -6
  277. package/.docs/raw/reference/vectors/vectorize.mdx +3 -3
  278. package/.docs/raw/reference/workflows/run-methods/cancel.mdx +2 -2
  279. package/.docs/raw/reference/workflows/run-methods/restart.mdx +1 -3
  280. package/.docs/raw/reference/workflows/run-methods/resume.mdx +2 -2
  281. package/.docs/raw/reference/workflows/run-methods/start.mdx +2 -2
  282. package/.docs/raw/reference/workflows/run-methods/startAsync.mdx +143 -0
  283. package/.docs/raw/reference/workflows/run-methods/timeTravel.mdx +5 -5
  284. package/.docs/raw/reference/workflows/run.mdx +1 -1
  285. package/.docs/raw/reference/workflows/step.mdx +3 -3
  286. package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +1 -1
  287. package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
  288. package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +37 -2
  289. package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
  290. package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
  291. package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +6 -6
  292. package/.docs/raw/reference/workflows/workflow-methods/map.mdx +7 -7
  293. package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
  294. package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +2 -2
  295. package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +2 -2
  296. package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +2 -2
  297. package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
  298. package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +2 -2
  299. package/.docs/raw/reference/workflows/workflow.mdx +17 -3
  300. package/.docs/raw/{auth → server/auth}/auth0.mdx +20 -14
  301. package/.docs/raw/{auth → server/auth}/clerk.mdx +16 -9
  302. package/.docs/raw/{auth → server/auth}/firebase.mdx +21 -15
  303. package/.docs/raw/{auth → server/auth}/index.mdx +6 -6
  304. package/.docs/raw/{auth → server/auth}/jwt.mdx +14 -7
  305. package/.docs/raw/{auth → server/auth}/supabase.mdx +16 -9
  306. package/.docs/raw/{auth → server/auth}/workos.mdx +19 -13
  307. package/.docs/raw/{server-db → server}/custom-adapters.mdx +13 -13
  308. package/.docs/raw/{server-db → server}/custom-api-routes.mdx +3 -5
  309. package/.docs/raw/{server-db → server}/mastra-client.mdx +26 -15
  310. package/.docs/raw/{server-db → server}/mastra-server.mdx +8 -8
  311. package/.docs/raw/{server-db → server}/middleware.mdx +9 -9
  312. package/.docs/raw/{server-db → server}/request-context.mdx +33 -32
  313. package/.docs/raw/{server-db → server}/server-adapters.mdx +12 -12
  314. package/.docs/raw/streaming/events.mdx +14 -7
  315. package/.docs/raw/streaming/overview.mdx +21 -10
  316. package/.docs/raw/streaming/tool-streaming.mdx +6 -6
  317. package/.docs/raw/streaming/workflow-streaming.mdx +6 -8
  318. package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -2
  319. package/.docs/raw/tools-mcp/mcp-overview.mdx +31 -12
  320. package/.docs/raw/tools-mcp/overview.mdx +10 -11
  321. package/.docs/raw/voice/overview.mdx +1 -1
  322. package/.docs/raw/workflows/agents-and-tools.mdx +28 -19
  323. package/.docs/raw/workflows/control-flow.mdx +27 -40
  324. package/.docs/raw/workflows/error-handling.mdx +172 -18
  325. package/.docs/raw/workflows/human-in-the-loop.mdx +6 -7
  326. package/.docs/raw/workflows/inngest-workflow.mdx +8 -9
  327. package/.docs/raw/workflows/input-data-mapping.mdx +7 -7
  328. package/.docs/raw/workflows/overview.mdx +34 -23
  329. package/.docs/raw/workflows/snapshots.mdx +14 -44
  330. package/.docs/raw/workflows/suspend-and-resume.mdx +7 -7
  331. package/.docs/raw/workflows/time-travel.mdx +16 -16
  332. package/.docs/raw/workflows/workflow-state.mdx +5 -8
  333. package/CHANGELOG.md +23 -0
  334. package/dist/logger.d.ts +3 -0
  335. package/dist/logger.d.ts.map +1 -1
  336. package/dist/stdio.js +53 -0
  337. package/package.json +4 -4
  338. package/.docs/organized/changelogs/%40internal%2Fai-sdk-v4.md +0 -1
  339. package/.docs/raw/deployment/cloud-providers/index.mdx +0 -55
  340. package/.docs/raw/memory/conversation-history.mdx +0 -24
  341. package/.docs/raw/memory/storage/memory-with-libsql.mdx +0 -140
  342. package/.docs/raw/memory/storage/memory-with-mongodb.mdx +0 -150
  343. package/.docs/raw/memory/storage/memory-with-pg.mdx +0 -138
  344. package/.docs/raw/memory/storage/memory-with-upstash.mdx +0 -146
  345. package/.docs/raw/memory/threads-and-resources.mdx +0 -95
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Integrate Mastra in your React + Vite project | Frameworks"
2
+ title: "React + Vite | Frameworks"
3
3
  description: A step-by-step guide to integrating Mastra with React and Vite.
4
4
  ---
5
5
 
@@ -8,248 +8,418 @@ import TabItem from "@theme/TabItem";
8
8
 
9
9
  # Integrate Mastra in your React + Vite project
10
10
 
11
- Mastra integrates with Vite, making it easy to:
11
+ In this guide, you'll build a tool-calling AI agent using Mastra, then connect it to React by calling the agent directly from Mastra's standalone server.
12
12
 
13
- - Build flexible APIs to serve AI-powered features
14
- - Simplify deployment with a unified codebase for frontend and backend
15
- - Take advantage of Mastra's Client SDK
13
+ You'll use [AI SDK UI](https://ai-sdk.dev/docs/ai-sdk-ui/overview) and [AI Elements](https://ai-sdk.dev/elements) to create a beautiful, interactive chat experience.
16
14
 
17
- Use this guide to scaffold and integrate Mastra with your React + Vite project.
15
+ ## Before you begin
18
16
 
19
- :::warning
17
+ - You'll need an API key from a supported [model provider](/models/v1). If you don't have a preference, use [OpenAI](/models/v1/providers/openai).
18
+ - Install Node.js `v22.13.0` or later
20
19
 
21
- This guide assumes you're using React + Vite with React Router v7 at the root of your project, e.g., `app`.
20
+ ## Create a new React + Vite app (optional)
22
21
 
23
- :::
22
+ If you already have a React + Vite app using Tailwind, skip to the next step.
24
23
 
25
- ## Install Mastra
24
+ ### Project scaffold
26
25
 
27
- Install the required Mastra packages:
26
+ Run the following command to [create a new React + Vite app](https://vite.dev/guide/#scaffolding-your-first-vite-project):
28
27
 
29
- <Tabs>
28
+ <Tabs groupId="pm">
30
29
  <TabItem value="npm" label="npm">
31
-
32
- ```bash copy
33
- npm install mastra@beta @mastra/core@beta @mastra/libsql@beta @mastra/client-js@beta
30
+ ```bash
31
+ npm create vite@latest mastra-react -- --template react-ts
32
+ cd mastra-react
34
33
  ```
35
-
36
34
  </TabItem>
37
- <TabItem value="yarn" label="yarn">
38
-
39
- ```bash copy
40
- yarn add mastra@beta @mastra/core@beta @mastra/libsql@beta @mastra/client-js@beta
35
+ <TabItem value="pnpm" label="pnpm">
36
+ ```bash
37
+ pnpm create vite mastra-react --template react-ts
38
+ cd mastra-react
41
39
  ```
42
-
43
40
  </TabItem>
44
- <TabItem value="pnpm" label="pnpm">
45
-
46
- ```bash copy
47
- pnpm add mastra@beta @mastra/core@beta @mastra/libsql@beta @mastra/client-js@beta
41
+ <TabItem value="yarn" label="yarn">
42
+ ```bash
43
+ yarn create vite mastra-react --template react-ts
44
+ cd mastra-react
48
45
  ```
49
-
50
46
  </TabItem>
51
47
  <TabItem value="bun" label="bun">
52
-
53
- ```bash copy
54
- bun add mastra@beta @mastra/core@beta @mastra/libsql@beta @mastra/client-js@beta
48
+ ```bash
49
+ bun create vite mastra-react --template react-ts
50
+ cd mastra-react
55
51
  ```
56
-
57
52
  </TabItem>
58
53
  </Tabs>
59
54
 
60
- ## Integrate Mastra
61
-
62
- To integrate Mastra into your project, you have two options:
55
+ This creates a project called `mastra-react`, but you can replace it with any name you want.
63
56
 
64
- ### 1. Use the One-Liner
57
+ ### Tailwind
65
58
 
66
- Run the following command to quickly scaffold the default Weather agent with sensible defaults:
59
+ Next, install Tailwind:
67
60
 
68
- ```bash copy
69
- npx mastra@beta init --dir . --components agents,tools --example --llm openai
61
+ <Tabs groupId="pm">
62
+ <TabItem value="npm" label="npm">
63
+ ```bash
64
+ npm install tailwindcss @tailwindcss/vite
70
65
  ```
71
-
72
- > See [mastra init](/reference/v1/cli/create-mastra) for more information.
73
-
74
- ### 2. Use the Interactive CLI
75
-
76
- If you prefer to customize the setup, run the `init` command and choose from the options when prompted:
77
-
78
- ```bash copy
79
- npx mastra@latest init
66
+ </TabItem>
67
+ <TabItem value="pnpm" label="pnpm">
68
+ ```bash
69
+ pnpm add tailwindcss @tailwindcss/vite
80
70
  ```
71
+ </TabItem>
72
+ <TabItem value="yarn" label="yarn">
73
+ ```bash
74
+ yarn add tailwindcss @tailwindcss/vite
75
+ ```
76
+ </TabItem>
77
+ <TabItem value="bun" label="bun">
78
+ ```bash
79
+ bun add tailwindcss @tailwindcss/vite
80
+ ```
81
+ </TabItem>
82
+ </Tabs>
81
83
 
82
- :::warning
83
-
84
- By default, `mastra init` suggests `src` as the install location. If you're using React + Vite at the root of your project (e.g., `app`, not `src/app`), enter `.` when prompted:
84
+ Configure the Vite plugins:
85
+
86
+ ```typescript title="vite.config.ts" {3-4,7-12}
87
+ import { defineConfig } from 'vite'
88
+ import react from '@vitejs/plugin-react'
89
+ import path from "path"
90
+ import tailwindcss from '@tailwindcss/vite'
91
+
92
+ export default defineConfig({
93
+ plugins: [react(), tailwindcss()],
94
+ resolve: {
95
+ alias: {
96
+ "@": path.resolve(__dirname, "./src"),
97
+ },
98
+ },
99
+ })
100
+ ```
85
101
 
86
- :::
102
+ Replace everything in `src/index.css` with the following:
87
103
 
88
- Add the `dev` and `build` scripts to `package.json`:
104
+ ```css title="src/index.css"
105
+ @import "tailwindcss";
106
+ ```
89
107
 
90
- <Tabs>
91
- <TabItem value="app" label="app">
108
+ Add these `compilerOptions` to `tsconfig.json`:
92
109
 
93
- ```json title="package.json"
110
+ ```ts title="tsconfig.json"
94
111
  {
95
- "scripts": {
96
- ...
97
- "dev:mastra": "mastra dev --dir mastra",
98
- "build:mastra": "mastra build --dir mastra"
112
+ // ...
113
+ "compilerOptions": {
114
+ "baseUrl": ".",
115
+ "paths": {
116
+ "@/*": ["./src/*"]
117
+ }
99
118
  }
100
119
  }
101
120
  ```
102
121
 
103
- </TabItem>
104
- <TabItem value="src-app" label="src/app">
122
+ Edit `tsconfig.app.json` to resolve paths:
105
123
 
106
- ```json title="package.json"
124
+ ```ts title="tsconfig.app.json"
107
125
  {
108
- "scripts": {
109
- ...
110
- "dev:mastra": "mastra dev --dir src/mastra",
111
- "build:mastra": "mastra build --dir src/mastra"
126
+ "compilerOptions": {
127
+ // ...
128
+ "baseUrl": ".",
129
+ "paths": {
130
+ "@/*": [
131
+ "./src/*"
132
+ ]
133
+ }
134
+ // ...
112
135
  }
113
136
  }
114
137
  ```
115
138
 
116
- </TabItem>
117
- </Tabs>
139
+ ## Initialize Mastra
118
140
 
119
- ## Configure TypeScript
141
+ Run [`mastra init`](/reference/v1/cli/mastra#mastra-init). When prompted, choose a provider (e.g. OpenAI) and enter your key:
120
142
 
121
- Modify the `tsconfig.json` file in your project root:
143
+ <Tabs groupId="pm">
144
+ <TabItem value="npm" label="npm">
122
145
 
123
- ```json title="tsconfig.json"
124
- {
125
- ...
126
- "exclude": ["dist", ".mastra"]
127
- }
146
+ ```bash
147
+ cd mastra-react
148
+ npx mastra@beta init
128
149
  ```
129
150
 
130
- ## Set Up API Keys
151
+ </TabItem>
152
+ <TabItem value="pnpm" label="pnpm">
131
153
 
132
- ```bash title=".env" copy
133
- OPENAI_API_KEY=<your-api-key>
154
+ ```bash
155
+ cd mastra-react
156
+ pnpm dlx mastra@beta init
134
157
  ```
135
158
 
136
- > Each LLM provider uses a different env var. See [Model Capabilities](https://sdk.vercel.ai/providers) for more information.
159
+ </TabItem>
160
+ <TabItem value="yarn" label="yarn">
137
161
 
138
- ## Update .gitignore
162
+ ```bash
163
+ cd mastra-react
164
+ yarn dlx mastra@beta init
165
+ ```
139
166
 
140
- Add `.mastra` to your `.gitignore` file:
167
+ </TabItem>
168
+ <TabItem value="bun" label="bun">
141
169
 
142
- ```bash title=".gitignore" copy
143
- .mastra
170
+ ```bash
171
+ cd mastra-react
172
+ bunx mastra@beta init
144
173
  ```
145
174
 
146
- ## Start the Mastra Dev Server
175
+ </TabItem>
176
+ </Tabs>
177
+
178
+ This creates a `src/mastra` folder with an example weather agent and the following files:
179
+
180
+ - `index.ts` - Mastra config, including memory
181
+ - `tools/weather-tool.ts` - a tool to fetch weather for a given location
182
+ - `agents/weather-agent.ts`- a weather agent with a prompt that uses the tool
183
+
184
+ You'll call `weather-agent.ts` from your chat UI in the next steps.
147
185
 
148
- Start the Mastra Dev Server to expose your agents as REST endpoints:
186
+ ## Install AI SDK UI & AI Elements
149
187
 
150
- <Tabs>
188
+ Install AI SDK UI along with the Mastra adapter:
189
+
190
+ <Tabs groupId="pm">
151
191
  <TabItem value="npm" label="npm">
152
192
 
153
- ```bash copy
154
- npm run dev:mastra
193
+ ```bash
194
+ npm install @mastra/ai-sdk@beta @ai-sdk/react ai
155
195
  ```
156
196
 
157
197
  </TabItem>
158
- <TabItem value="cli" label="CLI">
198
+ <TabItem value="pnpm" label="pnpm">
159
199
 
160
- ```bash copy
161
- mastra dev:mastra
200
+ ```bash
201
+ pnpm add @mastra/ai-sdk@beta @ai-sdk/react ai
162
202
  ```
163
203
 
164
204
  </TabItem>
165
- </Tabs>
166
-
167
- > Once running, your agents are available locally. See [Local Development Environment](/docs/v1/getting-started/studio) for more information.
205
+ <TabItem value="yarn" label="yarn">
168
206
 
169
- ## Start Vite Dev Server
207
+ ```bash
208
+ yarn add @mastra/ai-sdk@beta @ai-sdk/react ai
209
+ ```
170
210
 
171
- With the Mastra Dev Server running, you can start your Vite app in the usual way.
211
+ </TabItem>
212
+ <TabItem value="bun" label="bun">
172
213
 
173
- ## Create Mastra Client
214
+ ```bash
215
+ bun add @mastra/ai-sdk@beta @ai-sdk/react ai
216
+ ```
174
217
 
175
- Create a new directory and file. Then add the example code:
218
+ </TabItem>
219
+ </Tabs>
176
220
 
177
- ```bash copy
178
- mkdir lib
179
- touch lib/mastra.ts
180
- ```
221
+ Next, initialize AI Elements. When prompted, choose the default options:
181
222
 
182
- ```typescript title="lib/mastra.ts" showLineNumbers copy
183
- import { MastraClient } from "@mastra/client-js";
223
+ <Tabs groupId="pm">
224
+ <TabItem value="npm" label="npm">
184
225
 
185
- export const mastraClient = new MastraClient({
186
- baseUrl: import.meta.env.VITE_MASTRA_API_URL || "http://localhost:4111",
187
- });
226
+ ```bash
227
+ npx ai-elements@latest
188
228
  ```
189
229
 
190
- ## Create Test Route Config
230
+ </TabItem>
231
+ <TabItem value="pnpm" label="pnpm">
191
232
 
192
- Add new `route` to the config:
233
+ ```bash
234
+ pnpm dlx ai-elements@latest
235
+ ```
193
236
 
194
- ```typescript title="app/routes.ts" showLineNumbers copy
195
- import { type RouteConfig, index, route } from "@react-router/dev/routes";
237
+ </TabItem>
238
+ <TabItem value="yarn" label="yarn">
196
239
 
197
- export default [
198
- index("routes/home.tsx"),
199
- route("test", "routes/test.tsx"),
200
- ] satisfies RouteConfig;
240
+ ```bash
241
+ yarn dlx ai-elements@latest
201
242
  ```
202
243
 
203
- ## Create Test Route
204
-
205
- Create a new Route, and add the example code:
244
+ </TabItem>
245
+ <TabItem value="bun" label="bun">
206
246
 
207
- ```bash copy
208
- touch app/routes/test.tsx
247
+ ```bash
248
+ bunx ai-elements@latest
209
249
  ```
210
250
 
211
- ```typescript title="app/routes/test.tsx" showLineNumbers copy
212
- import { useState } from "react";
213
- import { mastraClient } from "../../lib/mastra";
251
+ </TabItem>
252
+ </Tabs>
214
253
 
215
- export default function Test() {
216
- const [result, setResult] = useState<string | null>(null);
254
+ This downloads the entire AI Elements UI component library into a `@/components/ai-elements` folder.
217
255
 
218
- async function handleSubmit(event: React.FormEvent<HTMLFormElement>) {
219
- event.preventDefault();
256
+ ## Create a chat route
220
257
 
221
- const formData = new FormData(event.currentTarget);
222
- const city = formData.get("city")?.toString();
223
- const agent = mastraClient.getAgent("weatherAgent");
258
+ Open ⁠`src/mastra/index.ts` and add a [⁠chatRoute()](https://github.com/reference/v1/ai-sdk/chat-route) to your config. This creates an API route your React frontend can call for AI SDK-compatible chat responses, which you’ll use with ⁠useChat() next.
224
259
 
225
- const response = await agent.generate({
226
- messages: [{ role: "user", content: `What's the weather like in ${city}?` }]
227
- });
260
+ ```ts title="src/mastra/index.ts"
261
+ import { Mastra } from '@mastra/core/mastra';
262
+ // Existing imports...
263
+ import { chatRoute } from "@mastra/ai-sdk"
228
264
 
229
- setResult(response.text);
265
+ export const mastra = new Mastra({
266
+ // Existing config...
267
+ server: {
268
+ apiRoutes: [
269
+ chatRoute({
270
+ path: '/chat/:agentId'
271
+ })
272
+ ]
230
273
  }
274
+ });
275
+ ```
276
+
277
+ ## Add the chat UI
278
+
279
+ Replace the `src/App.tsx` file to create a chat interface:
280
+
281
+ ```tsx title="src/App.tsx"
282
+ import * as React from 'react';
283
+ import { DefaultChatTransport, type ToolUIPart } from 'ai';
284
+ import { useChat } from '@ai-sdk/react';
285
+
286
+ import {
287
+ PromptInput,
288
+ PromptInputBody,
289
+ PromptInputTextarea,
290
+ } from '@/components/ai-elements/prompt-input';
291
+
292
+ import {
293
+ Conversation,
294
+ ConversationContent,
295
+ ConversationScrollButton,
296
+ } from '@/components/ai-elements/conversation';
297
+
298
+ import {
299
+ Message,
300
+ MessageContent,
301
+ MessageResponse
302
+ } from '@/components/ai-elements/message';
303
+
304
+ import {
305
+ Tool,
306
+ ToolHeader,
307
+ ToolContent,
308
+ ToolInput,
309
+ ToolOutput,
310
+ } from '@/components/ai-elements/tool';
311
+
312
+ export default function App() {
313
+ const [input, setInput] = React.useState<string>('');
314
+
315
+ const { messages, sendMessage, status } = useChat({
316
+ transport: new DefaultChatTransport({
317
+ api: 'http://localhost:4111/chat/weather-agent',
318
+ }),
319
+ });
320
+
321
+ const handleSubmit = async () => {
322
+ if (!input.trim()) return;
323
+
324
+ sendMessage({ text: input });
325
+ setInput('');
326
+ };
231
327
 
232
328
  return (
233
- <>
234
- <h1>Test</h1>
235
- <form onSubmit={handleSubmit}>
236
- <input name="city" placeholder="Enter city" required />
237
- <button type="submit">Get Weather</button>
238
- </form>
239
- {result && <pre>{result}</pre>}
240
- </>
329
+ <div className="max-w-4xl mx-auto p-6 relative size-full h-screen">
330
+ <div className="flex flex-col h-full">
331
+ <Conversation className="h-full">
332
+ <ConversationContent>
333
+ {messages.map((message) => (
334
+ <div key={message.id}>
335
+ {message.parts?.map((part, i) => {
336
+ if (part.type === 'text') {
337
+ return (
338
+ <Message
339
+ key={`${message.id}-${i}`}
340
+ from={message.role}>
341
+ <MessageContent>
342
+ <MessageResponse>{part.text}</MessageResponse>
343
+ </MessageContent>
344
+ </Message>
345
+ );
346
+ }
347
+
348
+ if (part.type?.startsWith('tool-')) {
349
+ return (
350
+ <Tool key={`${message.id}-${i}`}>
351
+ <ToolHeader
352
+ type={(part as ToolUIPart).type}
353
+ state={(part as ToolUIPart).state || 'output-available'}
354
+ className="cursor-pointer"
355
+ />
356
+ <ToolContent>
357
+ <ToolInput input={(part as ToolUIPart).input || {}} />
358
+ <ToolOutput
359
+ output={(part as ToolUIPart).output}
360
+ errorText={(part as ToolUIPart).errorText}
361
+ />
362
+ </ToolContent>
363
+ </Tool>
364
+ );
365
+ }
366
+
367
+ return null;
368
+ })}
369
+ </div>
370
+ ))}
371
+ <ConversationScrollButton />
372
+ </ConversationContent>
373
+ </Conversation>
374
+ <PromptInput onSubmit={handleSubmit} className="mt-20">
375
+ <PromptInputBody>
376
+ <PromptInputTextarea
377
+ onChange={(e) => setInput(e.target.value)}
378
+ className="md:leading-10"
379
+ value={input}
380
+ placeholder="Ask about the weather..."
381
+ disabled={status !== 'ready'}
382
+ />
383
+ </PromptInputBody>
384
+ </PromptInput>
385
+ </div>
386
+ </div>
241
387
  );
242
388
  }
243
389
  ```
244
390
 
245
- > You can now navigate to `/test` in your browser to try it out.
391
+ This component connects [`useChat()`](https://ai-sdk.dev/docs/reference/ai-sdk-ui/use-chat) to the `chat/weather-agent` endpoint, sending prompts there and streaming the response back in chunks.
246
392
 
247
- Submitting **London** as the city would return a result similar to:
393
+ It renders the response text using the [`<MessageResponse>`](https://ai-sdk.dev/elements/components/message#messageresponse-) component, and shows any tool invocations with the [`<Tool>`](https://ai-sdk.dev/elements/components/tool) component.
248
394
 
249
- ```plaintext
250
- The current weather in London is partly cloudy with a temperature of 19.3°C, feeling like 17.4°C. The humidity is at 53%, and there is a wind speed of 15.9 km/h, with gusts up to 38.5 km/h.
251
- ```
395
+ ## Test your agent
396
+
397
+ In order to test your agent with the chat interface, you need to run both the Mastra server and the Vite development server.
398
+
399
+ 1. Start the Mastra development server:
400
+
401
+ ```bash copy
402
+ npx mastra dev
403
+ ```
404
+ 1. In a separate terminal window, start the Vite development server:
405
+
406
+ ```bash copy
407
+ npm run dev
408
+ ```
409
+ 1. Open your application at http://localhost:5173
410
+ 1. Try asking about the weather. If your API key is set up correctly, you'll get a response
252
411
 
253
412
  ## Next steps
254
413
 
255
- - [Monorepo Deployment](/docs/v1/deployment/monorepo)
414
+ Congratulations on building your Mastra agent with React! 🎉
415
+
416
+ From here, you can extend the project with your own tools and logic:
417
+
418
+ - Learn more about [agents](/docs/v1/agents/overview)
419
+ - Give your agent its own [tools](/docs/v1/agents/using-tools)
420
+ - Add human-like [memory](/docs/v1/agents/agent-memory) to your agent
421
+
422
+ When you're ready, read more about how Mastra integrates with AI SDK UI and React, and how to deploy your agent anywhere:
423
+
424
+ - Integrate Mastra with [AI SDK UI](/guides/v1/build-your-ui/ai-sdk-ui)
425
+ - Deploy your agent [anywhere](/docs/v1/deployment/overview)
@@ -28,7 +28,7 @@ Set up the Workflow, define steps to extract and classify candidate data, and th
28
28
 
29
29
  Create a new file `src/mastra/workflows/candidate-workflow.ts` and define your workflow:
30
30
 
31
- ```ts copy title="src/mastra/workflows/candidate-workflow.ts"
31
+ ```ts title="src/mastra/workflows/candidate-workflow.ts"
32
32
  import { createWorkflow, createStep } from "@mastra/core/workflows";
33
33
  import { z } from "zod";
34
34
 
@@ -56,7 +56,7 @@ You want to extract candidate details from the resume text and classify the pers
56
56
 
57
57
  To the existing `src/mastra/workflows/candidate-workflow.ts` file add the following:
58
58
 
59
- ```ts copy title="src/mastra/workflows/candidate-workflow.ts"
59
+ ```ts title="src/mastra/workflows/candidate-workflow.ts"
60
60
  import { Agent } from "@mastra/core/agent";
61
61
 
62
62
  const recruiter = new Agent({
@@ -109,7 +109,7 @@ This step prompts a candidate who is identified as "technical" for more informat
109
109
 
110
110
  To the existing `src/mastra/workflows/candidate-workflow.ts` file add the following:
111
111
 
112
- ```ts copy title="src/mastra/workflows/candidate-workflow.ts"
112
+ ```ts title="src/mastra/workflows/candidate-workflow.ts"
113
113
  const askAboutSpecialty = createStep({
114
114
  id: "askAboutSpecialty",
115
115
  inputSchema: z.object({
@@ -140,7 +140,7 @@ If the candidate is "non-technical", you want a different follow-up question. Th
140
140
 
141
141
  To the existing `src/mastra/workflows/candidate-workflow.ts` file add the following:
142
142
 
143
- ```ts title="src/mastra/workflows/candidate-workflow.ts" copy
143
+ ```ts title="src/mastra/workflows/candidate-workflow.ts"
144
144
  const askAboutRole = createStep({
145
145
  id: "askAboutRole",
146
146
  inputSchema: z.object({
@@ -170,7 +170,7 @@ You now combine the steps to implement branching logic based on the candidate's
170
170
 
171
171
  To the existing `src/mastra/workflows/candidate-workflow.ts` file change the `candidateWorkflow` like so:
172
172
 
173
- ```ts title="src/mastra/workflows/candidate-workflow.ts" copy {10-14}
173
+ ```ts title="src/mastra/workflows/candidate-workflow.ts" {10-14}
174
174
  export const candidateWorkflow = createWorkflow({
175
175
  id: "candidate-workflow",
176
176
  inputSchema: z.object({
@@ -199,7 +199,7 @@ export const candidateWorkflow = createWorkflow({
199
199
 
200
200
  In your `src/mastra/index.ts` file, register the workflow:
201
201
 
202
- ```ts copy title="src/mastra/index.ts" {2, 5}
202
+ ```ts title="src/mastra/index.ts" {2, 5}
203
203
  import { Mastra } from "@mastra/core";
204
204
  import { candidateWorkflow } from "./workflows/candidate-workflow";
205
205
 
@@ -216,13 +216,13 @@ export const mastra = new Mastra({
216
216
 
217
217
  You can test your workflow inside [Studio](/docs/v1/getting-started/studio) by starting the development server:
218
218
 
219
- ```bash copy
219
+ ```bash
220
220
  mastra dev
221
221
  ```
222
222
 
223
223
  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:
224
224
 
225
- ```text copy
225
+ ```text
226
226
  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.
227
227
  ```
228
228
 
@@ -230,7 +230,7 @@ After entering the resume text, press the **Run** button. You should now see two
230
230
 
231
231
  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:
232
232
 
233
- ```ts copy title="src/test-workflow.ts"
233
+ ```ts title="src/test-workflow.ts"
234
234
  import { mastra } from "./mastra";
235
235
 
236
236
  const run = await mastra.getWorkflow("candidateWorkflow").createRun();
@@ -256,7 +256,7 @@ if (res.status === "success") {
256
256
 
257
257
  Now, run the workflow and get output in your terminal:
258
258
 
259
- ```bash copy
259
+ ```bash
260
260
  npx tsx src/test-workflow.ts
261
261
  ```
262
262