Ir al contenido

Tools de Crew

import { Aside } from ‘@astrojs/starlight/components’;

Concedé tools en sdk.crew.define({ tools: { read: [...], write: [...] } }). El runtime solo expone lo que el owner habilitó.

await sdk.crew.define({
instructions: '…',
tools: {
read: ['json_get', 'connection_query'],
write: ['json_set', 'notify_send'],
approval: { notify_send: 'always' },
limits: { connection_query: { maxCalls: 5, maxRows: 100 } },
},
});
Tool Qué hace
json_get Lee una clave del JSON store
table_query Consulta filas de una tabla
table_schema Inspecciona columnas
connection_query Consulta una conexión del workspace
web_search Búsqueda web (si está habilitada)
  • REST: query = "GET /endpoint/path"
  • Warehouse: query = SQL; params.projectId para BigQuery

Devuelve filas al contexto del crew — ideal para agregados y resultados chicos. Corre como el owner del artefacto, incluyendo conectores per-user.

Tool Qué hace
json_set Escribe o mergea en el JSON store
materialize_query Guarda resultados de conexión sin cargar cada fila en la conversación
table_insert / table_update Mutan tablas
comment_create Agrega comentario
email_send Envía email
notify_send Entrega one-shot a Slack, email, Discord, webhook
scheduled_job_create Crea job programado

Escribe en el JSON store. path opcional mergea un campo dentro del objeto.

target.type Escribe en
table sdk.table(name)
dataset sdk.dataset(name)
json clave name; path opcional
{
"connection": "team_bigquery",
"query": "SELECT * FROM `project.dataset.table` LIMIT 500",
"params": { "projectId": "my-gcp-project" },
"target": { "type": "json", "name": "snapshot", "path": "rows" }
}

Usá query_snapshot cuando el SQL es estable. materialize_query cuando el agente elige qué refrescar.

{
"destination": "slack",
"message": "*Resumen diario*\nRevenue +12% vs ayer.",
"config": { "connection": "team", "channelId": "C0123456789", "mode": "both" },
"source": {
"connection": "warehouse",
"query": "SELECT … FROM metrics.daily_revenue …",
"asOf": "2026-06-22"
}
}

Pasá source al entregar números derivados de datos — se agrega un footer de atribución compacto (_Source: … · as of …_ más la query en una línea) para que los destinatarios puedan rastrear las cifras. Ver Procedencia de datos.

Ver integración Slack.

Política Cuándo
never Ejecuta de inmediato
always Siempre requiere aprobación del owner
whenPublic Solo si el artefacto es público
const { approvals } = await sdk.crew.approvals.list('pending');
await sdk.crew.approvals.approve(approvals[0].id);
limits: { connection_query: { maxCalls: 10, maxRows: 500 } }