@mastra/mcp-docs-server 1.2.12-alpha.0 → 1.2.12-alpha.4

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 (257) hide show
  1. package/.docs/docs/agent-builder/access-control.md +3 -3
  2. package/.docs/docs/agent-builder/browser.md +1 -1
  3. package/.docs/docs/agent-builder/channels.md +1 -1
  4. package/.docs/docs/agent-builder/configuration.md +3 -3
  5. package/.docs/docs/agent-builder/deploying.md +2 -2
  6. package/.docs/docs/agent-builder/integrations.md +8 -8
  7. package/.docs/docs/agent-builder/memory.md +2 -2
  8. package/.docs/docs/agent-builder/overview.md +1 -1
  9. package/.docs/docs/agent-controller/channels.md +8 -6
  10. package/.docs/docs/agent-controller/modes.md +6 -6
  11. package/.docs/docs/agent-controller/overview.md +13 -9
  12. package/.docs/docs/agent-controller/session.md +27 -9
  13. package/.docs/docs/agent-controller/subagents.md +9 -6
  14. package/.docs/docs/agent-controller/threads-and-state.md +12 -8
  15. package/.docs/docs/agent-controller/tool-approvals.md +7 -3
  16. package/.docs/docs/agents/a2a.md +4 -2
  17. package/.docs/docs/agents/acp.md +5 -5
  18. package/.docs/docs/agents/agent-approval.md +13 -11
  19. package/.docs/docs/agents/code-mode.md +29 -6
  20. package/.docs/docs/agents/guardrails.md +8 -8
  21. package/.docs/docs/agents/networks.md +2 -2
  22. package/.docs/docs/agents/overview.md +9 -7
  23. package/.docs/docs/agents/processors.md +15 -15
  24. package/.docs/docs/agents/skills.md +6 -6
  25. package/.docs/docs/agents/structured-output.md +6 -6
  26. package/.docs/docs/agents/supervisor-agents.md +19 -13
  27. package/.docs/docs/agents/using-tools.md +25 -23
  28. package/.docs/docs/browser/agent-browser.md +4 -4
  29. package/.docs/docs/browser/browser-viewer.md +2 -2
  30. package/.docs/docs/browser/firecrawl.md +1 -1
  31. package/.docs/docs/browser/overview.md +2 -2
  32. package/.docs/docs/browser/recording.md +1 -1
  33. package/.docs/docs/browser/stagehand.md +7 -7
  34. package/.docs/docs/capabilities/channels/discord.md +1 -1
  35. package/.docs/docs/capabilities/channels/other-adapters.md +1 -1
  36. package/.docs/docs/capabilities/channels/overview.md +9 -5
  37. package/.docs/docs/capabilities/channels/slack.md +2 -2
  38. package/.docs/docs/capabilities/channels/teams.md +1 -1
  39. package/.docs/docs/capabilities/channels/telegram.md +1 -1
  40. package/.docs/docs/capabilities/channels/whatsapp.md +1 -1
  41. package/.docs/docs/deployment/mastra-server.md +1 -1
  42. package/.docs/docs/deployment/overview.md +6 -2
  43. package/.docs/docs/deployment/sandbox.md +3 -1
  44. package/.docs/docs/deployment/workers.md +137 -0
  45. package/.docs/docs/editor/overview.md +37 -31
  46. package/.docs/docs/editor/prompts.md +8 -4
  47. package/.docs/docs/editor/tools.md +3 -3
  48. package/.docs/docs/evals/built-in-scorers.md +4 -4
  49. package/.docs/docs/evals/custom-scorers.md +5 -5
  50. package/.docs/docs/evals/datasets/running-experiments.md +7 -7
  51. package/.docs/docs/evals/evals-with-memory.md +4 -4
  52. package/.docs/docs/evals/gates-and-verdicts.md +4 -4
  53. package/.docs/docs/evals/multi-turn.md +12 -12
  54. package/.docs/docs/evals/overview.md +6 -4
  55. package/.docs/docs/evals/quick-checks.md +2 -2
  56. package/.docs/docs/getting-started/build-with-ai.md +6 -4
  57. package/.docs/docs/getting-started/file-based-agents.md +6 -4
  58. package/.docs/docs/getting-started/manual-install.md +1 -1
  59. package/.docs/docs/index.md +9 -90
  60. package/.docs/docs/long-running-agents/background-tasks.md +10 -10
  61. package/.docs/docs/long-running-agents/durable-agents.md +46 -5
  62. package/.docs/docs/long-running-agents/goals.md +15 -11
  63. package/.docs/docs/long-running-agents/schedules.md +3 -3
  64. package/.docs/docs/long-running-agents/signal-providers.md +8 -6
  65. package/.docs/docs/long-running-agents/signals.md +9 -5
  66. package/.docs/docs/mastra-platform/configuration.md +3 -3
  67. package/.docs/docs/mastra-platform/database.md +8 -8
  68. package/.docs/docs/mastra-platform/deploy.md +8 -4
  69. package/.docs/docs/mastra-platform/environments.md +8 -4
  70. package/.docs/docs/mastra-platform/github.md +3 -1
  71. package/.docs/docs/mastra-platform/server.md +1 -1
  72. package/.docs/docs/mastra-platform/studio.md +2 -2
  73. package/.docs/docs/mastra-platform/workspace.md +6 -6
  74. package/.docs/docs/mcp/mcp-apps.md +1 -1
  75. package/.docs/docs/mcp/overview.md +9 -9
  76. package/.docs/docs/memory/memory-processors.md +10 -10
  77. package/.docs/docs/memory/message-history.md +11 -5
  78. package/.docs/docs/memory/multi-user-threads.md +6 -6
  79. package/.docs/docs/memory/observational-memory.md +27 -25
  80. package/.docs/docs/memory/overview.md +10 -10
  81. package/.docs/docs/memory/semantic-recall.md +3 -3
  82. package/.docs/docs/memory/working-memory.md +8 -8
  83. package/.docs/docs/observability/integrations/bridges/datadog.md +6 -6
  84. package/.docs/docs/observability/integrations/bridges/otel.md +5 -5
  85. package/.docs/docs/observability/integrations/exporters/datadog.md +1 -1
  86. package/.docs/docs/observability/integrations/exporters/laminar.md +1 -1
  87. package/.docs/docs/observability/integrations/exporters/langfuse.md +3 -3
  88. package/.docs/docs/observability/integrations/exporters/langsmith.md +4 -4
  89. package/.docs/docs/observability/integrations/exporters/mastra-platform.md +1 -1
  90. package/.docs/docs/observability/integrations/exporters/mastra-storage.md +1 -1
  91. package/.docs/docs/observability/integrations/exporters/otel.md +26 -4
  92. package/.docs/docs/observability/integrations/exporters/sentry.md +1 -1
  93. package/.docs/docs/observability/integrations/overview.md +1 -1
  94. package/.docs/docs/observability/integrations/processors/sensitive-data-filter.md +1 -1
  95. package/.docs/docs/observability/logging.md +1 -1
  96. package/.docs/docs/observability/metrics/overview.md +1 -1
  97. package/.docs/docs/observability/metrics/querying.md +8 -8
  98. package/.docs/docs/observability/overview.md +4 -4
  99. package/.docs/docs/observability/tracing/overview.md +18 -12
  100. package/.docs/docs/rag/chunking-and-embedding.md +1 -1
  101. package/.docs/docs/rag/graph-rag.md +7 -7
  102. package/.docs/docs/rag/overview.md +2 -2
  103. package/.docs/docs/rag/retrieval.md +18 -18
  104. package/.docs/docs/rag/vector-databases.md +2 -2
  105. package/.docs/docs/server/auth/composite-auth.md +2 -2
  106. package/.docs/docs/server/auth/fga.md +6 -6
  107. package/.docs/docs/server/auth/firebase.md +2 -2
  108. package/.docs/docs/server/auth/simple-auth.md +1 -1
  109. package/.docs/docs/server/auth/workers.md +133 -0
  110. package/.docs/docs/server/custom-adapters.md +4 -4
  111. package/.docs/docs/server/mastra-client.md +3 -3
  112. package/.docs/docs/server/mastra-server.md +2 -2
  113. package/.docs/docs/server/middleware.md +1 -1
  114. package/.docs/docs/server/pubsub.md +7 -4
  115. package/.docs/docs/server/request-context.md +11 -11
  116. package/.docs/docs/server/server-adapters.md +2 -2
  117. package/.docs/docs/storage/overview.md +2 -2
  118. package/.docs/docs/studio/auth.md +5 -5
  119. package/.docs/docs/studio/deployment.md +1 -1
  120. package/.docs/docs/studio/observability.md +2 -2
  121. package/.docs/docs/studio/overview.md +11 -9
  122. package/.docs/docs/voice/overview.md +26 -26
  123. package/.docs/docs/voice/realtime-voice.md +8 -8
  124. package/.docs/docs/voice/speech-to-speech.md +9 -9
  125. package/.docs/docs/voice/speech-to-text.md +3 -3
  126. package/.docs/docs/voice/text-to-speech.md +6 -6
  127. package/.docs/docs/what-is-mastra.md +161 -0
  128. package/.docs/docs/workflows/agents-and-tools.md +3 -3
  129. package/.docs/docs/workflows/control-flow.md +10 -8
  130. package/.docs/docs/workflows/error-handling.md +2 -2
  131. package/.docs/docs/workflows/overview.md +7 -6
  132. package/.docs/docs/workflows/scheduled-workflows.md +12 -12
  133. package/.docs/docs/workflows/snapshots.md +3 -3
  134. package/.docs/docs/workflows/suspend-and-resume.md +1 -1
  135. package/.docs/docs/workflows/time-travel.md +3 -1
  136. package/.docs/docs/workflows/workflow-state.md +1 -1
  137. package/.docs/docs/workspace/filesystem.md +10 -10
  138. package/.docs/docs/workspace/lsp.md +1 -1
  139. package/.docs/docs/workspace/overview.md +12 -12
  140. package/.docs/docs/workspace/sandbox.md +9 -7
  141. package/.docs/docs/workspace/search.md +3 -3
  142. package/.docs/docs/workspace/skills.md +7 -7
  143. package/.docs/guides/build-your-ui/ai-sdk-ui.md +1 -1
  144. package/.docs/guides/build-your-ui/copilotkit/generative-ui.md +1 -1
  145. package/.docs/guides/build-your-ui/openui.md +1 -1
  146. package/.docs/guides/concepts/streaming.md +1 -1
  147. package/.docs/guides/deployment/kubernetes.md +1 -1
  148. package/.docs/guides/deployment/mastra-workers.md +232 -0
  149. package/.docs/guides/guide/ai-recruiter.md +1 -1
  150. package/.docs/guides/guide/chef-michel.md +1 -1
  151. package/.docs/guides/guide/code-review-bot.md +1 -1
  152. package/.docs/guides/guide/coding-agent.md +1 -1
  153. package/.docs/guides/guide/dev-assistant.md +1 -1
  154. package/.docs/guides/guide/docs-manager.md +1 -1
  155. package/.docs/guides/guide/firecrawl.md +1 -1
  156. package/.docs/guides/guide/github-actions-pr-description.md +1 -1
  157. package/.docs/guides/guide/research-assistant.md +1 -1
  158. package/.docs/guides/guide/research-coordinator.md +2 -2
  159. package/.docs/guides/guide/signal-provider.md +1 -1
  160. package/.docs/guides/guide/stock-agent.md +2 -2
  161. package/.docs/guides/guide/web-search.md +4 -4
  162. package/.docs/guides/guide/whatsapp-chat-bot.md +2 -2
  163. package/.docs/guides/migrations/agentnetwork.md +4 -4
  164. package/.docs/guides/migrations/upgrade-to-v1/agent.md +1 -1
  165. package/.docs/guides/migrations/vnext-to-standard-apis.md +2 -2
  166. package/.docs/models/gateways/custom-gateways.md +3 -3
  167. package/.docs/models/gateways/openrouter.md +7 -9
  168. package/.docs/models/gateways/vercel.md +8 -7
  169. package/.docs/models/index.md +96 -97
  170. package/.docs/models/providers/baseten.md +24 -26
  171. package/.docs/models/providers/chutes.md +25 -26
  172. package/.docs/models/providers/crossmodel.md +25 -27
  173. package/.docs/models/providers/deepinfra.md +23 -25
  174. package/.docs/models/providers/hyper.md +26 -28
  175. package/.docs/models/providers/llmgateway.md +27 -28
  176. package/.docs/models/providers/wandb.md +25 -26
  177. package/.docs/reference/acp/acp-agent.md +1 -1
  178. package/.docs/reference/acp/create-acp-tool.md +1 -1
  179. package/.docs/reference/agents/agent.md +7 -7
  180. package/.docs/reference/agents/channels.md +26 -10
  181. package/.docs/reference/agents/durable-agent.md +51 -2
  182. package/.docs/reference/agents/generateLegacy.md +1 -1
  183. package/.docs/reference/agents/getLLM.md +2 -2
  184. package/.docs/reference/agents/getMetadata.md +2 -2
  185. package/.docs/reference/agents/inngest-agent.md +1 -1
  186. package/.docs/reference/agents/network.md +1 -1
  187. package/.docs/reference/browser/agent-browser.md +1 -1
  188. package/.docs/reference/browser/browser-viewer.md +1 -1
  189. package/.docs/reference/browser/firecrawl-browser.md +1 -1
  190. package/.docs/reference/browser/mastra-browser.md +1 -1
  191. package/.docs/reference/browser/stagehand-browser.md +4 -4
  192. package/.docs/reference/cli/mastra.md +132 -1
  193. package/.docs/reference/client-js/agents.md +17 -0
  194. package/.docs/reference/configuration.md +1 -1
  195. package/.docs/reference/core/getAgentById.md +1 -1
  196. package/.docs/reference/core/mastra-class.md +48 -1
  197. package/.docs/reference/core/mastra-model-gateway.md +1 -1
  198. package/.docs/reference/evals/answer-relevancy.md +1 -1
  199. package/.docs/reference/evals/answer-similarity.md +1 -1
  200. package/.docs/reference/evals/bias.md +1 -1
  201. package/.docs/reference/evals/context-precision.md +3 -3
  202. package/.docs/reference/evals/context-recall.md +3 -3
  203. package/.docs/reference/evals/context-relevance.md +11 -11
  204. package/.docs/reference/evals/faithfulness.md +1 -1
  205. package/.docs/reference/evals/hallucination.md +5 -5
  206. package/.docs/reference/evals/noise-sensitivity.md +10 -10
  207. package/.docs/reference/evals/prompt-alignment.md +15 -15
  208. package/.docs/reference/evals/rubric.md +1 -1
  209. package/.docs/reference/evals/tool-call-accuracy.md +3 -3
  210. package/.docs/reference/evals/toxicity.md +1 -1
  211. package/.docs/reference/file-based-agents/config.md +3 -3
  212. package/.docs/reference/file-based-agents/instructions.md +1 -1
  213. package/.docs/reference/file-based-agents/subagents.md +3 -3
  214. package/.docs/reference/index.md +2 -0
  215. package/.docs/reference/memory/memory-class.md +3 -3
  216. package/.docs/reference/memory/observational-memory.md +4 -4
  217. package/.docs/reference/observability/tracing/exporters/langfuse.md +1 -1
  218. package/.docs/reference/processors/batch-parts-processor.md +1 -1
  219. package/.docs/reference/processors/language-detector.md +1 -1
  220. package/.docs/reference/processors/message-history-processor.md +1 -1
  221. package/.docs/reference/processors/moderation-processor.md +2 -2
  222. package/.docs/reference/processors/pii-detector.md +2 -2
  223. package/.docs/reference/processors/processor-interface.md +1 -1
  224. package/.docs/reference/processors/prompt-injection-detector.md +1 -1
  225. package/.docs/reference/processors/semantic-recall-processor.md +1 -1
  226. package/.docs/reference/processors/skill-search-processor.md +1 -1
  227. package/.docs/reference/processors/system-prompt-scrubber.md +1 -1
  228. package/.docs/reference/processors/token-limiter-processor.md +3 -3
  229. package/.docs/reference/processors/tool-call-filter.md +2 -2
  230. package/.docs/reference/processors/tool-search-processor.md +2 -2
  231. package/.docs/reference/processors/unicode-normalizer.md +1 -1
  232. package/.docs/reference/processors/working-memory-processor.md +1 -1
  233. package/.docs/reference/rag/rerank.md +1 -1
  234. package/.docs/reference/server/routes.md +7 -7
  235. package/.docs/reference/signals/create-notification-inbox-tool.md +1 -1
  236. package/.docs/reference/storage/dsql.md +1 -1
  237. package/.docs/reference/storage/mongodb.md +1 -1
  238. package/.docs/reference/storage/postgresql.md +1 -1
  239. package/.docs/reference/storage/redis.md +1 -1
  240. package/.docs/reference/storage/upstash.md +1 -1
  241. package/.docs/reference/streaming/agents/stream.md +1 -1
  242. package/.docs/reference/tools/create-code-mode.md +3 -3
  243. package/.docs/reference/tools/isolated-vm-transport.md +74 -0
  244. package/.docs/reference/tools/mcp-client.md +2 -2
  245. package/.docs/reference/tools/mcp-server.md +1 -1
  246. package/.docs/reference/tools/vector-query-tool.md +1 -1
  247. package/.docs/reference/vectors/libsql.md +1 -1
  248. package/.docs/reference/vectors/mongodb.md +2 -2
  249. package/.docs/reference/vectors/pg.md +1 -1
  250. package/.docs/reference/vectors/upstash.md +1 -1
  251. package/.docs/reference/voice/voice.addInstructions.md +1 -1
  252. package/.docs/reference/workers/overview.md +85 -0
  253. package/.docs/reference/workspace/agentfs-filesystem.md +1 -1
  254. package/.docs/reference/workspace/local-filesystem.md +1 -1
  255. package/.docs/reference/workspace/local-sandbox.md +1 -1
  256. package/CHANGELOG.md +21 -0
  257. package/package.json +6 -6
