During Initialization
Copy
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]
)
Dynamic Tool Management
Copy
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"])
Accessing Registered Tools
Access registered tools via theregistered_agent_tools attribute:
Copy
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("\nRegistered tools:", agent.registered_agent_tools) # Dict mapping tool names to wrapped tools
# Get tool definitions
tool_defs = agent.get_tool_defs() # List[ToolDefinition]
print("\nTool definitions:", tool_defs)
agent.remove_tools([calculator])
# Access registered tools
print("\nRegistered tools:", agent.registered_agent_tools) # Dict mapping tool names to wrapped tools
# Get tool definitions
tool_defs = agent.get_tool_defs() # List[ToolDefinition]
print("\nTool definitions:", tool_defs)

