# `ADK`
[🔗](https://github.com/zeroasterisk/adk-elixir/blob/main/lib/adk.ex#L1)

The main entry point for ADK Elixir.

## Quick Start

    agent = ADK.new("assistant", model: "test", instruction: "Help the user.")
    ADK.chat(agent, "Hello!")

# `chat`

```elixir
@spec chat(ADK.Agent.t(), String.t(), keyword()) :: String.t() | nil
```

Send a message and get the final text response. Blocking.

# `new`

```elixir
@spec new(
  String.t(),
  keyword()
) :: ADK.Agent.LlmAgent.t()
```

Create a new LLM agent with minimal configuration.

# `run`

```elixir
@spec run(ADK.Agent.t(), String.t() | map(), keyword()) :: [ADK.Event.t()]
```

Run an agent and return a list of events.

# `sequential`

```elixir
@spec sequential(
  [ADK.Agent.t()],
  keyword()
) :: ADK.Agent.t()
```

Create a sequential pipeline from agents.

---

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