Skip to content

Multi-tenant

Documentación en español de Multi-tenant, alineada con el monorepo y la guía inglesa.

Entrada rápida

Request → HttpServer

           ├─ authenticate()           ← Bearer token → tenant mapping
           ├─ resolveTenantFromAuth()  ← API key → tenantId

           └─ execute({ tenantId }) → AgentRuntime

                                        ├─ TenantProvider.getTenantConfig(tenantId)
                                        │   → per-tenant: tokenBudget, maxConcurrency, maxRunsPerMinute

                                        ├─ Rate limit check     → TENANT_RATE_LIMIT
                                        ├─ Concurrency check    → TENANT_CONCURRENCY_LIMIT

                                        └─ Tenant-scoped instances:
                                            ├─ SamplesStore(path/tenant_{id}/)
                                            ├─ TraceStore(path/tenant_{id}/)
                                            ├─ StateCheckpointer(path/tenant_{id}/)
                                            ├─ ThreeLayerMemory(per-instance)
                                            └─ ToolResultCache(key = SHA256(tenantId + tool + args))
typescript
interface TenantConfig {
  tenantId: string;
  tokenBudget: number;
  maxConcurrency: number;
  maxRunsPerMinute: number;
  enabled: boolean;
  workspacePath?: string;
}
LayerMechanism
Rate limitsPer-tenant: requests/minute
ConcurrencyPer-tenant: max concurrent runs
StoragePer-tenant directory paths
MemoryPer-instance ThreeLayerMemory
CacheSHA-256 key includes tenantId
MetricsEvery counter/gauge/histogram has tenant label
ProviderBehavior
NullTenantProviderNo isolation, backward compatible (single-tenant)
SimpleTenantProviderStatic config map of tenant → config

Notas

  • CLI monorepo: cliEntry.ts · tras build: commander
  • Métricas: 25 proveedores · 5 topologías · 18 tools · 6700+ tests
  • Firmas API exactas: monorepo / API overview

Relacionado

MIT — Hecho para orquestación multi-agente.