Integración del Proveedor de Puertas de Decisión + Arquitectura del Registro de Capacidades
Audience: Engineers implementing provider integration or capability Audiencia: Ingenieros que implementan la integración de proveedores o la validación de capacidades para consultas de verificaciones, condiciones y evidencias.
Tabla de Contenidos
- Resumen Ejecutivo
- Configuración del proveedor
- Registro de Capacidades
- Contratos de Proveedores Externos
- Federación de Proveedores de Evidencia
- Cumplimiento a Nivel de Herramienta
- Referencia Cruzada Archivo por Archivo
Resumen Ejecutivo
Decision Gate admite dos tipos de proveedores:
- Proveedores integrados (compilados en el binario)
- Proveedores MCP externos (transporte stdio o HTTP)
Los contratos de capacidad del proveedor son el esquema autoritativo para los parámetros de verificación, resultados y comparadores permitidos. El registro de capacidades valida las especificaciones de escenario y las consultas de evidencia antes de la evaluación. La federación de evidencia dirige las consultas a los proveedores y aplica políticas de confianza. F:crates/decision-gate-config/src/config.rs L1883-L1990 F:crates/decision-gate-mcp/src/capabilities.rs L229-L379 F:crates/decision-gate-mcp/src/evidence.rs L138-L210
Configuración del Proveedor
La configuración del proveedor se define en ProviderConfig:
tipo:builtinomcpcomando/url: selección de transporte para proveedores MCPcapabilities_path: ruta JSON del contrato (requerida para proveedores MCP)auth.bearer_token: autenticación del proveedor opcionaltrust: anulación de confianza por proveedorallow_raw: opción para la divulgación de evidencia en brutotimeouts: tiempos de espera para la conexión y la solicitud HTTP
Los controles de descubrimiento se definen en provider_discovery:
allowlist/denylist: restringir qué contratos de proveedores se divulganmax_response_bytes: limitar el tamaño de la respuesta de descubrimiento
La validación impone:
- Los proveedores de MCP deben especificar
commandourlycapabilities_path. allow_insecure_httpes necesario para URLshttp://.- Los nombres de los proveedores son únicos y están recortados.
- Los identificadores incorporados (
time,env,json,http) están reservados; los proveedores de MCP no pueden utilizarlos. - Built-ins must use a reserved identifier and reject MCP-only fields (
command,url, Los identificadores incorporados deben usar un identificador reservado y rechazar los campos solo de MCP (command,url,allow_insecure_http,auth,capabilities_path).
F:crates/decision-gate-config/src/config.rs L1883-L1990
Registro de Capacidades
El registro de capacidades carga contratos de proveedores y compila esquemas JSON para verificar parámetros y resultados. Valida:
- Proveedor y verificar existencia
- Presencia de parámetros requeridos
- Conformidad con el esquema de parámetros
- Conformidad con el esquema de valor esperado
- Listas de permitidos del comparador
- Anchor types declared by provider contracts (e.g.,
file_path_rootedfor the Tipos de anclaje declarados por contratos de proveedor (por ejemplo,file_path_rootedpara el proveedorjsonincorporado)
F:crates/decision-gate-mcp/src/capabilities.rs L313-L379 F:crates/decision-gate-mcp/src/capabilities.rs L598-L636
Las consultas del registro de capacidades son utilizadas tanto por la definición de escenarios como por las herramientas de consulta de evidencia. F:crates/decision-gate-mcp/src/tools.rs L2029-L2050 F:crates/decision-gate-mcp/src/tools.rs L979-L1017
Contratos de Proveedores Externos
Los proveedores externos deben suministrar un archivo JSON de contrato que:
- Coincide con el id del proveedor configurado
- Declara
transport = "mcp" - Define comprobaciones con listas de comparadores permitidos
Los contratos tienen un tamaño limitado y son validados por ruta; los contratos inválidos fallan cerrados. F:crates/decision-gate-mcp/src/capabilities.rs L533-L591
Federación de Proveedores de Evidencia
La federación de evidencia combina proveedores integrados y proveedores MCP:
- Los componentes integrados se registran a través del registro de proveedores.
- Los proveedores de MCP se instancian con transporte stdio o HTTP.
- El registro de proveedores rechaza registros duplicados para prevenir sobrescrituras silenciosas.
- Stdio provider processes are terminated on drop to avoid orphaned provider Los procesos del proveedor de Stdio se terminan al eliminarse para evitar tiempos de ejecución de proveedor huérfanos durante el apagado o la desactivación de pruebas.
- Las políticas del proveedor (trust + allow_raw) se aplican por proveedor.
- Evidence results may include structured error metadata (
code,message, Los resultados de evidencia pueden incluir metadatos de error estructurados (code,message,details) para apoyar bucles de recuperación determinísticos. - HTTP evidence providers enforce timeouts, disallow redirects, apply response Los proveedores de evidencia HTTP imponen tiempos de espera, desautorizan redirecciones, aplican límites de tamaño de respuesta y fallan en cerrado en cuerpos truncados (desajuste de Content-Length).
F:crates/decision-gate-mcp/src/evidence.rs L138-L210 F:crates/decision-gate-mcp/src/evidence.rs L248-L266 F:crates/decision-gate-providers/src/http.rs L82-L239
La aplicación de la política de confianza (verificación de firmas) se ejecuta por respuesta del proveedor. F:crates/decision-gate-mcp/src/evidence.rs L636-L677
Cumplimiento a Nivel de Herramienta
El comportamiento de la herramienta impone la política de capacidad y divulgación:
scenario_definevalida la especificación contra las capacidades antes de registrarse.evidence_queryvalida consultas y aplica la política de redacción de evidencia en bruto.evidence_queryexecution is offloaded to a blocking task to isolateevidence_queryse ejecuta en una tarea bloqueante para aislar a los proveedores bloqueantes (HTTP) del tiempo de ejecución asíncrono de MCP.provider_contract_get/provider_check_schema_getapply disclosure policy andprovider_contract_get/provider_check_schema_getaplican la política de divulgación y devuelven contratos de proveedor canónicos o esquemas de verificación.- Comparator allow-lists are enforced from provider contracts;
json.pathLas listas de permitidos del comparador se aplican a partir de los contratos de proveedor;json.pathexpone toda la superficie del comparador para evidencia JSON determinista.
F:crates/decision-gate-mcp/src/tools.rs L2029-L2050 F:crates/decision-gate-mcp/src/tools.rs L979-L1037 F:crates/decision-gate-mcp/src/tools.rs L1110-L1150 F:crates/decision-gate-mcp/src/tools.rs L2294-L2334
Referencia Cruzada Archivo por Archivo
| Área | Archivo | Notas |
|---|---|---|
| Configuración y validación del proveedor | crates/decision-gate-config/src/config.rs | Tipo de proveedor, transporte, ruta del contrato, tiempos de espera, descubrimiento permitir/negar. |
| Registro de capacidades | crates/decision-gate-mcp/src/capabilities.rs | Carga de contratos, compilación de esquemas, validación. |
| Federación de evidencia | crates/decision-gate-mcp/src/evidence.rs | Registro de proveedores + aplicación de confianza. |
| Integración de herramientas | crates/decision-gate-mcp/src/tools.rs | Validación de especificaciones/consultas y política de divulgación. |