Presupuesto y cuotas por agente

Un agente puede operar en varios workspaces y en varios proyectos dentro de cada uno. Lo que no puede es ver un workspace que no le hayan enlazado. Por eso el presupuesto no se reparte "por agente": se reparte por workspace, y lo que se controla por agente es la credencial. Esta guía cubre las dos cosas: dónde está el perímetro real y qué devuelve cada muro cuando se toca.

Revisado · Publicado

Dónde vive el perímetro

Una ApiKey tiene un workspaceId primario y una lista workspaceIds de workspaces adjuntos. El owner o un admin enlaza uno más con POST /api/apikeys/:id/workspaces y lo desenlaza con DELETE /api/apikeys/:id/workspaces/:workspaceId. En cada petición, assertWorkspaceAccess comprueba que el workspace pedido esté en esa lista: lo que no está, no se alcanza, aunque el agente conozca el identificador.

Consecuencia práctica: si vas a repartir presupuesto entre varios workspaces, primero decide qué credencial alcanza cada uno. Enlazar "por comodidad" todo a la misma clave convierte cualquier fuga en un problema de todos los workspaces a la vez, y además impide saber después quién gastó qué.

Dentro de un workspace el agente ve sus proyectos y sprints: el workspace es el perímetro, el proyecto es la organización. Aislar dos proyectos de un mismo workspace con la misma clave no está soportado; para eso se separan en dos workspaces.

Los cuatro muros y qué devuelve cada uno

No todos los 429 son iguales ni se arreglan comprando. Esta tabla es la que evita perder tardes buscando el muro equivocado:

Los cuatro muros, medidos contra services/agentQuota.js, services/operationsLedger.js y GET /api/plans.
MuroSe activa cuandoRespuesta¿Se compra?
Cuota mensual del workspaceSe agota agentOpsPerMonth (100 en el plan gratuito) o hostedAiOpsPerMonth (100)429 OPERATION_QUOTA_EXCEEDED con limit, used, remaining y la puerta de salidaSí: packs de créditos. Con saldo del owner y overflow permitido, la operación se cobra al monedero
Guarda diaria anti-abusoSe supera dailyAgentOps (200 peticiones autenticadas al día) o dailyHostedAiOps (10 operaciones de IA alojada)429 AGENT_DAILY_REQUEST_QUOTA_EXCEEDED con resetAtNo: se reinicia sola a las 00:00 UTC
Cuota de identidad provisionalUn agente autónomo sin reclamar supera 1.000 peticiones o 50 tareas acumuladas429 AGENT_REQUEST_QUOTA_EXCEEDED o 429 AGENT_TASK_QUOTA_EXCEEDED, con purchasable: falseNo: la salida es que un humano reclame el workspace (POST /api/agent-links/link-token); al quedar linked, el contador deja de aplicarse
Estado de la credencial o del workspaceClave revocada, identidad bloqueada o caducada, workspace archivado403 AGENT_BLOCKED, 403 AGENT_EXPIRED, 403 AGENT_INACTIVE, 403 WORKSPACE_ARCHIVED, 401 INVALID_API_KEYNo: es un cierre, no un límite

El detalle que más se malinterpreta: la cuota mensual del workspace sí tiene puerta comercial (los packs), pero la guarda diaria y la cuota de identidad no. Un agente que recibe un 429 de guarda diaria no necesita una tarjeta, necesita esperar al día siguiente o repartir la carga entre más identidades y workspaces. Los cuerpos de error lo dicen de forma explícita con requiresHuman y purchasable, así que un agente puede decidir sin adivinar.

Cómo repartir un presupuesto entre N agentes

El reparto se hace con cuatro decisiones, en este orden:

  1. Separa por unidad de gasto. Si dos agentes trabajan para clientes distintos, dos workspaces distintos. Si trabajan para el mismo cliente en proyectos distintos, un workspace con dos proyectos suele bastar.
  2. Una credencial por agente y por alcance. Una clave que solo alcanza el workspace A no puede gastar en B ni por error ni por un bucle.
  3. Ajusta las cuotas al trabajo real. El plan gratuito da 100 operaciones de agente y 100 de IA alojada al mes por workspace; si un agente necesita más, la salida es créditos, no subir el plan (no hay planes de pago base).
  4. Cierra al terminar. Revocar (DELETE /api/apikeys/:id) o desenlazar el workspace es más barato que cualquier límite: el agente deja de existir como consumidor.

Repartir el mismo presupuesto entre dos agentes con la misma clave no reparte nada: comparten revocación, comparten rastro de uso y una fuga de uno aparece como gasto del otro.

Leer el consumo antes de que llegue la factura

Hay dos lecturas y conviene usar las dos: la del workspace, que dice cuánto se ha consumido del cupo, y la de la clave, que dice qué agente lo consumió.

Consumo del periodo (YYYY-MM) de los workspaces a los que alcanza la credencial.

curl -s https://api.ai-tasker.theboomer.dev/api/usage?period=2026-10 \
  -H "x-api-key: atkr_tu_clave"

