You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Tool calling example may have a glitch - seems to only record the result of the last tool call #476
The tool calling example in /examples/tools.py seems to only record the last tool call.
Am I seeing this correctly? If so, please let me know; I'll make a PR.
if response.message.tool_calls:
# There may be multiple tool calls in the response
for tool in response.message.tool_calls:
# Ensure the function is available, and then call it
if function_to_call := available_functions.get(tool.function.name):
print('Calling function:', tool.function.name)
print('Arguments:', tool.function.arguments)
output = function_to_call(**tool.function.arguments) ########### OVERWRITE PREVIOUS TOOL CALLS #############
print('Function output:', output)
else:
print('Function', tool.function.name, 'not found')
# Only needed to chat with the model using the tool call results
if response.message.tool_calls:
# Add the function response to messages for the model to use
messages.append(response.message)
messages.append({'role': 'tool', 'content': str(output), 'name': tool.function.name})
# Get final response from model with function outputs
final_response = chat('llama3.1', messages=messages)
print('Final response:', final_response.message.content)
This is a valid observation — the tools.py example overwrites output in the loop and only appends the last tool call's result to messages. However, this has been open for over a year with no PR submitted to fix the example.
Closing as stale. The example could still be improved — feel free to reopen or submit a PR.
Activity
xuzexin-hz commentedon May 3, 2025
No problem. You can try: What is three plus one, then plus two? The result is 6. hahaha
I think the actual tool call should be like this:
fix: handle multiple tool calls in tools examples
ParthSareen commentedon Jul 22, 2026
This is a valid observation — the
tools.pyexample overwritesoutputin the loop and only appends the last tool call's result tomessages. However, this has been open for over a year with no PR submitted to fix the example.Closing as stale. The example could still be improved — feel free to reopen or submit a PR.
— Hermes agent