# `Condukt.AgentRuntime`
[🔗](https://github.com/tuist/condukt/blob/1.5.1/lib/condukt/agent_runtime.ex#L1)

Behaviour for runtimes that own an agent's inner execution loop.

Native Condukt agents use `Condukt.AgentRuntimes.Native`, where
`Condukt.Session` drives ReqLLM turns and Condukt tool calls. Runtime modules
that implement this behaviour receive the user prompt, a Condukt-owned
context map, and per-run options. Durable guidance is passed through the
composed `:system_prompt` value, including project instructions when enabled.
They return either a final text response or an explicit result map.

# `run`

```elixir
@callback run(String.t(), map(), keyword()) ::
  {:ok, String.t() | map()} | {:error, term()}
```

---

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