summaryrefslogtreecommitdiff
path: root/personal_agent/tools/hello.py
blob: 8f1ce1f1ff5dfe1a078b4d9c5300eebce558136c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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)