from upsonic import Agent, Task
from upsonic.tools import tool
@tool
def search_web(query: str) -> str:
"""Search the web for information about a topic."""
# Simulated web search - replace with actual implementation
return f"Search results for '{query}': Found relevant information about the topic."
agent = Agent(
model="openai/gpt-4o",
instructions="Write a report on the topic. Output only the report.",
)
task = Task(
description="Trending startups and products.",
tools=[search_web]
)
# Run agent and return the response as a variable
result = agent.do(task)
# Print the response
print(result)
################ STREAM RESPONSE #################
async with agent.stream(task) as result:
async for text_chunk in result.stream_output():
print(text_chunk, end='', flush=True)
print() # New line after streaming