7878"""
7979
8080
81- @dataclasses .dataclass
81+ @dataclasses .dataclass ( kw_only = True )
8282class GraphAgentState :
8383 """State kept across the execution of the agent graph."""
8484
@@ -99,7 +99,7 @@ def increment_retries(self, max_result_retries: int, error: BaseException | None
9999 raise exceptions .UnexpectedModelBehavior (message )
100100
101101
102- @dataclasses .dataclass
102+ @dataclasses .dataclass ( kw_only = True )
103103class GraphAgentDeps (Generic [DepsT , OutputDataT ]):
104104 """Dependencies/config passed to the agent graph."""
105105
@@ -157,6 +157,8 @@ class UserPromptNode(AgentNode[DepsT, NodeRunEndT]):
157157
158158 user_prompt : str | Sequence [_messages .UserContent ] | None
159159
160+ _ : dataclasses .KW_ONLY
161+
160162 instructions : str | None
161163 instructions_functions : list [_system_prompt .SystemPromptRunner [DepsT ]]
162164
@@ -359,8 +361,8 @@ class ModelRequestNode(AgentNode[DepsT, NodeRunEndT]):
359361
360362 request : _messages .ModelRequest
361363
362- _result : CallToolsNode [DepsT , NodeRunEndT ] | None = field (default = None , repr = False )
363- _did_stream : bool = field (default = False , repr = False )
364+ _result : CallToolsNode [DepsT , NodeRunEndT ] | None = field (repr = False , init = False , default = None )
365+ _did_stream : bool = field (repr = False , init = False , default = False )
364366
365367 async def run (
366368 self , ctx : GraphRunContext [GraphAgentState , GraphAgentDeps [DepsT , NodeRunEndT ]]
@@ -389,13 +391,13 @@ async def stream(
389391 self ._did_stream = True
390392 ctx .state .usage .requests += 1
391393 agent_stream = result .AgentStream [DepsT , T ](
392- streamed_response ,
393- ctx .deps .output_schema ,
394- model_request_parameters ,
395- ctx .deps .output_validators ,
396- build_run_context (ctx ),
397- ctx .deps .usage_limits ,
398- ctx .deps .tool_manager ,
394+ _raw_stream_response = streamed_response ,
395+ _output_schema = ctx .deps .output_schema ,
396+ _model_request_parameters = model_request_parameters ,
397+ _output_validators = ctx .deps .output_validators ,
398+ _run_ctx = build_run_context (ctx ),
399+ _usage_limits = ctx .deps .usage_limits ,
400+ _tool_manager = ctx .deps .tool_manager ,
399401 )
400402 yield agent_stream
401403 # In case the user didn't manually consume the full stream, ensure it is fully consumed here,
@@ -475,9 +477,9 @@ class CallToolsNode(AgentNode[DepsT, NodeRunEndT]):
475477
476478 model_response : _messages .ModelResponse
477479
478- _events_iterator : AsyncIterator [_messages .HandleResponseEvent ] | None = field (default = None , repr = False )
480+ _events_iterator : AsyncIterator [_messages .HandleResponseEvent ] | None = field (default = None , init = False , repr = False )
479481 _next_node : ModelRequestNode [DepsT , NodeRunEndT ] | End [result .FinalResult [NodeRunEndT ]] | None = field (
480- default = None , repr = False
482+ default = None , init = False , repr = False
481483 )
482484
483485 async def run (
@@ -629,7 +631,7 @@ async def _handle_text_response(
629631 ctx .state .increment_retries (ctx .deps .max_result_retries , e )
630632 return ModelRequestNode [DepsT , NodeRunEndT ](_messages .ModelRequest (parts = [e .tool_retry ]))
631633 else :
632- return self ._handle_final_result (ctx , result .FinalResult (result_data , None , None ), [])
634+ return self ._handle_final_result (ctx , result .FinalResult (result_data ), [])
633635
634636
635637def build_run_context (ctx : GraphRunContext [GraphAgentState , GraphAgentDeps [DepsT , Any ]]) -> RunContext [DepsT ]:
0 commit comments