ai 6.0.30 → 6.0.32

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 (250) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/index.js +1 -1
  3. package/dist/index.mjs +1 -1
  4. package/dist/internal/index.js +1 -1
  5. package/dist/internal/index.mjs +1 -1
  6. package/docs/00-introduction/index.mdx +76 -0
  7. package/docs/02-foundations/01-overview.mdx +43 -0
  8. package/docs/02-foundations/02-providers-and-models.mdx +163 -0
  9. package/docs/02-foundations/03-prompts.mdx +620 -0
  10. package/docs/02-foundations/04-tools.mdx +160 -0
  11. package/docs/02-foundations/05-streaming.mdx +62 -0
  12. package/docs/02-foundations/index.mdx +43 -0
  13. package/docs/02-getting-started/00-choosing-a-provider.mdx +110 -0
  14. package/docs/02-getting-started/01-navigating-the-library.mdx +85 -0
  15. package/docs/02-getting-started/02-nextjs-app-router.mdx +556 -0
  16. package/docs/02-getting-started/03-nextjs-pages-router.mdx +542 -0
  17. package/docs/02-getting-started/04-svelte.mdx +627 -0
  18. package/docs/02-getting-started/05-nuxt.mdx +566 -0
  19. package/docs/02-getting-started/06-nodejs.mdx +512 -0
  20. package/docs/02-getting-started/07-expo.mdx +766 -0
  21. package/docs/02-getting-started/08-tanstack-start.mdx +583 -0
  22. package/docs/02-getting-started/index.mdx +44 -0
  23. package/docs/03-agents/01-overview.mdx +96 -0
  24. package/docs/03-agents/02-building-agents.mdx +367 -0
  25. package/docs/03-agents/03-workflows.mdx +370 -0
  26. package/docs/03-agents/04-loop-control.mdx +350 -0
  27. package/docs/03-agents/05-configuring-call-options.mdx +286 -0
  28. package/docs/03-agents/index.mdx +40 -0
  29. package/docs/03-ai-sdk-core/01-overview.mdx +33 -0
  30. package/docs/03-ai-sdk-core/05-generating-text.mdx +600 -0
  31. package/docs/03-ai-sdk-core/10-generating-structured-data.mdx +662 -0
  32. package/docs/03-ai-sdk-core/15-tools-and-tool-calling.mdx +1102 -0
  33. package/docs/03-ai-sdk-core/16-mcp-tools.mdx +375 -0
  34. package/docs/03-ai-sdk-core/20-prompt-engineering.mdx +144 -0
  35. package/docs/03-ai-sdk-core/25-settings.mdx +198 -0
  36. package/docs/03-ai-sdk-core/30-embeddings.mdx +247 -0
  37. package/docs/03-ai-sdk-core/31-reranking.mdx +218 -0
  38. package/docs/03-ai-sdk-core/35-image-generation.mdx +341 -0
  39. package/docs/03-ai-sdk-core/36-transcription.mdx +173 -0
  40. package/docs/03-ai-sdk-core/37-speech.mdx +167 -0
  41. package/docs/03-ai-sdk-core/40-middleware.mdx +480 -0
  42. package/docs/03-ai-sdk-core/45-provider-management.mdx +349 -0
  43. package/docs/03-ai-sdk-core/50-error-handling.mdx +149 -0
  44. package/docs/03-ai-sdk-core/55-testing.mdx +218 -0
  45. package/docs/03-ai-sdk-core/60-telemetry.mdx +313 -0
  46. package/docs/03-ai-sdk-core/65-devtools.mdx +107 -0
  47. package/docs/03-ai-sdk-core/index.mdx +88 -0
  48. package/docs/04-ai-sdk-ui/01-overview.mdx +44 -0
  49. package/docs/04-ai-sdk-ui/02-chatbot.mdx +1313 -0
  50. package/docs/04-ai-sdk-ui/03-chatbot-message-persistence.mdx +535 -0
  51. package/docs/04-ai-sdk-ui/03-chatbot-resume-streams.mdx +263 -0
  52. package/docs/04-ai-sdk-ui/03-chatbot-tool-usage.mdx +682 -0
  53. package/docs/04-ai-sdk-ui/04-generative-user-interfaces.mdx +389 -0
  54. package/docs/04-ai-sdk-ui/05-completion.mdx +186 -0
  55. package/docs/04-ai-sdk-ui/08-object-generation.mdx +344 -0
  56. package/docs/04-ai-sdk-ui/20-streaming-data.mdx +397 -0
  57. package/docs/04-ai-sdk-ui/21-error-handling.mdx +190 -0
  58. package/docs/04-ai-sdk-ui/21-transport.mdx +174 -0
  59. package/docs/04-ai-sdk-ui/24-reading-ui-message-streams.mdx +104 -0
  60. package/docs/04-ai-sdk-ui/25-message-metadata.mdx +152 -0
  61. package/docs/04-ai-sdk-ui/50-stream-protocol.mdx +477 -0
  62. package/docs/04-ai-sdk-ui/index.mdx +64 -0
  63. package/docs/05-ai-sdk-rsc/01-overview.mdx +45 -0
  64. package/docs/05-ai-sdk-rsc/02-streaming-react-components.mdx +209 -0
  65. package/docs/05-ai-sdk-rsc/03-generative-ui-state.mdx +279 -0
  66. package/docs/05-ai-sdk-rsc/03-saving-and-restoring-states.mdx +105 -0
  67. package/docs/05-ai-sdk-rsc/04-multistep-interfaces.mdx +282 -0
  68. package/docs/05-ai-sdk-rsc/05-streaming-values.mdx +158 -0
  69. package/docs/05-ai-sdk-rsc/06-loading-state.mdx +273 -0
  70. package/docs/05-ai-sdk-rsc/08-error-handling.mdx +96 -0
  71. package/docs/05-ai-sdk-rsc/09-authentication.mdx +42 -0
  72. package/docs/05-ai-sdk-rsc/10-migrating-to-ui.mdx +722 -0
  73. package/docs/05-ai-sdk-rsc/index.mdx +58 -0
  74. package/docs/06-advanced/01-prompt-engineering.mdx +96 -0
  75. package/docs/06-advanced/02-stopping-streams.mdx +184 -0
  76. package/docs/06-advanced/03-backpressure.mdx +173 -0
  77. package/docs/06-advanced/04-caching.mdx +169 -0
  78. package/docs/06-advanced/05-multiple-streamables.mdx +68 -0
  79. package/docs/06-advanced/06-rate-limiting.mdx +60 -0
  80. package/docs/06-advanced/07-rendering-ui-with-language-models.mdx +213 -0
  81. package/docs/06-advanced/08-model-as-router.mdx +120 -0
  82. package/docs/06-advanced/09-multistep-interfaces.mdx +115 -0
  83. package/docs/06-advanced/09-sequential-generations.mdx +55 -0
  84. package/docs/06-advanced/10-vercel-deployment-guide.mdx +117 -0
  85. package/docs/06-advanced/index.mdx +11 -0
  86. package/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +2142 -0
  87. package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +3215 -0
  88. package/docs/07-reference/01-ai-sdk-core/03-generate-object.mdx +780 -0
  89. package/docs/07-reference/01-ai-sdk-core/04-stream-object.mdx +1140 -0
  90. package/docs/07-reference/01-ai-sdk-core/05-embed.mdx +190 -0
  91. package/docs/07-reference/01-ai-sdk-core/06-embed-many.mdx +171 -0
  92. package/docs/07-reference/01-ai-sdk-core/06-rerank.mdx +309 -0
  93. package/docs/07-reference/01-ai-sdk-core/10-generate-image.mdx +227 -0
  94. package/docs/07-reference/01-ai-sdk-core/11-transcribe.mdx +138 -0
  95. package/docs/07-reference/01-ai-sdk-core/12-generate-speech.mdx +214 -0
  96. package/docs/07-reference/01-ai-sdk-core/15-agent.mdx +203 -0
  97. package/docs/07-reference/01-ai-sdk-core/16-tool-loop-agent.mdx +449 -0
  98. package/docs/07-reference/01-ai-sdk-core/17-create-agent-ui-stream.mdx +148 -0
  99. package/docs/07-reference/01-ai-sdk-core/18-create-agent-ui-stream-response.mdx +168 -0
  100. package/docs/07-reference/01-ai-sdk-core/18-pipe-agent-ui-stream-to-response.mdx +144 -0
  101. package/docs/07-reference/01-ai-sdk-core/20-tool.mdx +196 -0
  102. package/docs/07-reference/01-ai-sdk-core/22-dynamic-tool.mdx +175 -0
  103. package/docs/07-reference/01-ai-sdk-core/23-create-mcp-client.mdx +410 -0
  104. package/docs/07-reference/01-ai-sdk-core/24-mcp-stdio-transport.mdx +68 -0
  105. package/docs/07-reference/01-ai-sdk-core/25-json-schema.mdx +94 -0
  106. package/docs/07-reference/01-ai-sdk-core/26-zod-schema.mdx +109 -0
  107. package/docs/07-reference/01-ai-sdk-core/27-valibot-schema.mdx +55 -0
  108. package/docs/07-reference/01-ai-sdk-core/28-output.mdx +342 -0
  109. package/docs/07-reference/01-ai-sdk-core/30-model-message.mdx +415 -0
  110. package/docs/07-reference/01-ai-sdk-core/31-ui-message.mdx +246 -0
  111. package/docs/07-reference/01-ai-sdk-core/32-validate-ui-messages.mdx +101 -0
  112. package/docs/07-reference/01-ai-sdk-core/33-safe-validate-ui-messages.mdx +113 -0
  113. package/docs/07-reference/01-ai-sdk-core/40-provider-registry.mdx +182 -0
  114. package/docs/07-reference/01-ai-sdk-core/42-custom-provider.mdx +121 -0
  115. package/docs/07-reference/01-ai-sdk-core/50-cosine-similarity.mdx +52 -0
  116. package/docs/07-reference/01-ai-sdk-core/60-wrap-language-model.mdx +59 -0
  117. package/docs/07-reference/01-ai-sdk-core/61-wrap-image-model.mdx +64 -0
  118. package/docs/07-reference/01-ai-sdk-core/65-language-model-v2-middleware.mdx +46 -0
  119. package/docs/07-reference/01-ai-sdk-core/66-extract-reasoning-middleware.mdx +68 -0
  120. package/docs/07-reference/01-ai-sdk-core/67-simulate-streaming-middleware.mdx +71 -0
  121. package/docs/07-reference/01-ai-sdk-core/68-default-settings-middleware.mdx +80 -0
  122. package/docs/07-reference/01-ai-sdk-core/69-add-tool-input-examples-middleware.mdx +155 -0
  123. package/docs/07-reference/01-ai-sdk-core/70-extract-json-middleware.mdx +147 -0
  124. package/docs/07-reference/01-ai-sdk-core/70-step-count-is.mdx +84 -0
  125. package/docs/07-reference/01-ai-sdk-core/71-has-tool-call.mdx +120 -0
  126. package/docs/07-reference/01-ai-sdk-core/75-simulate-readable-stream.mdx +94 -0
  127. package/docs/07-reference/01-ai-sdk-core/80-smooth-stream.mdx +145 -0
  128. package/docs/07-reference/01-ai-sdk-core/90-generate-id.mdx +43 -0
  129. package/docs/07-reference/01-ai-sdk-core/91-create-id-generator.mdx +89 -0
  130. package/docs/07-reference/01-ai-sdk-core/index.mdx +159 -0
  131. package/docs/07-reference/02-ai-sdk-ui/01-use-chat.mdx +446 -0
  132. package/docs/07-reference/02-ai-sdk-ui/02-use-completion.mdx +179 -0
  133. package/docs/07-reference/02-ai-sdk-ui/03-use-object.mdx +178 -0
  134. package/docs/07-reference/02-ai-sdk-ui/31-convert-to-model-messages.mdx +230 -0
  135. package/docs/07-reference/02-ai-sdk-ui/32-prune-messages.mdx +108 -0
  136. package/docs/07-reference/02-ai-sdk-ui/40-create-ui-message-stream.mdx +151 -0
  137. package/docs/07-reference/02-ai-sdk-ui/41-create-ui-message-stream-response.mdx +113 -0
  138. package/docs/07-reference/02-ai-sdk-ui/42-pipe-ui-message-stream-to-response.mdx +73 -0
  139. package/docs/07-reference/02-ai-sdk-ui/43-read-ui-message-stream.mdx +57 -0
  140. package/docs/07-reference/02-ai-sdk-ui/46-infer-ui-tools.mdx +99 -0
  141. package/docs/07-reference/02-ai-sdk-ui/47-infer-ui-tool.mdx +75 -0
  142. package/docs/07-reference/02-ai-sdk-ui/50-direct-chat-transport.mdx +333 -0
  143. package/docs/07-reference/02-ai-sdk-ui/index.mdx +89 -0
  144. package/docs/07-reference/03-ai-sdk-rsc/01-stream-ui.mdx +767 -0
  145. package/docs/07-reference/03-ai-sdk-rsc/02-create-ai.mdx +90 -0
  146. package/docs/07-reference/03-ai-sdk-rsc/03-create-streamable-ui.mdx +91 -0
  147. package/docs/07-reference/03-ai-sdk-rsc/04-create-streamable-value.mdx +48 -0
  148. package/docs/07-reference/03-ai-sdk-rsc/05-read-streamable-value.mdx +78 -0
  149. package/docs/07-reference/03-ai-sdk-rsc/06-get-ai-state.mdx +50 -0
  150. package/docs/07-reference/03-ai-sdk-rsc/07-get-mutable-ai-state.mdx +70 -0
  151. package/docs/07-reference/03-ai-sdk-rsc/08-use-ai-state.mdx +26 -0
  152. package/docs/07-reference/03-ai-sdk-rsc/09-use-actions.mdx +42 -0
  153. package/docs/07-reference/03-ai-sdk-rsc/10-use-ui-state.mdx +35 -0
  154. package/docs/07-reference/03-ai-sdk-rsc/11-use-streamable-value.mdx +46 -0
  155. package/docs/07-reference/03-ai-sdk-rsc/20-render.mdx +262 -0
  156. package/docs/07-reference/03-ai-sdk-rsc/index.mdx +67 -0
  157. package/docs/07-reference/04-stream-helpers/01-ai-stream.mdx +89 -0
  158. package/docs/07-reference/04-stream-helpers/02-streaming-text-response.mdx +79 -0
  159. package/docs/07-reference/04-stream-helpers/05-stream-to-response.mdx +108 -0
  160. package/docs/07-reference/04-stream-helpers/07-openai-stream.mdx +77 -0
  161. package/docs/07-reference/04-stream-helpers/08-anthropic-stream.mdx +79 -0
  162. package/docs/07-reference/04-stream-helpers/09-aws-bedrock-stream.mdx +91 -0
  163. package/docs/07-reference/04-stream-helpers/10-aws-bedrock-anthropic-stream.mdx +96 -0
  164. package/docs/07-reference/04-stream-helpers/10-aws-bedrock-messages-stream.mdx +96 -0
  165. package/docs/07-reference/04-stream-helpers/11-aws-bedrock-cohere-stream.mdx +93 -0
  166. package/docs/07-reference/04-stream-helpers/12-aws-bedrock-llama-2-stream.mdx +93 -0
  167. package/docs/07-reference/04-stream-helpers/13-cohere-stream.mdx +78 -0
  168. package/docs/07-reference/04-stream-helpers/14-google-generative-ai-stream.mdx +85 -0
  169. package/docs/07-reference/04-stream-helpers/15-hugging-face-stream.mdx +84 -0
  170. package/docs/07-reference/04-stream-helpers/16-langchain-adapter.mdx +98 -0
  171. package/docs/07-reference/04-stream-helpers/16-llamaindex-adapter.mdx +70 -0
  172. package/docs/07-reference/04-stream-helpers/17-mistral-stream.mdx +81 -0
  173. package/docs/07-reference/04-stream-helpers/18-replicate-stream.mdx +83 -0
  174. package/docs/07-reference/04-stream-helpers/19-inkeep-stream.mdx +80 -0
  175. package/docs/07-reference/04-stream-helpers/index.mdx +103 -0
  176. package/docs/07-reference/05-ai-sdk-errors/ai-api-call-error.mdx +30 -0
  177. package/docs/07-reference/05-ai-sdk-errors/ai-download-error.mdx +27 -0
  178. package/docs/07-reference/05-ai-sdk-errors/ai-empty-response-body-error.mdx +24 -0
  179. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-argument-error.mdx +26 -0
  180. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-data-content-error.mdx +25 -0
  181. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-data-content.mdx +26 -0
  182. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-message-role-error.mdx +25 -0
  183. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-prompt-error.mdx +47 -0
  184. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-response-data-error.mdx +25 -0
  185. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-approval-error.mdx +25 -0
  186. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-input-error.mdx +27 -0
  187. package/docs/07-reference/05-ai-sdk-errors/ai-json-parse-error.mdx +25 -0
  188. package/docs/07-reference/05-ai-sdk-errors/ai-load-api-key-error.mdx +24 -0
  189. package/docs/07-reference/05-ai-sdk-errors/ai-load-setting-error.mdx +24 -0
  190. package/docs/07-reference/05-ai-sdk-errors/ai-message-conversion-error.mdx +25 -0
  191. package/docs/07-reference/05-ai-sdk-errors/ai-no-content-generated-error.mdx +24 -0
  192. package/docs/07-reference/05-ai-sdk-errors/ai-no-image-generated-error.mdx +36 -0
  193. package/docs/07-reference/05-ai-sdk-errors/ai-no-object-generated-error.mdx +43 -0
  194. package/docs/07-reference/05-ai-sdk-errors/ai-no-speech-generated-error.mdx +25 -0
  195. package/docs/07-reference/05-ai-sdk-errors/ai-no-such-model-error.mdx +26 -0
  196. package/docs/07-reference/05-ai-sdk-errors/ai-no-such-provider-error.mdx +28 -0
  197. package/docs/07-reference/05-ai-sdk-errors/ai-no-such-tool-error.mdx +26 -0
  198. package/docs/07-reference/05-ai-sdk-errors/ai-no-transcript-generated-error.mdx +25 -0
  199. package/docs/07-reference/05-ai-sdk-errors/ai-retry-error.mdx +27 -0
  200. package/docs/07-reference/05-ai-sdk-errors/ai-too-many-embedding-values-for-call-error.mdx +27 -0
  201. package/docs/07-reference/05-ai-sdk-errors/ai-tool-call-not-found-for-approval-error.mdx +26 -0
  202. package/docs/07-reference/05-ai-sdk-errors/ai-tool-call-repair-error.mdx +28 -0
  203. package/docs/07-reference/05-ai-sdk-errors/ai-type-validation-error.mdx +25 -0
  204. package/docs/07-reference/05-ai-sdk-errors/ai-unsupported-functionality-error.mdx +25 -0
  205. package/docs/07-reference/05-ai-sdk-errors/index.mdx +38 -0
  206. package/docs/07-reference/index.mdx +34 -0
  207. package/docs/08-migration-guides/00-versioning.mdx +46 -0
  208. package/docs/08-migration-guides/24-migration-guide-6-0.mdx +823 -0
  209. package/docs/08-migration-guides/25-migration-guide-5-0-data.mdx +882 -0
  210. package/docs/08-migration-guides/26-migration-guide-5-0.mdx +3427 -0
  211. package/docs/08-migration-guides/27-migration-guide-4-2.mdx +99 -0
  212. package/docs/08-migration-guides/28-migration-guide-4-1.mdx +14 -0
  213. package/docs/08-migration-guides/29-migration-guide-4-0.mdx +1157 -0
  214. package/docs/08-migration-guides/36-migration-guide-3-4.mdx +14 -0
  215. package/docs/08-migration-guides/37-migration-guide-3-3.mdx +64 -0
  216. package/docs/08-migration-guides/38-migration-guide-3-2.mdx +46 -0
  217. package/docs/08-migration-guides/39-migration-guide-3-1.mdx +168 -0
  218. package/docs/08-migration-guides/index.mdx +22 -0
  219. package/docs/09-troubleshooting/01-azure-stream-slow.mdx +33 -0
  220. package/docs/09-troubleshooting/02-client-side-function-calls-not-invoked.mdx +22 -0
  221. package/docs/09-troubleshooting/03-server-actions-in-client-components.mdx +40 -0
  222. package/docs/09-troubleshooting/04-strange-stream-output.mdx +36 -0
  223. package/docs/09-troubleshooting/05-streamable-ui-errors.mdx +16 -0
  224. package/docs/09-troubleshooting/05-tool-invocation-missing-result.mdx +106 -0
  225. package/docs/09-troubleshooting/06-streaming-not-working-when-deployed.mdx +31 -0
  226. package/docs/09-troubleshooting/06-streaming-not-working-when-proxied.mdx +31 -0
  227. package/docs/09-troubleshooting/06-timeout-on-vercel.mdx +60 -0
  228. package/docs/09-troubleshooting/07-unclosed-streams.mdx +34 -0
  229. package/docs/09-troubleshooting/08-use-chat-failed-to-parse-stream.mdx +26 -0
  230. package/docs/09-troubleshooting/09-client-stream-error.mdx +25 -0
  231. package/docs/09-troubleshooting/10-use-chat-tools-no-response.mdx +32 -0
  232. package/docs/09-troubleshooting/11-use-chat-custom-request-options.mdx +149 -0
  233. package/docs/09-troubleshooting/12-typescript-performance-zod.mdx +46 -0
  234. package/docs/09-troubleshooting/12-use-chat-an-error-occurred.mdx +59 -0
  235. package/docs/09-troubleshooting/13-repeated-assistant-messages.mdx +73 -0
  236. package/docs/09-troubleshooting/14-stream-abort-handling.mdx +73 -0
  237. package/docs/09-troubleshooting/14-tool-calling-with-structured-outputs.mdx +48 -0
  238. package/docs/09-troubleshooting/15-abort-breaks-resumable-streams.mdx +55 -0
  239. package/docs/09-troubleshooting/15-stream-text-not-working.mdx +33 -0
  240. package/docs/09-troubleshooting/16-streaming-status-delay.mdx +63 -0
  241. package/docs/09-troubleshooting/17-use-chat-stale-body-data.mdx +141 -0
  242. package/docs/09-troubleshooting/18-ontoolcall-type-narrowing.mdx +66 -0
  243. package/docs/09-troubleshooting/19-unsupported-model-version.mdx +50 -0
  244. package/docs/09-troubleshooting/20-no-object-generated-content-filter.mdx +72 -0
  245. package/docs/09-troubleshooting/30-model-is-not-assignable-to-type.mdx +21 -0
  246. package/docs/09-troubleshooting/40-typescript-cannot-find-namespace-jsx.mdx +24 -0
  247. package/docs/09-troubleshooting/50-react-maximum-update-depth-exceeded.mdx +39 -0
  248. package/docs/09-troubleshooting/60-jest-cannot-find-module-ai-rsc.mdx +22 -0
  249. package/docs/09-troubleshooting/index.mdx +11 -0
  250. package/package.json +7 -3
