(self, message: dict[str, Any])
| 398 | return message |
| 399 | |
| 400 | def execute_actions(self, message: dict[str, Any]) -> list[dict[str, Any]]: |
| 401 | extra = message.get("extra", {}) |
| 402 | if extra.get("done"): |
| 403 | gate_error = self._self_reflection_gate_error() |
| 404 | if gate_error is not None: |
| 405 | extra["done"] = False |
| 406 | return self.add_messages( |
| 407 | self.model.format_message( |
| 408 | role="user", |
| 409 | content=gate_error, |
| 410 | extra={"interrupt_type": "SelfReflectionGate"}, |
| 411 | ) |
| 412 | ) |
| 413 | self._write_debug_step_artifact(step_index=self.n_calls, assistant_message=message, outputs=[]) |
| 414 | return self.add_messages( |
| 415 | self.model.format_message( |
| 416 | role="exit", |
| 417 | content=extra.get("final_response", "Task completed."), |
| 418 | extra={ |
| 419 | "exit_status": "Submitted", |
| 420 | "submission": extra.get("final_response", ""), |
| 421 | "final_response": extra.get("final_response", ""), |
| 422 | }, |
| 423 | ) |
| 424 | ) |
| 425 | outputs = [self.env.execute(action) for action in extra.get("actions", [])] |
| 426 | self._write_debug_step_artifact(step_index=self.n_calls, assistant_message=message, outputs=outputs) |
| 427 | observation_messages = self.model.format_observation_messages(message, outputs, self.get_template_vars()) |
| 428 | if self.config.attach_instance_template_after_observation: |
| 429 | observation_messages.append( |
| 430 | self.model.format_message(role="user", content=self._render_template(self.config.instance_template)) |
| 431 | ) |
| 432 | if self.config.attach_plan_md_after_observation: |
| 433 | plan_message = self._plan_md_message() |
| 434 | if plan_message is not None: |
| 435 | observation_messages.append(plan_message) |
| 436 | return self.add_messages(*observation_messages) |
| 437 | |
| 438 | def serialize(self, *extra_dicts) -> dict[str, Any]: |
| 439 | last_message = self.messages[-1] if self.messages else {} |
no test coverage detected