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

# Choose Your Surface

> Five surfaces of one hosted platform. Pick the one that matches how your agent reaches WalletSuite — not a transport.

The decision is not which transport. It is which **surface** of the one hosted platform your agent runs on.

Every surface below is the same governed platform — see [Overview](/ai-agents/overview) — reached a different way.

## The five surfaces

| Surface                              | Who runs the model  | Chat?       | Typical use                                                                      | How it connects                                                                          |
| ------------------------------------ | ------------------- | ----------- | -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| **Admin Assistant**                  | WalletSuite         | Yes         | Operators query wallet & operational intelligence inside the WalletSuite console | Built into the console; org-authorized                                                   |
| **Embedded Assistant** (white-label) | WalletSuite         | Yes         | The same Assistant, rendered inside your product                                 | Assistant API + [templates](/ai-agents/templates/reporting-treasury-insights) in your UI |
| **Customer-owned Agent**             | You                 | Your choice | Your own model/framework drives execution                                        | Hosted MCP — [connect your agent](/ai-agents/token-exchange)                             |
| **Background Adaptive Agent**        | WalletSuite         | No          | A webhook, API event, or schedule triggers contextual analysis                   | Event/schedule invokes the Assistant API; no chat surface                                |
| **Deterministic Workflow**           | None — LLM bypassed | No          | Fixed conditions map to fixed actions                                            | Same data & execution services, no model in the path                                     |

## What each surface is

<CardGroup cols={2}>
  <Card title="Admin Assistant" icon="terminal">
    Org-authorized wallet and operational intelligence inside the WalletSuite console. WalletSuite operates the model and tools; the operator asks, the Assistant answers and acts within policy.
  </Card>

  <Card title="Embedded Assistant" icon="window">
    The same Assistant API and templates, rendered white-label inside your product. Your users never leave your UI; the model, tools, and execution controls stay behind the scenes.
  </Card>

  <Card title="Customer-owned Agent" icon="robot">
    You run your own model or framework and connect to the hosted MCP — [connect your agent](/ai-agents/token-exchange).
  </Card>

  <Card title="Background Adaptive Agent" icon="bolt">
    A webhook, API event, or schedule invokes contextual analysis with no chat surface. Same Assistant reasoning, triggered by an event instead of a prompt.
  </Card>

  <Card title="Deterministic Workflow" icon="diagram-project">
    Fixed conditions and actions bypass the LLM entirely while reusing the same data and execution services. Use it when the logic is known in advance and no reasoning is needed.
  </Card>
</CardGroup>

## Invariants across every surface

<Note>
  **Chat is a presentation surface. It never grants authority.** Whether a surface has a chat box or not is a UI choice. Authority is the agent's [five bound things](/core-concepts/agents-and-authority#an-agent-is-five-bound-things). The policy engine decides on the intent, not on the surface it arrived from.
</Note>

* **One organization runs many assistants and agents — not one per end user.** You provision them once and route your users through them; you never mint an identity for every person who opens a chat.
* **`assistantId` is selected by your application code, never by the model.** The model cannot choose which assistant it is. Your code binds the `assistantId`; the model operates only within that selection.
* **The agent's key stays server-side.** On the customer-owned surface only a short-lived token reaches the agent — see [Connect your agent](/ai-agents/token-exchange).

## Which one fits

<Steps>
  <Step title="Operating your own org's wallets from the console">
    Use the **Admin Assistant** — it is already there, org-authorized.
  </Step>

  <Step title="Putting an Assistant in front of your own users">
    Use the **Embedded Assistant** — same Assistant API and [templates](/ai-agents/templates/reporting-treasury-insights), rendered in your product.
  </Step>

  <Step title="Running your own model or agent framework">
    Use the **Customer-owned Agent** and [connect your agent](/ai-agents/token-exchange).
  </Step>

  <Step title="Reacting to events with no human in the loop">
    Use a **Background Adaptive Agent** for reasoning on a trigger, or a **Deterministic Workflow** when the logic is fixed and needs no model.
  </Step>
</Steps>

## Next steps

* [Overview](/ai-agents/overview) — the governed platform every surface shares
* [Connect your agent](/ai-agents/token-exchange) — how a customer-owned agent connects
* [Execution Levels](/ai-agents/execution-levels) — how far a surface is allowed to act
* [Reporting & treasury insights template](/ai-agents/templates/reporting-treasury-insights) — a template you can render in the embedded or admin surface