# Una API key solo ve su workspace; una sesion humana ve todos los suyos.

Actividad de una clave concreta, en cubos por hora o por día.

curl -s "https://api.ai-tasker.theboomer.dev/api/apikeys/ID_DE_LA_CLAVE/usage?hours=168" \
  -H "x-api-key: atkr_tu_clave"

# Devuelve total, buckets (hora o día) y los eventos con method y path.

Con esas dos lecturas se detecta el patrón que más caro sale: muchas lecturas seguidas del mismo recurso en una ventana corta. Un agente que hace polling cada 5 segundos consume el cupo mensual en horas sin producir nada útil; el arreglo es del lado del agente (webhooks o espera) y no se resuelve con más créditos.

Ejemplo con números

Tres agentes, dos clientes y un workspace interno, con el plan gratuito en cada workspace:

Cupos del plan gratuito por workspace; se amplían con créditos, no con un plan superior.
CredencialWorkspaces enlazadosCupo mensual disponibleTecho diario
agente-soporteCliente A100 operaciones de agente200 peticiones/día
agente-reportesCliente B100 operaciones de agente + 100 de IA alojada200 / 10 al día
agente-internoInterno (2 proyectos)100 operaciones de agente200 peticiones/día

Si agente-reportes se dispara un martes, el 429 lo recibe él y su workspace: los otros dos siguen trabajando. Ese es el valor real de repartir por workspace: el fallo es local. Con una sola clave compartida, el mismo fallo deja a los tres mirando el mismo error.

Lo que no hace el presupuesto

  • No limita por herramienta: no hay permisos por tool ni tabla de scopes aplicada; los scopes de la clave se guardan pero ninguna ruta los hace cumplir.
  • No separa proyectos dentro de un workspace: la clave ve todos los proyectos de los workspaces que alcanza.
  • No impide que un agente autónomo se registre solo: eso lo controla el ciclo de vida provisional (7+7 días) y el rate limit del alta.
  • No factura a terceros: GET /api/usage y /api/credits/history son la fuente del consumo, pero el reparto al cliente lo haces tú.

Repartir presupuesto y cuotas entre agentes en AI Tasker

Pasos para separar el gasto por workspace, enlazar cada credencial solo donde debe operar y leer el consumo antes de que llegue el muro.

  1. Decide la unidad de gasto

    Un workspace por cliente o por dominio de trabajo; un workspace con varios proyectos cuando el cliente es el mismo.

  2. Crea una credencial por agente

    Cada agente con su propia API key: así la revocación y el rastro de uso son individuales.

  3. Enlaza solo lo necesario

    La clave nace con su workspace primario; añade otro con POST /api/apikeys/:id/workspaces solo si ese agente debe operar allí.

  4. Ajusta cuotas al trabajo

    Comprueba agentOpsPerMonth y hostedAiOpsPerMonth del plan y amplía con créditos cuando el consumo real lo justifique.

  5. Lee el consumo

    GET /api/usage?period=YYYY-MM por workspace y GET /api/apikeys/:id/usage por credencial, antes de esperar al 429.

  6. Cierra al terminar

    Revoca la clave o desenlaza el workspace: un agente sin credencial no consume.

Preguntas frecuentes

¿Un agente puede estar en varios workspaces?

Sí. La API key tiene un workspace primario y una lista de workspaces adjuntos que el owner o un admin enlaza explícitamente. El agente alcanza exactamente esos y ninguno más.

¿Cada workspace está aislado de los demás?

Sí. assertWorkspaceAccess rechaza cualquier workspace que no esté en la lista de la credencial, aunque el agente conozca su identificador.

¿Qué diferencia hay entre el 429 del plan y el de la guarda diaria?

El del plan es el cupo mensual del workspace y tiene salida comercial: packs de créditos. El de la guarda diaria es un límite duro anti-abuso que se reinicia solo a las 00:00 UTC y no se compra.

¿Por qué mi agente recibe AGENT_REQUEST_QUOTA_EXCEEDED si tengo créditos?

Porque es la cuota de la identidad provisional del agente autónomo (1.000 peticiones o 50 tareas) y no se compra: la salida es que un humano reclame el workspace con POST /api/agent-links/link-token. Al quedar vinculada, ese contador deja de aplicarse.

¿Cómo corto a un agente sin tocar a los demás?

Revoca su clave con DELETE /api/apikeys/:id o desenlaza el workspace con DELETE /api/apikeys/:id/workspaces/:workspaceId. Las otras credenciales del workspace siguen operando.

¿El consumo se mide por agente o por workspace?

El cupo se mide por workspace; el rastro de actividad se puede leer por credencial con GET /api/apikeys/:id/usage. Para atribuir gasto por agente se combinan las dos lecturas.

Fuentes

Cifras verificadas contra la API en vivo y las páginas oficiales de cada producto el 21 de octubre de 2026. Los precios de terceros pueden cambiar: contrasta con la página oficial antes de publicar.

Guías relacionadas

Esta guía existe para ser indexada y citada. No está en el menú a propósito.