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

# Design and build your application

> Choose an execution shape, connect capabilities, and assemble the packages your application needs.

Start with the result your application must produce. Choose an execution shape, add its tools and context, then decide how requests arrive and how long work lives. Add evaluation and tracing while the application is still small.

## Choose who controls the next step

| Requirement | Use | Why |
| - | - | - |
| The model selects tools during a conversation | [Agent](/agents/overview) | A model/tool loop with run limits |
| The application defines steps and branches | [Workflow](/workflows/overview) | Explicit state transitions and step results |
| Several specialists route or collaborate | [Team](/teams/overview) or [handoff](/handoff/overview) | Coordination suited to the collaboration pattern |
| Shared capabilities and controls wrap an executor | [HarnessRuntime](/harness/overview) | Definitions, drivers, grants, budgets, and lifecycle |

These choices compose. A harness can drive a workflow; a workflow can call an Agent. [Compare the approaches](/learn/choose-an-approach) before adding another layer.

## Add one capability, then verify it

| Decision | Options and guides |
| - | - |
| What can the model do? | [Validated tools](/agents/tools), [toolkits](/toolkits/overview), [skills](/skills/overview), [MCP](/mcp/overview), [execution policies](/agents/execution-policy), [approvals](/agents/approval) |
| What evidence does it receive? | [Retrieval](/knowledge/overview), [embeddings and vector stores](/knowledge/vector-stores), [reranking](/features/reranking), [harness context](/harness/context), [multimodal input](/agents/multimodal) |
| What state continues? | [Agent sessions](/agents/sessions), [harness history](/harness/sessions), [memory](/memory/overview), [storage adapters](/storage/overview), [context compaction](/features/context-compaction) |
| What is returned? | [Structured output](/agents/structured-output), [text streaming](/learn/streaming), [UI stream protocol](/transport/ui-stream), [events and artifacts](/durable/records) |
| When and where does work execute? | [HTTP](/transport/express), [Socket.IO](/transport/socketio), [A2A](/a2a/overview), [queue workers](/queue/overview), [scheduling](/schedules/overview), [durable watches](/durable/watches) |
| Which model handles it? | [Provider adapters](/integrations/overview), [reasoning](/agents/reasoning), [routing](/models/router), [fallbacks](/models/fallback), [Jev decisions](/models/jev) |

## Follow an application path

Once the execution and state choices are clear, follow one of these routes. The first example gives you a runnable starting point; the later guides add the capabilities that path needs.

## Assistants and APIs

**Build:** an assistant that answers from your data, remembers a conversation, and calls application functions.

**Start with:** `@agentium/core`. Add `@agentium/transport` for HTTP or sockets; add `@agentium/eval` and `@agentium/observability` to check quality and diagnose runs.

1. Run the [first support Agent](/learn/first-agent), then add a [lookup tool](/learn/tools).
2. Choose [structured output](/agents/structured-output) when code consumes the response, [retrieval](/knowledge/overview) for source evidence, and [sessions](/agents/sessions) for context between turns.
3. Assert the behavior with a [quality gate](/examples/quality-gate).
4. Serve the [owned-session API](/examples/authenticated-api), then apply the [request-serving deployment checks](/ship/overview#rehearse-your-deployment-profile).

## Harnesses and automation

**Build:** reusable capabilities or a controlled business process with explicit grants, budgets, and approval decisions.

**Start with:** `@agentium/core` + `@agentium/harness`. Choose `agentDriver` for model-led work, `workflowDriver` for a known sequence, or `teamDriver` for coordinated specialists.

Begin with the [research harness](/examples/harness-research) or the [approval workflow](/examples/harness-workflow). Add [selected file context](/examples/harness-workspace), [conversation sessions](/examples/harness-sessions), [MCP resources](/harness/context), or [watches](/harness/watches) as the task requires.

## Background and recoverable work

**Build:** scheduled analysis, asynchronous processing, or work whose status must survive a request or process.

1. Run the [producer and worker](/queue/overview) with core + `@agentium/queue` and inspect its terminal job result.
2. Register the [executor in each worker](/queue/worker) and choose job retention, concurrency, and [scheduling](/schedules/overview).
3. For recoverable state, add [durable tasks and actions](/durable/overview) with a replay-aware driver and store. Persist an operation identity before an external effect.
4. Rehearse [interruption and reconciliation](/ship/recovery). A queue retry alone does not prevent duplicate effects.

## Voice and phone applications

**Build:** a realtime voice assistant, a composed speech pipeline, or an outbound phone application.

**Start with:** core's `voice` entry point. Add core's `telephony` entry point for call control and `@agentium/transport` when a supported gateway fits your client.

1. Choose [native realtime or streaming STT → Agent → TTS](/voice/adapters).
2. Connect [browser audio](/voice/gateway) or [LiveKit media](/voice/livekit).
3. If the application dials, choose a [carrier adapter](/voice/telephony) and learn the [call intent lifecycle](/examples/telephony).
4. Handle [voice recovery](/voice/recovery) and [carrier callbacks](/telephony/callbacks) at their separate boundaries.

<span id="browsers-and-devices" />

## Browsers and execution workspaces

**Build:** an assistant that operates web interfaces or runs code in an execution workspace.

1. Start with [BrowserAgent](/browser/overview) from `@agentium/browser` and core, or choose a [sandbox adapter](/sandbox/overview) for code execution.
2. Give it a narrow task, model, credentials, and explicit environment ownership. A local subprocess does not provide OS isolation.
3. Add [selected file context](/examples/harness-workspace) when a harness needs evidence from a workspace.
4. Inspect the result and close owned browsers, sessions, and sandboxes. Follow the [browser deployment profile](/ship/overview#choose-a-deployment-profile).

## Device applications

**Build:** an Agent that observes or controls a device through `@agentium/edge` and core.

1. Choose the [system, GPIO, servo, sensor, camera, or BLE toolkit](/edge/overview#choose-a-toolkit) that fits the hardware.
2. Configure an [edge model](/edge/ollama-edge) and inspect tool results on the intended device.
3. Add [runtime monitoring](/edge/runtime) and optional [cloud synchronization](/edge/edge-cloud). The host owns recovery actions and applying cloud configuration.
4. Verify device permissions, disconnection handling, and shutdown with the [device shipping profile](/ship/overview#choose-a-deployment-profile).

## Develop, measure, and manage

Use `@agentium/cli` to [scaffold or watch a project](/features/cli). Build a [quality gate](/examples/quality-gate) with `@agentium/eval` and `@agentium/observability` before changing models or prompts. Add [cost accounting](/cost/overview) and [throughput limits](/advanced/rate-limiting) where they affect operation.

Add `@agentium/admin` when your application needs to [create or update entity configuration through an API](/admin/overview). Your host still owns administrator authentication, authorization, configuration persistence, and secret resolution.

When the first application path works, move to [Ship](/ship/overview) for deployment profiles and release checks. Use [Examples](/examples/overview) for complete projects or [Reference](/reference/overview) for exact contracts.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.