Despliegue
| Límite | Valor |
|---|
| Archivos por despliegue | 20 |
| Tamaño por archivo | 256 KB |
| Tamaño total del despliegue | 1 MB |
| Extensiones permitidas | .ts, .js, .json, .md, .txt |
| Entrypoint requerido | index.ts |
Ejecución
| Límite | Valor |
|---|
| Timeout máximo | 120 segundos |
| Timeout por defecto | 30 segundos |
El timeout se configura con config.timeout en milisegundos:
export default define({
description: "Operación lenta",
input: z.object({}),
config: { timeout: 60_000 }, // 60 segundos
handler: async (_input, ctx) => {
// operación que toma hasta 60s
return { ok: true };
},
});
| Límite | Valor |
|---|
| Nombre de tool | Max 64 caracteres, patrón [a-zA-Z0-9_-] |
| Descripción de tool | Max 1024 caracteres |
// ✓ Nombres válidos
define({ name: "consultar-saldo", ... })
define({ name: "search_products", ... })
define({ name: "myTool123", ... })
// ✗ Nombres inválidos
define({ name: "mi tool", ... }) // espacios no permitidos
define({ name: "tool.name", ... }) // punto no permitido
define({ name: "", ... }) // vacío
Cron
| Límite | Valor |
|---|
| Schedules por función | 10 (agregado entre todos los tools en app()) |
| Nombre de schedule | Max 64 caracteres |
| botId de schedule | Max 128 caracteres |
config: {
cron: [
{ expression: "0 9 * * *", timezone: "America/Guayaquil", name: "recordatorio-mañana" },
{ expression: "0 15 * * *", timezone: "America/Guayaquil", name: "recordatorio-tarde" },
],
}
En modo app(), el límite de 10 schedules es agregado entre todos los tools. Si un tool usa 6 schedules, los demás tools solo pueden usar 4 en total.
Tokens
| Límite | Valor |
|---|
| Tamaño máximo de token | 4 KB |
| Tokens por función | Sin límite explícito |
Memoria (ctx.memory)
| Límite | Valor |
|---|
Valor de set() | Max 255 caracteres (usar setJson() para datos más grandes) |
| TTL máximo | 86,400 segundos (24 horas) |
| Alcance | Por sesión (socketId) |
// ✓ Correcto
await ctx.memory.set("paso", "confirmacion", 3600);
// ✗ Error: excede 255 caracteres
await ctx.memory.set("datos", jsonMuyLargo, 3600);
// ✓ Usar setJson para datos grandes
await ctx.memory.setJson("datos", { items: [...] }, 3600);
Secrets
| Límite | Valor |
|---|
| Formato de clave | UPPER_SNAKE_CASE (^[A-Z][A-Z0-9_]*$) |
| Prefijo bloqueado | __FN_ (variables internas de la plataforma) |
Archivos excluidos del despliegue
Los siguientes se excluyen automáticamente:
node_modules/
.git/
.env
dist/
.jelou/
- Archivos ocultos (que empiezan con
.)