21 lines
425 B
Python
21 lines
425 B
Python
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from abc import ABC, abstractmethod
|
||
|
|
from dataclasses import dataclass
|
||
|
|
from typing import Any, Dict
|
||
|
|
|
||
|
|
|
||
|
|
@dataclass
|
||
|
|
class ToolExecutionResult:
|
||
|
|
context: Dict[str, Any]
|
||
|
|
output_summary: str
|
||
|
|
fallback_used: bool = False
|
||
|
|
|
||
|
|
|
||
|
|
class TestingTool(ABC):
|
||
|
|
name: str
|
||
|
|
|
||
|
|
@abstractmethod
|
||
|
|
def execute(self, context: Dict[str, Any]) -> ToolExecutionResult:
|
||
|
|
raise NotImplementedError
|