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

# Agent Infra

> Use Agent Infra in the SLNG Dashboard to create voice agents from templates, configure prompts and models, test in-browser, and monitor live call traffic.

Agent Infra is where you create and operate voice agents:

* [Agent Infra](https://app.slng.ai/agent-infra)

## Create an agent

* [New agent](https://app.slng.ai/agent-infra/new)
* Start from a template (Healthcare, Insurance, Financial Services, Hospitality & Travel) or create from scratch
* Configure the system prompt, greeting(s), models, and tools
* Duplicate an existing agent when you want to reuse its stored configuration
* If you plan to dispatch outbound calls or use human transfer tools, attach an outbound connection (see [Telephony](/dashboard/telephony))

<Note>
  Personalization is available in two places when you create an agent:

  * [Template variables](/examples/agents-config#template-variables) for prompts and greetings
  * [Tool personalization](/examples/agents-config#tool-personalization) for supported tool fields such as
    webhook URLs, system webhook argument values, human transfer phone numbers, and built-in
    timezones

  Webhook text controls such as descriptions, result instructions, and forced pre-action message
  text stay static and do not support runtime personalization.
</Note>

<Tip>
  Use this mental model when configuring agents in the Dashboard:

  * Prompt and greeting variables are checked at session start
  * Tool-only personalization is checked only when that tool runs

  That means a call can still start even if a tool-only value is missing, but the tool itself will
  fail if it executes without a valid rendered value.
</Tip>

<Tip>
  Tool fields that support personalization now show a <b>Personalizable</b> indicator in the
  editor. Hover it to see the supported syntax, when the value is validated, the required final
  format, and an example. For the full rules and examples, see
  [Tool personalization](/examples/agents-config#tool-personalization).
</Tip>

<Tip>
  For webhook URLs, personalization is limited to path segments and query parameter values. The
  host, port, credentials, fragments, and query parameter names must remain literal.
</Tip>

<Tip>
  You can also manage agents programmatically. See the [Create agent](/api-reference/agents/create-agent), [Update agent](/api-reference/agents/update-agent-partial), and [List agents](/api-reference/agents/list-agents) API endpoints.
</Tip>

## Test in browser

Use the built-in test page for a web (non-telephony) session:

* `https://app.slng.ai/agent-infra/<agent_id>/test`

<Frame caption="Test your agent directly in the browser">
  <img src="https://mintcdn.com/slng/wu74m4S8n_MUphhg/heroshots/agent-studio-test.png?fit=max&auto=format&n=wu74m4S8n_MUphhg&q=85&s=43582242e08cd8015d25f6dc7d655325" alt="Agent Infra built-in test page" width="1280" height="800" data-path="heroshots/agent-studio-test.png" />
</Frame>

You can also create web sessions via the API. See [Agent API examples](/examples/agents-api#test-with-a-web-session).

## Calls

Each agent has a dedicated calls page where you can monitor and review all call activity:

* Calls list: `https://app.slng.ai/agent-infra/<agent_id>/calls`
* Call details: `https://app.slng.ai/agent-infra/<agent_id>/calls/<call_id>`

### Call list

The calls list shows all calls for an agent (both inbound and outbound), with the most recent calls first. You can filter by status to find active, completed, or failed calls.

<Frame caption="Monitor all inbound and outbound calls">
  <img src="https://mintcdn.com/slng/wu74m4S8n_MUphhg/heroshots/agent-studio-calls.png?fit=max&auto=format&n=wu74m4S8n_MUphhg&q=85&s=22c369f2193cd5cc87caf08da0c0a4ec" alt="Agent Infra calls list showing call history" width="1280" height="800" data-path="heroshots/agent-studio-calls.png" />
</Frame>

### Call details

Each call record includes:

* **Status**: current call state (e.g., dispatched, active, completed, failed)
* **Phone number**: the E.164 number involved in the call
* **Template arguments**: the values passed for template variables (e.g., `patient_name`, `practice_name`)
* **Rendered prompt**: the final system prompt after template variables are resolved
* **Timestamps**: when the call was created and last updated
* **Session report**: when available, includes transcript and session-level metadata

<Frame caption="Review transcript, status, and session metadata for each call">
  <img src="https://mintcdn.com/slng/wu74m4S8n_MUphhg/heroshots/agent-studio-call-details.png?fit=max&auto=format&n=wu74m4S8n_MUphhg&q=85&s=13f0219a37c2e43125e3185c1339e37c" alt="Agent Infra call details showing status, transcript, and metadata" width="1280" height="800" data-path="heroshots/agent-studio-call-details.png" />
</Frame>

### Dispatching outbound calls

You can dispatch outbound calls from the Agent Infra UI or programmatically via the API. Outbound calls require the agent to have an outbound SIP trunk configured. See [Telephony](/dashboard/telephony).

<Tip>
  For code examples, see [Agent Call Examples](/examples/agents-calls).
</Tip>

<Note>
  Everything in Agent Infra maps to public API endpoints. See the <b>Voice Agents API</b> tab for a complete reference.
</Note>
