from timbal import Agent, Tool, ToolSet
class RoleBasedToolSet(ToolSet):
"""ToolSet that provides different tools based on user role."""
role: str
async def resolve(self) -> list[Tool]:
"""Dynamically resolve tools based on the user's role."""
if self.role == "admin":
return [
Tool(handler=view_profile),
Tool(handler=delete_user),
Tool(handler=modify_permissions)
]
else:
return [Tool(handler=view_profile)]
admin_agent = Agent(
name="admin_agent",
model="openai/gpt-4o-mini",
tools=[RoleBasedToolSet(role="admin")] # ToolSet resolved at runtime
)