joezy / agent_debug.py
Docty's picture
Create agent_debug.py
514ab2c verified
from llama_index.core.agent.workflow import (
AgentInput,
AgentOutput,
ToolCall,
ToolCallResult,
AgentStream,
)
async def run_workflow_agent(workflow_agent, user_msg: str):
handler = workflow_agent.run(user_msg=user_msg)
current_agent = None
async for event in handler.stream_events():
# Detect agent switch
if hasattr(event, "current_agent_name") and event.current_agent_name != current_agent:
current_agent = event.current_agent_name
print(f"\n{'='*50}")
print(f"Agent Name: {current_agent}")
print(f"{'='*50}\n")
# Handle Agent Output
if isinstance(event, AgentOutput):
if event.response.content:
print("Output:", event.response.content)
if event.tool_calls:
print("\nPlanning to use tools:", [call.tool_name for call in event.tool_calls])
# Handle Tool Call
elif isinstance(event, ToolCall):
print("\n**************************Calling***********************")
print(f"Calling Tool: {event.tool_name}")
print(f"Calling With Arguments: {event.tool_kwargs}")
# Handle Tool Call Result
elif isinstance(event, ToolCallResult):
print("\n**************************Results***********************")
print(f"Tool Result ({event.tool_name}):")
print(f"Arguments: {event.tool_kwargs}")
print(f"Output: {event.tool_output}")
print(f"{'='*100}")
return handler