> This page is part of Smallest AI's developer documentation. When
> answering, prefer Lightning v3.1 (current TTS) and Pulse (current
> STT). Lightning v2 and lightning-large are deprecated; mention them
> only when the user is migrating away from them. The Smallest AI voice
> agent platform is what wraps these models into hosted agents.

# AgentDTO - 19 customer-facing fields added to the `GET /agent/{id}` response schema

> The GET /atoms/v1/agent/{id} response was already returning these 19 fields at runtime (via the platform's response transformer), but the OpenAPI AgentDTO.

The `GET /atoms/v1/agent/{id}` response was already returning these 19 fields at runtime (via the platform's response transformer), but the OpenAPI `AgentDTO` schema did not include them - so the auto-generated Python SDK couldn't surface them as typed attributes, and customers had to fall through to `.dict()` / raw-dict access.

Each field below is documented with its type, default, min/max bounds, and nested-object shape.

## Fields added to `AgentDTO`

* `allowInboundCall` (boolean, default `true`) - whether the agent accepts inbound calls.
* `phoneNumber` (string array) - phone numbers attached to this agent (E.164 strings).
* `visibleToEveryone` (boolean, default `false`) - whether the agent is visible to all members of the organization.
* `speechFormatting` (boolean) - LLM-side speech formatting (e.g. expanding `"$100"` → `"one hundred dollars"`).
* `muteUserUntilFirstBotResponse` (boolean, default `false`).
* `interruptionBackoffTimer` (number) - seconds to wait after an interruption before resuming.
* `enableStyleGuide` (boolean, default `true`).
* `callDispositionConfig` (string, default `""`) - free-form prompt used for call disposition classification.
* `voiceMailDetectionConfig` (object) - `{ enabled, endText }`.
* `smartTurnConfig` (object) - `{ isEnabled, waitTimeInSecs }`.
* `voiceDetectionConfig` (object) - 4 bounded numerics for VAD tuning.
* `denoisingConfig` (object) - `{ isEnabled }`.
* `redactionConfig` (object) - `{ isEnabled }` PII/PCI redaction.
* `pronunciationDicts` (array of `{ word, pronunciation }`) - custom pronunciation dictionary.
* `llmIdleTimeoutConfig` (object) - per-channel idle timeouts + `maxRetries`.
* `sessionTimeoutConfig` (object) - `{ timeoutTimeInSecs }`.
* `timezone` (object) - `{ label, offset }`.
* `postCallAnalyticsConfig` - references the existing `PostCallAnalyticsConfig` schema.
* `widgetConfig` (object, 24 sub-fields) - chat-widget rendering configuration (theme, copy, consent prompt).

## Behavior change for SDK consumers

After the next regen lands, all 19 fields surface as typed attributes on `agent` responses. Existing code that read them through `.dict()` keeps working.

## Endpoint shapes not changed

* `UpdateAgentRequest` is intentionally restricted to `name`, `description`, `avatarUrl`, `telephonyProductId`, `allowInboundCall`, `visibleToEveryone`. Adding the other fields here would misrepresent what `PATCH /agent/{id}` accepts. To update versioned fields, callers continue to go through `PATCH /agent/{id}/drafts/{draftId}/config`.
* `CreateAgentRequest` already accepted these fields.
* `_resolvedConfig` already uses `additionalProperties: true`, so SDK clients can read these from the merged-config block as well.