Skip to content

Commit e5b946e

Browse files
authored
Retry prompt model response template (#2008)
1 parent 9b48623 commit e5b946e

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

pydantic_ai_slim/pydantic_ai/messages.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,10 @@ class RetryPromptPart:
501501
def model_response(self) -> str:
502502
"""Return a string message describing why the retry is requested."""
503503
if isinstance(self.content, str):
504-
description = self.content
504+
if self.tool_name is None:
505+
description = f'Validation feedback:\n{self.content}'
506+
else:
507+
description = self.content
505508
else:
506509
json_errors = error_details_ta.dump_json(self.content, exclude={'__all__': {'ctx'}}, indent=2)
507510
description = f'{len(self.content)} validation errors: {json_errors.decode()}'

tests/models/test_instrumented.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,7 @@ async def test_instrumented_model(capfire: CaptureLogfire):
240240
{
241241
'body': {
242242
'content': """\
243+
Validation feedback:
243244
retry_prompt2
244245
245246
Fix the errors and try again.\
@@ -619,6 +620,7 @@ async def test_instrumented_model_attributes_mode(capfire: CaptureLogfire):
619620
{
620621
'event.name': 'gen_ai.user.message',
621622
'content': """\
623+
Validation feedback:
622624
retry_prompt2
623625
624626
Fix the errors and try again.\

tests/test_agent.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ def return_tuple(_: list[ModelMessage], info: AgentInfo) -> ModelResponse:
301301
parts=[
302302
ToolCallPart(tool_name='final_result', args='{"response": ["foo", "bar"]}', tool_call_id=IsStr())
303303
],
304-
usage=Usage(requests=1, request_tokens=72, response_tokens=8, total_tokens=80),
304+
usage=Usage(requests=1, request_tokens=74, response_tokens=8, total_tokens=82),
305305
model_name='function:return_tuple:',
306306
timestamp=IsNow(tz=timezone.utc),
307307
),
@@ -930,7 +930,7 @@ def call_tool(messages: list[ModelMessage], info: AgentInfo) -> ModelResponse:
930930
),
931931
ModelResponse(
932932
parts=[TextPart(content='Mexico City')],
933-
usage=Usage(requests=1, request_tokens=68, response_tokens=5, total_tokens=73),
933+
usage=Usage(requests=1, request_tokens=70, response_tokens=5, total_tokens=75),
934934
model_name='function:call_tool:',
935935
timestamp=IsDatetime(),
936936
),
@@ -1584,7 +1584,7 @@ def call_tool(messages: list[ModelMessage], info: AgentInfo) -> ModelResponse:
15841584
),
15851585
ModelResponse(
15861586
parts=[TextPart(content='{"city": "Mexico City"}')],
1587-
usage=Usage(requests=1, request_tokens=68, response_tokens=11, total_tokens=79),
1587+
usage=Usage(requests=1, request_tokens=70, response_tokens=11, total_tokens=81),
15881588
model_name='function:call_tool:',
15891589
timestamp=IsDatetime(),
15901590
),

0 commit comments

Comments
 (0)