# `Wardrik.Agents`

Operations on every agent the scope can see.

    Wardrik.Agents.list(scope, agents: ["agt_1"])
    #=> {:ok, [%Wardrik.Agent{id: "agt_1", conversation: nil, status: :idle, ...}]}

# `cancel`

```elixir
@spec cancel(Wardrik.Scope.t(), term()) :: term() | :ok | {:error, Wardrik.Error.t()}
```

Cancel the current turn of several agents.

    Wardrik.Agents.cancel(scope, input)

`POST /v1/agents/cancel`

# `forget`

```elixir
@spec forget(Wardrik.Scope.t(), term()) :: term() | :ok | {:error, Wardrik.Error.t()}
```

Delete agents.

    Wardrik.Agents.forget(scope, input)

Removes each agent in the same way as agent.forget. The agent is stopped, and its conversations, definition and triggers are deleted.

`DELETE /v1/agents`

# `list`

```elixir
@spec list(Wardrik.Scope.t(), term()) :: term() | :ok | {:error, Wardrik.Error.t()}
```

List agents.

    Wardrik.Agents.list(scope, input)

`GET /v1/agents`

---

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