mirror of
https://github.com/All-Hands-AI/OpenHands.git
synced 2026-04-29 03:00:45 -04: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
|