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

# Instrucciones

> Reglas configurables que se compilan en el system prompt — con acciones interactivas (HITL)

Las **instrucciones** son reglas configurables que modifican el comportamiento del agente. Se compilan automaticamente en el system prompt y pueden incluir **acciones interactivas** (Human-in-the-Loop) que se renderizan inline en la conversacion.

<Note>
  Las instrucciones son **propias de cada agente**, no compartidas a nivel tenant. Si tenes varios agentes, cada uno define su propio comportamiento y triggers. Al [eliminar un agente](/platform/agent-setup) sus instrucciones se borran en cascada.
</Note>

## Como llegar

`thaliq.com/agents/:agentId/instructions` (tab Instructions del agente).

## Crear una instruccion

1. Ir a **Agente > Instructions**
2. Click en **Crear instruccion**
3. Configurar los campos

### Campos basicos

| Campo               | Descripcion                                                  |
| ------------------- | ------------------------------------------------------------ |
| **Nombre**          | Nombre descriptivo (ej: "Saludo inicial")                    |
| **Contenido**       | El texto que se inyecta en el prompt compilado               |
| **Trigger**         | Cuando se aplica la instruccion                              |
| **Prioridad**       | Orden de aplicacion (drag & drop en la lista)                |
| **Tools asociadas** | Tools que activan esta instruccion (para acciones HITL)      |
| **Accion**          | Accion interactiva opcional (consent, confirm, select, form) |

## Triggers

| Trigger              | Cuando se aplica                  | Ejemplo                                               |
| -------------------- | --------------------------------- | ----------------------------------------------------- |
| `ALWAYS`             | En cada conversacion              | "Siempre responde en espanol"                         |
| `CONVERSATION_START` | Solo al inicio                    | "Saluda y pregunta como ayudar"                       |
| `INTENT`             | Cuando detecta un tema especifico | "Si pregunta por precios, muestra la tabla de planes" |
| `FALLBACK`           | Cuando no sabe que hacer          | "Si no podes ayudar, sugeri contactar soporte"        |

Para `INTENT`, configura la **condicion del trigger** con una descripcion del tema:

```
Condicion: "El usuario pregunta sobre precios, planes o costos"
```

## Acciones interactivas (HITL)

Podes asociar una **accion** a una instruccion para que el agente pida interaccion del usuario antes de ejecutar una tool.

| Tipo        | Descripcion                                                         |
| ----------- | ------------------------------------------------------------------- |
| **Consent** | Checkbox + Aceptar/Rechazar                                         |
| **Confirm** | Pregunta Si/No                                                      |
| **Select**  | Elegir entre opciones                                               |
| **Form**    | Formulario con campos (text, email, number, date, textarea, select) |

### Renderizado inline

Las acciones aparecen **dentro del mismo mensaje del asistente** (como un `MessagePart`), no como un mensaje separado. Asi el usuario ve un solo bloque con texto + accion + tool calls + texto post-resolucion, en orden cronologico:

```
Assistant message (un solo mensaje con parts):
- text: "Dejame verificar..."
- action: { status: 'accepted', message: 'Autorizar?' }
- tool_call: get_accounts (success)
- text: "Aqui tienes el detalle..."
```

Cuando el usuario responde, la accion se resuelve inline (`pending` -> `accepted` / `rejected`) y el agente continua el turno en el mismo mensaje.

### Comportamiento al rechazar

Cada accion tiene un parametro `onReject`:

| `onReject` | Efecto                                                                     |
| ---------- | -------------------------------------------------------------------------- |
| `stop`     | Pausa la conversacion y la pasa al [Inbox](/platform/inbox) para humano    |
| `continue` | Continua sin ejecutar la tool, el agente responde con un texto alternativo |

## Ejemplo: confirmar antes de agendar

1. Crear instruccion con trigger `INTENT`
2. Condicion: "El usuario quiere agendar una cita"
3. Asociar la tool `agendar_cita`
4. Accion: **Confirm** con mensaje "Confirmas que queres agendar la cita para manana 10am?"
5. `onReject: continue`

Flujo resultante:

```
Usuario:  Quiero una cita para manana
Agente:   Dejame verificar disponibilidad...
          [Confirm card inline]
          [tool: agendar_cita -> ok]
          Tu cita esta agendada para manana a las 10am
Usuario:  Click "Si" en la card -> "accepted"
```

Todo eso queda como **un solo mensaje** del asistente con multiples `parts` ordenados.

## Prioridad y orden

Las instrucciones se aplican en orden de prioridad. Drag & drop en la lista para reordenar. Las de mayor prioridad aparecen primero en el prompt compilado del agente.

## Limites por plan

| Plan       | Instrucciones max |  Tipos de accion  |
| ---------- | :---------------: | :---------------: |
| Free       |         3         |    Solo consent   |
| Starter    |         5         | Consent + confirm |
| Growth     |         15        |       Todos       |
| Scale      |         30        |       Todos       |
| Enterprise |     Ilimitadas    |       Todos       |

## Que sigue

<CardGroup cols={2}>
  <Card title="Acciones interactivas (widget)" icon="hand-pointer" href="/widget/interactive-actions">
    Como se ven las HITL del lado del usuario final.
  </Card>

  <Card title="HITL en el SDK" icon="code" href="/sdk/hitl">
    Manejar acciones con tu propia UI.
  </Card>

  <Card title="Inbox" icon="inbox" href="/platform/inbox">
    Que pasa cuando una accion se rechaza con `stop`.
  </Card>

  <Card title="Workflows" icon="git-branch" href="/platform/workflows">
    Para flujos multi-step con formulario completo.
  </Card>
</CardGroup>
