A collection of functions that the model may use to generate response.
Usage:
Create tool from function declarations:
```
get_current_weather_func = generative_models.FunctionDeclaration(...)
weather_tool = generative_models.Tool(
function_declarations=[get_current_weather_func],
)
```
Use tool in `GenerativeModel.generate_content`:
```
model = GenerativeModel("gemini-pro")
print(model.generate_content(
"What is the weather like in Boston?",
# You can specify tools when creating a model to avoid having to send them with every request.
tools=[weather_tool],
))
```
Use tool in chat:
```
model = GenerativeModel(
"gemini-pro",
# You can specify tools when creating a model to avoid having to send them with every request.
tools=[weather_tool],
)
chat = model.start_chat()
print(chat.send_message("What is the weather like in Boston?"))
print(chat.send_message(
Part.from_function_response(
name="get_current_weather",
response={
"content": {"weather_there": "super nice"},
}
),
))
```
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Class Tool (1.95.1)\n\nVersion latestkeyboard_arrow_down\n\n- [1.95.1 (latest)](/python/docs/reference/vertexai/latest/vertexai.generative_models.Tool)\n- [1.94.0](/python/docs/reference/vertexai/1.94.0/vertexai.generative_models.Tool)\n- [1.93.1](/python/docs/reference/vertexai/1.93.1/vertexai.generative_models.Tool)\n- [1.92.0](/python/docs/reference/vertexai/1.92.0/vertexai.generative_models.Tool)\n- [1.91.0](/python/docs/reference/vertexai/1.91.0/vertexai.generative_models.Tool)\n- [1.90.0](/python/docs/reference/vertexai/1.90.0/vertexai.generative_models.Tool)\n- [1.89.0](/python/docs/reference/vertexai/1.89.0/vertexai.generative_models.Tool)\n- [1.88.0](/python/docs/reference/vertexai/1.88.0/vertexai.generative_models.Tool)\n- [1.87.0](/python/docs/reference/vertexai/1.87.0/vertexai.generative_models.Tool)\n- [1.86.0](/python/docs/reference/vertexai/1.86.0/vertexai.generative_models.Tool)\n- [1.85.0](/python/docs/reference/vertexai/1.85.0/vertexai.generative_models.Tool)\n- [1.84.0](/python/docs/reference/vertexai/1.84.0/vertexai.generative_models.Tool)\n- [1.83.0](/python/docs/reference/vertexai/1.83.0/vertexai.generative_models.Tool)\n- [1.82.0](/python/docs/reference/vertexai/1.82.0/vertexai.generative_models.Tool)\n- [1.81.0](/python/docs/reference/vertexai/1.81.0/vertexai.generative_models.Tool)\n- [1.80.0](/python/docs/reference/vertexai/1.80.0/vertexai.generative_models.Tool)\n- [1.79.0](/python/docs/reference/vertexai/1.79.0/vertexai.generative_models.Tool)\n- [1.78.0](/python/docs/reference/vertexai/1.78.0/vertexai.generative_models.Tool)\n- [1.77.0](/python/docs/reference/vertexai/1.77.0/vertexai.generative_models.Tool)\n- [1.76.0](/python/docs/reference/vertexai/1.76.0/vertexai.generative_models.Tool)\n- [1.75.0](/python/docs/reference/vertexai/1.75.0/vertexai.generative_models.Tool)\n- [1.74.0](/python/docs/reference/vertexai/1.74.0/vertexai.generative_models.Tool)\n- [1.73.0](/python/docs/reference/vertexai/1.73.0/vertexai.generative_models.Tool)\n- [1.72.0](/python/docs/reference/vertexai/1.72.0/vertexai.generative_models.Tool)\n- [1.71.1](/python/docs/reference/vertexai/1.71.1/vertexai.generative_models.Tool)\n- [1.70.0](/python/docs/reference/vertexai/1.70.0/vertexai.generative_models.Tool)\n- [1.69.0](/python/docs/reference/vertexai/1.69.0/vertexai.generative_models.Tool)\n- [1.68.0](/python/docs/reference/vertexai/1.68.0/vertexai.generative_models.Tool)\n- [1.67.1](/python/docs/reference/vertexai/1.67.1/vertexai.generative_models.Tool)\n- [1.66.0](/python/docs/reference/vertexai/1.66.0/vertexai.generative_models.Tool)\n- [1.65.0](/python/docs/reference/vertexai/1.65.0/vertexai.generative_models.Tool)\n- [1.63.0](/python/docs/reference/vertexai/1.63.0/vertexai.generative_models.Tool)\n- [1.62.0](/python/docs/reference/vertexai/1.62.0/vertexai.generative_models.Tool)\n- [1.60.0](/python/docs/reference/vertexai/1.60.0/vertexai.generative_models.Tool)\n- [1.59.0](/python/docs/reference/vertexai/1.59.0/vertexai.generative_models.Tool) \n\n Tool(\n function_declarations: typing.List[\n vertexai.generative_models._generative_models.FunctionDeclaration\n ],\n )\n\nA collection of functions that the model may use to generate response.\n\nUsage:\nCreate tool from function declarations: \n\n ```\n get_current_weather_func = generative_models.FunctionDeclaration(...)\n weather_tool = generative_models.Tool(\n function_declarations=[get_current_weather_func],\n )\n ```\n\n Use tool in `GenerativeModel.generate_content`:\n\n ```\n model = GenerativeModel(\"gemini-pro\")\n print(model.generate_content(\n \"What is the weather like in Boston?\",\n # You can specify tools when creating a model to avoid having to send them with every request.\n tools=[weather_tool],\n ))\n ```\n\n Use tool in chat:\n\n ```\n model = GenerativeModel(\n \"gemini-pro\",\n # You can specify tools when creating a model to avoid having to send them with every request.\n tools=[weather_tool],\n )\n chat = model.start_chat()\n print(chat.send_message(\"What is the weather like in Boston?\"))\n print(chat.send_message(\n Part.from_function_response(\n name=\"get_current_weather\",\n response={\n \"content\": {\"weather_there\": \"super nice\"},\n }\n ),\n ))\n ```"]]