# `LlmCore.Agent.ToolDispatch.Components.ExecuteSerial`
[🔗](https://github.com/fosferon/llm_core/blob/v0.3.0/lib/llm_core/agent/tool_dispatch/components/execute_serial.ex#L1)

Executes serial tool call steps sequentially.

Serial steps have data dependencies — each step can use results from
prior steps via dynamic argument resolution. Results accumulate in
`serial_context` for reference by later steps and by the compose stage.

If there are no serial steps, this stage is a pass-through.

# `call`

```elixir
@spec call(
  LlmCore.Agent.ToolDispatch.Event.t(),
  keyword()
) :: LlmCore.Agent.ToolDispatch.Event.t()
```

Runs serial steps in order, threading results forward.

## Parameters

  * `event` — `%Event{}` with `plan.serial` steps and `resolve_fn`
  * `opts` — ALF stage options (unused)

## Returns

  Updated `%Event{}` with `serial_results`, `serial_context`, and
  any accumulated `errors`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
