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

A simple agent that wraps a function. Useful for testing and ad-hoc agents.

## Examples

    agent = ADK.Agent.Custom.new(
      name: "greeter",
      run_fn: fn _agent, _ctx -> [ADK.Event.new(%{author: "greeter", content: "hi"})] end
    )

# `t`

```elixir
@type t() :: %ADK.Agent.Custom{
  description: String.t(),
  name: String.t(),
  run_fn: (t(), ADK.Context.t() -&gt; [ADK.Event.t()]),
  sub_agents: [ADK.Agent.t()],
  tools: [map()]
}
```

# `new`

```elixir
@spec new(keyword()) :: t()
```

Create a custom agent.

---

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