agent orchestration and trajectory persistence / task execution loop and limit enforcement
What this workflow does
DefaultAgent renders prompts, queries the model, executes returned bash actions in the environment, and saves the resulting trajectory or exit state. / DefaultAgent processes model-driven shell actions, captures observations, and stops on wall-time, cost, or repeated format-error limits.
Purpose
solve a task by repeatedly querying an LLM, running the model-selected shell actions, and recording the session / carry out a task until submission or a stopping limit is reached
What it produces
agent trajectory and submission payload / agent run state, conversation history, and accumulated cost/step budgets
Who relies on it
local execution environment and downstream consumer of saved trajectory / model caller / task runner
Why this workflow matters
- Produces a saved run record with model/environment metadata
- Converts model actions into local command execution
- Stops on limits, time, or task completion
- produces a submitted final output when completion is reached
- terminates cleanly on time, cost, or format-error budget conditions
Implementation references
- DefaultAgent src/minisweagent/agents/default.py · lines 38–190
- DefaultAgent.run() src/minisweagent/agents/default.py · lines 88–124
- LocalEnvironment src/minisweagent/environments/local.py · lines 19–69
- LocalEnvironment.execute() src/minisweagent/environments/local.py · lines 24–43
- LocalEnvironment._check_finished() src/minisweagent/environments/local.py · lines 45–56
- AgentConfig src/minisweagent/agents/default.py · lines 19–35
- DefaultAgent.query() src/minisweagent/agents/default.py · lines 130–152
- test_agent_save_includes_class_names() tests/run/test_save.py · lines 10–48
- DefaultAgent._render_template() src/minisweagent/agents/default.py · lines 66–67
- DefaultAgent.step() src/minisweagent/agents/default.py · lines 126–128
- DefaultAgent.add_messages() src/minisweagent/agents/default.py · lines 69–72
- DefaultAgent.execute_actions() src/minisweagent/agents/default.py · lines 154–157
- DefaultAgent.save() src/minisweagent/agents/default.py · lines 182–190
- DefaultAgent.__init__() src/minisweagent/agents/default.py · lines 39–50
- DefaultAgent.get_template_vars() src/minisweagent/agents/default.py · lines 52–64
- DefaultAgent.handle_uncaught_exception() src/minisweagent/agents/default.py · lines 74–86
- DefaultAgent.serialize() src/minisweagent/agents/default.py · lines 159–180
- OpenRouterModel src/minisweagent/models/openrouter_model.py · lines 55–169
- format_toolcall_observation_messages() src/minisweagent/models/utils/actions_toolcall.py · lines 79–113
- parse_toolcall_actions() src/minisweagent/models/utils/actions_toolcall.py · lines 30–76
- InterruptAgentFlow.__init__() src/minisweagent/exceptions.py · lines 4–6
- test_message_history_tracking() tests/agents/test_default.py · lines 334–362
- test_wall_time_limit_enforcement() tests/agents/test_default.py · lines 410–426
- test_format_errors_count_against_cost_limit() tests/agents/test_default.py · lines 530–544
- test_repeated_format_errors_terminate_cleanly() tests/agents/test_default.py · lines 481–493
- test_step_adds_messages() tests/agents/test_default.py · lines 365–385