from personal_agent.tools.base import Tool, ToolRegistry, ToolResult class HelloTool(Tool): @property def name(self) -> str: return "hello" @property def description(self) -> str: return "Say hello to someone." @property def schema(self) -> dict[str, object]: return { "type": "object", "properties": { "name": { "type": "string", "description": "The person to greet.", }, }, "required": ["name"], } def execute(self, arguments: dict[str, object]) -> ToolResult: name = arguments.get("name", "stranger") return ToolResult(content=f"Hello, {name}!") if __name__ == "__main__": registry = ToolRegistry() registry.register(HelloTool()) print(registry.schemas()) tool = registry.get("hello") if tool is not None: result = tool.execute({"name": "Joseph"}) print(result.content)