Skip to content

Commit d1b2399

Browse files
committed
Capture title and desc for tool output
1 parent 291fa1f commit d1b2399

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

pydantic_ai_slim/pydantic_ai/_output.py

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from __future__ import annotations as _annotations
22

3+
import copy
34
import inspect
45
import json
56
import re
@@ -411,9 +412,13 @@ def mode(self) -> OutputMode:
411412

412413
def dump(self) -> JsonSchema:
413414
if self.toolset:
414-
toolset_processors = [self.toolset.processors[k] for k in self.toolset.processors]
415-
processors_union = UnionOutputProcessor(toolset_processors).object_def.json_schema
416-
return processors_union
415+
processors = []
416+
for tool_def in self.toolset._tool_defs:
417+
processor = copy.copy(self.toolset.processors[tool_def.name])
418+
processor.object_def.name = tool_def.name
419+
processor.object_def.description = tool_def.description
420+
processors.append(processor)
421+
return UnionOutputProcessor(processors).object_def.json_schema
417422
return self.processor.object_def.json_schema
418423

419424

@@ -465,7 +470,7 @@ def __init__(
465470
self.processor = processor
466471

467472
def dump(self) -> JsonSchema:
468-
return self.object_def.json_schema # pyright: ignore[reportOptionalMemberAccess]
473+
return self.processor.object_def.json_schema
469474

470475

471476
class NativeOutputSchema(StructuredTextOutputSchema[OutputDataT]):
@@ -541,9 +546,13 @@ def mode(self) -> OutputMode:
541546
return 'tool'
542547

543548
def dump(self) -> JsonSchema:
544-
toolset_processors = [self.toolset.processors[k] for k in self.toolset.processors] # pyright: ignore[reportOptionalMemberAccess]
545-
processors_union = UnionOutputProcessor(toolset_processors)
546-
return processors_union.object_def.json_schema
549+
processors = []
550+
for tool_def in self.toolset._tool_defs:
551+
processor = copy.copy(self.toolset.processors[tool_def.name])
552+
processor.object_def.name = tool_def.name
553+
processor.object_def.description = tool_def.description
554+
processors.append(processor)
555+
return UnionOutputProcessor(processors).object_def.json_schema
547556

548557

549558
class BaseOutputProcessor(ABC, Generic[OutputDataT]):

0 commit comments

Comments
 (0)