pydantic_ai.messages
Message
module-attribute
Message = Union[
SystemPrompt,
UserPrompt,
ToolReturn,
RetryPrompt,
ModelTextResponse,
ModelStructuredResponse,
]
Any message send to or returned by a model.
SystemPrompt
dataclass
A system prompt, generally written by the application developer.
This gives the model context and guidance on how to respond.
Source code in pydantic_ai_slim/pydantic_ai/messages.py
18 19 20 21 22 23 24 25 26 27 28 |
|
UserPrompt
dataclass
A user prompt, generally written by the end user.
Content comes from the user_prompt
parameter of Agent.run
,
Agent.run_sync
, and Agent.run_stream
.
Source code in pydantic_ai_slim/pydantic_ai/messages.py
31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
|
timestamp
class-attribute
instance-attribute
The timestamp of the prompt.
role
class-attribute
instance-attribute
role: Literal['user'] = 'user'
Message type identifier, this type is available on all message as a discriminator.
ToolReturn
dataclass
A tool return message, this encodes the result of running a tool.
Source code in pydantic_ai_slim/pydantic_ai/messages.py
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
|
content
instance-attribute
content: JsonData
The return value.
tool_id
class-attribute
instance-attribute
tool_id: str | None = None
Optional tool identifier, this is used by some models including OpenAI.
timestamp
class-attribute
instance-attribute
The timestamp, when the tool returned.
role
class-attribute
instance-attribute
role: Literal['tool-return'] = 'tool-return'
Message type identifier, this type is available on all message as a discriminator.
RetryPrompt
dataclass
A message back to a model asking it to try again.
This can be sent for a number of reasons:
- Pydantic validation of tool arguments failed, here content is derived from a Pydantic
ValidationError
- a tool raised a
ModelRetry
exception - no tool was found for the tool name
- the model returned plain text when a structured response was expected
- Pydantic validation of a structured response failed, here content is derived from a Pydantic
ValidationError
- a result validator raised a
ModelRetry
exception
Source code in pydantic_ai_slim/pydantic_ai/messages.py
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
|
content
instance-attribute
content: list[ErrorDetails] | str
Details of why and how the model should retry.
If the retry was triggered by a ValidationError
, this will be a list of
error details.
tool_name
class-attribute
instance-attribute
tool_name: str | None = None
The name of the tool that was called, if any.
timestamp
class-attribute
instance-attribute
The timestamp, when the retry was triggered.
role
class-attribute
instance-attribute
role: Literal['retry-prompt'] = 'retry-prompt'
Message type identifier, this type is available on all message as a discriminator.
ModelAnyResponse
module-attribute
ModelAnyResponse = Union[
ModelTextResponse, ModelStructuredResponse
]
Any response from a model.
ModelTextResponse
dataclass
A plain text response from a model.
Source code in pydantic_ai_slim/pydantic_ai/messages.py
125 126 127 128 129 130 131 132 133 134 135 136 137 |
|
timestamp
class-attribute
instance-attribute
The timestamp of the response.
If the model provides a timestamp in the response (as OpenAI does) that will be used.
role
class-attribute
instance-attribute
role: Literal["model-text-response"] = "model-text-response"
Message type identifier, this type is available on all message as a discriminator.
ModelStructuredResponse
dataclass
A structured response from a model.
This is used either to call a tool or to return a structured response from an agent run.
Source code in pydantic_ai_slim/pydantic_ai/messages.py
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |
|
timestamp
class-attribute
instance-attribute
The timestamp of the response.
If the model provides a timestamp in the response (as OpenAI does) that will be used.
role
class-attribute
instance-attribute
role: Literal["model-structured-response"] = (
"model-structured-response"
)
Message type identifier, this type is available on all message as a discriminator.
ToolCall
dataclass
Either a tool call from the agent.
Source code in pydantic_ai_slim/pydantic_ai/messages.py
156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 |
|
args
instance-attribute
args: ArgsJson | ArgsDict
The arguments to pass to the tool.
Either as JSON or a Python dictionary depending on how data was returned.
tool_id
class-attribute
instance-attribute
tool_id: str | None = None
Optional tool identifier, this is used by some models including OpenAI.
ArgsJson
dataclass
Tool arguments as a JSON string.
Source code in pydantic_ai_slim/pydantic_ai/messages.py
140 141 142 143 144 145 |
|
MessagesTypeAdapter
module-attribute
Pydantic TypeAdapter
for (de)serializing messages.