pydantic-ai-slim 1.0.15__py3-none-any.whl → 1.0.17__py3-none-any.whl

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.
@@ -10,6 +10,7 @@ from .. import (
10
10
  models,
11
11
  usage as _usage,
12
12
  )
13
+ from ..builtin_tools import AbstractBuiltinTool
13
14
  from ..output import OutputDataT, OutputSpec
14
15
  from ..run import AgentRun
15
16
  from ..settings import ModelSettings
@@ -72,7 +73,7 @@ class WrapperAgent(AbstractAgent[AgentDepsT, OutputDataT]):
72
73
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
73
74
  *,
74
75
  output_type: None = None,
75
- message_history: list[_messages.ModelMessage] | None = None,
76
+ message_history: Sequence[_messages.ModelMessage] | None = None,
76
77
  deferred_tool_results: DeferredToolResults | None = None,
77
78
  model: models.Model | models.KnownModelName | str | None = None,
78
79
  deps: AgentDepsT = None,
@@ -81,6 +82,7 @@ class WrapperAgent(AbstractAgent[AgentDepsT, OutputDataT]):
81
82
  usage: _usage.RunUsage | None = None,
82
83
  infer_name: bool = True,
83
84
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
85
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
84
86
  ) -> AbstractAsyncContextManager[AgentRun[AgentDepsT, OutputDataT]]: ...
85
87
 
86
88
  @overload
@@ -89,7 +91,7 @@ class WrapperAgent(AbstractAgent[AgentDepsT, OutputDataT]):
89
91
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
90
92
  *,
91
93
  output_type: OutputSpec[RunOutputDataT],
92
- message_history: list[_messages.ModelMessage] | None = None,
94
+ message_history: Sequence[_messages.ModelMessage] | None = None,
93
95
  deferred_tool_results: DeferredToolResults | None = None,
94
96
  model: models.Model | models.KnownModelName | str | None = None,
95
97
  deps: AgentDepsT = None,
@@ -98,6 +100,7 @@ class WrapperAgent(AbstractAgent[AgentDepsT, OutputDataT]):
98
100
  usage: _usage.RunUsage | None = None,
99
101
  infer_name: bool = True,
100
102
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
103
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
101
104
  ) -> AbstractAsyncContextManager[AgentRun[AgentDepsT, RunOutputDataT]]: ...
102
105
 
103
106
  @asynccontextmanager
@@ -106,7 +109,7 @@ class WrapperAgent(AbstractAgent[AgentDepsT, OutputDataT]):
106
109
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
107
110
  *,
108
111
  output_type: OutputSpec[RunOutputDataT] | None = None,
109
- message_history: list[_messages.ModelMessage] | None = None,
112
+ message_history: Sequence[_messages.ModelMessage] | None = None,
110
113
  deferred_tool_results: DeferredToolResults | None = None,
111
114
  model: models.Model | models.KnownModelName | str | None = None,
112
115
  deps: AgentDepsT = None,
@@ -115,6 +118,7 @@ class WrapperAgent(AbstractAgent[AgentDepsT, OutputDataT]):
115
118
  usage: _usage.RunUsage | None = None,
116
119
  infer_name: bool = True,
117
120
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
121
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
118
122
  ) -> AsyncIterator[AgentRun[AgentDepsT, Any]]:
