---
title: Crea tu propio agente
description: >-
  Construye un agente desde cero. Nómbralo, escribe la instrucción, elige un
  horario o un evento, define dónde reporta y qué puede tocar.
sidebar:
  icon: plus
---
Cuando ninguna entrada del catálogo coincide con la tarea que tienes en mente, construye la tuya. Toma unos dos minutos, y el formulario te guía por las mismas cuatro secciones que usa un agente del catálogo.

Presiona **Create agent** arriba a la derecha de la pantalla **Agents**.

![El diálogo de nuevo agente, vacío, mostrando la identidad y el horario](/images/agents/new.webp)

## Identidad

![El diálogo de nuevo agente completado, con un nombre, una descripción y una instrucción](/images/agents/new-filled.webp)

**Name** es lo que la gente verá en el reporte. Ponle nombre de persona si eso ayuda: "Nina dice que hay tres tareas atrasadas" se lee mejor que "overdue-watch-2 dice que hay tres tareas atrasadas".

**Slug** se completa solo a partir del nombre y es lo que usan las ejecuciones y los reportes para referirse al agente. Puedes editarlo mientras creas el agente. Una vez que el agente existe, queda bloqueado.

**Description** es la línea que aparece en la lista. Escríbela pensando en quien abra la pantalla Agents dentro de tres meses y se pregunte qué hace esto.

**Avatar** es un selector de caras ya hechas, o una imagen que subas tú.

**Instruction** es la parte importante, y vale la pena tomarse el tiempo para escribirla bien.

### Cómo escribir una buena instrucción

La instrucción está en lenguaje simple, y es toda la descripción del trabajo del agente. Dos reglas cubren la mayor parte: di qué hay que mirar, y di cómo debe verse el resultado.

Una instrucción débil:

```txt
Check the overdue tasks.
```

Una buena:

```txt
Every weekday at 17:00, list the tasks past their due date and name the
person responsible for each one. Group them by project, put the oldest
first, and skip anything already marked as done. If nothing is overdue,
say so in one line instead of sending an empty list.
```

La segunda le dice al agente qué mirar, cómo ordenarlo, qué dejar afuera, y qué hacer cuando no hay nada que reportar. Esa última parte importa más de lo que parece: un agente que envía un reporte vacío todos los días es un agente que la gente aprende a ignorar.

## Cuándo se ejecuta

Dos tipos de disparador, y la elección cambia el resto de la sección.

**On a schedule**

Elige los días de la semana y una hora, luego confirma la zona horaria. Por defecto toma la zona horaria de tu navegador, que casi siempre es lo que quieres. La línea de al lado te dice cuántas ejecuciones por semana suma eso, así puedes ver el costo de un horario amplio antes de comprometerte con él.

**On an event**

El agente reacciona a algo que pasa en el espacio de trabajo en lugar de esperar un reloj. Elige el evento, luego acótalo.

Los eventos disponibles son tarea creada, tarea actualizada, tarea asignada, cambio de estado de tarea, y proyecto creado.

![El diálogo de nuevo agente con un disparador de evento, su filtro de estado y sus límites de tasa](/images/agents/new-event.webp)

**Task status changed** lleva un filtro adicional: **Status names**. Escribe los estados que te interesan, separados por comas, o presiona las sugerencias debajo, que son los estados que realmente se usan en tu organización. Los nombres se comparan sin distinguir mayúsculas de minúsculas. Si lo dejas vacío, el agente reacciona ante cualquier cambio de estado, que rara vez es lo que quieres.

Dos campos evitan que un agente de evento se descontrole:

**Debounce** es cuánto espera el agente antes de reaccionar, en segundos. Por defecto es 300, o sea cinco minutos. Alguien que arrastra una tarea por tres columnas seguidas produce una ejecución, no tres.

**Max runs per hour** es un tope duro. Por defecto es 20. Un lunes por la mañana muy ocupado no puede convertirse en cien ejecuciones.

## Dónde reporta

Las mismas cuatro opciones que un agente del catálogo:

- **Inbox** pone el reporte en la bandeja de entrada del espacio de trabajo. No hay nada que configurar.
- **Slack** y **Discord** piden un canal, y solo listan canales de una integración que ya esté conectada. Si no lo está, el campo te lo indica y te dirige a Integrations.
- **Email** envía a los miembros que elijas. Si lo dejas vacío, va al miembro con el que se ejecuta el agente.

## Qué puede tocar

Un agente nuevo empieza en modo de solo lectura, sobre todos los recursos. El interruptor **Let this agent change data** es lo que desbloquea la columna Write, y **Full access** otorga escritura sobre todo a la vez. Dashboard y Knowledge base se mantienen en solo lectura de todas formas.

Otorga el conjunto más acotado que le permita al agente hacer su trabajo. Un agente que reporta tareas atrasadas necesita Tasks y Projects en modo lectura. No tiene razón alguna para leer los datos de tus clientes.

## Creándolo

El botón **Create agent** se activa una vez que el formulario tiene lo necesario: un nombre, un slug, una instrucción de al menos unas pocas palabras, un disparador con días y una hora si es programado, y un canal si reporta a Slack o Discord.

El agente empieza habilitado y se ejecuta en su próximo disparador. Si prefieres verlo funcionar antes de esperar el horario, abre **Runs** y presiona **Run now**.

:::tip
Construye la primera versión en modo de solo lectura, con el reporte yendo a tu bandeja de entrada. Lee unas cuantas ejecuciones, afina la instrucción, y solo entonces apúntalo a un canal de equipo. A nadie le gusta ser la audiencia de un agente que todavía está encontrando su voz.
:::

## A dónde ir después

<CardGroup cols={2}>
  <Card title="Runs" href="/agents/runs" icon="history">
    Observa la primera ejecución, y lee lo que produjo.
  </Card>
  <Card title="Add one from the catalogue" href="/agents/catalogue" icon="package">
    Agentes ya hechos, que vale la pena leer aunque construyas el tuyo propio.
  </Card>
</CardGroup>
