> ## Documentation Index
> Fetch the complete documentation index at: https://docs.seltz.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Introducing Agent

> Turn a question into a cited, in-depth answer. Agent plans its own searches, follows up on what it finds, and keeps going until it has enough, rather than stopping after one grounding search.

*Released: September 8, 2026*

**Agent** turns a question into a multi-step research loop: it plans its own searches, follows up on what it finds, and keeps going until it has enough to answer, rather than the single grounding search [Answer](/answer/answer-concepts) makes. Because that loop can take a while, a run is asynchronous: create it, then poll or wait for it to finish.

## Highlights

* **Multi-step research** — Plans its own searches and follows up on what it finds, instead of grounding in a single search.
* **Cited output** — `output.text` is a cited Markdown report, with inline `[n]` markers pointing at `output.sources`.
* **Optional structured output** — Pass `output_schema` to also get `output.structured`, a JSON result shaped by your schema, plus `output.grounding` for field-level citations.
* **Async by design** — `create` returns at once with the run in `pending` state; poll `get` yourself, or let `wait` / `createAndWait` do it for you.
* **Best-effort cancellation** — `cancel` requests that a run stop; a run close to finishing can still complete before cancellation takes effect.

## Quick Start

<CodeGroup>
  ```python Python theme={null}
  from seltz import Seltz

  client = Seltz(api_key="your-api-key")

  run = client.agent.create_and_wait(
      "What are the three most notable AI-company acquisitions announced in 2026?"
  )

  print(run.output.text)
  for source in run.output.sources:
      print(f"[{source.id}] {source.url}")
  ```

  ```typescript TypeScript theme={null}
  import { Seltz } from "seltz";

  const client = new Seltz({ apiKey: "your-api-key" });

  const run = await client.agent.createAndWait({
    query: "What are the three most notable AI-company acquisitions announced in 2026?",
  });

  console.log(run.output?.text);
  for (const source of run.output?.sources ?? []) {
    console.log(`[${source.id}] ${source.url}`);
  }
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.seltz.ai/v1/agent/runs \
    -H "x-api-key: $SELTZ_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"query": "What are the three most notable AI-company acquisitions announced in 2026?"}'
  ```
</CodeGroup>

<CardGroup cols={2}>
  <Card title="Concepts" icon="book" href="/agent/concepts?utm_source=changelog&utm_medium=changelog&utm_campaign=agent">
    The run lifecycle, output shapes, and citations
  </Card>

  <Card title="Quickstart" icon="arrow-right" href="/agent/quickstart?utm_source=changelog&utm_medium=changelog&utm_campaign=agent">
    Make your first request
  </Card>
</CardGroup>