119
123
  """A contextmanager which can be used to iterate over the agent graph's nodes as they are executed.
120
124
 
@@ -187,6 +191,7 @@ class WrapperAgent(AbstractAgent[AgentDepsT, OutputDataT]):
187
191
  usage: Optional usage to start with, useful for resuming a conversation or agents used in tools.
188
192
  infer_name: Whether to try to infer the agent name from the call frame if it's not set.
189
193
  toolsets: Optional additional toolsets for this run.
194
+ builtin_tools: Optional additional builtin tools for this run.
190
195
 
191
196
  Returns:
192
197
  The result of the run.
@@ -203,6 +208,7 @@ class WrapperAgent(AbstractAgent[AgentDepsT, OutputDataT]):
203
208
  usage=usage,
204
209
  infer_name=infer_name,
205
210
  toolsets=toolsets,
211
+ builtin_tools=builtin_tools,
206
212
  ) as run:
207
213
  yield run
208
214
 
@@ -210,18 +216,20 @@ class WrapperAgent(AbstractAgent[AgentDepsT, OutputDataT]):
210
216
  def override(
211
217
  self,
212
218
  *,
219
+ name: str | _utils.Unset = _utils.UNSET,
213
220
  deps: AgentDepsT | _utils.Unset = _utils.UNSET,
214
221
  model: models.Model | models.KnownModelName | str | _utils.Unset = _utils.UNSET,
215
222
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | _utils.Unset = _utils.UNSET,
216
223
  tools: Sequence[Tool[AgentDepsT] | ToolFuncEither[AgentDepsT, ...]] | _utils.Unset = _utils.UNSET,
217
224
  instructions: Instructions[AgentDepsT] | _utils.Unset = _utils.UNSET,
218
225
  ) -> Iterator[None]:
219
- """Context manager to temporarily override agent dependencies, model, toolsets, tools, or instructions.
226
+ """Context manager to temporarily override agent name, dependencies, model, toolsets, tools, or instructions.
220
227
 
221
228
  This is particularly useful when testing.
222
229
  You can find an example of this [here](../testing.md#overriding-model-via-pytest-fixtures).
223
230
 
224
231
  Args:
232
+ name: The name to use instead of the name passed to the agent constructor and agent run.
225
233
  deps: The dependencies to use instead of the dependencies passed to the agent run.
226
234
  model: The model to use instead of the model passed to the agent run.
227
235
  toolsets: The toolsets to use instead of the toolsets passed to the agent constructor and agent run.
@@ -229,6 +237,7 @@ class WrapperAgent(AbstractAgent[AgentDepsT, OutputDataT]):
229
237
  instructions: The instructions to use instead of the instructions registered with the agent.
230
238
  """
