# `Alloy.Tool.Executor`
[🔗](https://github.com/alloy-ex/alloy/blob/v0.10.1/lib/alloy/tool/executor.ex#L1)

Executes tool calls and returns result messages.

Supports parallel execution via `Task.Supervisor.async_stream` -
multiple tool calls in a single assistant response are
executed concurrently under `Alloy.TaskSupervisor`.

# `execute_all`

```elixir
@spec execute_all([map()], %{required(String.t()) =&gt; module()}, Alloy.Agent.State.t()) ::
  Alloy.Message.t() | {:halted, String.t()}
```

# `execute_all`

```elixir
@spec execute_all(
  [map()],
  %{required(String.t()) =&gt; module()},
  Alloy.Agent.State.t(),
  keyword()
) ::
  {:ok, Alloy.Message.t(), [map()]} | {:halted, String.t()}
```

---

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