Skip to content

Commit c68416d

Browse files
committed
Addressing more comments
1 parent 9d50a69 commit c68416d

File tree

2 files changed

+90
-0
lines changed

2 files changed

+90
-0
lines changed

dbostest.sqlite

400 KB
Binary file not shown.

tests/models/test_openai_responses.py

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6232,6 +6232,96 @@ async def test_openai_responses_image_generation_jpeg(allow_model_requests: None
62326232
)
62336233

62346234

6235+
async def test_openai_responses_history_with_combined_tool_call_id(allow_model_requests: None, openai_api_key: str):
6236+
m = OpenAIResponsesModel('gpt-5', provider=OpenAIProvider(api_key=openai_api_key))
6237+
6238+
class CityLocation(BaseModel):
6239+
city: str
6240+
country: str
6241+
6242+
agent = Agent(m, output_type=ToolOutput(CityLocation))
6243+
6244+
messages = [
6245+
ModelRequest(
6246+
parts=[
6247+
UserPromptPart(
6248+
content='What is the largest city in the user country?',
6249+
)
6250+
]
6251+
),
6252+
ModelResponse(
6253+
parts=[
6254+
ToolCallPart(
6255+
tool_name='get_user_country',
6256+
args='{}',
6257+
tool_call_id='call_ZWkVhdUjupo528U9dqgFeRkH|fc_68477f0bb8e4819cba6d781e174d77f8001fd29e2d5573f7',
6258+
)
6259+
],
6260+
model_name='gpt-4o-2024-08-06',
6261+
provider_name='openai',
6262+
provider_response_id='resp_68477f0b40a8819cb8d55594bc2c232a001fd29e2d5573f7',
6263+
finish_reason='stop',
6264+
),
6265+
ModelRequest(
6266+
parts=[
6267+
ToolReturnPart(
6268+
tool_name='get_user_country',
6269+
content='Mexico',
6270+
tool_call_id='call_ZWkVhdUjupo528U9dqgFeRkH|fc_68477f0bb8e4819cba6d781e174d77f8001fd29e2d5573f7',
6271+
)
6272+
]
6273+
),
6274+
]
6275+
6276+
result = await agent.run('What is the largest city in the user country?', message_history=messages)
6277+
assert result.output == snapshot(CityLocation(city='Mexico City', country='Mexico'))
6278+
assert result.new_messages() == snapshot(
6279+
[
6280+
ModelRequest(
6281+
parts=[
6282+
UserPromptPart(
6283+
content='What is the largest city in the user country?',
6284+
timestamp=IsDatetime(),
6285+
)
6286+
]
6287+
),
6288+
ModelResponse(
6289+
parts=[
6290+
ThinkingPart(
6291+
content='',
6292+
id='rs_001fd29e2d5573f70068ece2e816fc819c82755f049c987ea4',
6293+
signature='gAAAAABo7OLt_-yMcMz15n_JkwU0selGH2vqiwJDNU86YIjY_jQLXid4usIFjjCppiyOnJjtU_C6e7jUIKnfZRBt1DHVFMGpAVvTBZBVdJhXl0ypGjkAj3Wv_3ecAG9oU3DoUMKrbwEMqL0LaSfNSN1qgCTt-RL2sgeEDgFeiOpX40BWgS8tVMfR4_qBxJcp8KeYvw5niPgwcMF3UPIEjHlaVpglJH2SzZtTOdxeFDfYbnvdWTMvwYFIc0jKOREG_-hZE4AznhHdSLV2-I5nGlxuxqaI4GQCk-Fp8Cvcy15_NYYP62ii50VlR6HPp_gQZEetwgC5pThsiuuG7-n1hGOnsj8gZyjSKsMe2KpzlYzhT7ighmArDVEx8Utvp1FXikqGkEzt4RTqqPInp9kuvqQTSyd8JZ6BEetRl1EuZXT7zXrzLwFN7Vm_gqixmf6mLXZUw6vg6LqGkhSh5fo6C7akPTwwJXjVJ37Dzfejo6RiVKOT-_9sdYCHW2kZ9XfQAmRQfB97UpSZ8QrVfaKy_uRIHLexs8QrQvKuw-uHDQBAL3OEmSTzHzCQ-q7b0FHr514Z29l9etavHNVdpeleWGo6VEtLWGQyblIdIBtf946YnQvr6NYIR8uATn9Z91rr8FsFJTpJh_v5iGA2f8rfPRu27nmw-q8XnPVc_FYCZDk08r_YhdEJZn1INBi8wYSWmpib8VxNpkFO7FFRuK-F8rh3MTpYgIOqPQYbf3LCRvKukTwv1b3mjSKVpHQSm_s6s7djdD-rLuc22-3_MLd0ii4_oOT8w51TQIM61LtonGvxUqf4oKHSUFCVnrWWiT-0ttdpwpJ_iB5frnEeY2mWyU1u7sd38BI3dOzoM82IFaIm98g9fa99bmoA7Z7gI60tzyF8YbJmWF-PCwyKHJ7B1MbCBonO36NmeEM-SplrR54fGykxTmwvtbYGhd5f0cdYzD0zulRDj-AhOd96rrUB_fIgoQGTXey8L_w0whcnVTWdG6is-rx8373Sz8ZRoE5RiLWW1mfHzVXxwslphx4BedRVF0tL-1YO7sg5MXhHCf6hpw8dOht-21NMrb1F1DQadFE_fhySFl-TgOD5BlhAuupLMsqcCIa4lcXP_loyA4ERP6WSdz2Bybz7_1eOiflfVodRrNqvr_DnL0NEXD_JkYTeIn84ziarFV7U7ZnkMvRiA_p1fWdbHTsE_8lu1rsf8fcJ1e76_6ycPkOc4TrOZw8gVRb7gIbMMVrv72BT_sFhW7GkXrzCQpQaeybmRw-bjFhkMMjMDYGXkA_H0q2Zfyh3zCOoa40hl2cqRWp7n1XuafmtKG_F8e9hyWox0q7AhZr5HOOaHz8r3O3-dmNl1KP52bqA8S72rLDslAOQlDupmAQgAmkm5ApYeYcEBredN78jHQ1pviUEI2-3qr4ClXZFHPa54AJ_q4HQ-EcKXEcYQglG21mSUy_tFQF-m4X46Qu8yYWcBVW4E0CG3wbvYx0BCdbc5RhIDkJo1elxLK8XS64lpFkCWy62xLVeMuVuCj8q84-Kk7tZ7gtMtLV9PHQCdbl3s2pAzMfuNIBJog6-HPmwha2n9T0Md5qF7OqCtnYWOWUfIMmQVcdW-ECGsQy9uIUmpsOjdtH31hrX3MUEhIOUB5xErLwfp-_s22ciAY_ap3JlYAiTKGlMCxKxTzK7wWEG_nYhDXC1Afj2z-tgvYhtn9MyDf2v0aIpDM9BoTOLEO-ButzylJ06pJlrJhpdvklvwJxUiuhlwy0bHNilb4Zv4QwnUv3DCrIeKe1ne90vEXe6YlDwSMeWJcz1DZIQBvVcNlN8q2y8Rae3lMWzsvD0YXrcXp02ckYoLSOQZgNYviGYLsgRgPGiIkncjSDt7WWV6td3l-zTrP6MT_hKigmg5F5_F6tS1bKb0jlQBZd0NP-_L_TPqMGRjCYG8johd6VyMiagslDjxG39Dh2wyTI19ZW7h_AOuOpnfkt2armqiq6iGfevA3malqkNakb6mFAS04J9O0butWVAw4yiPCEcLuDNAzzi_qrqLee4gkjh0NplvfGCaE6qqYms61GJbJC4wge6vjyTakurbqWEV3YoR3y_dn-0pjQ7TOx9kkruDwg0nZIV5O6yYxaulmbuvo3fs5CZb9ptZPD0MzGZj7CZU2MDCa4a4gr0McOx2MricxSzIu6emuRUzZuC6C1JxPRC00M0TrZNMIe_WVa9fXDLV1ULEAIMwMXzNT9zV6yiYQCwhkp30Wqde3W0LlIRpSbDuJXcvT8OCbXkdPNIScccdT9LvUQQ--hU2P45kisOev3TYn7yv-pdxM3u1KFNwuFxedSArMBPg7GDz1BOxDQRzv0mfwbf_CcoFbuyj7Tf4zWO46HVdHeRNbvIE--bnaSYD-UFaKknp8ZsBQQhBU_2TEca3fKwmg81-g7Vdb28QUZEuPzgE4ekxZejkKpiKqlLC5nJYgvXrqk2H35D51mYdzPs0ST05Mc41x9MFm_YOLxSFyA0yGAKVINmD5wT6kvRflPkgoksd2ryIvo4KMw3oZQKodv5By0mSJ8iX2vhTGylxiM8wj-ICyNuOsaRFrcMSpX7tZbXcDyysApdmx217BSADoQiNZBLngF7ptxc2QGyo3CwuDjaljwmSgL9KeGthd1RJFd826M287IPpCjLM4WRquCL_E0pQryNqOMn-ZEOCAlBjE37290EhkjKbhiGBEnHUvSbhoH4nL47AmunP_Q5aqh5173VfyoyaybuS3fXjQ5WO0kyFjMdD-a7C6PVdwToCTP-TljoF2YnQKCiqUGs9gNHS9mYhQSXzY4uuGlTHLfKB4JKS5_MQHvwI9zCbTvVG854fPuo_2mzSh-y8TSzBWPokhYWI_q095Sh6tOqDIJNMGyjI2GDFRSyKpKhIFCLyU2JEo9B6l91jPlir0XI8ZOQfBd9J0I4JIqnyoj40_1bF1zUDGc014bdGfxazxwlGph_ysKAP39wV7X9DBFS3ZmeSIn-r3s-sci0HmwnJUb2r03m40rFuNTV1cJMAFP7ZY7PQQQ0TtlO_al0uedaOWylLauap_eoRqc6xGJ2rSz1e7cOevksUlAqzK5xknYKHlsW970xuDGHKOZnKPg8O9nb2PKrcjwEQF5RFPc3l8TtOUXPhhvTERZFGoEuGuSuSp1cJhzba06yPnL-wE3CstYUm3jvkaUme6kKqM4tWBCQDg-_2PYf24xXYlmkIklylskqId826Y3pVVUd7e0vQO0POPeVYU1qwtTp7Ln-MhYEWexxptdNkVQ-kWx63w6HXF6_kefSxaf0UcvL8tOV73u7w_udle9MC_TXgwJZpoW2tSi5HETjQ_i28FAP2iJmclWOm3gP08cMiXvgpTpjzh6meBdvKepnifl_ivPzRnyjz3mYCZH-UJ4LmOHIonv-8arnckhCwHoFIpaIX7eSZyY0JcbBETKImtUwrlTSlbD8l02KDtqw2FJURtEWI5dC1sTS8c2HcyjXyQDA9A25a0M1yIgZyaadODGQ1zoa9xXB',
6294+
provider_name='openai',
6295+
),
6296+
ToolCallPart(
6297+
tool_name='final_result',
6298+
args='{"city":"Mexico City","country":"Mexico"}',
6299+
tool_call_id='call_LIXPi261Xx3dGYzlDsOoyHGk',
6300+
id='fc_001fd29e2d5573f70068ece2ecc140819c97ca83bd4647a717',
6301+
),
6302+
],
6303+
usage=RequestUsage(input_tokens=103, output_tokens=409, details={'reasoning_tokens': 384}),
6304+
model_name='gpt-5-2025-08-07',
6305+
timestamp=IsDatetime(),
6306+
provider_name='openai',
6307+
provider_details={'finish_reason': 'completed'},
6308+
provider_response_id='resp_001fd29e2d5573f70068ece2e6dfbc819c96557f0de72802be',
6309+
finish_reason='stop',
6310+
),
6311+
ModelRequest(
6312+
parts=[
6313+
ToolReturnPart(
6314+
tool_name='final_result',
6315+
content='Final result processed.',
6316+
tool_call_id='call_LIXPi261Xx3dGYzlDsOoyHGk',
6317+
timestamp=IsDatetime(),
6318+
)
6319+
]
6320+
),
6321+
]
6322+
)
6323+
6324+
62356325
async def test_openai_responses_model_mcp_server_tool(allow_model_requests: None, openai_api_key: str):
62366326
m = OpenAIResponsesModel('gpt-4o', provider=OpenAIProvider(api_key=openai_api_key))
62376327
agent = Agent(

0 commit comments

Comments
 (0)