Mirascope Frog Logo
Mirascope
DocsBlogPricingCloud
⌘K
Type to search
⌘Kto search
Escto close
mirascope
v1.25.7
1.3k
Join our
WelcomeLearnGuidesAPI Referencev1 (Legacy)
LLMOps
callscontentexceptionsformattingmcpmessagesmodelspromptsprovidersresponsestoolstypes
# messages ## <ApiType type="Attribute" slug="assistant-content" symbolName="AssistantContent" /> AssistantContent **Type:** <TypeLink type={{"type_str": "TypeAlias", "description": null, "kind": "simple", "symbol_name": "TypeAlias", "doc_url": null}} /> Type alias for content that can fit into an `AssistantMessage`. ## <ApiType type="Class" slug="assistant-message" symbolName="AssistantMessage" /> AssistantMessage An assistant message containing the model's response. <AttributesTable attributes={[ { "name": "role", "type_info": { "type_str": "Literal['assistant']", "description": null, "kind": "generic", "base_type": { "type_str": "Literal", "description": null, "kind": "simple", "symbol_name": "Literal", "doc_url": null }, "parameters": [ { "type_str": "'assistant'", "description": null, "kind": "simple", "symbol_name": "'assistant'", "doc_url": null } ], "doc_url": null }, "description": "The role of this message. Always \"assistant\"." }, { "name": "content", "type_info": { "type_str": "Sequence[AssistantContentPart]", "description": null, "kind": "generic", "base_type": { "type_str": "Sequence", "description": null, "kind": "simple", "symbol_name": "Sequence", "doc_url": null }, "parameters": [ { "type_str": "AssistantContentPart", "description": null, "kind": "simple", "symbol_name": "AssistantContentPart", "doc_url": null } ], "doc_url": null }, "description": "The content of the assistant message." }, { "name": "name", "type_info": { "type_str": "str | None", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": null }, "parameters": [ { "type_str": "str", "description": null, "kind": "simple", "symbol_name": "str", "doc_url": null }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": null } ], "doc_url": null }, "description": "A name identifying the creator of this message." }, { "name": "provider_id", "type_info": { "type_str": "ProviderId | None", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": null }, "parameters": [ { "type_str": "ProviderId", "description": null, "kind": "simple", "symbol_name": "ProviderId", "doc_url": null }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": null } ], "doc_url": null }, "description": "The LLM provider that generated this assistant message, if available." }, { "name": "model_id", "type_info": { "type_str": "ModelId | None", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": null }, "parameters": [ { "type_str": "ModelId", "description": null, "kind": "simple", "symbol_name": "ModelId", "doc_url": null }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": null } ], "doc_url": null }, "description": "The model identifier of the LLM that generated this assistant message, if available." }, { "name": "provider_model_name", "type_info": { "type_str": "str | None", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": null }, "parameters": [ { "type_str": "str", "description": null, "kind": "simple", "symbol_name": "str", "doc_url": null }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": null } ], "doc_url": null }, "description": "The provider-specific model identifier (e.g. \"gpt-5:responses\"), if available." }, { "name": "raw_message", "type_info": { "type_str": "Jsonable | None", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": null }, "parameters": [ { "type_str": "Jsonable", "description": null, "kind": "simple", "symbol_name": "Jsonable", "doc_url": null }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": null } ], "doc_url": null }, "description": "The provider-specific raw representation of this assistant message, if available.\n\nIf raw_content is truthy, then it may be used for provider-specific behavior when\nresuming an LLM interaction that included this assistant message. For example, we can\nreuse the provider-specific raw encoding rather than re-encoding the message from it's\nMirascope content representation. This may also take advantage of server-side provider\ncontext, e.g. identifiers of reasoning context tokens that the provider generated.\n\nIf present, the content should be encoded as JSON-serializable data, and in a format\nthat matches representation the provider expects representing the Mirascope data.\nThis may involve e.g. converting Pydantic `BaseModel`s into plain dicts via `model_dump`.\n\nRaw content is not required, as the Mirascope content can also be used to generate\na valid input to the provider (potentially without taking advantage of provider-specific\nreasoning caches, etc). In that case raw content should be left empty." } ]} /> ## <ApiType type="Attribute" slug="message" symbolName="Message" /> Message **Type:** <TypeLink type={{"type_str": "TypeAlias", "description": null, "kind": "simple", "symbol_name": "TypeAlias", "doc_url": null}} /> A message in an LLM interaction. Messages have a role (system, user, or assistant) and content that is a sequence of content parts. The content can include text, images, audio, documents, and tool interactions. For most use cases, prefer the convenience functions `system()`, `user()`, and `assistant()` instead of directly creating `Message` objects. Example: ```python from mirascope import llm messages = [ llm.messages.system("You are a helpful assistant."), llm.messages.user("Hello, how are you?"), ] ``` ## <ApiType type="Attribute" slug="system-content" symbolName="SystemContent" /> SystemContent **Type:** <TypeLink type={{"type_str": "TypeAlias", "description": null, "kind": "simple", "symbol_name": "TypeAlias", "doc_url": null}} /> Type alias for content that can fit into a `SystemMessage`. ## <ApiType type="Class" slug="system-message" symbolName="SystemMessage" /> SystemMessage A system message that sets context and instructions for the conversation. <AttributesTable attributes={[ { "name": "role", "type_info": { "type_str": "Literal['system']", "description": null, "kind": "generic", "base_type": { "type_str": "Literal", "description": null, "kind": "simple", "symbol_name": "Literal", "doc_url": null }, "parameters": [ { "type_str": "'system'", "description": null, "kind": "simple", "symbol_name": "'system'", "doc_url": null } ], "doc_url": null }, "description": "The role of this message. Always \"system\"." }, { "name": "content", "type_info": { "type_str": "Text", "description": null, "kind": "simple", "symbol_name": "Text", "doc_url": null }, "description": "The content of this `SystemMesssage`." } ]} /> ## <ApiType type="Attribute" slug="user-content" symbolName="UserContent" /> UserContent **Type:** <TypeLink type={{"type_str": "TypeAlias", "description": null, "kind": "simple", "symbol_name": "TypeAlias", "doc_url": null}} /> Type alias for content that can fit into a `UserMessage`. ## <ApiType type="Class" slug="user-message" symbolName="UserMessage" /> UserMessage A user message containing input from the user. <AttributesTable attributes={[ { "name": "role", "type_info": { "type_str": "Literal['user']", "description": null, "kind": "generic", "base_type": { "type_str": "Literal", "description": null, "kind": "simple", "symbol_name": "Literal", "doc_url": null }, "parameters": [ { "type_str": "'user'", "description": null, "kind": "simple", "symbol_name": "'user'", "doc_url": null } ], "doc_url": null }, "description": "The role of this message. Always \"user\"." }, { "name": "content", "type_info": { "type_str": "Sequence[UserContentPart]", "description": null, "kind": "generic", "base_type": { "type_str": "Sequence", "description": null, "kind": "simple", "symbol_name": "Sequence", "doc_url": null }, "parameters": [ { "type_str": "UserContentPart", "description": null, "kind": "simple", "symbol_name": "UserContentPart", "doc_url": null } ], "doc_url": null }, "description": "The content of the user message." }, { "name": "name", "type_info": { "type_str": "str | None", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": null }, "parameters": [ { "type_str": "str", "description": null, "kind": "simple", "symbol_name": "str", "doc_url": null }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": null } ], "doc_url": null }, "description": "A name identifying the creator of this message." } ]} /> ## <ApiType type="Function" slug="assistant" symbolName="assistant" /> assistant Creates an assistant message. <ParametersTable parameters={[ { "name": "content", "type_info": { "type_str": "AssistantContent", "description": null, "kind": "simple", "symbol_name": "AssistantContent", "doc_url": "/docs/api/llm/messages#assistant-content" }, "description": "The content of the message, which can be `str` or any `AssistantContent`,\nor a sequence of assistant content pieces." }, { "name": "model_id", "type_info": { "type_str": "ModelId | None", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "ModelId", "description": null, "kind": "simple", "symbol_name": "ModelId", "doc_url": "/docs/api/llm/providers#model-id" }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": "https://docs.python.org/3/library/constants.html#None" } ], "doc_url": null }, "description": "Optional id of the model that produced this message." }, { "name": "provider_id", "type_info": { "type_str": "ProviderId | None", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "ProviderId", "description": null, "kind": "simple", "symbol_name": "ProviderId", "doc_url": "/docs/api/llm/providers#provider-id" }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": "https://docs.python.org/3/library/constants.html#None" } ], "doc_url": null }, "description": "Optional identifier of the provider that produced this message." }, { "name": "provider_model_name", "type_info": { "type_str": "str | None", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "str", "description": null, "kind": "simple", "symbol_name": "str", "doc_url": "https://docs.python.org/3/library/stdtypes.html#str" }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": "https://docs.python.org/3/library/constants.html#None" } ], "doc_url": null }, "default": "None", "description": "Optional provider-specific model name. May include\nprovider-specific additional info (like api mode in \"gpt-5:responses\")." }, { "name": "raw_message", "type_info": { "type_str": "Jsonable | None", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "Jsonable", "description": null, "kind": "simple", "symbol_name": "Jsonable", "doc_url": "/docs/api/llm/types#jsonable" }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": "https://docs.python.org/3/library/constants.html#None" } ], "doc_url": null }, "default": "None", "description": "Optional Jsonable object that contains the provider-specific\n\"raw\" data representation of the content for this assistant message." }, { "name": "name", "type_info": { "type_str": "str | None", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "str", "description": null, "kind": "simple", "symbol_name": "str", "doc_url": "https://docs.python.org/3/library/stdtypes.html#str" }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": "https://docs.python.org/3/library/constants.html#None" } ], "doc_url": null }, "default": "None", "description": "Optional name to identify a specific assistant in multi-party conversations." } ]} /> <ReturnTable returnType={{ "type_info": { "type_str": "AssistantMessage", "description": null, "kind": "simple", "symbol_name": "AssistantMessage", "doc_url": "/docs/api/llm/messages#assistant-message" }, "description": "An `AssistantMessage`." }} /> ## <ApiType type="Function" slug="is_messages" symbolName="is_messages" /> is_messages <ParametersTable parameters={[ { "name": "content", "type_info": { "type_str": "UserContent | Sequence[Message]", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "UserContent", "description": null, "kind": "simple", "symbol_name": "UserContent", "doc_url": "/docs/api/llm/messages#user-content" }, { "type_str": "Sequence[Message]", "description": null, "kind": "generic", "base_type": { "type_str": "Sequence", "description": null, "kind": "simple", "symbol_name": "Sequence", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Sequence" }, "parameters": [ { "type_str": "Message", "description": null, "kind": "simple", "symbol_name": "Message", "doc_url": "/docs/api/llm/messages#message" } ], "doc_url": null } ], "doc_url": null } } ]} /> <ReturnTable returnType={{ "type_info": { "type_str": "TypeIs[Sequence[Message]]", "description": null, "kind": "generic", "base_type": { "type_str": "TypeIs", "description": null, "kind": "simple", "symbol_name": "TypeIs", "doc_url": null }, "parameters": [ { "type_str": "Sequence[Message]", "description": null, "kind": "generic", "base_type": { "type_str": "Sequence", "description": null, "kind": "simple", "symbol_name": "Sequence", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Sequence" }, "parameters": [ { "type_str": "Message", "description": null, "kind": "simple", "symbol_name": "Message", "doc_url": "/docs/api/llm/messages#message" } ], "doc_url": null } ], "doc_url": null } }} /> ## <ApiType type="Function" slug="promote_to_messages" symbolName="promote_to_messages" /> promote_to_messages Promote a prompt result to a list of messages. If the result is already a list of Messages, returns it as-is. If the result is str/UserContentPart/Sequence of content parts, wraps it in a user message. <ParametersTable parameters={[ { "name": "content", "type_info": { "type_str": "UserContent | Sequence[Message]", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "UserContent", "description": null, "kind": "simple", "symbol_name": "UserContent", "doc_url": "/docs/api/llm/messages#user-content" }, { "type_str": "Sequence[Message]", "description": null, "kind": "generic", "base_type": { "type_str": "Sequence", "description": null, "kind": "simple", "symbol_name": "Sequence", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Sequence" }, "parameters": [ { "type_str": "Message", "description": null, "kind": "simple", "symbol_name": "Message", "doc_url": "/docs/api/llm/messages#message" } ], "doc_url": null } ], "doc_url": null } } ]} /> <ReturnTable returnType={{ "type_info": { "type_str": "Sequence[Message]", "description": null, "kind": "generic", "base_type": { "type_str": "Sequence", "description": null, "kind": "simple", "symbol_name": "Sequence", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Sequence" }, "parameters": [ { "type_str": "Message", "description": null, "kind": "simple", "symbol_name": "Message", "doc_url": "/docs/api/llm/messages#message" } ], "doc_url": null } }} /> ## <ApiType type="Function" slug="system" symbolName="system" /> system Creates a system message. <ParametersTable parameters={[ { "name": "content", "type_info": { "type_str": "SystemContent", "description": null, "kind": "simple", "symbol_name": "SystemContent", "doc_url": "/docs/api/llm/messages#system-content" }, "description": "The content of the message, which must be a `str` or `Text` content." } ]} /> <ReturnTable returnType={{ "type_info": { "type_str": "SystemMessage", "description": null, "kind": "simple", "symbol_name": "SystemMessage", "doc_url": "/docs/api/llm/messages#system-message" }, "description": "A `SystemMessage`." }} /> ## <ApiType type="Function" slug="user" symbolName="user" /> user Creates a user message. <ParametersTable parameters={[ { "name": "content", "type_info": { "type_str": "UserContent", "description": null, "kind": "simple", "symbol_name": "UserContent", "doc_url": "/docs/api/llm/messages#user-content" }, "description": "The content of the message, which can be `str` or any `UserContent`,\nor a sequence of such user content pieces." }, { "name": "name", "type_info": { "type_str": "str | None", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "str", "description": null, "kind": "simple", "symbol_name": "str", "doc_url": "https://docs.python.org/3/library/stdtypes.html#str" }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": "https://docs.python.org/3/library/constants.html#None" } ], "doc_url": null }, "default": "None", "description": "Optional name to identify a specific user in multi-party conversations." } ]} /> <ReturnTable returnType={{ "type_info": { "type_str": "UserMessage", "description": null, "kind": "simple", "symbol_name": "UserMessage", "doc_url": "/docs/api/llm/messages#user-message" }, "description": "A `UserMessage`." }} />

On this page

On this page

© 2026 Mirascope. All rights reserved.

Mirascope® is a registered trademark of Mirascope, Inc. in the U.S.

Privacy PolicyTerms of Use