Skip to content

Tool Bug #1037

Open
Open
@AnasMaar

Description

@AnasMaar

On your documentation there is this code :
`import asyncio
import random
from agents import Agent, ItemHelpers, Runner, function_tool

@function_tool
def how_many_jokes() -> int:
return random.randint(1, 10)

async def main():
agent = Agent(
name="Joker",
instructions="First call the how_many_jokes tool, then tell that many jokes.",
tools=[how_many_jokes],
)

result = Runner.run_streamed(
    agent,
    input="Hello",
)
print("=== Run starting ===")

async for event in result.stream_events():
    # We'll ignore the raw responses event deltas
    if event.type == "raw_response_event":
        continue
    # When the agent updates, print that
    elif event.type == "agent_updated_stream_event":
        print(f"Agent updated: {event.new_agent.name}")
        continue
    # When items are generated, print them
    elif event.type == "run_item_stream_event":
        if event.item.type == "tool_call_item":
            print("-- Tool was called")
        elif event.item.type == "tool_call_output_item":
            print(f"-- Tool output: {event.item.output}")
        elif event.item.type == "message_output_item":
            print(f"-- Message output:\n {ItemHelpers.text_message_output(event.item)}")
        else:
            pass  # Ignore other event types

print("=== Run complete ===")

if name == "main":
asyncio.run(main())`

Normally it should show when the agent calls the tool before having the tool output, well no it doesn't do it, it shows the tool calling only after the tool returned the output, please fix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions