openhands-sdk/openhands/sdk/agent/
Core Responsibilities
The Agent system has four primary responsibilities:- Reasoning-Action Loop - Query LLM to generate next actions based on conversation history
- Tool Orchestration - Select and execute tools, handle results and errors
- Context Management - Apply skills, manage conversation history via condensers
- Security Validation - Analyze proposed actions for safety before execution via security analyzer
Architecture
Key Components
Reasoning-Action Loop
The agent operates through a single-step execution model where eachstep() call processes one reasoning cycle:
Step Execution Flow:
- Pending Actions: If actions awaiting confirmation exist, execute them and return
- Condensation: If condenser exists:
- Call
condenser.condense()with current event view - If returns
View: use condensed events for LLM query (continue in same step) - If returns
Condensation: emit event and return (will be processed next step)
- Call
- LLM Query: Query LLM with messages from event history
- If context window exceeded: emit
CondensationRequestand return
- If context window exceeded: emit
- Response Parsing: Parse LLM response into events
- Tool calls → create
ActionEvent(s) - Text message → create
MessageEventand return
- Tool calls → create
- Confirmation Check: If actions need user approval:
- Set conversation status to
WAITING_FOR_CONFIRMATIONand return
- Set conversation status to
- Action Execution: Execute tools and create
ObservationEvent(s)
- Stateless: Agent holds no mutable state between steps
- Event-Driven: Reads from event history, writes new events
- Interruptible: Each step is atomic and can be paused/resumed
Agent Context
The agent appliesAgentContext which includes skills and prompts to shape LLM behavior:
Review this guide for details on creating and applying agent context and skills.
Tool Execution
Tools follow a strict action-observation pattern: Execution Modes:
Security Integration:
Before execution, the security analyzer evaluates each action:
- Low Risk: Execute immediately
- Medium Risk: Log warning, execute with monitoring
- High Risk: Block execution, request user confirmation
Component Relationships
How Agent Interacts
Relationship Characteristics:- Conversation → Agent: Orchestrates step execution, provides event history
- Agent → LLM: Queries for next actions, receives tool calls or messages
- Agent → Tools: Executes actions, receives observations
- AgentContext → Agent: Injects skills and prompts into LLM queries
See Also
- Conversation Architecture - Agent orchestration and lifecycle
- Tool System - Tool definition and execution patterns
- Events - Event types and structures
- Skills - Prompt engineering and skill patterns
- LLM - Language model abstraction