231
239
  with self.wrapped.override(
240
+ name=name,
232
241
  deps=deps,
233
242
  model=model,
234
243
  toolsets=toolsets,
@@ -2,10 +2,13 @@ from __future__ import annotations as _annotations
2
2
 
3
3
  from abc import ABC
4
4
  from dataclasses import dataclass
5
- from typing import Literal
5
+ from typing import TYPE_CHECKING, Literal
6
6
 
7
7
  from typing_extensions import TypedDict
8
8
 
9
+ if TYPE_CHECKING:
10
+ from .builtin_tools import AbstractBuiltinTool
11
+
9
12
  __all__ = (
10
13
  'AbstractBuiltinTool',
11
14
  'WebSearchTool',
pydantic_ai/direct.py CHANGED
@@ -10,7 +10,7 @@ from __future__ import annotations as _annotations
10
10
 
11
11
  import queue
12
12
  import threading
13
- from collections.abc import Iterator
13
+ from collections.abc import Iterator, Sequence
14
14
  from contextlib import AbstractAsyncContextManager
15
15
  from dataclasses import dataclass, field
16
16
  from datetime import datetime
@@ -35,7 +35,7 @@ STREAM_INITIALIZATION_TIMEOUT = 30
35
35
 
36
36
  async def model_request(
37
37
  model: models.Model | models.KnownModelName | str,
38
- messages: list[messages.ModelMessage],
38
+ messages: Sequence[messages.ModelMessage],
39
39
  *,
40
40
  model_settings: settings.ModelSettings | None = None,
41
41
  model_request_parameters: models.ModelRequestParameters | None = None,
@@ -79,7 +79,7 @@ async def model_request(
79
79
  """
80
80
  model_instance = _prepare_model(model, instrument)
81
81
  return await model_instance.request(
82
- messages,
82
+ list(messages),
83
83
  model_settings,
84
84
  model_request_parameters or models.ModelRequestParameters(),
85
85
  )
@@ -87,7 +87,7 @@ async def model_request(
87
87
 
88
88
  def model_request_sync(
89
89
  model: models.Model | models.KnownModelName | str,
90
- messages: list[messages.ModelMessage],
90
+ messages: Sequence[messages.ModelMessage],
91
91
  *,
92
92
  model_settings: settings.ModelSettings | None = None,
93
93
  model_request_parameters: models.ModelRequestParameters | None = None,
@@ -133,7 +133,7 @@ def model_request_sync(
133
133
  return _get_event_loop().run_until_complete(
134
134
  model_request(
135
135
  model,
136
- messages,
136
+ list(messages),
137
137
  model_settings=model_settings,
138
138
  model_request_parameters=model_request_parameters,
139
139
  instrument=instrument,
@@ -143,7 +143,7 @@ def model_request_sync(
143
143
 
144
144
  def model_request_stream(
145
145
  model: models.Model | models.KnownModelName | str,
146
- messages: list[messages.ModelMessage],
146
+ messages: Sequence[messages.ModelMessage],
147
147
  *,
148
148
  model_settings: settings.ModelSettings | None = None,
149
149
  model_request_parameters: models.ModelRequestParameters | None = None,
@@ -191,7 +191,7 @@ def model_request_stream(
191
191
  """
192
192
  model_instance = _prepare_model(model, instrument)
193
193
  return model_instance.request_stream(
194
- messages,
194
+ list(messages),
195
195
  model_settings,
196
196
  model_request_parameters or models.ModelRequestParameters(),
197
197
  )
@@ -199,7 +199,7 @@ def model_request_stream(
199
199
 
200
200
  def model_request_stream_sync(
201
201
  model: models.Model | models.KnownModelName | str,
202
- messages: list[messages.ModelMessage],
202
+ messages: Sequence[messages.ModelMessage],
203
203
  *,
204
204
  model_settings: settings.ModelSettings | None = None,
205
205
  model_request_parameters: models.ModelRequestParameters | None = None,
@@ -246,7 +246,7 @@ def model_request_stream_sync(
246
246
  """
247
247
  async_stream_cm = model_request_stream(
248
248
  model=model,
249
- messages=messages,
249
+ messages=list(messages),
250
250
  model_settings=model_settings,
251
251
  model_request_parameters=model_request_parameters,
252
252
  instrument=instrument,
@@ -15,8 +15,9 @@ from pydantic_ai import (
15
15
  models,
16
16
  usage as _usage,
17
17
  )
18
- from pydantic_ai.agent import AbstractAgent, AgentRun, AgentRunResult, EventStreamHandler, RunOutputDataT, WrapperAgent
19
- from pydantic_ai.agent.abstract import Instructions
18
+ from pydantic_ai.agent import AbstractAgent, AgentRun, AgentRunResult, EventStreamHandler, WrapperAgent
19
+ from pydantic_ai.agent.abstract import Instructions, RunOutputDataT
20
+ from pydantic_ai.builtin_tools import AbstractBuiltinTool
20
21
  from pydantic_ai.exceptions import UserError
21
22
  from pydantic_ai.models import Model
22
23
  from pydantic_ai.output import OutputDataT, OutputSpec
@@ -112,7 +113,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
112
113
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
113
114
  *,
114
115
  output_type: OutputSpec[RunOutputDataT] | None = None,
115
- message_history: list[_messages.ModelMessage] | None = None,
116
+ message_history: Sequence[_messages.ModelMessage] | None = None,
116
117
  deferred_tool_results: DeferredToolResults | None = None,
117
118
  model: models.Model | models.KnownModelName | str | None = None,
118
119
  deps: AgentDepsT,
@@ -121,6 +122,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
121
122
  usage: _usage.RunUsage | None = None,
122
123
  infer_name: bool = True,
123
124
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
125
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
124
126
  event_stream_handler: EventStreamHandler[AgentDepsT] | None = None,
125
127
  **_deprecated_kwargs: Never,
126
128
  ) -> AgentRunResult[Any]:
@@ -137,6 +139,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
137
139
  usage=usage,
138
140
  infer_name=infer_name,
139
141
  toolsets=toolsets,
142
+ builtin_tools=builtin_tools,
140
143
  event_stream_handler=event_stream_handler,
141
144
  **_deprecated_kwargs,
142
145
  )
@@ -149,7 +152,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
149
152
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
150
153
  *,
151
154
  output_type: OutputSpec[RunOutputDataT] | None = None,
152
- message_history: list[_messages.ModelMessage] | None = None,
155
+ message_history: Sequence[_messages.ModelMessage] | None = None,
153
156
  deferred_tool_results: DeferredToolResults | None = None,
154
157
  model: models.Model | models.KnownModelName | str | None = None,
155
158
  deps: AgentDepsT,
@@ -158,6 +161,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
158
161
  usage: _usage.RunUsage | None = None,
159
162
  infer_name: bool = True,
160
163
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
164
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
161
165
  event_stream_handler: EventStreamHandler[AgentDepsT] | None = None,
162
166
  **_deprecated_kwargs: Never,
163
167
  ) -> AgentRunResult[Any]:
@@ -174,6 +178,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
174
178
  usage=usage,
175
179
  infer_name=infer_name,
176
180
  toolsets=toolsets,
181
+ builtin_tools=builtin_tools,
177
182
  event_stream_handler=event_stream_handler,
178
183
  **_deprecated_kwargs,
179
184
  )
@@ -237,7 +242,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
237
242
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
238
243
  *,
239
244
  output_type: None = None,
240
- message_history: list[_messages.ModelMessage] | None = None,
245
+ message_history: Sequence[_messages.ModelMessage] | None = None,
241
246
  deferred_tool_results: DeferredToolResults | None = None,
242
247
  model: models.Model | models.KnownModelName | str | None = None,
243
248
  deps: AgentDepsT = None,
@@ -246,6 +251,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
246
251
  usage: _usage.RunUsage | None = None,
247
252
  infer_name: bool = True,
248
253
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
254
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
249
255
  event_stream_handler: EventStreamHandler[AgentDepsT] | None = None,
250
256
  ) -> AgentRunResult[OutputDataT]: ...
251
257
 
@@ -255,7 +261,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
255
261
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
256
262
  *,
257
263
  output_type: OutputSpec[RunOutputDataT],
258
- message_history: list[_messages.ModelMessage] | None = None,
264
+ message_history: Sequence[_messages.ModelMessage] | None = None,
259
265
  deferred_tool_results: DeferredToolResults | None = None,
260
266
  model: models.Model | models.KnownModelName | str | None = None,
261
267
  deps: AgentDepsT = None,
@@ -264,6 +270,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
264
270
  usage: _usage.RunUsage | None = None,
265
271
  infer_name: bool = True,
266
272
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
273
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
267
274
  event_stream_handler: EventStreamHandler[AgentDepsT] | None = None,
268
275
  ) -> AgentRunResult[RunOutputDataT]: ...
269
276
 
@@ -272,7 +279,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
272
279
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
273
280
  *,
274
281
  output_type: OutputSpec[RunOutputDataT] | None = None,
275
- message_history: list[_messages.ModelMessage] | None = None,
282
+ message_history: Sequence[_messages.ModelMessage] | None = None,
276
283
  deferred_tool_results: DeferredToolResults | None = None,
277
284
  model: models.Model | models.KnownModelName | str | None = None,
278
285
  deps: AgentDepsT = None,
@@ -281,6 +288,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
281
288
  usage: _usage.RunUsage | None = None,
282
289
  infer_name: bool = True,
283
290
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
291
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
284
292
  event_stream_handler: EventStreamHandler[AgentDepsT] | None = None,
285
293
  **_deprecated_kwargs: Never,
286
294
  ) -> AgentRunResult[Any]:
@@ -314,6 +322,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
314
322
  usage: Optional usage to start with, useful for resuming a conversation or agents used in tools.
315
323
  infer_name: Whether to try to infer the agent name from the call frame if it's not set.
316
324
  toolsets: Optional additional toolsets for this run.
325
+ builtin_tools: Optional additional builtin tools for this run.
317
326
  event_stream_handler: Optional event stream handler to use for this run.
318
327
 
319
328
  Returns:
@@ -331,6 +340,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
331
340
  usage=usage,
332
341
  infer_name=infer_name,
333
342
  toolsets=toolsets,
343
+ builtin_tools=builtin_tools,
334
344
  event_stream_handler=event_stream_handler,
335
345
  **_deprecated_kwargs,
336
346
  )
@@ -341,7 +351,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
341
351
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
342
352
  *,
343
353
  output_type: None = None,
344
- message_history: list[_messages.ModelMessage] | None = None,
354
+ message_history: Sequence[_messages.ModelMessage] | None = None,
345
355
  deferred_tool_results: DeferredToolResults | None = None,
346
356
  model: models.Model | models.KnownModelName | str | None = None,
347
357
  deps: AgentDepsT = None,
@@ -350,6 +360,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
350
360
  usage: _usage.RunUsage | None = None,
351
361
  infer_name: bool = True,
352
362
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
363
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
353
364
  event_stream_handler: EventStreamHandler[AgentDepsT] | None = None,
354
365
  ) -> AgentRunResult[OutputDataT]: ...
355
366
 
@@ -359,7 +370,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
359
370
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
360
371
  *,
361
372
  output_type: OutputSpec[RunOutputDataT],
362
- message_history: list[_messages.ModelMessage] | None = None,
373
+ message_history: Sequence[_messages.ModelMessage] | None = None,
363
374
  deferred_tool_results: DeferredToolResults | None = None,
364
375
  model: models.Model | models.KnownModelName | str | None = None,
365
376
  deps: AgentDepsT = None,
@@ -368,6 +379,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
368
379
  usage: _usage.RunUsage | None = None,
369
380
  infer_name: bool = True,
370
381
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
382
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
371
383
  event_stream_handler: EventStreamHandler[AgentDepsT] | None = None,
372
384
  ) -> AgentRunResult[RunOutputDataT]: ...
373
385
 
@@ -376,7 +388,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
376
388
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
377
389
  *,
378
390
  output_type: OutputSpec[RunOutputDataT] | None = None,
379
- message_history: list[_messages.ModelMessage] | None = None,
391
+ message_history: Sequence[_messages.ModelMessage] | None = None,
380
392
  deferred_tool_results: DeferredToolResults | None = None,
381
393
  model: models.Model | models.KnownModelName | str | None = None,
382
394
  deps: AgentDepsT = None,
@@ -385,6 +397,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
385
397
  usage: _usage.RunUsage | None = None,
386
398
  infer_name: bool = True,
387
399
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
400
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
388
401
  event_stream_handler: EventStreamHandler[AgentDepsT] | None = None,
389
402
  **_deprecated_kwargs: Never,
390
403
  ) -> AgentRunResult[Any]:
@@ -417,6 +430,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
417
430
  usage: Optional usage to start with, useful for resuming a conversation or agents used in tools.
418
431
  infer_name: Whether to try to infer the agent name from the call frame if it's not set.
419
432
  toolsets: Optional additional toolsets for this run.
433
+ builtin_tools: Optional additional builtin tools for this run.
420
434
  event_stream_handler: Optional event stream handler to use for this run.
421
435
 
422
436
  Returns:
@@ -434,6 +448,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
434
448
  usage=usage,
435
449
  infer_name=infer_name,
436
450
  toolsets=toolsets,
451
+ builtin_tools=builtin_tools,
437
452
  event_stream_handler=event_stream_handler,
438
453
  **_deprecated_kwargs,
439
454
  )
@@ -444,7 +459,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
444
459
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
445
460
  *,
446
461
  output_type: None = None,
447
- message_history: list[_messages.ModelMessage] | None = None,
462
+ message_history: Sequence[_messages.ModelMessage] | None = None,
448
463
  deferred_tool_results: DeferredToolResults | None = None,
449
464
  model: models.Model | models.KnownModelName | str | None = None,
450
465
  deps: AgentDepsT = None,
@@ -453,6 +468,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
453
468
  usage: _usage.RunUsage | None = None,
454
469
  infer_name: bool = True,
455
470
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
471
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
456
472
  event_stream_handler: EventStreamHandler[AgentDepsT] | None = None,
457
473
  ) -> AbstractAsyncContextManager[StreamedRunResult[AgentDepsT, OutputDataT]]: ...
458
474
 
@@ -462,7 +478,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
462
478
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
463
479
  *,
464
480
  output_type: OutputSpec[RunOutputDataT],
465
- message_history: list[_messages.ModelMessage] | None = None,
481
+ message_history: Sequence[_messages.ModelMessage] | None = None,
466
482
  deferred_tool_results: DeferredToolResults | None = None,
467
483
  model: models.Model | models.KnownModelName | str | None = None,
468
484
  deps: AgentDepsT = None,
@@ -471,6 +487,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
471
487
  usage: _usage.RunUsage | None = None,
472
488
  infer_name: bool = True,
473
489
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
490
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
474
491
  event_stream_handler: EventStreamHandler[AgentDepsT] | None = None,
475
492
  ) -> AbstractAsyncContextManager[StreamedRunResult[AgentDepsT, RunOutputDataT]]: ...
476
493
 
@@ -480,7 +497,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
480
497
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
481
498
  *,
482
499
  output_type: OutputSpec[RunOutputDataT] | None = None,
483
- message_history: list[_messages.ModelMessage] | None = None,
500
+ message_history: Sequence[_messages.ModelMessage] | None = None,
484
501
  deferred_tool_results: DeferredToolResults | None = None,
485
502
  model: models.Model | models.KnownModelName | str | None = None,
486
503
  deps: AgentDepsT = None,
@@ -489,6 +506,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
489
506
  usage: _usage.RunUsage | None = None,
490
507
  infer_name: bool = True,
491
508
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
509
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
492
510
  event_stream_handler: EventStreamHandler[AgentDepsT] | None = None,
493
511
  **_deprecated_kwargs: Never,
494
512
  ) -> AsyncIterator[StreamedRunResult[AgentDepsT, Any]]:
@@ -519,6 +537,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
519
537
  usage: Optional usage to start with, useful for resuming a conversation or agents used in tools.
520
538
  infer_name: Whether to try to infer the agent name from the call frame if it's not set.
521
539
  toolsets: Optional additional toolsets for this run.
540
+ builtin_tools: Optional additional builtin tools for this run.
522
541
  event_stream_handler: Optional event stream handler to use for this run. It will receive all the events up until the final result is found, which you can then read or stream from inside the context manager.
523
542
 
524
543
  Returns:
@@ -542,6 +561,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
542
561
  usage=usage,
543
562
  infer_name=infer_name,
544
563
  toolsets=toolsets,
564
+ builtin_tools=builtin_tools,
545
565
  event_stream_handler=event_stream_handler,
546
566
  **_deprecated_kwargs,
547
567
  ) as result:
@@ -553,7 +573,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
553
573
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
554
574
  *,
555
575
  output_type: None = None,
556
- message_history: list[_messages.ModelMessage] | None = None,
576
+ message_history: Sequence[_messages.ModelMessage] | None = None,
557
577
  deferred_tool_results: DeferredToolResults | None = None,
558
578
  model: models.Model | models.KnownModelName | str | None = None,
559
579
  deps: AgentDepsT = None,
@@ -562,6 +582,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
562
582
  usage: _usage.RunUsage | None = None,
563
583
  infer_name: bool = True,
564
584
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
585
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
565
586
  ) -> AsyncIterator[_messages.AgentStreamEvent | AgentRunResultEvent[OutputDataT]]: ...
566
587
 
567
588
  @overload
@@ -570,7 +591,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
570
591
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
571
592
  *,
572
593
  output_type: OutputSpec[RunOutputDataT],
573
- message_history: list[_messages.ModelMessage] | None = None,
594
+ message_history: Sequence[_messages.ModelMessage] | None = None,
574
595
  deferred_tool_results: DeferredToolResults | None = None,
575
596
  model: models.Model | models.KnownModelName | str | None = None,
576
597
  deps: AgentDepsT = None,
@@ -579,6 +600,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
579
600
  usage: _usage.RunUsage | None = None,
580
601
  infer_name: bool = True,
581
602
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
603
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
582
604
  ) -> AsyncIterator[_messages.AgentStreamEvent | AgentRunResultEvent[RunOutputDataT]]: ...
583
605
 
584
606
  def run_stream_events(
@@ -586,7 +608,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
586
608
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
587
609
  *,
588
610
  output_type: OutputSpec[RunOutputDataT] | None = None,
589
- message_history: list[_messages.ModelMessage] | None = None,
611
+ message_history: Sequence[_messages.ModelMessage] | None = None,
590
612
  deferred_tool_results: DeferredToolResults | None = None,
591
613
  model: models.Model | models.KnownModelName | str | None = None,
592
614
  deps: AgentDepsT = None,
@@ -595,6 +617,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
595
617
  usage: _usage.RunUsage | None = None,
596
618
  infer_name: bool = True,
597
619
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
620
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
598
621
  ) -> AsyncIterator[_messages.AgentStreamEvent | AgentRunResultEvent[Any]]:
599
622
  """Run the agent with a user prompt in async mode and stream events from the run.
600
623
 
@@ -640,6 +663,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
640
663
  usage: Optional usage to start with, useful for resuming a conversation or agents used in tools.
641
664
  infer_name: Whether to try to infer the agent name from the call frame if it's not set.
642
665
  toolsets: Optional additional toolsets for this run.
666
+ builtin_tools: Optional additional builtin tools for this run.
643
667
 
644
668
  Returns:
645
669
  An async iterable of stream events `AgentStreamEvent` and finally a `AgentRunResultEvent` with the final
@@ -656,7 +680,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
656
680
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
657
681
  *,
658
682
  output_type: None = None,
659
- message_history: list[_messages.ModelMessage] | None = None,
683
+ message_history: Sequence[_messages.ModelMessage] | None = None,
660
684
  deferred_tool_results: DeferredToolResults | None = None,
661
685
  model: models.Model | models.KnownModelName | str | None = None,
662
686
  deps: AgentDepsT = None,
@@ -665,6 +689,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
665
689
  usage: _usage.RunUsage | None = None,
666
690
  infer_name: bool = True,
667
691
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
692
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
668
693
  **_deprecated_kwargs: Never,
669
694
  ) -> AbstractAsyncContextManager[AgentRun[AgentDepsT, OutputDataT]]: ...
670
695
 
@@ -674,7 +699,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
674
699
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
675
700
  *,
676
701
  output_type: OutputSpec[RunOutputDataT],
677
- message_history: list[_messages.ModelMessage] | None = None,
702
+ message_history: Sequence[_messages.ModelMessage] | None = None,
678
703
  deferred_tool_results: DeferredToolResults | None = None,
679
704
  model: models.Model | models.KnownModelName | str | None = None,
680
705
  deps: AgentDepsT = None,
@@ -683,6 +708,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
683
708
  usage: _usage.RunUsage | None = None,
684
709
  infer_name: bool = True,
685
710
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
711
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
686
712
  **_deprecated_kwargs: Never,
687
713
  ) -> AbstractAsyncContextManager[AgentRun[AgentDepsT, RunOutputDataT]]: ...
688
714
 
@@ -692,7 +718,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
692
718
  user_prompt: str | Sequence[_messages.UserContent] | None = None,
693
719
  *,
694
720
  output_type: OutputSpec[RunOutputDataT] | None = None,
695
- message_history: list[_messages.ModelMessage] | None = None,
721
+ message_history: Sequence[_messages.ModelMessage] | None = None,
696
722
  deferred_tool_results: DeferredToolResults | None = None,
697
723
  model: models.Model | models.KnownModelName | str | None = None,
698
724
  deps: AgentDepsT = None,
@@ -701,6 +727,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
701
727
  usage: _usage.RunUsage | None = None,
702
728
  infer_name: bool = True,
703
729
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | None = None,
730
+ builtin_tools: Sequence[AbstractBuiltinTool] | None = None,
704
731
  **_deprecated_kwargs: Never,
705
732
  ) -> AsyncIterator[AgentRun[AgentDepsT, Any]]:
706
733
  """A contextmanager which can be used to iterate over the agent graph's nodes as they are executed.
@@ -774,6 +801,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
774
801
  usage: Optional usage to start with, useful for resuming a conversation or agents used in tools.
775
802
  infer_name: Whether to try to infer the agent name from the call frame if it's not set.
776
803
  toolsets: Optional additional toolsets for this run.
804
+ builtin_tools: Optional additional builtin tools for this run.
777
805
 
778
806
  Returns:
779
807
  The result of the run.
@@ -796,6 +824,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
796
824
  usage=usage,
797
825
  infer_name=infer_name,
798
826
  toolsets=toolsets,
827
+ builtin_tools=builtin_tools,
799
828
  **_deprecated_kwargs,
800
829
  ) as run:
801
830
  yield run
@@ -804,18 +833,20 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
804
833
  def override(
805
834
  self,
806
835
  *,
836
+ name: str | _utils.Unset = _utils.UNSET,
807
837
  deps: AgentDepsT | _utils.Unset = _utils.UNSET,
808
838
  model: models.Model | models.KnownModelName | str | _utils.Unset = _utils.UNSET,
809
839
  toolsets: Sequence[AbstractToolset[AgentDepsT]] | _utils.Unset = _utils.UNSET,
810
840
  tools: Sequence[Tool[AgentDepsT] | ToolFuncEither[AgentDepsT, ...]] | _utils.Unset = _utils.UNSET,
811
841
  instructions: Instructions[AgentDepsT] | _utils.Unset = _utils.UNSET,
812
842
  ) -> Iterator[None]:
813
- """Context manager to temporarily override agent dependencies, model, toolsets, tools, or instructions.
843
+ """Context manager to temporarily override agent name, dependencies, model, toolsets, tools, or instructions.
814
844
 
815
845
  This is particularly useful when testing.
816
846
  You can find an example of this [here](../testing.md#overriding-model-via-pytest-fixtures).
817
847
 
818
848
  Args:
849
+ name: The name to use instead of the name passed to the agent constructor and agent run.
819
850
  deps: The dependencies to use instead of the dependencies passed to the agent run.
820
851
  model: The model to use instead of the model passed to the agent run.
821
852
  toolsets: The toolsets to use instead of the toolsets passed to the agent constructor and agent run.
@@ -828,6 +859,7 @@ class DBOSAgent(WrapperAgent[AgentDepsT, OutputDataT], DBOSConfiguredInstance):
828
859
  )
829
860
 
830
861
  with super().override(
862
+ name=name,
831
863
  deps=deps,
832
864
  model=model,
833
865
  toolsets=toolsets,