# Crear un agente
Diga qué debe hacer el agente y cuándo. La IA del [Studio](/docs/es/projects/studio) de su proyecto convierte sus palabras en pasos y código y guarda un **borrador**. Un borrador nunca se ejecuta solo, así que puede probarlo y cambiarlo con libertad.
## Antes de empezar [#antes-de-empezar]
- Un proyecto que pueda editar. El agente usa el acceso a datos de ese proyecto.
- Datos al alcance del proyecto: una tabla en [Nexus](/docs/es/data/tables), una carpeta en el [Almacenamiento de objetos](/docs/es/data/object-storage) o una dirección web.
- Construir no requiere un administrador. Activarlo sí (consulte [Probar, activar y pausar](/docs/es/agents/go-live)).
## Describa un agente nuevo [#describa-un-agente-nuevo]
### Abra Agentes [#abra-agentes]
Vaya a y seleccione **Nuevo agente**. También puede abrir un proyecto y usar su pestaña **Agentes**.
### Elija el proyecto [#elija-el-proyecto]
Elija el **Proyecto**. Sus datos y su acceso vienen de allí.
### Diga qué debe hacer y cuándo [#diga-qué-debe-hacer-y-cuándo]
En **¿Qué debería hacer y cuándo?**, nombre los datos, qué hacer con cada elemento, dónde guardar el resultado y cuándo iniciarse. Por ejemplo:
> Todas las mañanas a las 7, lea las filas de ayer en sales.orders, haga que la IA marque cualquier pedido que parezca inusual con una razón de una línea, pregúnteme y luego guarde las marcas en sales.order_flags.
Seleccione **Pedir a la IA**.
### Deje que la IA construya el borrador [#deje-que-la-ia-construya-el-borrador]
La IA del Studio escribe los pasos y el código y guarda un borrador. Si el Studio no está en ejecución, la aplicación dice **En cola hasta que se abra el Studio**.
### Revise el borrador [#revise-el-borrador]
Abra el agente para ver sus pasos como un flujo y lo que lo inicia. Haga clic en un paso para ver su instrucción, consulta, tabla, reintentos y límite de tiempo.
Un agente es un archivo YAML en `agents/.yaml` dentro del proyecto, con su código Python en `agents//`. Esta es la plantilla **Resumen diario de una tabla**, tal como viene:
```yaml title="agents/daily-summary.yaml"
description: Summarise a table every morning
trigger:
schedule: {at: "08:00"}
inputs:
table: {type: string, default: my_table, description: The table to summarise}
steps:
- {id: rows, kind: code, run: read_rows.py}
- id: summary
kind: ai
needs: [rows]
prompt: Summarise these rows for a busy manager in five short bullet points. Point out anything unusual.
result: summary
```
```python title="agents/daily-summary/read_rows.py"
from klarety import Nexus, step
table = step.inputs()["table"]
if not table.replace("_", "").replace(".", "").isalnum():
raise ValueError(f"{table} is not a table name")
with Nexus.connect() as lakehouse:
rows = lakehouse.sql(f"select * from {table} limit 200").rows
step.output([dict(row) for row in rows])
```
El `kind` de un paso es uno de `code`, `ai`, `think` (investiga en la web), `sql`, `write_table`, `approval` o `agent`. `needs` lista los pasos que espera, `for_each` lo ejecuta una vez por cada elemento que hizo un paso anterior, y `result` nombra el paso cuya salida es el resultado de la ejecución.
Revise el archivo y luego guárdelo como borrador desde la carpeta del proyecto. La [CLI](/docs/es/developers/cli) y la [referencia de agentes del SDK](/docs/es/developers/agents) cubren cada opción.
Fuera de un Studio, inicie sesión una vez con `klarety login ` o defina `KLARETY_API_KEY`. Consulte [Autenticación](/docs/es/developers/authentication).
```bash
klarety agent check daily-summary --project PROJECT_ID
klarety agent save daily-summary --project PROJECT_ID
```
```python
from klarety import Nexus
nx = Nexus.connect()
print(nx.agents.check("PROJECT_ID", open("agents/daily-summary.yaml").read()))
version_id = nx.agents.save("PROJECT_ID", "daily-summary")
print(version_id)
```
Dentro de un Studio puede omitir `--project`: la CLI usa el proyecto del Studio. Para que la IA del Studio construya el agente a partir de sus palabras, envíe una solicitud:
```python
nx.agents.ask_ai("PROJECT_ID", "Every hour, copy https://api.example.com/items into a table")
```
## Cambiar un agente [#cambiar-un-agente]
Abra el agente, describa el cambio en **¿Qué debería cambiar?** y seleccione **Pedir este cambio a la IA**. Para cambiar una opción usted mismo, seleccione **Editar**, haga clic en el paso, cámbielo y seleccione **Guardar borrador**.
En un agente activo, los cambios quedan como borrador (**Activo, con cambios en borrador**) hasta que se active de nuevo; la versión activa sigue funcionando.
Edite el YAML o el código y ejecute de nuevo `klarety agent save `. Cada guardado es una nueva versión en borrador; la versión activa no cambia hasta que una persona active la nueva.
Si el Studio está detenido, su solicitud se conserva y la IA empieza cuando el Studio se abra de nuevo.
## Qué ve cuando funcionó [#qué-ve-cuando-funcionó]
El agente aparece en **Aún sin publicar**, marcado como **Borrador**, con **Inicia al activarse** en los inicios automáticos. Después, **Probar** ejecuta el borrador una vez, ahora.
## Escriba una buena descripción [#escriba-una-buena-descripción]
- **Nombre sus datos con exactitud**: la tabla, la carpeta o la dirección web.
- **Diga cuándo se inicia**: una hora y unos días, "cuando lleguen archivos a invoices/" o "solo cuando presione Ejecutar".
- **Diga a dónde va el resultado**: una tabla, un archivo o solo un resumen corto.
- **Pida una revisión antes de algo importante.** Decir "pregúntame antes de guardar" agrega un paso **Le pregunta primero**.
## Si algo sale mal [#si-algo-sale-mal]
- **"Aún no hay un proyecto que pueda editar"**: usted no edita ningún proyecto. Cree uno o pídaselo a su propietario.
- **La solicitud espera**: el Studio no está en ejecución. La IA empieza cuando el Studio se abra de nuevo.
- **`klarety agent check` informa un problema**: el YAML tiene un error y la respuesta dice cuál. Corrija el archivo y revíselo de nuevo.
- **"name the project with --project, or run this in its Studio"**: fuera de un Studio, pase `--project`.
## Siguientes pasos [#siguientes-pasos]
- [Plantillas](/docs/es/agents/templates)
- [Probar, activar y pausar](/docs/es/agents/go-live)
- [Ejecuciones y aprobaciones](/docs/es/agents/runs)