@@ -0,0 +1,286 @@
1
+ ---
2
+ title: Configuring Call Options
3
+ description: Pass type-safe runtime inputs to dynamically configure agent behavior.
4
+ ---
5
+
6
+ # Configuring Call Options
7
+
8
+ Call options allow you to pass type-safe structured inputs to your agent. Use them to dynamically modify any agent setting based on the specific request.
9
+
10
+ ## Why Use Call Options?
11
+
12
+ When you need agent behavior to change based on runtime context:
13
+
14
+ - **Add dynamic context** - Inject retrieved documents, user preferences, or session data into prompts
15
+ - **Select models dynamically** - Choose faster or more capable models based on request complexity
16
+ - **Configure tools per request** - Pass user location to search tools or adjust tool behavior
17
+ - **Customize provider options** - Set reasoning effort, temperature, or other provider-specific settings
18
+
19
+ Without call options, you'd need to create multiple agents or handle configuration logic outside the agent.
20
+
21
+ ## How It Works
22
+
23
+ Define call options in three steps:
24
+
25
+ 1. **Define the schema** - Specify what inputs you accept using `callOptionsSchema`
26
+ 2. **Configure with `prepareCall`** - Use those inputs to modify agent settings
27
+ 3. **Pass options at runtime** - Provide the options when calling `generate()` or `stream()`
28
+
29
+ ## Basic Example
30
+
31
+ Add user context to your agent's prompt at runtime:
32
+
33
+ ```ts
34
+ import { ToolLoopAgent } from 'ai';
35
+ __PROVIDER_IMPORT__;
36
+ import { z } from 'zod';
37
+
38
+ const supportAgent = new ToolLoopAgent({
39
+ model: __MODEL__,
40
+ callOptionsSchema: z.object({
41
+ userId: z.string(),
42
+ accountType: z.enum(['free', 'pro', 'enterprise']),
43
+ }),
44
+ instructions: 'You are a helpful customer support agent.',
45
+ prepareCall: ({ options, ...settings }) => ({
46
+ ...settings,
47
+ instructions:
48
+ settings.instructions +
49
+ `\nUser context:
50
+ - Account type: ${options.accountType}
51
+ - User ID: ${options.userId}
52
+
53
+ Adjust your response based on the user's account level.`,
54
+ }),
55
+ });
56
+
57
+ // Call the agent with specific user context
58
+ const result = await supportAgent.generate({
59
+ prompt: 'How do I upgrade my account?',
60
+ options: {
61
+ userId: 'user_123',
62
+ accountType: 'free',
63
+ },
64
+ });
65
+ ```
66
+
67
+ The `options` parameter is now required and type-checked. If you don't provide it or pass incorrect types, TypeScript will error.
68
+
69
+ ## Modifying Agent Settings
70
+
71
+ Use `prepareCall` to modify any agent setting. Return only the settings you want to change.
72
+
73
+ ### Dynamic Model Selection
74
+
75
+ Choose models based on request characteristics:
76
+
77
+ ```ts
78
+ import { ToolLoopAgent } from 'ai';
79
+ __PROVIDER_IMPORT__;
80
+ import { z } from 'zod';
81
+
82
+ const agent = new ToolLoopAgent({
83
+ model: __MODEL__, // Default model
84
+ callOptionsSchema: z.object({
85
+ complexity: z.enum(['simple', 'complex']),
86
+ }),
87
+ prepareCall: ({ options, ...settings }) => ({
88
+ ...settings,
89
+ model:
90
+ options.complexity === 'simple' ? 'openai/gpt-4o-mini' : 'openai/o1-mini',
91
+ }),
92
+ });
93
+
94
+ // Use faster model for simple queries
95
+ await agent.generate({
96
+ prompt: 'What is 2+2?',
97
+ options: { complexity: 'simple' },
98
+ });
99
+
100
+ // Use more capable model for complex reasoning
101
+ await agent.generate({
102
+ prompt: 'Explain quantum entanglement',
103
+ options: { complexity: 'complex' },
104
+ });
105
+ ```
106
+
107
+ ### Dynamic Tool Configuration
108
+
109
+ Configure tools based on runtime context:
110
+
111
+ ```ts
112
+ import { openai } from '@ai-sdk/openai';
113
+ import { ToolLoopAgent } from 'ai';
114
+ __PROVIDER_IMPORT__;
115
+ import { z } from 'zod';
116
+
117
+ const newsAgent = new ToolLoopAgent({
118
+ model: __MODEL__,
119
+ callOptionsSchema: z.object({
120
+ userCity: z.string().optional(),
121
+ userRegion: z.string().optional(),
122
+ }),
123
+ tools: {
124
+ web_search: openai.tools.webSearch(),
125
+ },
126
+ prepareCall: ({ options, ...settings }) => ({
127
+ ...settings,
128
+ tools: {
129
+ web_search: openai.tools.webSearch({
130
+ searchContextSize: 'low',
131
+ userLocation: {
132
+ type: 'approximate',
133
+ city: options.userCity,
134
+ region: options.userRegion,
135
+ country: 'US',
136
+ },
137
+ }),
138
+ },
139
+ }),
140
+ });
141
+
142
+ await newsAgent.generate({
143
+ prompt: 'What are the top local news stories?',
144
+ options: {
145
+ userCity: 'San Francisco',
146
+ userRegion: 'California',
147
+ },
148
+ });
149
+ ```
150
+
151
+ ### Provider-Specific Options
152
+
153
+ Configure provider settings dynamically:
154
+
155
+ ```ts
156
+ import { openai, OpenAIProviderOptions } from '@ai-sdk/openai';
157
+ import { ToolLoopAgent } from 'ai';
158
+ import { z } from 'zod';
159
+
160
+ const agent = new ToolLoopAgent({
161
+ model: 'openai/o3',
162
+ callOptionsSchema: z.object({
163
+ taskDifficulty: z.enum(['low', 'medium', 'high']),
164
+ }),
165
+ prepareCall: ({ options, ...settings }) => ({
166
+ ...settings,
167
+ providerOptions: {
168
+ openai: {
169
+ reasoningEffort: options.taskDifficulty,
170
+ } satisfies OpenAIProviderOptions,
171
+ },
172
+ }),
173
+ });
174
+
175
+ await agent.generate({
176
+ prompt: 'Analyze this complex scenario...',
177
+ options: { taskDifficulty: 'high' },
178
+ });
179
+ ```
180
+
181
+ ## Advanced Patterns
182
+
183
+ ### Retrieval Augmented Generation (RAG)
184
+
185
+ Fetch relevant context and inject it into your prompt:
186
+
187
+ ```ts
188
+ import { ToolLoopAgent } from 'ai';
189
+ __PROVIDER_IMPORT__;
190
+ import { z } from 'zod';
191
+
192
+ const ragAgent = new ToolLoopAgent({
193
+ model: __MODEL__,
194
+ callOptionsSchema: z.object({
195
+ query: z.string(),
196
+ }),
197
+ prepareCall: async ({ options, ...settings }) => {
198
+ // Fetch relevant documents (this can be async)
199
+ const documents = await vectorSearch(options.query);
200
+
201
+ return {
202
+ ...settings,
203
+ instructions: `Answer questions using the following context:
204
+
205
+ ${documents.map(doc => doc.content).join('\n\n')}`,
206
+ };
207
+ },
208
+ });
209
+
210
+ await ragAgent.generate({
211
+ prompt: 'What is our refund policy?',
212
+ options: { query: 'refund policy' },
213
+ });
214
+ ```
215
+
216
+ The `prepareCall` function can be async, enabling you to fetch data before configuring the agent.
217
+
218
+ ### Combining Multiple Modifications
219
+
220
+ Modify multiple settings together:
221
+
222
+ ```ts
223
+ import { ToolLoopAgent } from 'ai';
224
+ __PROVIDER_IMPORT__;
225
+ import { z } from 'zod';
226
+
227
+ const agent = new ToolLoopAgent({
228
+ model: __MODEL__,
229
+ callOptionsSchema: z.object({
230
+ userRole: z.enum(['admin', 'user']),
231
+ urgency: z.enum(['low', 'high']),
232
+ }),
233
+ tools: {
234
+ readDatabase: readDatabaseTool,
235
+ writeDatabase: writeDatabaseTool,
236
+ },
237
+ prepareCall: ({ options, ...settings }) => ({
238
+ ...settings,
239
+ // Upgrade model for urgent requests
240
+ model: options.urgency === 'high' ? __MODEL__ : settings.model,
241
+ // Limit tools based on user role
242
+ activeTools:
243
+ options.userRole === 'admin'
244
+ ? ['readDatabase', 'writeDatabase']
245
+ : ['readDatabase'],
246
+ // Adjust instructions
247
+ instructions: `You are a ${options.userRole} assistant.
248
+ ${options.userRole === 'admin' ? 'You have full database access.' : 'You have read-only access.'}`,
249
+ }),
250
+ });
251
+
252
+ await agent.generate({
253
+ prompt: 'Update the user record',
254
+ options: {
255
+ userRole: 'admin',
256
+ urgency: 'high',
257
+ },
258
+ });
259
+ ```
260
+
261
+ ## Using with createAgentUIStreamResponse
262
+
263
+ Pass call options through API routes to your agent:
264
+
265
+ ```ts filename="app/api/chat/route.ts"
266
+ import { createAgentUIStreamResponse } from 'ai';
267
+ import { myAgent } from '@/ai/agents/my-agent';
268
+
269
+ export async function POST(request: Request) {
270
+ const { messages, userId, accountType } = await request.json();
271
+
272
+ return createAgentUIStreamResponse({
273
+ agent: myAgent,
274
+ messages,
275
+ options: {
276
+ userId,
277
+ accountType,
278
+ },
279
+ });
280
+ }
281
+ ```
282
+
283
+ ## Next Steps
284
+
285
+ - Learn about [loop control](/docs/agents/loop-control) for execution management
286
+ - Explore [workflow patterns](/docs/agents/workflows) for complex multi-step processes
@@ -0,0 +1,40 @@
1
+ ---
2
+ title: Agents
3
+ description: An overview of building agents with the AI SDK.
4
+ ---
5
+
6
+ # Agents
7
+
8
+ The following section show you how to build agents with the AI SDK - systems where large language models (LLMs) use tools in a loop to accomplish tasks.
9
+
10
+ <IndexCards
11
+ cards={[
12
+ {
13
+ title: 'Overview',
14
+ description: 'Learn what agents are and why to use the Agent class.',
15
+ href: '/docs/agents/overview',
16
+ },
17
+ {
18
+ title: 'Building Agents',
19
+ description: 'Complete guide to creating agents with the Agent class.',
20
+ href: '/docs/agents/building-agents',
21
+ },
22
+ {
23
+ title: 'Workflow Patterns',
24
+ description:
25
+ 'Structured patterns using core functions for complex workflows.',
26
+ href: '/docs/agents/workflows',
27
+ },
28
+ {
29
+ title: 'Loop Control',
30
+ description: 'Advanced execution control with stopWhen and prepareStep.',
31
+ href: '/docs/agents/loop-control',
32
+ },
33
+ {
34
+ title: 'Configuring Call Options',
35
+ description:
36
+ 'Pass type-safe runtime inputs to dynamically configure agent behavior.',
37
+ href: '/docs/agents/configuring-call-options',
38
+ },
39
+ ]}
40
+ />
@@ -0,0 +1,33 @@
1
+ ---
2
+ title: Overview
3
+ description: An overview of AI SDK Core.
4
+ ---
5
+
6
+ # AI SDK Core
7
+
8
+ Large Language Models (LLMs) are advanced programs that can understand, create, and engage with human language on a large scale.
9
+ They are trained on vast amounts of written material to recognize patterns in language and predict what might come next in a given piece of text.
10
+
11
+ AI SDK Core **simplifies working with LLMs by offering a standardized way of integrating them into your app** - so you can focus on building great AI applications for your users, not waste time on technical details.
12
+
13
+ For example, here’s how you can generate text with various models using the AI SDK:
14
+
15
+ <PreviewSwitchProviders />
16
+
17
+ ## AI SDK Core Functions
18
+
19
+ AI SDK Core has various functions designed for [text generation](./generating-text), [structured data generation](./generating-structured-data), and [tool usage](./tools-and-tool-calling).
20
+ These functions take a standardized approach to setting up [prompts](./prompts) and [settings](./settings), making it easier to work with different models.
21
+
22
+ - [`generateText`](/docs/ai-sdk-core/generating-text): Generates text and [tool calls](./tools-and-tool-calling).
23
+ This function is ideal for non-interactive use cases such as automation tasks where you need to write text (e.g. drafting email or summarizing web pages) and for agents that use tools.
24
+ - [`streamText`](/docs/ai-sdk-core/generating-text): Stream text and tool calls.
25
+ You can use the `streamText` function for interactive use cases such as [chat bots](/docs/ai-sdk-ui/chatbot) and [content streaming](/docs/ai-sdk-ui/completion).
26
+ - [`generateObject`](/docs/ai-sdk-core/generating-structured-data): Generates a typed, structured object that matches a [Zod](https://zod.dev/) schema.
27
+ You can use this function to force the language model to return structured data, e.g. for information extraction, synthetic data generation, or classification tasks.
28
+ - [`streamObject`](/docs/ai-sdk-core/generating-structured-data): Stream a structured object that matches a Zod schema.
29
+ You can use this function to [stream generated UIs](/docs/ai-sdk-ui/object-generation).
30
+
31
+ ## API Reference
32
+
33
+ Please check out the [AI SDK Core API Reference](/docs/reference/ai-sdk-core) for more details on each function.