- Identities, que representam um tenant ou seus usuários finais em cada requisição.
- Metadados de requisição, que marcam uma chamada com um ID de tenant ou outros dados de chave-valor.
Agentes gerenciados: um único agente atende todos os tenants. O agente fica em um único projeto, e cada execução anexa a Identity daquele tenant, que carrega os relatórios, os orçamentos e os filtros de traces. Um projeto por tenant vem depois, quando as bases de conhecimento ou os datasets de um tenant precisarem de um limite próprio; consulte Isolar dados e bases de conhecimento por tenant.
Qual abordagem usar
Escolha a abordagem de acordo com o quanto cada tenant é fixo e com o que precisa ser aplicado ou reportado. Use uma Identity para tenants ou usuários finais conhecidos e estáveis, quando o custo e o uso precisarem ser medidos, limitados e reportados por identity. Use metadados quando as requisições precisarem apenas de uma marcação para filtrar depois e o tenant não for algo sobre o qual aplicar um orçamento.Abordagem 1: Identity por tenant
Uma Identity representa um User, Team, Project ou Client. Crie uma identity por tenant e anexe-a a todas as requisições feitas por esse tenant. O uso, o custo e os traces passam então a ser atribuídos à identity, permitindo relatórios por tenant, orçamentos por identity e filtragem de traces. Crie uma identity para cada tenant uma única vez:tenant-{orgId}-{userId}, ou crie uma identity por tenant e compartilhe-a entre os usuários desse tenant. Consulte Anexar uma identity a uma requisição para conhecer as fontes corpo, header e proprietário da chave de API, na ordem em que o gateway as verifica.
Abordagem 2: Metadados de requisição
Para tenants que não correspondem a um conjunto fixo de identities, marque as requisições com metadados de requisição. Os metadados adicionam contexto de chave-valor, comotenant_id, region ou tier, que aparece nos traces como atributos de span metadata.<key> e pode ser usado como filtro de traces.
Passe um objeto metadata na requisição:
X-TOQAN-METADATA-<key> define uma chave de metadados, em minúsculas, a partir do sufixo do header:
cURL
Mantenha os metadados em um conjunto pequeno e fixo de chaves de baixa cardinalidade, como
tenant_id, region e tier. Valores de alta cardinalidade, como IDs por requisição, inviabilizam a filtragem e aumentam o armazenamento. Consulte Boas práticas de metadados de requisição.Identity e metadados juntos
Use uma Identity para medir e definir o orçamento de um tenant; use metadados para contexto adicional, como região ou linha de produto. Os dois funcionam juntos: anexe a Identity do tenant para atribuição e orçamentos por tenant e, em seguida, adicione metadados para descrever a requisição.Exemplo prático: um tenant, de ponta a ponta
Este exemplo configura a Acme Corp como um tenant com roteamento por tenant, um orçamento mensal e observabilidade por tenant, usando uma identity e uma regra de roteamento baseada em identity e metadados.1
Crie a identity do tenant
2
Limite o gasto da Acme
Acesse Settings > Organization > Budgets e clique em Create. Defina Scope > Applies to como Identity, selecione a identity
tenant-acme e defina um limite mensal de Cost. Quando o limite é atingido, as requisições que correspondem à identity da Acme são rejeitadas até a renovação mensal, enquanto os outros tenants continuam funcionando. Consulte Orçamentos para limites por período e alertas.3
Roteie e observe o tráfego da Acme
Em cada requisição, anexe a identity e uma chave de metadados para que o roteamento e os filtros de traces possam direcionar a Acme:O armazenamento de memória é delimitado a
tenant-acme, então cada tenant mantém sua própria memória de conversa. O token do MCP chega como uma variável secret e fica fora dos traces e logs; consulte Credenciais por requisição para as regras de placeholders e segredos.Crie uma Routing Rule cuja condição corresponda à Identity tenant-acme para enviar o tráfego da Acme a um modelo ou variante dedicado. Combine condições de identity e metadados (por exemplo, região) com o construtor de regras.4
Reporte o uso e o custo da Acme
Consulte a Reporting API, filtrando pela identity do tenant:Na visualização Traces, filtre por Identity
tenant-acme ou por Metadata tenant_id: acme para inspecionar a latência, o uso de tokens e os erros da Acme.Execuções agendadas de agentes não carregam
identity, então seu custo e uso não são atribuídos a um tenant. Quando as execuções agendadas precisarem de Reporting por tenant, execute-as a partir de um agendador do lado do cliente que chame a Responses API com identity anexada, ou leia o custo delas na visualização Traces filtrada por metadados.Isolar dados e bases de conhecimento por tenant
A atribuição no nível da requisição mede o uso, mas não separa os dados que um tenant pode recuperar. Para isolar o conteúdo, coloque cada tenant em seu próprio Project.- Os projetos são o limite de isolamento. Um Project contém Deployments, Prompts, Agents, Knowledge Bases e Datasets, com observabilidade e orçamentos delimitados ao projeto.
- As bases de conhecimento acompanham o projeto. Uma base de conhecimento fica sob um
project/pathe é recuperada por meio de um Deployment nesse projeto. Com um projeto por tenant, a chave de um tenant não consegue acessar a base de conhecimento de outro tenant. - Chaves de projeto único ficam dentro do tenant. Apenas chaves criadas com escopo de projeto único ficam confinadas ao projeto daquele tenant. Chaves de todo o workspace e chaves legadas podem acessar todos os projetos, portanto emita chaves de projeto único para os tenants e nunca entregue uma chave de todo o workspace.
- Ou compartilhe uma base de conhecimento entre tenants confiáveis. Se os tenants confiarem uns nos outros, marque os chunks com um campo de metadados
client_ide adicione uma condiçãofilter_bypara restringir a recuperação àquele tenant. Trata-se de um filtro no momento da consulta, e não de um controle de acesso imposto: qualquer chamador pode omiti-lo e ler os chunks de todos os tenants. Use-o apenas entre tenants confiáveis; caso contrário, separe os tenants em projetos por tenant. Consulte Metadados de chunks em bases de conhecimento.
Veja também
Identities
Crie identities e anexe-as às requisições para atribuição e orçamentos por tenant.
Metadados de requisição
Anexe nome, identity, thread e metadados personalizados às requisições do AI Gateway.
Orçamentos
Limite o gasto por workspace, projeto, identity, chave de API, provedor ou modelo.
Reporting API
Consulte programaticamente o uso, o custo e o desempenho por tenant.

