| 41 | |
| 42 | |
| 43 | class EchoTool(Tool): |
| 44 | @property |
| 45 | def name(self): |
| 46 | return "echo" |
| 47 | |
| 48 | @property |
| 49 | def description(self): |
| 50 | return "Echo helper" |
| 51 | |
| 52 | @property |
| 53 | def parameters(self): |
| 54 | return {"type": "object", "properties": {"text": {"type": "string"}}} |
| 55 | |
| 56 | async def execute(self, text: str): |
| 57 | return ToolResult(success=True, content=f"tool:{text}") |
| 58 | |
| 59 | |
| 60 | @pytest.fixture |