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.
- pydantic_ai/_agent_graph.py +13 -12
- pydantic_ai/_cli.py +3 -3
- pydantic_ai/agent/__init__.py +33 -9
- pydantic_ai/agent/abstract.py +54 -26
- pydantic_ai/agent/wrapper.py +13 -4
- pydantic_ai/builtin_tools.py +4 -1
- pydantic_ai/direct.py +9 -9
- pydantic_ai/durable_exec/dbos/_agent.py +52 -20
- pydantic_ai/durable_exec/temporal/_agent.py +45 -16
- pydantic_ai/format_prompt.py +6 -4
- pydantic_ai/messages.py +71 -43
- pydantic_ai/models/anthropic.py +20 -19
- pydantic_ai/models/openai.py +9 -1
- pydantic_ai/result.py +5 -5
- pydantic_ai/usage.py +35 -1
- {pydantic_ai_slim-1.0.15.dist-info → pydantic_ai_slim-1.0.17.dist-info}/METADATA +4 -4
- {pydantic_ai_slim-1.0.15.dist-info → pydantic_ai_slim-1.0.17.dist-info}/RECORD +20 -20
- {pydantic_ai_slim-1.0.15.dist-info → pydantic_ai_slim-1.0.17.dist-info}/WHEEL +0 -0
- {pydantic_ai_slim-1.0.15.dist-info → pydantic_ai_slim-1.0.17.dist-info}/entry_points.txt +0 -0
- {pydantic_ai_slim-1.0.15.dist-info → pydantic_ai_slim-1.0.17.dist-info}/licenses/LICENSE +0 -0
pydantic_ai/agent/wrapper.py
CHANGED
|
@@ -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:
|
|
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:
|
|
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:
|
|
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,
|
pydantic_ai/builtin_tools.py
CHANGED
|
@@ -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:
|
|
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:
|
|
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:
|
|
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:
|
|
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,
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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,
|