`DefaultAgent` from mini-SWE-agent (https://github.com/SWE-agent/mini-swe-agent) with per-player debug logging.
| 19 | |
| 20 | |
| 21 | class ClashAgent(DefaultAgent): |
| 22 | """`DefaultAgent` from mini-SWE-agent (https://github.com/SWE-agent/mini-swe-agent) |
| 23 | with per-player debug logging.""" |
| 24 | |
| 25 | def __init__( |
| 26 | self, |
| 27 | model: Model, |
| 28 | env: DockerEnvironment, |
| 29 | *, |
| 30 | logger: logging.Logger, |
| 31 | config_class: Callable = AgentConfig, |
| 32 | **kwargs, |
| 33 | ): |
| 34 | super().__init__(model, env, config_class=config_class, **kwargs) |
| 35 | self.logger = logger |
| 36 | |
| 37 | def add_messages(self, *messages: dict) -> list[dict]: |
| 38 | result = super().add_messages(*messages) |
| 39 | for m in messages: |
| 40 | self.logger.debug(f"[{m.get('role')}] {m.get('content')}", extra={"highlighter": None}) |
| 41 | return result |
| 42 | |
| 43 | |
| 44 | class MiniSWEAgent(Player): |