@@ -8,7 +8,7 @@ A supervisor agent coordinates multiple subagents using [`Agent.stream()`](https
8
8
 
9
9
  ## When to use supervisor agents
10
10
 
11
- Use supervisor agents when a task requires multiple agents with different specializations to work together. The supervisor handles delegation decisions, context passing, and result synthesis.
11
+ Use supervisor agents when a task requires multiple agents with different specializations to work together. The supervisor handles delegation decisions and context passing, plus result synthesis.
12
12
 
13
13
  Common use cases:
14
14
 
@@ -43,7 +43,7 @@ const supervisor = new Agent({
43
43
  id: 'supervisor',
44
44
  instructions: `You coordinate research and writing using specialized agents.
45
45
  Delegate to research-agent for facts, then writing-agent for content.`,
46
- model: 'openai/gpt-5.5',
46
+ model: 'openai/gpt-5.6-sol',
47
47
  agents: { researchAgent, writingAgent },
48
48
  memory: new Memory({
49
49
  storage: new LibSQLStore({ id: 'storage', url: 'file:mastra.db' }),
@@ -112,7 +112,7 @@ The `context` object includes:
112
112
 
113
113
  ### `onDelegationComplete`
114
114
 
115
- Called after a delegation finishes. Use it to inspect results, provide feedback, or stop execution:
115
+ Called after a delegation finishes. Use it to inspect results or provide feedback, or alternatively stop execution:
116
116
 
117
117
  - `context.bail()`: Stop the supervisor loop immediately
118
118
  - Return `{ feedback: '...' }`: Add feedback that gets saved to the supervisor's memory and is visible to subsequent iterations
@@ -147,7 +147,7 @@ The `context` object includes:
147
147
 
148
148
  ## Message filtering
149
149
 
150
- By default, subagents receive the full conversation context from the supervisor. Use `messageFilter` to control what messages are shared for example, to remove sensitive data or limit context size.
150
+ By default, subagents receive the full conversation context from the supervisor. Use `messageFilter` to control what messages are shared, for example, to remove sensitive data or limit context size.
151
151
 
152
152
  ```typescript
153
153
  const stream = await supervisor.stream('Research AI trends', {
@@ -173,7 +173,9 @@ The callback receives `messages` (the full conversation history), `primitiveId`
173
173
 
174
174
  When a subagent completes, the supervisor model receives the subagent's text response in later iterations. Nested tool calls and subagent metadata, such as thread and resource IDs, aren't added to the supervisor model context.
175
175
 
176
- Application code and UI integrations can still inspect the raw delegation result, including `subAgentToolResults`, from the tool result payload. This keeps debugging and display data available without sending nested tool arguments or outputs back into the supervisor's next model call.
176
+ Application code and UI integrations can still inspect `subAgentToolResults` and the rest of the raw delegation result in the tool result payload.
177
+
178
+ This keeps debugging and display data available without sending nested tool arguments or outputs back into the supervisor's next model call.
177
179
 
178
180
  Set `includeSubAgentToolResultsInModelContext` to include the full subagent result, including nested tool results and subagent metadata, in the supervisor model context.
179
181
 
@@ -187,7 +189,7 @@ await supervisor.generate('Research AI trends', {
187
189
 
188
190
  ## Iteration monitoring
189
191
 
190
- `onIterationComplete` is called after each iteration of the supervisor loop. Use it to log progress, inject feedback, or stop execution early.
192
+ `onIterationComplete` is called after each iteration of the supervisor loop. Use it to log progress or inject feedback, or alternatively stop execution early.
191
193
 
192
194
  ```typescript
193
195
  const stream = await supervisor.stream('Research AI trends', {
@@ -214,7 +216,7 @@ const stream = await supervisor.stream('Research AI trends', {
214
216
  })
215
217
  ```
216
218
 
217
- Return `{ continue: true }` to keep iterating, or `{ continue: false }` to stop. Include optional `feedback` to inject guidance into the conversation. When `feedback` is combined with `continue: false`, the model may get one final turn to produce a text response incorporating the feedback, but only if the current iteration is still active (e.g., after tool calls) otherwise no extra turn is granted.
219
+ Return `{ continue: true }` to keep iterating, or `{ continue: false }` to stop. Include optional `feedback` to inject guidance into the conversation. When `feedback` is combined with `continue: false`, the model may get one final turn to produce a text response incorporating the feedback, but only if the current iteration is still active (e.g., after tool calls), otherwise no extra turn is granted.
218
220
 
219
221
  ## Memory isolation
220
222
 
@@ -226,7 +228,7 @@ How it works:
226
228
  2. **Scoped memory saves**: Only the delegation prompt and the subagent's response are saved to the subagent's memory
227
229
  3. **Fresh thread per invocation**: Each delegation uses a unique thread ID, ensuring clean separation
228
230
 
229
- This ensures subagents have the context they need without cluttering their memory with the entire supervisor conversation. Visit [memory in multi-agent systems](https://mastra.ai/docs/memory/overview) for more details.
231
+ As a result, subagents have the context they need without cluttering their memory with the entire supervisor conversation. Visit [memory in multi-agent systems](https://mastra.ai/docs/memory/overview) for more details.
230
232
 
231
233
  ## Tool approval propagation
232
234
 
@@ -309,7 +311,7 @@ const stream = await supervisor.stream('Research AI in education', {
309
311
 
310
312
  The built-in rubric scorer lets you define what "correct" looks like as a checklist and have the agent self-evaluate and iterate until every criterion is satisfied or `maxSteps` is reached.
311
313
 
312
- It works as an **LLM-as-judge** scorer: a separate grader model reviews the agent's output against the rubric after each iteration. If every required criterion passes, the loop ends. If anything falls short, per-criterion feedback is injected back into the conversation and the agent tries again.
314
+ It works as an **LLM-as-judge** scorer. After each iteration, a separate grader model reviews the agent's output against the rubric. The loop ends when every required criterion passes. A failed criterion adds its feedback to the conversation so the agent can try again.
313
315
 
314
316
  This is most effective for tasks with clear, verifiable success criteria. You can use it like so:
315
317
 
@@ -320,7 +322,7 @@ import { createRubricScorer } from '@mastra/evals/scorers/prebuilt'
320
322
  const supervisor = new Agent({
321
323
  id: 'supervisor',
322
324
  instructions: 'You coordinate research and writing using specialized agents.',
323
- model: 'openai/gpt-5.5',
325
+ model: 'openai/gpt-5.6-sol',
324
326
  agents: { researchAgent, writingAgent },
325
327
  })
326
328
 
@@ -345,9 +347,13 @@ For full API details, see the [rubric scorer reference](https://mastra.ai/refere
345
347
 
346
348
  ## Writing effective instructions
347
349
 
348
- Clear instructions are essential for effective delegation. Your supervisor's `instructions` should specify available resources, when to use each one, how to coordinate them, and success criteria.
350
+ Clear instructions are essential for effective delegation.
351
+
352
+ Your supervisor's `instructions` should specify the available resources and when to use each one. They should also define coordination behavior and success criteria.
353
+
354
+ Each subagent should have a clear `description` that explains its purpose and return format, including when the supervisor should use it.
349
355
 
350
- Each subagent should have a clear `description` that explains what it does, what format it returns, and when to use it. The supervisor uses these descriptions to make delegation decisions.
356
+ The supervisor uses these descriptions to make delegation decisions.
351
357
 
352
358
  ```typescript
353
359
  const supervisor = new Agent({
@@ -380,7 +386,7 @@ Enable the [backgroundTasks manager](https://mastra.ai/reference/configuration)
380
386
  const supervisor = new Agent({
381
387
  id: 'supervisor',
382
388
  instructions: 'Coordinate research and writing using the available agents.',
383
- model: 'openai/gpt-5.5',
389
+ model: 'openai/gpt-5.6-sol',
384
390
  agents: { researchAgent, writingAgent },
385
391
  backgroundTasks: {
386
392
  tools: {
@@ -60,7 +60,7 @@ export const weatherAgent = new Agent({
60
60
  instructions: `
61
61
  You are a helpful weather assistant.
62
62
  Use the weatherTool to fetch current weather data.`,
63
- model: 'openai/gpt-5.5',
63
+ model: 'openai/gpt-5.6-sol',
64
64
  tools: { weatherTool },
65
65
  })
66
66
  ```
@@ -79,7 +79,7 @@ export const researchAgent = new Agent({
79
79
  instructions: `
80
80
  You are a helpful research assistant.
81
81
  Use web search when you need current information.`,
82
- model: 'openai/gpt-5.5',
82
+ model: 'openai/gpt-5.6-sol',
83
83
  tools: {
84
84
  webSearch: webSearchTool,
85
85
  },
@@ -88,7 +88,7 @@ export const researchAgent = new Agent({
88
88
 
89
89
  `webSearchTool` supports OpenAI, Anthropic, Google Gemini, and xAI models. If Mastra can't infer one of those providers from the active model, the agent run fails with a `MastraError`.
90
90
 
91
- Only the `webSearchTool` value triggers provider web search. A custom tool named `webSearch` or `web_search` stays unchanged.
91
+ Only the `webSearchTool` value triggers provider web search. Custom tools with the names `webSearch` or `web_search` stay unchanged.
92
92
 
93
93
  ## Define schemas
94
94
 
@@ -170,7 +170,7 @@ export const weatherTool = createTool({
170
170
 
171
171
  ## Multiple tools
172
172
 
173
- An agent can use multiple tools to handle more complex tasks by delegating specific parts to individual tools. The agent decides which tools to use based on the user's message, the agent's instructions, and the tool descriptions and schemas.
173
+ An agent can use multiple tools to handle more complex tasks by delegating specific parts to individual tools. The agent decides which tools to use based on the user's message and the agent's instructions, plus the tool descriptions and schemas.
174
174
 
175
175
  ```typescript
176
176
  import { Agent } from '@mastra/core/agent'
@@ -184,14 +184,14 @@ export const weatherAgent = new Agent({
184
184
  You are a helpful weather assistant.
185
185
  Use the weatherTool to fetch current weather data.
186
186
  Use the hazardsTool to provide information about potential weather hazards.`,
187
- model: 'openai/gpt-5.5',
187
+ model: 'openai/gpt-5.6-sol',
188
188
  tools: { weatherTool, hazardsTool },
189
189
  })
190
190
  ```
191
191
 
192
192
  ## Agents as tools
193
193
 
194
- Add subagents through the `agents` configuration to create a [supervisor](https://mastra.ai/docs/agents/supervisor-agents). Mastra converts each subagent to a tool named `agent-<key>`. Include a `description` on each subagent so the supervisor knows when to delegate.
194
+ Add subagents through the `agents` configuration to create a [supervisor](https://mastra.ai/docs/agents/supervisor-agents). Mastra converts each subagent to an `agent-<key>` tool. Include a `description` on each subagent so the supervisor knows when to delegate.
195
195
 
196
196
  ```typescript
197
197
  import { Agent } from '@mastra/core/agent'
@@ -201,21 +201,21 @@ const writer = new Agent({
201
201
  name: 'Writer',
202
202
  description: 'Drafts and edits written content',
203
203
  instructions: 'You are a skilled writer.',
204
- model: 'openai/gpt-5.5',
204
+ model: 'openai/gpt-5.6-sol',
205
205
  })
206
206
 
207
207
  export const supervisor = new Agent({
208
208
  id: 'supervisor',
209
209
  name: 'Supervisor',
210
210
  instructions: 'Coordinate the writer to produce content.',
211
- model: 'openai/gpt-5.5',
211
+ model: 'openai/gpt-5.6-sol',
212
212
  agents: { writer },
213
213
  })
214
214
  ```
215
215
 
216
216
  ## Workflows as tools
217
217
 
218
- Add workflows through the `workflows` configuration. Mastra converts each workflow to a tool named `workflow-<key>`, using the workflow's `inputSchema` and `outputSchema`. Include a `description` on the workflow so the agent knows when to trigger it.
218
+ Add workflows through the `workflows` configuration. Mastra converts each workflow to a `workflow-<key>` tool that uses the workflow's `inputSchema` and `outputSchema`. Include a `description` on the workflow so the agent knows when to trigger it.
219
219
 
220
220
  ```typescript
221
221
  import { Agent } from '@mastra/core/agent'
@@ -225,7 +225,7 @@ export const researchAgent = new Agent({
225
225
  id: 'research-agent',
226
226
  name: 'Research Agent',
227
227
  instructions: 'You are a research assistant.',
228
- model: 'openai/gpt-5.5',
228
+ model: 'openai/gpt-5.6-sol',
229
229
  workflows: { researchWorkflow },
230
230
  })
231
231
  ```
@@ -251,7 +251,7 @@ export const weatherAgent = new Agent({
251
251
  id: 'weather-agent',
252
252
  name: 'Weather Agent',
253
253
  instructions: 'Answer questions about current weather.',
254
- model: 'openai/gpt-5.5',
254
+ model: 'openai/gpt-5.6-sol',
255
255
  tools: { weatherTool },
256
256
  })
257
257
  ```
@@ -264,7 +264,7 @@ export const travelAgent = new Agent({
264
264
  id: 'travel-agent',
265
265
  name: 'Travel Agent',
266
266
  instructions: 'Help users plan trips.',
267
- model: 'openai/gpt-5.5',
267
+ model: 'openai/gpt-5.6-sol',
268
268
  tools: { weatherTool },
269
269
  })
270
270
  ```
@@ -325,7 +325,7 @@ export const supportAgent = new Agent({
325
325
  id: 'support-agent',
326
326
  name: 'support-agent',
327
327
  instructions: 'Help users with their questions.',
328
- model: 'openai/gpt-5.5',
328
+ model: 'openai/gpt-5.6-sol',
329
329
  hooks: {
330
330
  beforeToolCall: ({ toolName, input }) => {
331
331
  console.log(`Running ${toolName}`, input)
@@ -337,14 +337,14 @@ export const supportAgent = new Agent({
337
337
  })
338
338
  ```
339
339
 
340
- `beforeToolCall` runs before the tool executes and receives the tool name, input, and execution context. Return `{ proceed: false, output }` to skip the tool call entirely the agent receives `output` as the tool result:
340
+ `beforeToolCall` runs before the tool executes and receives the tool name, input, and execution context. Return `{ proceed: false, output }` to skip the tool call entirely, the agent receives `output` as the tool result:
341
341
 
342
342
  ```typescript
343
343
  const guardedAgent = new Agent({
344
344
  id: 'guarded-agent',
345
345
  name: 'guarded-agent',
346
346
  instructions: 'Run shell commands for the user.',
347
- model: 'openai/gpt-5.5',
347
+ model: 'openai/gpt-5.6-sol',
348
348
  hooks: {
349
349
  beforeToolCall: ({ toolName, input }) => {
350
350
  const command = (input as { command?: string }).command ?? ''
@@ -423,9 +423,9 @@ export const weatherTool = createTool({
423
423
 
424
424
  ### Streaming tool input in UIs
425
425
 
426
- When a model generates a tool call, the arguments arrive incrementally as `tool-call-delta` stream chunks before the final `tool-call` chunk. UIs can listen for the corresponding `tool_input_start`, `tool_input_delta`, and `tool_input_end` events to render tool arguments as they stream in for example, showing a file path or command immediately rather than waiting for the complete tool call.
426
+ When a model generates a tool call, the arguments arrive incrementally as `tool-call-delta` stream chunks before the final `tool-call` chunk. UIs can listen for the corresponding `tool_input_start`, `tool_input_delta`, and `tool_input_end` events to render tool arguments as they stream in, for example, showing a file path or command immediately rather than waiting for the complete tool call.
427
427
 
428
- Using a partial JSON parser on the accumulated `argsTextDelta` fragments lets you extract usable argument values before the JSON is complete. This enables features like live diff previews for edit tools, streaming file content for write tools, and instant display of search patterns or file paths.
428
+ Using a partial JSON parser on the accumulated `argsTextDelta` fragments lets you extract usable argument values before the JSON is complete. It enables features like live diff previews for edit tools, streaming file content for write tools, and instant display of search patterns or file paths.
429
429
 
430
430
  ## Control tool selection
431
431
 
@@ -487,12 +487,12 @@ const orchestrator = new Agent({
487
487
 
488
488
  Note that for subagents, you'll see two different identifiers in stream responses:
489
489
 
490
- - `toolName: "agent-weather"` in tool call events the generated tool wrapper name
491
- - `id: "weather-agent"` in `data-tool-agent` chunks the subagent's actual `id` property
490
+ - `toolName: "agent-weather"` in tool call events: the generated tool wrapper name
491
+ - `id: "weather-agent"` in `data-tool-agent` chunks: the subagent's actual `id` property
492
492
 
493
493
  ## Built-in tools
494
494
 
495
- Mastra ships agent-agnostic built-in tools in `@mastra/core/tools` that add interactive and organizational capabilities to any agent.
495
+ Mastra includes agent-agnostic built-in tools in `@mastra/core/tools` that add interactive and organizational capabilities to any agent.
496
496
 
497
497
  | Tool | Purpose |
498
498
  | --------------- | ------------------------------------------------- |
@@ -505,7 +505,9 @@ Mastra ships agent-agnostic built-in tools in `@mastra/core/tools` that add inte
505
505
 
506
506
  ### Ask the user a question
507
507
 
508
- Import [`askUserTool`](https://mastra.ai/reference/tools/ask-user-tool) and add it to the agent's toolset. The tool suspends the run, emits a `tool-call-suspended` event with the question, and resumes when you call `resumeStream()` with the user's answer.
508
+ Import [`askUserTool`](https://mastra.ai/reference/tools/ask-user-tool) and add it to the agent's toolset.
509
+
510
+ The tool suspends the run and emits a `tool-call-suspended` event with the question. It resumes when you call `resumeStream()` with the user's answer.
509
511
 
510
512
  ```typescript
511
513
  import { Agent } from '@mastra/core/agent'
@@ -555,7 +557,7 @@ for await (const chunk of stream.fullStream) {
555
557
 
556
558
  ### Task tracking
557
559
 
558
- The four task tools manage a structured, durable task list for an agent run. They require [Memory](https://mastra.ai/docs/memory/overview) so the list is persisted in a thread-scoped store.
560
+ The task tools manage a structured, durable task list for an agent run. They require [Memory](https://mastra.ai/docs/memory/overview) so the list is persisted in a thread-scoped store.
559
561
 
560
562
  Add task tracking through [`TaskSignalProvider`](https://mastra.ai/reference/signals/task-signal-provider), which bundles all four tools and the `TaskStateProcessor` in a single registration:
561
563
 
@@ -576,7 +578,7 @@ const agent = new Agent({
576
578
 
577
579
  Only one task can be `in_progress` at a time. The list is stored in the thread-scoped `threadState` storage domain and projected onto the agent's [state-signal](https://mastra.ai/docs/long-running-agents/signals) lane, so it survives observational-memory truncation. See the [Task tools reference](https://mastra.ai/reference/tools/task-tools) for full schemas.
578
580
 
579
- The [AgentController](https://mastra.ai/docs/agent-controller/overview) automatically includes all built-in tools in every mode you don't need to add them manually. See [Tool approvals](https://mastra.ai/docs/agent-controller/tool-approvals) for AgentController-specific behavior.
581
+ The [AgentController](https://mastra.ai/docs/agent-controller/overview) automatically includes all built-in tools in every mode, you don't need to add them manually. See [Tool approvals](https://mastra.ai/docs/agent-controller/tool-approvals) for AgentController-specific behavior.
580
582
 
581
583
  ## Related
582
584
 
@@ -10,7 +10,7 @@ Use AgentBrowser when you need:
10
10
 
11
11
  - Reliable element targeting through accessibility refs
12
12
  - Fine-grained control over browser actions
13
- - Playwright's robust automation capabilities
13
+ - Playwright's reliable automation capabilities
14
14
  - Support for keyboard shortcuts and complex interactions
15
15
 
16
16
  ## Quickstart
@@ -54,7 +54,7 @@ const browser = new AgentBrowser({
54
54
  export const browserAgent = new Agent({
55
55
  id: 'browser-agent',
56
56
  name: 'Browser Agent',
57
- model: 'openai/gpt-5.5',
57
+ model: 'openai/gpt-5.6-sol',
58
58
  browser,
59
59
  instructions: `You are a web automation assistant.
60
60
 
@@ -65,13 +65,13 @@ When interacting with pages:
65
65
  })
66
66
  ```
67
67
 
68
- > **Note:** For local launches (the default), AgentBrowser requires a Chromium binary installed via Playwright. This is normally downloaded automatically when you install `@mastra/agent-browser`. If launching the browser fails with `"browser executable is missing"`, run `npx playwright install chromium`. If you connect to a remote browser using the [`cdpUrl`](https://mastra.ai/reference/browser/agent-browser) option, no local Chromium is needed.
68
+ > **Note:** For local launches (the default), AgentBrowser requires a Chromium binary installed via Playwright. This is normally downloaded automatically when you install `@mastra/agent-browser`. If launching the browser fails with `"browser executable is missing"`, run `npx playwright install chromium`. If you connect to a remote browser using the [`cdpUrl`](https://mastra.ai/reference/browser/agent-browser) option, the remote browser provides Chromium.
69
69
 
70
70
  ## Screenshots
71
71
 
72
72
  When the agent uses the `browser_screenshot` tool, it captures a PNG image of the current page and returns it as image content that vision-capable models can interpret directly.
73
73
 
74
- Use screenshots when you need to visually inspect the page for example, evaluating images, layout, or colors. For text or structured data, use `browser_snapshot` instead.
74
+ Use screenshots when you need to visually inspect the page, for example, evaluating images, layout, or colors. For text or structured data, use `browser_snapshot` instead.
75
75
 
76
76
  To disable the screenshot tool for models that don't support vision, use `excludeTools`:
77
77
 
@@ -77,7 +77,7 @@ const workspace = new Workspace({
77
77
 
78
78
  const browserAgent = new Agent({
79
79
  id: 'browser-agent',
80
- model: 'openai/gpt-5.5',
80
+ model: 'openai/gpt-5.6-sol',
81
81
  workspace,
82
82
  instructions: `You are a web automation assistant.
83
83
  Use browser-use commands to navigate and interact with websites.`,
@@ -93,7 +93,7 @@ export const mastra = new Mastra({
93
93
  })
94
94
  ```
95
95
 
96
- When the agent runs a CLI command like `browser-use open https://example.com`, Mastra automatically launches Chrome, injects the CDP connection, and starts streaming the screencast to Studio.
96
+ When the agent runs a CLI command like `browser-use open https://example.com`, Mastra automatically launches Chrome and injects the CDP connection, plus starts streaming the screencast to Studio.
97
97
 
98
98
  ## How it works
99
99
 
@@ -62,7 +62,7 @@ const browser = new FirecrawlBrowser({
62
62
  export const firecrawlAgent = new Agent({
63
63
  id: 'firecrawl-agent',
64
64
  name: 'Firecrawl Agent',
65
- model: 'openai/gpt-5.5',
65
+ model: 'openai/gpt-5.6-sol',
66
66
  browser,
67
67
  instructions: `You are a web automation assistant.
68
68
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Browser overview
4
4
 
5
- Browser support enables agents to navigate websites, interact with page elements, fill forms, and extract data. Mastra provides browser capabilities through SDK providers that wrap browser automation libraries and a CLI provider for agents that drive browsers through command-line tools.
5
+ Browser support enables agents to move through websites, interact with page elements, fill forms, and extract data. Mastra provides browser capabilities through SDK providers that wrap browser automation libraries and a CLI provider for agents that drive browsers through command-line tools.
6
6
 
7
7
  Mastra supports three SDK providers and one CLI provider:
8
8
 
@@ -76,7 +76,7 @@ export const webAgent = new Agent({
76
76
  id: 'web-agent',
77
77
  name: 'Web Agent',
78
78
  description: 'A web automation assistant that can navigate websites and complete tasks.',
79
- model: 'openai/gpt-5.5',
79
+ model: 'openai/gpt-5.6-sol',
80
80
  browser,
81
81
  instructions:
82
82
  'You are a web automation assistant. Use browser tools to navigate websites and complete tasks.',
@@ -87,7 +87,7 @@ import { browser } from '../browsers'
87
87
  export const browserAgent = new Agent({
88
88
  id: 'browser-agent',
89
89
  name: 'Browser Agent',
90
- model: 'openai/gpt-5.5',
90
+ model: 'openai/gpt-5.6-sol',
91
91
  browser,
92
92
  instructions: `Use browser tools to complete the requested task.
93
93
 
@@ -49,13 +49,13 @@ import { StagehandBrowser } from '@mastra/stagehand'
49
49
 
50
50
  const browser = new StagehandBrowser({
51
51
  headless: false,
52
- model: 'openai/gpt-5.5',
52
+ model: 'openai/gpt-5.6-sol',
53
53
  })
54
54
 
55
55
  export const stagehandAgent = new Agent({
56
56
  id: 'stagehand-agent',
57
57
  name: 'Stagehand Agent',
58
- model: 'openai/gpt-5.5',
58
+ model: 'openai/gpt-5.6-sol',
59
59
  browser,
60
60
  instructions: `You are a web automation assistant.
61
61
 
@@ -114,12 +114,12 @@ Returns a list of available actions:
114
114
 
115
115
  When the agent uses the `stagehand_screenshot` tool, it captures a PNG image of the current page and returns it as image content that vision-capable models can interpret directly.
116
116
 
117
- Use screenshots when you need to visually inspect the page for example, evaluating images, layout, or colors. For text or structured data, use `stagehand_extract` or `stagehand_observe` instead.
117
+ Use screenshots when you need to visually inspect the page, for example, evaluating images, layout, or colors. For text or structured data, use `stagehand_extract` or `stagehand_observe` instead.
118
118
 
119
119
  ```typescript
120
120
  const browser = new StagehandBrowser({
121
121
  headless: false,
122
- model: 'openai/gpt-5.5',
122
+ model: 'openai/gpt-5.6-sol',
123
123
  })
124
124
  ```
125
125
 
@@ -128,7 +128,7 @@ To disable the screenshot tool for models that don't support vision, use `exclud
128
128
  ```typescript
129
129
  const browser = new StagehandBrowser({
130
130
  headless: false,
131
- model: 'openai/gpt-5.5',
131
+ model: 'openai/gpt-5.6-sol',
132
132
  excludeTools: ['stagehand_screenshot'],
133
133
  })
134
134
  ```
@@ -142,7 +142,7 @@ const browser = new StagehandBrowser({
142
142
  env: 'BROWSERBASE',
143
143
  apiKey: process.env.BROWSERBASE_API_KEY,
144
144
  projectId: process.env.BROWSERBASE_PROJECT_ID,
145
- model: 'openai/gpt-5.5',
145
+ model: 'openai/gpt-5.6-sol',
146
146
  })
147
147
  ```
148
148
 
@@ -155,7 +155,7 @@ Stagehand can opt into alpha browser recording tools:
155
155
  ```typescript
156
156
  const browser = new StagehandBrowser({
157
157
  headless: false,
158
- model: 'openai/gpt-5.5',
158
+ model: 'openai/gpt-5.6-sol',
159
159
  recording: {
160
160
  outputDir: './browser-recordings',
161
161
  },
@@ -44,7 +44,7 @@ export const discordAgent = new Agent({
44
44
  id: 'discord-agent',
45
45
  name: 'Discord Agent',
46
46
  instructions: 'Answer questions and help with tasks in Discord.',
47
- model: 'openai/gpt-5.5',
47
+ model: 'openai/gpt-5.6-sol',
48
48
  channels: {
49
49
  adapters: {
50
50
  discord: createDiscordAdapter(),
@@ -41,7 +41,7 @@ Check the adapter's docs for its package name, credential variables, webhook req
41
41
 
42
42
  ## Use the same Mastra wiring
43
43
 
44
- The Mastra side of each Chat SDK adapter is similar: install the adapter package, add its adapter factory to `channels.adapters`, configure platform credentials, and point the platform webhook to the generated Mastra route.
44
+ The Mastra side of each Chat SDK adapter follows the same setup. Install the adapter package and add its factory to `channels.adapters`. Then configure the platform credentials and point its webhook to the generated Mastra route.
45
45
 
46
46
  Use one of the platform pages in this section as a reference for the Mastra wiring:
47
47
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  **Added in:** `@mastra/core@1.22.0`
6
6
 
7
- Channels connect agents to messaging and collaboration platforms like Slack, Microsoft Teams, Discord, Telegram, WhatsApp, GitHub, and Linear. When a user sends a message or comment on a platform, the agent receives it, processes it through the normal agent pipeline, and streams the response back to the conversation. Mastra uses [Chat SDK](https://chat-sdk.dev/) for this channel layer.
7
+ Channels connect agents to messaging and collaboration platforms like Slack, Microsoft Teams, Discord, Telegram, WhatsApp, GitHub, and Linear. When a user sends a message or comment on a platform, the agent receives it and processes it through the normal agent pipeline, plus streams the response back to the conversation. Mastra uses [Chat SDK](https://chat-sdk.dev/) for this channel layer.
8
8
 
9
9
  Start with the page for your platform:
10
10
 
@@ -37,7 +37,7 @@ export const yourAgent = new Agent({
37
37
  id: 'your-agent',
38
38
  name: 'Your Agent',
39
39
  instructions: 'You are a helpful assistant.',
40
- model: 'openai/gpt-5.5',
40
+ model: 'openai/gpt-5.6-sol',
41
41
  channels: {
42
42
  adapters: {
43
43
  slack: createSlackAdapter(),
@@ -66,7 +66,7 @@ export const mastra = new Mastra({
66
66
 
67
67
  ## Webhook routes
68
68
 
69
- Platforms send channel activity to Mastra through webhooks. A webhook is an HTTP endpoint that the platform calls when something happens, such as a new message, a mention, or a user selecting "Approve" on an interactive tool approval card. This is how your agent receives a new message, starts processing it, and responds in the same channel.
69
+ Platforms send channel activity to Mastra through webhooks. A webhook is an HTTP endpoint that the platform calls when something happens, such as a new message, a mention, or a user selecting "Approve" on an interactive tool approval card. This is how your agent receives a new message and starts processing it, plus responds in the same channel.
70
70
 
71
71
  Mastra registers a webhook route for each configured adapter and handles the request for you:
72
72
 
@@ -216,7 +216,7 @@ export const yourAgent = new Agent({
216
216
  id: 'your-agent',
217
217
  name: 'Your Agent',
218
218
  instructions: 'You are a helpful assistant.',
219
- model: 'openai/gpt-5.5',
219
+ model: 'openai/gpt-5.6-sol',
220
220
  channels: {
221
221
  adapters: {
222
222
  slack: createSlackAdapter(),
@@ -230,7 +230,11 @@ Vercel and AWS Lambda require `waitUntil`, since they freeze the function as soo
230
230
 
231
231
  ### Coordinate instances with a shared pub/sub
232
232
 
233
- Channels route messages through the agent's [signal pipeline](https://mastra.ai/docs/long-running-agents/signals), and each run acquires a lease on its thread so one run owns the conversation at a time. The default in-memory pub/sub can't cross instance boundaries, so on serverless a follow-up message can land on a different instance than the one running the agent. Without a shared pub/sub, that instance can't reach the active run and starts its own, leaving the original run untouched and the thread processed twice.
233
+ Channels route messages through the agent's [signal pipeline](https://mastra.ai/docs/long-running-agents/signals), and each run acquires a lease on its thread so one run owns the conversation at a time.
234
+
235
+ The default in-memory pub/sub can't cross instance boundaries, so on serverless a follow-up message can be routed to a different instance than the one running the agent.
236
+
237
+ Without a shared pub/sub, that instance can't reach the active run and starts its own, leaving the original run untouched and the thread processed twice.
234
238
 
235
239
  Configure a shared pub/sub backed by Redis Streams on the `Mastra` instance so leases and signals coordinate across instances:
236
240
 
@@ -158,10 +158,10 @@ settings:
158
158
 
159
159
  This manifest configures:
160
160
 
161
- - `display_information.name` and `features.bot_user.display_name`: Set your agent's name in Slack. You can update it at any time; remember to reinstall the app after changing names or permissions.
161
+ - `display_information.name` and `features.bot_user.display_name`: Set your agent's name in Slack. You can update it at any time. Remember to reinstall the app after changing names or permissions.
162
162
  - `app_home.messages_tab_enabled` and `app_home.messages_tab_read_only_enabled`: Enable direct messages from the Slack app's **Messages** tab.
163
163
  - `always_online`: Shows the Slack bot user as always available.
164
- - `oauth_config.scopes.bot`: Grants the bot permission to post messages, read channel messages where it's present, read mentions, read and write direct messages, and look up users.
164
+ - `oauth_config.scopes.bot`: Grants permission to post and read messages in channels where the bot is present. It also covers mentions and direct messages, together with user lookup.
165
165
  - `event_subscriptions`: Tells Slack which message events to send to the webhook.
166
166
  - `interactivity`: Enables interactive cards and tells Slack where to send card actions.
167
167
 
@@ -44,7 +44,7 @@ export const teamsAgent = new Agent({
44
44
  id: 'teams-agent',
45
45
  name: 'Teams Agent',
46
46
  instructions: 'Answer questions and help with tasks in Microsoft Teams.',
47
- model: 'openai/gpt-5.5',
47
+ model: 'openai/gpt-5.6-sol',
48
48
  channels: {
49
49
  adapters: {
50
50
  teams: createTeamsAdapter({
@@ -44,7 +44,7 @@ export const telegramAgent = new Agent({
44
44
  id: 'telegram-agent',
45
45
  name: 'Telegram Agent',
46
46
  instructions: 'Answer questions and help with tasks in Telegram.',
47
- model: 'openai/gpt-5.5',
47
+ model: 'openai/gpt-5.6-sol',
48
48
  channels: {
49
49
  adapters: {
50
50
  telegram: createTelegramAdapter(),
@@ -44,7 +44,7 @@ export const whatsappAgent = new Agent({
44
44
  id: 'whatsapp-agent',
45
45
  name: 'WhatsApp Agent',
46
46
  instructions: 'Answer customer questions and help with tasks in WhatsApp.',
47
- model: 'openai/gpt-5.5',
47
+ model: 'openai/gpt-5.6-sol',
48
48
  channels: {
49
49
  adapters: {
50
50
  whatsapp: createWhatsAppAdapter(),
@@ -80,7 +80,7 @@ export const mastra = new Mastra({
80
80
  })
81
81
  ```
82
82
 
83
- The value of each option can come from a variable, import, or function call. The option itself must remain a direct property. Do not hide build-time options behind a factory call or an object spread:
83
+ The value of each option can come from a variable, import, or function call. The option itself must remain a direct property. Don't hide build-time options behind a factory call or an object spread:
84
84
 
85
85
  ```typescript
86
86
  const options = {
@@ -32,7 +32,7 @@ Read about [monorepo deployment](https://mastra.ai/docs/deployment/monorepo).
32
32
  The [Mastra platform](https://mastra.ai/docs/mastra-platform/overview) provides three products for deploying, monitoring, and managing AI applications built with the Mastra framework:
33
33
 
34
34
  - [**Observability**](https://mastra.ai/docs/mastra-platform/observability): A standalone hosted product for searchable traces, logs, and metrics across Mastra projects and deploys
35
- - [**Studio**](https://mastra.ai/docs/mastra-platform/studio): A hosted visual environment for testing agents, running workflows, and inspecting traces
35
+ - [**Studio**](https://mastra.ai/docs/mastra-platform/studio): A hosted visual environment for testing agents and running workflows, plus inspecting traces
36
36
  - [**Server**](https://mastra.ai/docs/mastra-platform/server): A production deployment target that runs your Mastra application as an API server
37
37
 
38
38
  Learn more in the [Mastra platform overview](https://mastra.ai/docs/mastra-platform/overview).
@@ -72,4 +72,8 @@ Use these guides when adding Mastra to an existing Next.js or Astro application.
72
72
 
73
73
  Mastra workflows run using the built-in execution engine by default. For production workloads requiring managed infrastructure, workflows can also be deployed to specialized platforms like [Inngest](https://www.inngest.com) that provide step memoization, automatic retries, and real-time monitoring.
74
74
 
75
- Visit the [Workflow Runners guide](https://mastra.ai/docs/deployment/workflow-runners) for execution options and the [Inngest deployment guide](https://mastra.ai/guides/deployment/inngest) for setup instructions.
75
+ Visit the [Workflow Runners guide](https://mastra.ai/docs/deployment/workflow-runners) for execution options and the [Inngest deployment guide](https://mastra.ai/guides/deployment/inngest) for setup instructions.
76
+
77
+ ## Workers
78
+
79
+ For production deployments, Mastra can run workflow orchestration, cron scheduling, and background tool execution in dedicated worker processes separate from the API server. This lets you scale each concern independently and isolate failures. See [Workers](https://mastra.ai/docs/deployment/workers) for details.
@@ -82,7 +82,9 @@ API: https://<sandbox-id>-4111.vercel.run/api
82
82
  Studio: https://<sandbox-id>-4111.vercel.run
83
83
  ```
84
84
 
85
- The manifest includes `expiresAt` when the sandbox provider reports an expiration time. Redeploys to the same sandbox skip the dependency install when the install inputs (`package.json`, bundled lockfiles, and the install command) are unchanged.
85
+ The manifest includes `expiresAt` when the sandbox provider reports an expiration time.
86
+
87
+ Redeploys to the same sandbox skip the dependency install when its inputs are unchanged. These inputs are `package.json`, the bundled lockfiles, and the install command.
86
88
 
87
89
  ### Using E2B
88
90