represents a tool for use by an LLM enabling it to run fun on parameters described by params.


uses a description to prompt the LLM.


  • LLMTool is typically used to provide exact answers or up-to-date information to a large language model (LLM).
  • Using LLMTool modifies an LLM prompt to explain how to use the tool, what it does and its arguments.
  • The LLM can use the tool by specifying its "name", which should be descriptive of the actual tool function for triggering LLM usage effectively. Extra details about the tool can be given in "description".
  • Tool calls are parsed into an LLMToolRequest and the evaluation result is sent to the LLM as a string.
  • The format of params and fun is analogous to APIFunction.
  • Valid forms of params include:
  • "name"string parameter
    "name"typetyped parameter
    {spec1,spec2,}list of parameters
  • Valid forms of type include:
  • "form"any form supported by Interpreter
    Interpreter[]any Interpreter object
    assocan association giving details of how to treat the parameter
    tfunany function to be applied to the string
  • Possible elements in assoc include:
  • "Interpreter""String"interpreter type
    "Help"Missing[]prompt information
    "Required"Truewhether the parameter is required


open allclose all

Basic Examples  (2)

Define a tool for counting the number of characters in a string:

Use the tool in a call to an LLM:

Define a tool for querying the population of cities by their name and describe it for the LLM:

Use the tool in a call to an LLM:

Scope  (3)

Define a tool for computing power series expansion using multiple different inputs interpretations:

Ask the LLM a question requiring it to query a series expansion for the answer:

Define a tool to expose the TravelDistance function, interpreting parameter as a list of cities:

Find shortest travel path:

Define a tool with some prompting for running Wolfram Language code:

Run an LLM with the tool, returning all the evaluation properties:

Get the completion written by the LLM with prompting and tool calls removed:

Get the completion with tool calls preserved:

Get the associations of LLMToolRequest and LLMToolResponse objects:

Wolfram Research (2023), LLMTool, Wolfram Language function, https://reference.wolfram.com/language/ref/LLMTool.html.


Wolfram Research (2023), LLMTool, Wolfram Language function, https://reference.wolfram.com/language/ref/LLMTool.html.


Wolfram Language. 2023. "LLMTool." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/LLMTool.html.


Wolfram Language. (2023). LLMTool. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/LLMTool.html


@misc{reference.wolfram_2024_llmtool, author="Wolfram Research", title="{LLMTool}", year="2023", howpublished="\url{https://reference.wolfram.com/language/ref/LLMTool.html}", note=[Accessed: 19-July-2024 ]}


@online{reference.wolfram_2024_llmtool, organization={Wolfram Research}, title={LLMTool}, year={2023}, url={https://reference.wolfram.com/language/ref/LLMTool.html}, note=[Accessed: 19-July-2024 ]}