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 } },
},
});
ToolQué hace
json_getLee una clave del JSON store
table_queryConsulta filas de una tabla
table_schemaInspecciona columnas
connection_queryConsulta una conexión del workspace
web_searchBú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 artifact, incluyendo conectores per-user.

ToolQué hace
json_setEscribe o mergea en el JSON store
materialize_queryGuarda resultados de conexión sin cargar cada fila en la conversación
table_insert / table_updateMutan tablas
comment_createAgrega comentario
email_sendEnvía email
notify_sendEntrega one-shot a Slack, email, Discord, webhook
scheduled_job_createCrea job programado

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

target.typeEscribe en
tablesdk.table(name)
datasetsdk.dataset(name)
jsonclave 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íticaCuándo
neverEjecuta de inmediato
alwaysSiempre requiere aprobación del owner
whenPublicSolo si el artifact 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 } }