Managing tools for agents in the Upsonic framework
from upsonic import Agent from upsonic.tools import tool @tool def web_search(query: str) -> str: """Search the web for information.""" return f"Search results for: {query}" agent = Agent( model="openai/gpt-4o", tools=[web_search] )
from upsonic import Agent from upsonic.tools import tool @tool def calculator(a: float, b: float) -> float: """Add two numbers.""" return a + b # Create agent agent = Agent("openai/gpt-4o") # Add tools dynamically agent.add_tools([calculator]) # Remove tools (by name or object) agent.remove_tools([calculator]) # Or: agent.remove_tools(["calculator"])
registered_agent_tools
from upsonic import Agent from upsonic.tools import tool @tool def calculator(a: float, b: float) -> float: """Add two numbers.""" return a + b agent = Agent("openai/gpt-4o") agent.add_tools([calculator]) # Access registered tools print(agent.registered_agent_tools) # Dict mapping tool names to wrapped tools # Get tool definitions tool_defs = agent.get_tool_defs() # List[ToolDefinition]