ToolMessage#
- class langchain_core.messages.tool.ToolMessage[source]#
Bases:
BaseMessage
Message for passing the result of executing a tool back to a model.
ToolMessages contain the result of a tool invocation. Typically, the result is encoded inside the content field.
Example: A ToolMessage representing a result of 42 from a tool call with id
from langchain_core.messages import ToolMessage ToolMessage(content='42', tool_call_id='call_Jja7J89XsjrOLA5r!MEOW!SL')
- Example: A ToolMessage where only part of the tool output is sent to the model
and the full output is passed in to artifact.
New in version 0.2.17.
from langchain_core.messages import ToolMessage tool_output = { "stdout": "From the graph we can see that the correlation between x and y is ...", "stderr": None, "artifacts": {"type": "image", "base64_data": "/9j/4gIcSU..."}, } ToolMessage( content=tool_output["stdout"], artifact=tool_output, tool_call_id='call_Jja7J89XsjrOLA5r!MEOW!SL', )
The tool_call_id field is used to associate the tool call request with the tool call response. This is useful in situations where a chat model is able to request multiple tool calls in parallel.
Pass in content as positional arg.
- Parameters:
content β The string contents of the message.
kwargs β Additional fields to pass to the message
- param additional_kwargs: dict [Optional]#
Reserved for additional payload data associated with the message.
For example, for a message from an AI, this could include tool calls as encoded by the model provider.
- param artifact: Any = None#
Artifact of the Tool execution which is not meant to be sent to the model.
Should only be specified if it is different from the message content, e.g. if only a subset of the full tool output is being passed as message content but the full output is needed in other parts of the code.
New in version 0.2.17.
- param content: str | List[str | Dict] [Required]#
The string contents of the message.
- param id: str | None = None#
An optional unique identifier for the message. This should ideally be provided by the provider/model which created the message.
- param name: str | None = None#
An optional name for the message.
This can be used to provide a human-readable name for the message.
Usage of this field is optional, and whether itβs used or not is up to the model implementation.
- param response_metadata: dict [Optional]#
Response metadata. For example: response headers, logprobs, token counts.
- param status: Literal['success', 'error'] = 'success'#
Status of the tool invocation.
New in version 0.2.24.
- param tool_call_id: str [Required]#
Tool call that this message is responding to.
- param type: Literal['tool'] = 'tool'#
The type of the message (used for serialization). Defaults to βtoolβ.
- pretty_print() None #
- Return type:
None
- pretty_repr(html: bool = False) str #
Get a pretty representation of the message.
- Parameters:
html (bool) β Whether to format the message as HTML. If True, the message will be formatted with HTML tags. Default is False.
- Returns:
A pretty representation of the message.
- Return type:
str
Examples using ToolMessage