mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-26 05:48:36 +08:00
32 lines
610 B
Python
32 lines
610 B
Python
import abc
|
|
|
|
from pydantic import BaseModel
|
|
|
|
from openhands.events import Event
|
|
|
|
|
|
class CriticResult(BaseModel):
|
|
"""
|
|
A critic result is a score and a message.
|
|
"""
|
|
|
|
score: float
|
|
message: str
|
|
|
|
@property
|
|
def success(self) -> bool:
|
|
"""
|
|
Whether the agent is successful.
|
|
"""
|
|
return self.score >= 0.5
|
|
|
|
|
|
class BaseCritic(abc.ABC):
|
|
"""
|
|
A critic is a function that takes in a list of events and returns a score about the quality of those events.
|
|
"""
|
|
|
|
@abc.abstractmethod
|
|
def evaluate(self, events: list[Event]) -> CriticResult:
|
|
pass
|