# `Omni.Content.ToolUse`
[🔗](https://github.com/aaronrussell/omni/blob/v1.2.1/lib/omni/content/tool_use.ex#L1)

A tool use content block representing the model's intent to invoke a tool.

Appears in assistant messages when the model decides to use a tool. The `id`
is a provider-assigned identifier that links this block to its corresponding
`Omni.Content.ToolResult`.

# `t`

```elixir
@type t() :: %Omni.Content.ToolUse{
  id: String.t(),
  input: map(),
  name: String.t(),
  signature: String.t() | nil
}
```

The model's request to invoke a named tool with given input.

# `new`

```elixir
@spec new(Enumerable.t()) :: t()
```

Creates a new tool use content block from a keyword list or map.

---

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