Saltar al contenido principal

Políticas y capacidades

Cada agente externo publica una política pública: qué puede hacer, qué perfiles de stream habla, qué contexto de host acepta y cuáles son sus límites. Léela antes de construir interfaz alrededor de una función — las capacidades son por agente, y llamar a una desactivada devuelve un error estable en lugar de degradarse en silencio.

Leer la política

const policy = await client.getEffectivePolicy();

if (policy.capabilities.files) {
showAttachmentButton();
}

PublicExternalAgentPolicy:

CampoSignificado
capabilitiesBooleanos para messages, conversations, files, artifacts, interactions, approvals.
streamProfiles / defaultStreamProfilePerfiles que acepta el agente y el que se usa si no pides ninguno.
outputModuleTypesTipos de módulos de salida estructurada que el agente puede emitir.
providerGroundingDisplaySi se puede mostrar al usuario el grounding del proveedor.
domainToolsHerramientas de dominio expuestas al agente, como PublicDomainTool.
filePolicyupload, read, maxUploadBytes, allowedMimeTypes.
hostContextPolicyacceptedFields y maxTotalBytes.
rateLimits / spendLimitsSe aplican en el servidor.
publicErrorDetailminimal, standard o diagnostic — cuánto detalle llevan los errores públicos.
sdk.minVersionVersión mínima del SDK que exige el agente, o null.

Negociar

prepare() propone una configuración y devuelve lo que el servidor realmente concedió. Lee siempre los valores negociados en lugar de asumir que tu petición se aceptó:

const { policy, negotiated } = await client.prepare({
streamProfile: 'runtime-standard-v1',
outputModuleTypes: ['citation'],
providerGroundingDisplay: true,
});

renderWith(negotiated.streamProfile, negotiated.outputModuleTypes);

negotiated informa del streamProfile, outputModuleTypes y providerGroundingDisplay resueltos. Tipo completo: ExternalAgentPrepareResult.

Perfiles de stream

PerfilUso
runtime-standard-v1El stream público completo de eventos del runtime. Empieza aquí.
modules-v1Módulos de salida estructurada.
chat-legacy-v1Perfil de compatibilidad para integraciones de chat antiguas.

Herramientas de dominio

policy.domainTools describe las operaciones de dominio disponibles para el agente. Cada entrada incluye un publicName, un bloque operation (kind, sideEffectClass, idempotency, approvalRequired), esquemas opcionales de entrada y salida, y un status.

operation.approvalRequired es el que hay que contemplar en el diseño: esas herramientas emiten un evento approval:requested a mitad del stream y esperan. Ver Conversaciones y streaming.

Capacidades desactivadas

Llamar a una capacidad que la política ha desactivado falla con un error estable 403 unsupported_capability — no devuelve datos vacíos. Condiciona la interfaz a capabilities en lugar de usar el error como control de flujo.