JieGou incluye más de 260 integraciones MCP, 9 proveedores de LLM y un constructor visual de flujos de trabajo. Pero cada organización tiene herramientas únicas, APIs internas y procesos que una plataforma de propósito general no puede anticipar.
Hoy lanzamos tres funcionalidades de extensibilidad que le permiten traer sus propias capacidades a JieGou — sin hacer fork del código ni esperar a que nosotros construyamos una integración.
Herramientas personalizadas de webhook
Defina una herramienta respaldada por cualquier endpoint HTTP. Su herramienta estará disponible en recetas, flujos de trabajo y el agente conversacional — igual que las herramientas integradas.
Cómo funciona
- Defina la herramienta: Nombre, descripción, esquema JSON de entrada y URL del endpoint
- Configure la solicitud: Método (GET/POST), encabezados personalizados (cifrados), plantilla de solicitud Handlebars opcional
- Mapee la respuesta: Expresión JSONPath para extraer la salida relevante
- Defina el alcance: Asigne a departamentos específicos o hágala a nivel de cuenta
Ejemplo: herramienta de verificación de inventario
{
"name": "check_inventory",
"description": "Check current inventory levels for a product SKU",
"inputSchema": {
"type": "object",
"properties": {
"sku": { "type": "string", "description": "Product SKU" }
},
"required": ["sku"]
},
"endpoint": {
"url": "https://api.internal.example.com/inventory/{{sku}}",
"method": "GET",
"headers": { "Authorization": "Bearer {{env.INVENTORY_API_KEY}}" },
"timeoutMs": 10000
},
"responseMapping": "$.data.quantity"
}
Ahora cualquier receta o paso de flujo de trabajo puede usar check_inventory como herramienta. El LLM la ve junto con las herramientas integradas y la llama cuando es relevante.
Seguridad
- HTTPS requerido en producción
- Los encabezados personalizados están cifrados en reposo (mismo AES-256-GCM que las claves BYOK)
- Todas las solicitudes salientes pasan por la infraestructura de tiempo límite, reintentos y limitación de tasa de la plataforma
- Tamaño de respuesta limitado a 100KB
- Las ejecuciones de herramientas cuentan contra los límites de tasa de su cuenta
Las herramientas personalizadas de webhook están disponibles en planes Team y superiores.
Tipos de paso de flujo de trabajo personalizados
Para lógica que va más allá de una llamada webhook, defina tipos de paso personalizados como módulos TypeScript que se ejecutan en aislantes V8 — completamente en sandbox sin acceso al sistema de archivos, red o proceso host.
El sandbox
Los pasos personalizados se ejecutan en aislantes V8 de isolated-vm con restricciones estrictas:
- Límite de memoria: 128MB por ejecución
- Límite de tiempo de CPU: Configurable por paso
- Sin
require()niimport: Las dependencias se inyectan explícitamente - Sin sistema de archivos ni red: Solo las APIs proporcionadas por la plataforma están disponibles
APIs inyectadas
Los pasos personalizados pueden usar un subconjunto de capacidades de la plataforma, declaradas en el momento de la definición:
| API | Qué proporciona |
|---|---|
http | Fetch HTTP con proxy (respeta límites de tasa) |
llm | Invocación de LLM (usa configuración BYOK de la cuenta, rastreado para facturación) |
firestore_read | Acceso a Firestore de solo lectura (con alcance a la cuenta) |
Ejemplo: paso de agregación de sentimiento
// Custom step: aggregate-sentiment
// Allowed APIs: llm
export async function execute(input: { reviews: string[] }, context: any) {
const results = await Promise.all(
input.reviews.map(review =>
context.llm.invoke(`Rate this review's sentiment from 1-5: "${review}". Reply with just the number.`, { model: 'haiku' })
)
);
const scores = results.map(r => parseInt(r.trim())).filter(n => !isNaN(n));
const average = scores.reduce((a, b) => a + b, 0) / scores.length;
return {
averageSentiment: Math.round(average * 10) / 10,
totalReviews: scores.length,
distribution: {
positive: scores.filter(s => s >= 4).length,
neutral: scores.filter(s => s === 3).length,
negative: scores.filter(s => s <= 2).length,
},
};
}
Edite código en el editor Monaco integrado, defina esquemas de entrada/salida y pruebe con datos de muestra antes de implementar.
Los tipos de paso personalizados están disponibles en planes Enterprise.
Hooks de ciclo de vida
Registre endpoints de webhook que se activan en eventos de ejecución de flujos de trabajo y recetas. Úselos para integrar con Slack, PagerDuty, paneles de control personalizados o cualquier servicio HTTP.
Eventos soportados
| Evento | Cuándo se activa |
|---|---|
workflow:start | La ejecución del flujo de trabajo comienza |
workflow:complete | El flujo de trabajo finaliza exitosamente |
workflow:error | El flujo de trabajo falla |
step:start | Un paso individual comienza |
step:complete | Un paso individual finaliza |
step:error | Un paso individual falla |
recipe:start | La ejecución de la receta comienza |
recipe:complete | La receta finaliza |
approval:requested | Se activa una puerta de aprobación |
approval:granted | Se otorga la aprobación |
approval:rejected | Se deniega la aprobación |
No bloqueante vs. bloqueante
Los hooks no bloqueantes (predeterminado) son dispara-y-olvida. La plataforma envía el webhook y continúa la ejecución sin esperar respuesta. Úselos para notificaciones y registro.
Los hooks bloqueantes pausan la ejecución hasta que el webhook responde (tiempo límite de 10 segundos). La respuesta puede modificar el contexto de ejecución. Úselos para verificaciones pre-vuelo o inyección de configuración dinámica. Los hooks bloqueantes tienen un disyuntor — si fallan repetidamente, se deshabilitan automáticamente.
Ejemplo: notificación de Slack al completar flujo de trabajo
{
"name": "Slack notify on completion",
"events": ["workflow:complete", "workflow:error"],
"webhookUrl": "https://hooks.slack.com/services/T.../B.../xxx",
"blocking": false
}
Los hooks de ciclo de vida están disponibles en planes Team y superiores.
Cómo trabajan juntos
Las tres funcionalidades de extensibilidad se componen naturalmente:
- Una herramienta personalizada verifica su API interna de inventario
- Un paso personalizado ejecuta lógica de negocio especializada en un sandbox V8
- Un hook de ciclo de vida notifica a su canal de Slack cuando el flujo de trabajo se completa
Las tres respetan el modelo de seguridad existente de la plataforma — RBAC, registro de auditoría, limitación de tasa y alcance departamental se aplican uniformemente.
Explore las funcionalidades de extensibilidad en la configuración de su cuenta.