# `Jido.Agent.Strategy.Direct`
[🔗](https://github.com/agentjido/jido/blob/v2.3.0/lib/jido/agent/strategy/direct.ex#L1)

Default execution strategy that runs instructions immediately and sequentially.

This strategy:
- Executes each instruction via `Jido.Exec.run/1`
- Merges results into agent state
- Applies state operations (e.g., `StateOp.SetState`) to the agent
- Returns only external directives to the caller
- Optionally tracks instruction execution in Thread when `thread?` is enabled

This is the default strategy and provides the simplest execution model.

## Thread Tracking

When `thread?` option is enabled via `ctx[:strategy_opts][:thread?]` or if a thread
already exists in agent state, the strategy will:
- Ensure a Thread exists in agent state
- Append `:instruction_start` entry before each instruction
- Append `:instruction_end` entry after each instruction (with status :ok or :error)

Example:
    agent = Agent.cmd(agent, MyAction, strategy_opts: [thread?: true])

