@@ -69,6 +69,40 @@ def test_custom_output_args():
6969 agent = Agent (output_type = tuple [str , str ])
7070 result = agent .run_sync ('x' , model = TestModel (custom_output_args = ['a' , 'b' ]))
7171 assert result .output == ('a' , 'b' )
72+ assert result .all_messages () == snapshot (
73+ [
74+ ModelRequest (
75+ parts = [
76+ UserPromptPart (
77+ content = 'x' ,
78+ timestamp = IsNow (tz = timezone .utc ),
79+ )
80+ ]
81+ ),
82+ ModelResponse (
83+ parts = [
84+ ToolCallPart (
85+ tool_name = 'final_result' ,
86+ args = {'response' : ['a' , 'b' ]},
87+ tool_call_id = 'pyd_ai_tool_call_id__final_result' ,
88+ )
89+ ],
90+ usage = RequestUsage (input_tokens = 51 , output_tokens = 7 ),
91+ model_name = 'test' ,
92+ timestamp = IsNow (tz = timezone .utc ),
93+ ),
94+ ModelRequest (
95+ parts = [
96+ ToolReturnPart (
97+ tool_name = 'final_result' ,
98+ content = 'Final result processed.' ,
99+ tool_call_id = 'pyd_ai_tool_call_id__final_result' ,
100+ timestamp = IsNow (tz = timezone .utc ),
101+ )
102+ ]
103+ ),
104+ ]
105+ )
72106
73107
74108def test_custom_output_args_model ():
@@ -79,12 +113,80 @@ class Foo(BaseModel):
79113 agent = Agent (output_type = Foo )
80114 result = agent .run_sync ('x' , model = TestModel (custom_output_args = {'foo' : 'a' , 'bar' : 1 }))
81115 assert result .output == Foo (foo = 'a' , bar = 1 )
116+ assert result .all_messages () == snapshot (
117+ [
118+ ModelRequest (
119+ parts = [
120+ UserPromptPart (
121+ content = 'x' ,
122+ timestamp = IsNow (tz = timezone .utc ),
123+ )
124+ ]
125+ ),
126+ ModelResponse (
127+ parts = [
128+ ToolCallPart (
129+ tool_name = 'final_result' ,
130+ args = {'foo' : 'a' , 'bar' : 1 },
131+ tool_call_id = 'pyd_ai_tool_call_id__final_result' ,
132+ )
133+ ],
134+ usage = RequestUsage (input_tokens = 51 , output_tokens = 6 ),
135+ model_name = 'test' ,
136+ timestamp = IsNow (tz = timezone .utc ),
137+ ),
138+ ModelRequest (
139+ parts = [
140+ ToolReturnPart (
141+ tool_name = 'final_result' ,
142+ content = 'Final result processed.' ,
143+ tool_call_id = 'pyd_ai_tool_call_id__final_result' ,
144+ timestamp = IsNow (tz = timezone .utc ),
145+ )
146+ ]
147+ ),
148+ ]
149+ )
82150
83151
84152def test_output_type ():
85153 agent = Agent (output_type = tuple [str , str ])
86154 result = agent .run_sync ('x' , model = TestModel ())
87155 assert result .output == ('a' , 'a' )
156+ assert result .all_messages () == snapshot (
157+ [
158+ ModelRequest (
159+ parts = [
160+ UserPromptPart (
161+ content = 'x' ,
162+ timestamp = IsNow (tz = timezone .utc ),
163+ )
164+ ]
165+ ),
166+ ModelResponse (
167+ parts = [
168+ ToolCallPart (
169+ tool_name = 'final_result' ,
170+ args = {'response' : ['a' , 'a' ]},
171+ tool_call_id = 'pyd_ai_tool_call_id__final_result' ,
172+ )
173+ ],
174+ usage = RequestUsage (input_tokens = 51 , output_tokens = 7 ),
175+ model_name = 'test' ,
176+ timestamp = IsNow (tz = timezone .utc ),
177+ ),
178+ ModelRequest (
179+ parts = [
180+ ToolReturnPart (
181+ tool_name = 'final_result' ,
182+ content = 'Final result processed.' ,
183+ tool_call_id = 'pyd_ai_tool_call_id__final_result' ,
184+ timestamp = IsNow (tz = timezone .utc ),
185+ )
186+ ]
187+ ),
188+ ]
189+ )
88190
89191
90192def test_tool_retry ():
0 commit comments