import json
from tracia import RunOptions, LocalPromptMessage
# 1. First call - model returns tool calls
result = client.prompts.run("assistant", {"question": "Weather in Tokyo?"})
if result.finish_reason == "tool_calls" and result.tool_calls:
# 2. Execute tools locally
weather_data = get_weather(result.tool_calls[0].arguments["location"])
# 3. Continue with tool results
result2 = client.prompts.run(
"assistant",
None,
RunOptions(
messages=[
*result.messages,
LocalPromptMessage(
role="tool",
tool_call_id=result.tool_calls[0].id,
tool_name="get_weather",
content=json.dumps(weather_data),
),
],
trace_id=result.trace_id,
parent_span_id=result.span_id,
),
)
print(result2.text)
# "The weather in Tokyo is 22°C and sunny."