StopAgentRun exception allows you to exit the model execution loop and end the agent run. When raised from a tool function, the agent exits the tool call loop after the current batch of tool calls completes, and the run status is set to COMPLETED. When the agent has a configured database, runs outside a team or workflow, and has session data, Agno saves the session.
This does not cancel the agent run. It completes the run gracefully after exiting the tool call loop.
Constructor
Parameters
str
required
The reason for stopping execution. This message is logged and can be used for debugging or user feedback.
Union[str, Message]
An optional message added to the conversation as a
user message before the run stops.Union[str, Message]
An optional message added to the conversation as an
assistant message before the run stops.List[Union[dict, Message]]
An optional list of messages to add to the conversation history before stopping.
When to Use
UseStopAgentRun when:
- Critical errors: An error occurs that cannot be recovered from
- Security triggers: A security threshold or policy is violated
- Task completion: The task is fully completed and no further tool calls are needed
- Resource limits: A resource limit (time, cost, API calls) is reached
- Manual intervention needed: The situation requires human review or approval
- Early termination: You want to exit the tool call loop based on business logic
Behavior
WhenStopAgentRun is raised:
- Remaining tool calls in the current batch finish executing
- No further LLM iterations run; the tool call loop exits after the current batch
- The run status is set to
COMPLETED - Agno saves the session when the agent has a configured database, runs outside a team or workflow, and has session data
- All messages, tool calls, and tool results up to that point are preserved
- Any
user_messageoragent_messageis added to the conversation history before the run completes