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

# AI Agent gambit

> Every section of the AI Agent gambit editor, from Instructions to Exit Routes.

export const Browser = ({url, children}) => <div className="tars-browser">
    <div className="tars-browser-bar">
      <span className="tars-browser-dots">
        <i />
        <i />
        <i />
      </span>
      {url ? <span className="tars-browser-url">{url}</span> : null}
    </div>
    <div className="tars-browser-view">{children}</div>
  </div>;

export const urls = {
  app: "https://dashboard.hellotars.com",
  site: "https://hellotars.com",
  support: "mailto:support@hellotars.com",
  status: "https://status.hellotars.com"
};

export const img = {
  activity: {
    activityTimeline: "/docs/guides/activity/images/activity-timeline.png",
    capturedVariablesPanel: "/docs/guides/activity/images/captured-variables-panel.png",
    dataViewCards: "/docs/guides/activity/images/data-view-cards.png",
    exportDataDialog: "/docs/guides/activity/images/export-data-dialog.png",
    tasksPanelExportReady: "/docs/guides/activity/images/tasks-panel-export-ready.png"
  },
  analytics: {
    analyticsOverview: "/docs/guides/analytics/images/analytics-overview.png",
    exploreGallery: "/docs/guides/analytics/images/explore-gallery.png",
    exploreTab: "/docs/guides/analytics/images/explore-tab.png",
    goalForm: "/docs/guides/analytics/images/goal-form.png",
    goalsTab: "/docs/guides/analytics/images/goals-tab.png",
    improveDiagnostics: "/docs/guides/analytics/images/improve-diagnostics.png",
    improveTab: "/docs/guides/analytics/images/improve-tab.png",
    teamTab: "/docs/guides/analytics/images/team-tab.png"
  },
  billing: {
    billingOverview: "/docs/guides/billing/images/billing-overview.png",
    buyConversationsDialog: "/docs/guides/billing/images/buy-conversations-dialog.png",
    buySeatsDialog: "/docs/guides/billing/images/buy-seats-dialog.png",
    livechatSeatsTab: "/docs/guides/billing/images/livechat-seats-tab.png",
    organizationDeletionLifecycle: "/docs/guides/billing/images/organization-deletion-lifecycle.svg",
    organizationSwitcher: "/docs/guides/billing/images/organization-switcher.png",
    rolesAndAccessMatrix: "/docs/guides/billing/images/roles-and-access-matrix.png"
  },
  building: {
    agentBehaviorGuardrails: "/docs/guides/building/images/agent-behavior-guardrails.png",
    agentCardMenu: "/docs/guides/building/images/agent-card-menu.png",
    agentConfigure: "/docs/guides/building/images/agent-configure.png",
    agentExitRoutesDialog: "/docs/guides/building/images/agent-exit-routes-dialog.png",
    agentLibrary: "/docs/guides/building/images/agent-library.png",
    agentModelParameters: "/docs/guides/building/images/agent-model-parameters.png",
    aiAgentGambitLoop: "/docs/guides/building/images/ai-agent-gambit-loop.svg",
    builderBasics: "/docs/guides/building/images/builder-basics.png",
    builderConnectHandlePanel: "/docs/guides/building/images/builder-connect-handle-panel.png",
    builtInToolsDialog: "/docs/guides/building/images/built-in-tools-dialog.png",
    configureDebugTab: "/docs/guides/building/images/configure-debug-tab.png",
    configureLanguage: "/docs/guides/building/images/configure-language.png",
    configureNotifications: "/docs/guides/building/images/configure-notifications.png",
    createAgentDialog: "/docs/guides/building/images/create-agent-dialog.png",
    draftPublishRollbackPinning: "/docs/guides/building/images/draft-publish-rollback-pinning.svg",
    draftSwitcherChip: "/docs/guides/building/images/draft-switcher-chip.png",
    duplicateAgentDialog: "/docs/guides/building/images/duplicate-agent-dialog.png",
    flowConditions: "/docs/guides/building/images/flow-conditions.png",
    gambitPalette: "/docs/guides/building/images/gambit-palette.png",
    gambits: {
      gambitAiAgent: "/docs/guides/building/gambits/images/gambit-ai-agent.png",
      gambitApiCall: "/docs/guides/building/gambits/images/gambit-api-call.png",
      gambitAutoSuggestion: "/docs/guides/building/gambits/images/gambit-auto-suggestion.png",
      gambitButton: "/docs/guides/building/gambits/images/gambit-button.png",
      gambitCard: "/docs/guides/building/gambits/images/gambit-card.png",
      gambitChannel: "/docs/guides/building/gambits/images/gambit-channel.png",
      gambitCustomCode: "/docs/guides/building/gambits/images/gambit-custom-code.png",
      gambitDateTime: "/docs/guides/building/gambits/images/gambit-date-time.png",
      gambitGeoLocation: "/docs/guides/building/gambits/images/gambit-geo-location.png",
      gambitLanguage: "/docs/guides/building/gambits/images/gambit-language.png",
      gambitLiveChat: "/docs/guides/building/gambits/images/gambit-live-chat.png",
      gambitMediaUpload: "/docs/guides/building/gambits/images/gambit-media-upload.png",
      gambitNoInput: "/docs/guides/building/gambits/images/gambit-no-input.png",
      gambitRedirect: "/docs/guides/building/gambits/images/gambit-redirect.png",
      gambitStarRating: "/docs/guides/building/gambits/images/gambit-star-rating.png",
      gambitStartAndEnd: "/docs/guides/building/gambits/images/gambit-start-and-end.png",
      gambitText: "/docs/guides/building/gambits/images/gambit-text.png",
      gambitTrigger: "/docs/guides/building/gambits/images/gambit-trigger.png"
    },
    languagesTranslateGambit: "/docs/guides/building/images/languages-translate-gambit.png",
    languageSystemMessages: "/docs/guides/building/images/language-system-messages.png",
    newDraftDialog: "/docs/guides/building/images/new-draft-dialog.png",
    outputComponentsGrid: "/docs/guides/building/images/output-components-grid.png",
    publishDialog: "/docs/guides/building/images/publish-dialog.png",
    systemPromptDialog: "/docs/guides/building/images/system-prompt-dialog.png",
    testModeEventLog: "/docs/guides/building/images/test-mode-event-log.png",
    testModePanel: "/docs/guides/building/images/test-mode-panel.png",
    validationProblemsPanel: "/docs/guides/building/images/validation-problems-panel.png",
    variablePickerPanel: "/docs/guides/building/images/variable-picker-panel.png",
    variablePillInserted: "/docs/guides/building/images/variable-pill-inserted.png",
    versionsDraftsPanel: "/docs/guides/building/images/versions-drafts-panel.png"
  },
  campaigns: {
    campaignFlavorsTriggers: "/docs/guides/campaigns/images/campaign-flavors-triggers.svg",
    campaignReplyRouting: "/docs/guides/campaigns/images/campaign-reply-routing.svg",
    campaignSendAnatomy: "/docs/guides/campaigns/images/campaign-send-anatomy.svg",
    createACampaign: "/docs/guides/campaigns/images/create-a-campaign.png",
    walletReserveSettleRefund: "/docs/guides/campaigns/images/wallet-reserve-settle-refund.svg",
    webhookCampaignContractLocking: "/docs/guides/campaigns/images/webhook-campaign-contract-locking.svg",
    webhookCampaignLifecycleStates: "/docs/guides/campaigns/images/webhook-campaign-lifecycle-states.svg",
    webhookCampaignOneCallOneDelivery: "/docs/guides/campaigns/images/webhook-campaign-one-call-one-delivery.svg"
  },
  channels: {
    distributeWhatsappConnect: "/docs/guides/channels/images/distribute-whatsapp-connect.png",
    whatsappConnectDialogWaiting: "/docs/guides/channels/images/whatsapp-connect-dialog-waiting.png",
    whatsappEmptyState: "/docs/guides/channels/images/whatsapp-empty-state.png"
  },
  deploy: {
    bridgeEventGambitSection: "/docs/guides/deploy/images/bridge-event-gambit-section.png",
    deploymentSurfacesAndChannels: "/docs/guides/deploy/images/deployment-surfaces-and-channels.svg",
    designAgentTab: "/docs/guides/deploy/images/design-agent-tab.png",
    designLauncherTab: "/docs/guides/deploy/images/design-launcher-tab.png",
    embedIframeTab: "/docs/guides/deploy/images/embed-iframe-tab.png",
    embedTheWidget: "/docs/guides/deploy/images/embed-the-widget.png",
    mobileAppIntegration: "/docs/guides/deploy/images/mobile-app-integration.png",
    onYourDomain: "/docs/guides/deploy/images/on-your-domain.png",
    shareYourAgentLink: "/docs/guides/deploy/images/share-your-agent-link.png"
  },
  developer: {
    api: {
      channelSendTemplateVsMessage: "/docs/developer/api/images/channel-send-template-vs-message.svg",
      endUsers: {
        endUsersListCursorPagination: "/docs/developer/api/end-users/images/end-users-list-cursor-pagination.svg"
      },
      triggerCallConversationLifecycle: "/docs/developer/api/images/trigger-call-conversation-lifecycle.svg"
    },
    developerSurfacesMap: "/docs/developer/images/developer-surfaces-map.svg",
    embed: {
      embedConfigToWidgetContext: "/docs/developer/embed/images/embed-config-to-widget-context.svg",
      hostPageBridgeFlow: "/docs/developer/embed/images/host-page-bridge-flow.svg",
      identitySigningFlow: "/docs/developer/embed/images/identity-signing-flow.svg",
      scriptVsIframeEmbed: "/docs/developer/embed/images/script-vs-iframe-embed.svg"
    },
    mobile: {
      bridgeMessageProtocol: "/docs/developer/mobile/images/bridge-message-protocol.svg",
      webviewBridgeArchitecture: "/docs/developer/mobile/images/webview-bridge-architecture.svg"
    }
  },
  endUsers: {
    anonymousToIdentifiedProfile: "/docs/guides/end-users/images/anonymous-to-identified-profile.svg",
    bulkActionBar: "/docs/guides/end-users/images/bulk-action-bar.png",
    campaignConsentGate: "/docs/guides/end-users/images/campaign-consent-gate.svg",
    consentPerChannelStates: "/docs/guides/end-users/images/consent-per-channel-states.svg",
    dynamicVsStaticSegments: "/docs/guides/end-users/images/dynamic-vs-static-segments.svg",
    endUserDirectory: "/docs/guides/end-users/images/end-user-directory.png",
    endUserProfileAcrossChannels: "/docs/guides/end-users/images/end-user-profile-across-channels.svg",
    endUserProfilePanes: "/docs/guides/end-users/images/end-user-profile-panes.png",
    profileMergeAndTakeoverProtection: "/docs/guides/end-users/images/profile-merge-and-takeover-protection.svg",
    segmentBuilder: "/docs/guides/end-users/images/segment-builder.png",
    segmentsPage: "/docs/guides/end-users/images/segments-page.png"
  },
  getStarted: {
    agentStates: "/docs/get-started/images/agent-states.svg",
    buildToLivePath: "/docs/get-started/images/build-to-live-path.svg",
    dashboardSidebarMap: "/docs/get-started/images/dashboard-sidebar-map.png",
    organizationOwnershipAndRoles: "/docs/get-started/images/organization-ownership-and-roles.svg",
    quickstart: {
      step1CreateYourAccount: "/docs/get-started/images/quickstart/step-1-create-your-account.png",
      step3ConnectTheAiAgent: "/docs/get-started/images/quickstart/step-3-connect-the-ai-agent.png",
      step4TestMode: "/docs/get-started/images/quickstart/step-4-test-mode.png"
    },
    quickstartCanvas: "/docs/get-started/images/quickstart-canvas.png"
  },
  knowledge: {
    addASource: "/docs/guides/knowledge/images/add-a-source.png",
    addRetrieverPicker: "/docs/guides/knowledge/images/add-retriever-picker.png",
    attachKnowledgeGambit: "/docs/guides/knowledge/images/attach-knowledge-gambit.png",
    configureARetriever: "/docs/guides/knowledge/images/configure-a-retriever.png",
    createKnowledgeBaseDialog: "/docs/guides/knowledge/images/create-knowledge-base-dialog.png",
    customRetrieverDialog: "/docs/guides/knowledge/images/custom-retriever-dialog.png",
    datasetTab: "/docs/guides/knowledge/images/dataset-tab.png",
    documentChangeReindexLifecycle: "/docs/guides/knowledge/images/document-change-reindex-lifecycle.svg",
    documentsTabPreview: "/docs/guides/knowledge/images/documents-tab-preview.png",
    importAWebsite: "/docs/guides/knowledge/images/import-a-website.png",
    kbList: "/docs/guides/knowledge/images/kb-list.png",
    retrieverIndexStates: "/docs/guides/knowledge/images/retriever-index-states.svg",
    retrieverQueryPipeline: "/docs/guides/knowledge/images/retriever-query-pipeline.svg",
    standardVsParentChildChunking: "/docs/guides/knowledge/images/standard-vs-parent-child-chunking.svg",
    syncManagement: "/docs/guides/knowledge/images/sync-management.png",
    testRetriever: "/docs/guides/knowledge/images/test-retriever.png"
  },
  liveChat: {
    agentWorkspace: "/docs/guides/live-chat/images/agent-workspace.png",
    assignedAgentPicker: "/docs/guides/live-chat/images/assigned-agent-picker.png",
    automaticAssignmentRouting: "/docs/guides/live-chat/images/automatic-assignment-routing.svg",
    availabilityDropdown: "/docs/guides/live-chat/images/availability-dropdown.png",
    cannedResponses: "/docs/guides/live-chat/images/canned-responses.png",
    composerPreferences: "/docs/guides/live-chat/images/composer-preferences.png",
    copilotPanel: "/docs/guides/live-chat/images/copilot-panel.png",
    filterConversationsDialog: "/docs/guides/live-chat/images/filter-conversations-dialog.png",
    inboxAnalyticsTab: "/docs/guides/live-chat/images/inbox-analytics-tab.png",
    inboxAvailabilityTab: "/docs/guides/live-chat/images/inbox-availability-tab.png",
    inboxesSettings: "/docs/guides/live-chat/images/inboxes-settings.png",
    inboxRoutingTab: "/docs/guides/live-chat/images/inbox-routing-tab.png",
    labelsSettings: "/docs/guides/live-chat/images/labels-settings.png",
    newAttributeDialog: "/docs/guides/live-chat/images/new-attribute-dialog.png",
    newCannedResponseDialog: "/docs/guides/live-chat/images/new-canned-response-dialog.png",
    notificationPreferences: "/docs/guides/live-chat/images/notification-preferences.png",
    notificationsPage: "/docs/guides/live-chat/images/notifications-page.png",
    pickupTargetCard: "/docs/guides/live-chat/images/pickup-target-card.png",
    resolveMenu: "/docs/guides/live-chat/images/resolve-menu.png",
    searchDialog: "/docs/guides/live-chat/images/search-dialog.png",
    seatGateConversation: "/docs/guides/live-chat/images/seat-gate-conversation.png",
    seatsSettings: "/docs/guides/live-chat/images/seats-settings.png",
    workTheInbox: "/docs/guides/live-chat/images/work-the-inbox.png"
  },
  security: {
    addOpenRouterKeyDialog: "/docs/guides/security/images/add-open-router-key-dialog.png",
    auditChainVerified: "/docs/guides/security/images/audit-chain-verified.png",
    auditEventDrawer: "/docs/guides/security/images/audit-event-drawer.png",
    auditExportDialog: "/docs/guides/security/images/audit-export-dialog.png",
    auditLogViewer: "/docs/guides/security/images/audit-log-viewer.png",
    auditRecordLifecycle: "/docs/guides/security/images/audit-record-lifecycle.svg",
    logPrivacyRedactionEnabled: "/docs/guides/security/images/log-privacy-redaction-enabled.png",
    modelProviderEmptyState: "/docs/guides/security/images/model-provider-empty-state.png",
    privacySettings: "/docs/guides/security/images/privacy-settings.png",
    siemConnectWizard: "/docs/guides/security/images/siem-connect-wizard.png",
    supportActorMasking: "/docs/guides/security/images/support-actor-masking.svg"
  },
  tools: {
    addToolModal: "/docs/guides/tools/images/add-tool-modal.png",
    addToolsPanel: "/docs/guides/tools/images/add-tools-panel.png",
    codekitActionEditor: "/docs/guides/tools/images/codekit-action-editor.png",
    codekitConnectToolkitsDialog: "/docs/guides/tools/images/codekit-connect-toolkits-dialog.png",
    codekitSchemaDialog: "/docs/guides/tools/images/codekit-schema-dialog.png",
    codekitToolkit: "/docs/guides/tools/images/codekit-toolkit.png",
    codekitToolkitAnatomy: "/docs/guides/tools/images/codekit-toolkit-anatomy.svg",
    createActionDialog: "/docs/guides/tools/images/create-action-dialog.png",
    createCodekitDialog: "/docs/guides/tools/images/create-codekit-dialog.png",
    responseFilteringDialog: "/docs/guides/tools/images/response-filtering-dialog.png",
    toolGambitEditorAgentMode: "/docs/guides/tools/images/tool-gambit-editor-agent-mode.png",
    toolGambitEditorWorkflowMode: "/docs/guides/tools/images/tool-gambit-editor-workflow-mode.png",
    toolkitDetail: "/docs/guides/tools/images/toolkit-detail.png",
    toolsConnected: "/docs/guides/tools/images/tools-connected.png",
    toolsDirectory: "/docs/guides/tools/images/tools-directory.png",
    viewActionsModal: "/docs/guides/tools/images/view-actions-modal.png",
    workflowModeResponse: "/docs/guides/tools/images/workflow-mode-response.png"
  }
};

