|
6 | 6 | from typing import TYPE_CHECKING, Any |
7 | 7 |
|
8 | 8 | from pydantic_ai import Agent |
| 9 | +from pydantic_ai.models import Model |
9 | 10 | from pydantic_ai.tools import Tool |
10 | 11 |
|
11 | 12 | from pydantic_deep.backends.protocol import BackendProtocol, SandboxProtocol |
|
46 | 47 |
|
47 | 48 |
|
48 | 49 | def create_deep_agent( # noqa: C901 |
49 | | - model: str | None = None, |
| 50 | + model: str | Model | None = None, |
50 | 51 | instructions: str | None = None, |
51 | 52 | tools: Sequence[Tool[DeepAgentDeps] | Any] | None = None, |
52 | 53 | toolsets: Sequence[AbstractToolset[DeepAgentDeps]] | None = None, |
@@ -135,10 +136,12 @@ def create_deep_agent( # noqa: C901 |
135 | 136 | all_toolsets.append(fs_toolset) |
136 | 137 |
|
137 | 138 | if include_subagents: |
| 139 | + # For subagents, convert model to string if it's a Model instance |
| 140 | + subagent_model = model if isinstance(model, str) else DEFAULT_MODEL |
138 | 141 | subagent_toolset = create_subagent_toolset( |
139 | 142 | id="deep-subagents", |
140 | 143 | subagents=subagents, |
141 | | - default_model=model, |
| 144 | + default_model=subagent_model, |
142 | 145 | include_general_purpose=include_general_purpose_subagent, |
143 | 146 | ) |
144 | 147 | all_toolsets.append(subagent_toolset) |
@@ -178,7 +181,7 @@ def create_deep_agent( # noqa: C901 |
178 | 181 |
|
179 | 182 | # Add dynamic system prompts |
180 | 183 | @agent.instructions |
181 | | - def dynamic_instructions(ctx) -> str: # pragma: no cover |
| 184 | + def dynamic_instructions(ctx: Any) -> str: # pragma: no cover |
182 | 185 | """Generate dynamic instructions based on current state.""" |
183 | 186 | parts = [] |
184 | 187 |
|
|
0 commit comments