Introducción a Crew
import { Steps, Aside } from ‘@astrojs/starlight/components’;
Cada artifact puede ejecutar un crew — un agente autónomo del lado del servidor con
tools para consultar datos, refrescar snapshots, escribir resúmenes JSON, entregar a
Slack y más. Los crews se disparan por schedule, seguimiento de alerta (on_trigger),
desde Telegram (ask_crew), o manualmente vía la API.
Feature: ai.crew (etiqueta CrewAI agents en el catálogo admin).
Cuándo usar Crew
Sección titulada «Cuándo usar Crew»| Querés… | Usá |
|---|---|
| Responder visitantes en la página | Agente de chat IA |
| SQL fijo en schedule (sin LLM) | Job programado → query_snapshot |
| Alerta por umbral | Alertas de métricas |
| Resumir, investigar o entregar en lenguaje natural | Crew |
| Pedir al crew desde Telegram | Bot de Telegram → ask_crew |
| Pedir al crew desde Slack | Bot de Slack → ask_crew |
Los jobs son deterministas. Crew es agéntico: decide qué tools usar y cómo redactar.
Cómo funciona un run
Sección titulada «Cómo funciona un run»flowchart LR T[Trigger] --> R[Bucle de run] R --> M[Turno del modelo] M -->|tool calls| Tools[Tools concedidas] Tools --> M M -->|finish| Done[Resumen + costo]
- Un trigger o llamada manual inicia el run.
- El modelo recibe instrucciones + input opcional.
- Cada iteración puede llamar tools concedidas.
- Termina con resumen, iteraciones y costo (micro-USD).
Qué inicia un run
Sección titulada «Qué inicia un run»| Fuente | Cómo |
|---|---|
| Cron | triggers.create({ kind: 'cron', cron: '…' }) |
| Condición | Conteo de filas cruza un predicado |
| Evento | ej. table.row.inserted |
| Alerta de métrica | on_trigger.crew: true |
| Telegram | ask_crew vía @ShareOutAI_bot |
| Manual | sdk.crew.run() o POST …/crew/run |
Requisitos
Sección titulada «Requisitos»ai.crewhabilitado —GET /v1/features?artifact_id=…- Sesión o token del owner del artifact
- Flags de destino (
dest.slack, etc.) para entregas
Inicio rápido
Sección titulada «Inicio rápido»-
Definí el crew.
await sdk.crew.define({instructions: 'Leé sales, marcá revenue < 0, escribí en json "weekly_review".',tools: { read: ['table_query'], write: ['json_set'] },}); -
Ejecutá una prueba.
for await (const event of sdk.crew.run({ input: 'Corré ahora.' })) {if (event.type === 'finish') console.log(event.summary);} -
Programá (opcional).
await sdk.crew.triggers.create({ kind: 'cron', cron: '0 9 * * 1' });
Permisos e identidad
Sección titulada «Permisos e identidad»- Tools corren con identidad de owner.
- Escrituras pueden requerir aprobación (
whenPublic,always). - Conectores per-user funcionan para queries de warehouse.
- El HTML no puede ampliar grants en runtime.
Límites y facturación
Sección titulada «Límites y facturación»| Control | Qué hace |
|---|---|
maxIterations | Tope de loops por run |
runBudgetMicroUsd | Tope de gasto por run |
| Balance AI del workspace | Detiene runs si se agota |
Uso: sdk.crew.usage(workspaceId).