An AI Agent gambit hands each turn of the conversation to a model. The model reasons about the message, calls tools when it needs them, and returns control to the flow when the conversation is done.

## How an AI Agent gambit runs

When the conversation reaches an AI Agent gambit, the gambit takes over the turn. It reasons about the end user's message, calls tools when needed, and composes the reply. It repeats this loop, turn after turn, until an exit route matches, then hands the conversation to that branch.

<Frame>
  <img src={img.building.aiAgentGambitLoop} alt="The reasoning and tool-use loop that repeats each turn until an exit route matches and hands the conversation to a flow branch" />
</Frame>

## The gambit editor

Every page in this section shows the same demo flow: **Start**, a **Welcome** message, the gambit this page covers, then **End**. The gambit sits third, selected, with its editor open on the right. The rest of the screen is dimmed.

The gambit carries one handle per exit route, and a **Loop** badge that marks it as the step that holds the turn.

<Browser url={urls.app}>
  <img src={img.building.gambits.gambitAiAgent} alt="An AI Agent gambit selected in the builder with its Resolved and Needs a human exit handles, and the editor open on Messages, Instructions, and Model" />
</Browser>

The **Label** and **Variable** fields at the top behave as they do on [every gambit editor](/docs/guides/building/gambits/overview#what-every-gambit-editor-shares). Below that row sit the sections this page walks through: **Messages**, **Instructions**, **Model**, **Tools & Capabilities**, **Exit Routes**, **Behavior**, and **Guardrails**.

## Messages

The **Messages** accordion holds the gambit's welcome messages. These bubbles fire once when the gambit activates, before the agent takes over the conversation. Use them to greet the end user or to introduce the AI agent.

If you leave the bubbles empty, the **Auto-Greet** switch in [Behavior](#behavior) can open the conversation instead, with a greeting based on conversation context.

## Instructions

The **Instructions** region shows a preview of the current prompt. Select **Edit** to open the **System Prompt** dialog, where you write the prompt in one of two tabs.

<Frame>
  <img src={img.building.systemPromptDialog} alt="The System Prompt dialog on the Structured tab, with the Persona, Instructions, Constraints, and Response Format fields" />
</Frame>

The **Structured** tab splits the prompt into four fields:

| Field               | What it holds                  |
| ------------------- | ------------------------------ |
| **Persona**         | Who the agent is and its voice |
| **Instructions**    | What it should do              |
| **Constraints**     | Hard rules it must not break   |
| **Response Format** | How replies should look        |

The **Raw** tab shows the same prompt as one free-form **Base prompt**. Type @ in either tab to insert a captured [variable](/docs/guides/building/variables). The **History** rail beside the raw editor keeps your recent saved prompts, and **Use** restores one.

**Generate with AI** drafts a prompt for you from a short description. **Save Prompt** applies your changes and closes the dialog.

## Model

The **Model** region picks which model powers the agent. The picker has a **Search models…** field. Selecting a model your plan does not include opens an upgrade prompt instead.

Select the gear icon next to the picker to open the **Model parameters** popover. It groups the parameters under **Generation**, **Reasoning**, and **Sampling**.

<Frame>
  <img src={img.building.agentModelParameters} alt="The Model parameters popover open above the Model picker set to Claude Sonnet 5, with Temperature and Max output tokens, Effort set to Off, a disabled Max reasoning tokens field, and Seed, and an info tooltip explaining that the model does not support temperature" />
</Frame>

| Parameter                | What it controls                                                                                                                                             |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Temperature**          | Randomness in replies, from 0 to 2, with 0.7 by default. Lower is more focused, higher is more varied.                                                       |
| **Max output tokens**    | The longest reply the model can generate. Leave empty for the model's own limit. On a model that reasons, the limit covers reasoning and the reply together. |
| **Effort**               | How much the model reasons before answering. It is **Off** by default, so the model reasons only when you pick a level.                                      |
| **Max reasoning tokens** | A ceiling on reasoning, for models that take a token budget. The minimum is 1024. It is available only when **Effort** is not **Off**.                       |
| **Seed**                 | A fixed sampling seed, so the same prompt returns the same output. Leave it empty for random output.                                                         |

A parameter that the selected model does not support stays in the popover but is disabled. Its info icon says why. A model that requires reasoning does not offer **Off**, so switching to it picks its lowest effort level.

## Tools and capabilities

The **Tools & Capabilities** region lists what the agent can call, as badges. Select **Configure** to open the **Built-in Tools & Capabilities** dialog.

<Frame>
  <img src={img.building.builtInToolsDialog} alt="The Built-in Tools & Capabilities dialog with the Input components section and the Built-in Tools cards: Web Search, Code Interpreter, Data Extraction, File Generator, and File Reading" />
</Frame>

The dialog has three sections, each with selectable cards. A search field at the top filters all of them.

* **Output components (render\_ui)** lets the agent render visual elements beside its reply, such as charts, tables, and cards. A switch turns the capability on, and the cards choose which components the agent may use.
* **Input components (request\_user\_input)** lets the agent show an interactive input and wait for the end user, such as forms, pickers, and file upload. It works the same way, with a switch plus component cards.
* **Built-in Tools** holds **Web Search**, **Code Interpreter**, **Data Extraction**, **File Generator**, and **File Reading**.

The book icon on a component opens its documentation panel. What each capability does at run time is covered in [Built-in AI capabilities](/docs/guides/building/built-in-ai-capabilities).

Tool gambits connected to the agent also appear as badges in this region, each with a dot that shows its toolkit connection status.

A **Knowledge Retrieval** gambit attaches to the agent the same way a tool gambit does. Its purpose is to search knowledge bases and return results to the agent, so the agent answers from your own source material. One gambit can cover several knowledge bases. See [Attach knowledge to an agent](/docs/guides/knowledge/attach-knowledge-to-an-agent).

## Exit routes

Exit routes are how the agent hands control back to the flow. The agent reads each route's name and description from its system prompt, then decides when to exit based on conversation context. The **Exit Routes** region shows the routes as badges, with the first one marked **(default)**.

Select **Configure** to open the **Exit Routes** dialog.

<Frame>
  <img src={img.building.agentExitRoutesDialog} alt="The Exit Routes dialog with a Default route card holding the exit name, the Jump to dropdown, the description field, and the Add Exit Route button" />
</Frame>

Each route card holds three inputs:

* An exit name, such as **Escalate**.
* A target gambit dropdown, which picks where the conversation goes next.
* A description of when the agent should take this exit. Write it clearly, because it steers the agent's decision.

**Add Exit Route** adds another card. The first route carries a **Default** badge and is used when the conversation completes naturally. With no routes at all, **Add default (Complete)** seeds one, and until then the agent keeps the conversation and is never offered a transfer.

You wire each route's edge in the builder like any other branch. See [Flow control and branching](/docs/guides/building/flow-control-and-branching).

## Behavior

The **Behavior** section collapses below the main regions and holds two settings.

<Frame>
  <img src={img.building.agentBehaviorGuardrails} alt="The lower gambit editor with the Behavior section holding the Auto-Greet switch and the Max Steps per Turn field, above the Guardrails section" />
</Frame>

* **Auto-Greet** makes the agent open the conversation itself when no welcome bubbles are configured, based on conversation context.
* **Max Steps per Turn** caps how many tool calls the agent can chain within one turn. The default is 10 and the maximum is 50. A higher cap allows more tool use but takes longer.

## Guardrails

The **Guardrails** section takes **Custom Guardrails**, one rule per line. The rules are injected into the agent's system prompt as soft constraints, on top of the platform's own safety rules. See [Guardrails and safety](/docs/guides/building/guardrails-and-safety) for the full safety model.

## Data Extraction

When the **Data Extraction** tool is enabled, a **Data Extraction** section appears below Guardrails. Its **Extraction Schema** defines the fields the agent pulls out of the conversation.

Each field row takes a field name, a type, and a description. A **Required** switch marks the field as mandatory, and an optional flow variable name saves the extracted value for later gambits.

## Related pages

* [Gambit mastery](/docs/guides/building/gambits/overview)
* [Built-in AI capabilities](/docs/guides/building/built-in-ai-capabilities)
* [Flow control and branching](/docs/guides/building/flow-control-and-branching)
* [Guardrails and safety](/docs/guides/building/guardrails-and-safety)
* [Use variables](/docs/guides/building/variables)
