Evaluadores de agentes

Importante

Los elementos marcados como versión preliminar en este artículo se encuentran actualmente en versión preliminar. Esta versión preliminar se proporciona sin un contrato de nivel de servicio y Microsoft no lo recomienda para cargas de trabajo de producción. Es posible que algunas características no se admitan o que tengan funcionalidades restringidas. Para obtener más información, vea Supplemental Terms of Use for Microsoft Azure Previews.

Los agentes de inteligencia artificial son asistentes de productividad eficaces que pueden crear flujos de trabajo para las necesidades empresariales. Sin embargo, la observabilidad puede ser un desafío debido a sus patrones de interacción complejos. Los evaluadores de agentes proporcionan observabilidad sistemática en flujos de trabajo agente mediante la medición de la calidad, la seguridad y el rendimiento.

Normalmente, un flujo de trabajo de agente implica razonamiento a través de intenciones de usuario, llamadas a herramientas pertinentes y uso de resultados de herramientas para completar tareas como actualizar una base de datos o redactar un informe. Para compilar aplicaciones agenticas listas para producción, debe evaluar no solo la salida final, sino también la calidad y eficacia de cada paso del flujo de trabajo.

Foundry proporciona evaluadores de agentes integrados que funcionan como pruebas unitarias para sistemas agente: toman mensajes de agente como puntuaciones binarias de paso/error de entrada y salida (o puntuaciones escaladas convertidas en puntuaciones binarias basadas en umbrales). Estos evaluadores admiten dos procedimientos recomendados para la evaluación del agente:

  • Evaluación del sistema: para examinar los resultados de un extremo a otro del sistema agente.
  • Evaluación del proceso: para comprobar la ejecución paso a paso para lograr los resultados.
Evaluador Procedimiento recomendado Se utiliza cuando propósito Output
Finalización de tareas (versión preliminar) Evaluación del sistema Evaluación del éxito de las tareas de un extremo a otro en la automatización del flujo de trabajo, las interacciones de IA orientadas a objetivos o cualquier escenario en el que la finalización completa de tareas sea fundamental Mide si el agente completó la tarea solicitada con una entrega utilizable que cumpla todos los requisitos del usuario. Binario: paso/error
Satisfacción del cliente (versión preliminar) Evaluación del sistema Medición de la satisfacción general del usuario en una conversación, detectando la frustración del usuario Mide la satisfacción holística del usuario en seis dimensiones: utilidad, integridad, claridad, tono, resolución y capacidad de adaptación Escala de 1 a 5 likert
Cumplimiento de tareas (versión preliminar) Evaluación del sistema Garantizar que los agentes sigan las instrucciones del sistema, validando el cumplimiento en entornos regulados Medidas si las acciones del agente se adhieren a sus tareas asignadas según reglas, procedimientos y restricciones de directiva, en función de su mensaje del sistema y de los pasos anteriores Binario: paso/error
Eficiencia de navegación de tareas Evaluación del sistema Optimización de los flujos de trabajo del agente, reducción de pasos innecesarios, validación en rutas óptimas conocidas (requiere la verdad básica) Mide si el agente realizó llamadas a la herramienta de forma eficaz para completar una tarea comparándolas con las secuencias de herramientas esperadas. Binario: paso/error
Resolución de intenciones (versión preliminar) Evaluación del sistema Escenarios de soporte técnico al cliente, inteligencia artificial conversacional, sistemas de preguntas frecuentes en los que la comprensión de la intención del usuario es esencial Mide si el agente identifica correctamente la intención del usuario. Binario: Paso/error en función del umbral (escala de 1 a 5)
Precisión de llamadas de herramienta Evaluación de procesos Evaluación general de la calidad de llamadas de la herramienta en sistemas de agentes con integración de herramientas, interacciones de API para completar sus tareas Mide si el agente realizó llamadas a la herramienta correcta con parámetros correctos para completar su tarea Binario: Paso/error en función del umbral (escala de 1 a 5)
Selección de herramientas Evaluación de procesos Validación de la calidad de elección de herramientas en plataformas de orquestación, lo que garantiza un uso eficaz de las herramientas sin redundancia Mide si el agente seleccionó las herramientas correctas sin seleccionar las innecesarias. Binario: paso/error
Precisión de entrada de la herramienta Evaluación de procesos Validación estricta de parámetros de herramienta en entornos de producción, pruebas de integración de API, flujos de trabajo críticos que requieren 100% corrección de parámetros Mide si todos los parámetros de llamada a herramientas son correctos en seis criterios estrictos: base, cumplimiento de tipos, cumplimiento de formato, parámetros necesarios, sin parámetros inesperados y idoneidad del valor Binario: paso/error
Uso de la salida de la herramienta Evaluación de procesos Validación del uso correcto de respuestas de API, resultados de consulta de base de datos, salidas de búsqueda en el razonamiento del agente y respuestas Medidas si el agente ha comprendido y usado correctamente los resultados de la llamada a la herramienta en su razonamiento y la respuesta final Binario: paso/error
Llamada correcta de la herramienta Evaluación de procesos Supervisión de la confiabilidad de las herramientas, detección de errores de API, problemas de tiempo de espera o errores técnicos en la ejecución de herramientas Medidas si las llamadas a herramientas se realizaron correctamente o provocaron errores técnicos o excepciones Binario: paso/error
Grader de calidad (en desuso) Evaluación de calidad Revisión de las configuraciones existentes de Quality Grader La evaluación de calidad habilitada anteriormente en varias dimensiones en un solo evaluador en lugar de ejecutar evaluadores individuales por separado. Ya no se puede ejecutar en una evaluación. No disponible
Calidad de salida (versión preliminar) Evaluación del sistema y la calidad Evaluación de la calidad de la respuesta y los resultados de las tareas en varias dimensiones, a la vez que se reduce el costo y la latencia de evaluación Fluidez de lotes, coherencia, resolución de intenciones, adhesión de tareas, base y finalización de tareas en una llamada de juez LLM Compuesto: puntuaciones de componentes con pass/fail
Calidad de uso de herramientas (versión preliminar) Evaluación de procesos Evaluación del proceso completo de uso de herramientas al reducir el costo y la latencia de evaluación Precisión de llamada de la herramienta Batches, Éxito de llamada de herramienta, Precisión de entrada de herramientas, Uso de salida de herramientas y Selección de herramientas en una llamada de juez LLM Compuesto: puntuaciones de componentes con pass/fail

Evaluación del sistema

La evaluación del sistema examina la calidad del resultado final del flujo de trabajo agente. Estos evaluadores son aplicables a agentes únicos y, en sistemas multiagente, al orquestador principal o al agente final responsable de la finalización de tareas:

  • Finalización de la tarea: ¿el agente completó completamente la tarea solicitada?
  • Satisfacción del cliente: ¿Qué satisfacción tendría un usuario con el rendimiento del agente?
  • Cumplimiento de tareas: ¿el agente ha seguido las reglas y restricciones en sus instrucciones?
  • Eficiencia de navegación de tareas: ¿el agente realizó los pasos esperados de forma eficaz?
  • Resolución de intenciones: ¿el agente identificó y direccionó correctamente las intenciones del usuario?

En concreto, para las salidas textuales de los agentes, también puede aplicar evaluadores de calidad rag, como Relevance y Groundedness que toman entradas agenticas para evaluar la calidad final de la respuesta.

Ejemplos:

Evaluación de procesos

La evaluación de procesos examina la calidad y la eficacia de cada paso del flujo de trabajo agente. Estos evaluadores se centran en las llamadas de herramienta ejecutadas en un sistema para completar tareas:

  • Precisión de llamada de la herramienta: ¿realizó el agente las llamadas a la herramienta adecuadas con parámetros correctos sin redundancia?
  • Selección de herramientas: ¿ha seleccionado el agente las herramientas correctas y necesarias?
  • Precisión de entrada de la herramienta: ¿el agente proporcionó parámetros correctos para las llamadas a herramientas?
  • Uso de salida de la herramienta: ¿el agente ha usado correctamente la llamada a la herramienta como resultado de su razonamiento y respuesta final?
  • Llamada correcta de la herramienta: ¿las llamadas a la herramienta se realizaron correctamente sin errores técnicos?

Ejemplos:

Evaluación de calidad (en desuso)

Importante

Quality Grader está en desuso y ya no se puede ejecutar en una evaluación.

Quality Grader evaluó la calidad general de la respuesta de un asistente de IA en el nivel de turno. Ha examinado varias dimensiones de la calidad de respuesta:

  • Relevancia : ¿Es relevante la respuesta a la consulta del usuario?
  • Abstención : ¿El agente se abstiene adecuadamente cuando no puede o no debe responder?
  • Integridad de la respuesta: ¿la respuesta aborda por completo la pregunta del usuario?

Cuando se proporcionó el contexto, el calificador de calidad también evaluó:

  • Base: ¿se basa la respuesta en el contexto proporcionado?
  • Cobertura de contexto : ¿la respuesta hace uso de la información pertinente en el contexto?

Evaluadores compuestos (versión preliminar)

Los evaluadores compuestos miden varias dimensiones de calidad en una llamada de juez LLM. Úselos para reducir el costo y la latencia de ejecutar los evaluadores integrados correspondientes por separado, a la vez que conserva una puntuación y un motivo para cada dimensión de calidad.

Note

Use un modelo de la familia GPT-5.6 como juez LLM para evaluadores compuestos. Para la opción de menor costo que mantiene la alta calidad de evaluación, use gpt-5.6-luna.

Calidad de salida

El evaluador de calidad de salida (builtin.output_quality) evalúa la calidad de la respuesta de un agente y su éxito al abordar la tarea del usuario. Agrupa por lotes los siguientes evaluadores en una llamada de juez LLM:

Evaluador de componentes ¿Qué mide? Score Umbral de paso predeterminado
Fluidez Calidad gramatical y legibilidad. 1-5 3
Coherencia Flujo lógico y organización. 1-5 3
Resolución de intención Indica si la respuesta identifica y se dirige a la intención del usuario. 1-5 3
Cumplimiento de las tareas Si el agente sigue sus instrucciones y restricciones. 0 o 1 1
Fundamentación Indica si el contexto disponible admite la respuesta. 1-5 3
Finalización de tareas Si el agente completa la tarea solicitada con un resultado utilizable. 0 o 1 1

Calidad de uso de herramientas

El evaluador de calidad de uso de herramientas (builtin.tool_use_quality) evalúa el proceso de uso de herramientas de un agente a partir de la selección de herramientas mediante el uso del resultado devuelto. Agrupa por lotes los siguientes evaluadores en una llamada de juez LLM:

Evaluador de componentes ¿Qué mide? Score Umbral de paso predeterminado
Precisión de llamadas de herramienta Corrección general de las llamadas, parámetros y eficiencia de la herramienta. 1-5 3
Llamada correcta de la herramienta Si las llamadas de herramienta se completan sin errores técnicos. 0 o 1 1
Precisión de entrada de la herramienta Indica si los parámetros de llamada a la herramienta son correctos. 0 o 1 1
Uso de la salida de la herramienta Si el agente usa correctamente la herramienta da como resultado su respuesta. 0 o 1 1
Selección de herramientas Si el agente selecciona las herramientas necesarias sin llamadas innecesarias. 0 o 1 1

Resultados compuestos

El resultado o tool_use_quality principal output_quality solo pasa cuando se pasa cada componente aplicable. Se omite un componente que no es aplicable y no hace que se produzca un error en el resultado principal. Si se omiten todos los componentes, el resultado principal es not_applicable.

Cada evaluador compuesto devuelve un resultado binario principal y los resultados de sus evaluadores de componentes. Use el resultado principal para una puerta de calidad estricta y use los resultados del componente para identificar la dimensión de calidad que provocó un error.

Output Descripción
output_quality o tool_use_quality Puntuación principal. Un valor de 1 significa que se pasan todos los componentes aplicables. Un valor de 0 significa que se produjo un error al menos en un componente aplicable.
<component>_score Puntuación numérica del evaluador de componentes.
<component>_result Resultado de paso o error en función del umbral del componente.
<component>_reason Explicación de la puntuación del componente.
<component>_status Indica si el componente se completó o se omitió.
<composite>_reason Enumera los componentes con errores o indica que se omitieron los componentes.
<composite>_properties Incluye listas de componentes con errores y omitidos, junto con los metadatos del modelo y del token.

Por ejemplo, se produce un error en un resultado de calidad de salida cuando se produce un error de fluidez, coherencia, resolución de intenciones, cumplimiento de tareas y finalización de tareas, pero se produce un error en la base. output_quality_reason identifica Groundedness como componente con errores y groundedness_reason explica su puntuación.

Configuración de evaluadores compuestos

Ambos evaluadores compuestos admiten la evaluación de nivel de conversación y de nivel de conversación. La forma de entrada determina el nivel de evaluación de forma predeterminada:

  • Asignar query y response para la evaluación de nivel de turno.
  • Asignar messages la evaluación de nivel de conversación.

Establezca el evaluation_level parámetro turn de inicialización en o conversation para invalidar este comportamiento.

La siguiente configuración ejecuta ambos evaluadores compuestos en el nivel de turno. La respuesta contiene mensajes de agente con llamadas de herramienta y resultados de herramientas, y las definiciones de herramientas describen las herramientas disponibles para el agente.

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "output_quality",
        "evaluator_name": "builtin.output_quality",
        "initialization_parameters": {
            "deployment_name": model_deployment,
            "evaluation_level": "turn",
        },
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{item.response}}",
            "tool_definitions": "{{item.tool_definitions}}",
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "tool_use_quality",
        "evaluator_name": "builtin.tool_use_quality",
        "initialization_parameters": {
            "deployment_name": model_deployment,
            "evaluation_level": "turn",
        },
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{item.response}}",
            "tool_definitions": "{{item.tool_definitions}}",
        },
    },
]

Referencia: Ejecución de evaluaciones desde el SDK

Para evaluar una conversación completa, asigne la conversación completa a messages y omita o establézcala evaluation_levelconversationen :

"initialization_parameters": {
    "deployment_name": model_deployment,
    "evaluation_level": "conversation",
},
"data_mapping": {
    "messages": "{{item.messages}}",
    "tool_definitions": "{{item.tool_definitions}}",
},

Referencia: Mensajes con llamadas a herramientas

Compatibilidad con modelos y herramientas

En el caso de los evaluadores asistidos por IA, puede usar Azure OpenAI o OpenAI modelos de areasoning y modelos de no razonamiento para el juez LLM.

Herramientas compatibles

Los evaluadores de agentes admiten las siguientes herramientas:

  • Búsqueda de archivos
  • Function Tool (herramientas definidas por el usuario)
  • MCP
  • MCP basado en conocimiento

Actualmente, las siguientes herramientas tienen compatibilidad limitada. Evite usar tool_call_accuracyevaluadores de tool input accuracy, tool_output_utilization, , tool_call_successo groundedness si la conversación del agente incluye llamadas a estas herramientas:

  • Búsqueda de Azure AI
  • Fundamentos de Bing
  • Bing Custom Search
  • Fundamentos de SharePoint
  • Intérprete de código
  • agente de datos de Fabric
  • Web Search

Uso de evaluadores de agentes

Los evaluadores de agentes evalúan el rendimiento de las tareas de los agentes de IA, siguen las instrucciones y usan herramientas de forma eficaz. Cada evaluador requiere asignaciones de datos y parámetros específicos:

Evaluador Entradas necesarias Parámetros necesarios Niveles de evaluación admitidos
Finalización de tareas (versión preliminar) (query, response) o messages; opcional: tool_definitions deployment_name; opcional: evaluation_level Turno, conversación
Satisfacción del cliente (versión preliminar) (query, response) o messages deployment_name; opcional: threshold, evaluation_level Turno, conversación
Cumplimiento de tareas (versión preliminar) (query, response) o messages; opcional: tool_definitions deployment_name Turno
Resolución de intenciones (versión preliminar) (query, response) o messages deployment_name; opcional: evaluation_level Turno
Precisión de llamadas de herramienta (query, tool_definitions) o (messages, tool_definitions); response y tool_calls son opcionales con query deployment_name; opcional: evaluation_level Turno
Selección de herramientas (query, tool_definitions) o (messages, tool_definitions); response y tool_calls son opcionales con query deployment_name; opcional: evaluation_level Turno
Precisión de entrada de la herramienta (query, response, tool_definitions) o (messages, tool_definitions) deployment_name; opcional: evaluation_level Turno
Uso de la salida de la herramienta (query, response, tool_definitions) o (messages, tool_definitions) deployment_name; opcional: evaluation_level Turno
Llamada correcta de la herramienta response o messages deployment_name; opcional: evaluation_level Turno
Eficiencia de navegación de tareas (actions o messages), expected_actions (none; optional: matching_mode) Turno
Calidad de salida query y response; o messages. tool_definitions es opcional. deployment_name; opcional: evaluation_level Turno, conversación
Calidad de uso de herramientas query, responsey tool_definitions; o messages y tool_definitions. deployment_name; opcional: evaluation_level Turno, conversación

La evaluación de nivel de turno puntúa una respuesta de agente individual; la evaluación de nivel de conversación puntúa la interacción completa. Use evaluation_level para seleccionar el nivel cuando el evaluador admita ambos. Para obtener la estructura de mensajes, consulte Mensajes con llamadas a herramientas.

Entrada de ejemplo

El conjunto de datos de prueba debe contener los campos a los que se hace referencia en las asignaciones de datos. Ejemplos del formato siguiente:

{"query": "What's the weather in Seattle?", "response": "The weather in Seattle is rainy, 14°C."}
{"query": "Book a flight to Paris for next Monday", "response": "I've booked your flight to Paris departing next Monday at 9:00 AM."}
{"messages": [{"role": "user", "content": "Book a flight to Paris."}, {"role": "assistant", "content": "I booked your flight to Paris."}]}

Para interacciones de agentes más complejas con llamadas de herramienta, use matrices de mensajes para query y response. Estas matrices usan la misma estructura de mensajes de OpenAI que el esquema preferido messages . Consulte Formato de consulta y respuesta independientes. El mensaje del sistema es opcional pero útil para evaluadores que evalúan el comportamiento del agente con instrucciones, como task_adherence, task_completion, tool_call_accuracy, tool_selection, tool_input_accuracy, tool_output_utilizationy groundedness:

{
    "query": [
        {"role": "system", "content": "You are a travel booking agent."},
        {"role": "user", "content": "Book a flight to Paris for next Monday"}
    ],
    "response": [
        {"role": "assistant", "content": [{"type": "tool_call", "tool_call_id": "call_123", "name": "search_flights", "arguments": {"destination": "Paris", "date": "next Monday"}}]},
        {"role": "tool", "tool_call_id": "call_123", "content": [{"type": "tool_result", "tool_result": {"flight": "AF123", "time": "9:00 AM"}}]},
        {"role": "assistant", "content": "I've booked flight AF123 to Paris departing next Monday at 9:00 AM."}
    ]
}

Formato de definiciones de herramientas

En el campo se tool_definitions describen las herramientas disponibles para el agente. Contiene una lista de objetos de herramienta con un nameobjeto de esquema parameters JSON , descriptiony :

[
  {
    "name": "search_flights",
    "description": "Search for available flights to a destination on a given date.",
    "parameters": {
      "type": "object",
      "properties": {
        "destination": { "type": "string", "description": "The destination city." },
        "date": { "type": "string", "description": "The travel date in YYYY-MM-DD format." }
      },
      "required": ["destination", "date"]
    }
  }
]

Incluya esta lista como el tool_definitions campo del conjunto de datos de prueba junto con query y response.

Ejemplo de configuración

Sintaxis de asignación de datos:

  • {{item.field_name}} hace referencia a campos del conjunto de datos de prueba (por ejemplo, {{item.query}}).
  • {{sample.output_items}} hace referencia a la salida estructurada del agente, incluidas las llamadas a herramientas y los resultados. Úselo para evaluadores que necesitan contexto de interacción completo (task_adherence, tool_call_accuracy, tool_selection, tool_input_accuracy, tool_output_utilization).
  • {{sample.output_text}} hace referencia a la respuesta de texto sin formato del agente. Úselo para evaluadores que esperan una respuesta de cadena (por ejemplo, coherence, violence).

Esta es una configuración de ejemplo para el cumplimiento de tareas:

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "task_adherence",
        "evaluator_name": "builtin.task_adherence",
        "initialization_parameters": {"deployment_name": model_deployment},
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{item.response}}",
        },
    },
]

Consulte Ejecución de evaluaciones desde el SDK para obtener más información sobre la ejecución de evaluaciones y la configuración de orígenes de datos.

Salida de ejemplo

Los evaluadores del agente devuelven resultados de paso/error con razonamiento. Campos de salida de clave:

{
    "type": "azure_ai_evaluator",
    "name": "Task Adherence",
    "metric": "task_adherence",
    "label": "pass",
    "reason": "Agent followed system instructions correctly",
    "threshold": 3,
    "passed": true
}

Para los evaluadores que usan una escala de 1 a 5 antes del umbral (como intent_resolution y tool_call_accuracy), la salida incluye un campo numérico score junto con el resultado de paso o error:

{
    "type": "azure_ai_evaluator",
    "name": "Intent Resolution",
    "metric": "intent_resolution",
    "label": "pass",
    "score": 4,
    "reason": "Agent correctly identified the user's intent to book a flight to Paris",
    "threshold": 3,
    "passed": true
}

Eficiencia de navegación de tareas

La eficiencia de navegación de tareas mide si el agente tomó una secuencia óptima de acciones comparando con una secuencia esperada (verdad en el terreno). Use este evaluador para las pruebas de optimización y regresión del flujo de trabajo.

{
    "type": "azure_ai_evaluator",
    "name": "task_navigation_efficiency",
    "evaluator_name": "builtin.task_navigation_efficiency",
    "initialization_parameters": {
        "matching_mode": "exact_match"  # Options: "exact_match", "in_order_match", "any_order_match"
    },
    "data_mapping": {
        "actions": "{{item.actions}}",
        "expected_actions": "{{item.expected_actions}}"
    },
}

Modos de coincidencia:

Modo Descripción
exact_match La trayectoria del agente debe coincidir exactamente con la verdad del suelo (orden y contenido)
in_order_match Todos los pasos de verdad del suelo deben aparecer en la trayectoria del agente en orden correcto (pasos adicionales permitidos)
any_order_match Todos los pasos de la verdad básica deben aparecer en la trayectoria del agente, el orden no importa (pasos adicionales permitidos)

Formato de acciones:

Asigne o actionsmessages con expected_actions. El actions campo acepta una cadena o una lista de objetos de mensaje. El messages campo acepta la interacción completa como una matriz de objetos de mensaje. Cada mensaje de acción representa un paso que tomó el agente durante la conversación:

actions = [
    {
        "role": "assistant",
        "content": [
            {"type": "function_call", "name": "call_tool_A", "arguments": "{\"param\": \"value\"}"}
        ]
    },
    {
        "role": "assistant",
        "content": [
            {"type": "function_call", "name": "call_tool_B", "arguments": "{}"}
        ]
    },
]

Note

Los actions campos y expected_actions usan diferentes formatos. actions contiene el comportamiento real del agente como objetos de texto o mensaje, mientras expected_actions que contiene los nombres de herramientas esperados y, opcionalmente, sus parámetros.

Para proporcionar la interacción del agente como mensajes en lugar de actions, asigne messages y expected_actions:

"data_mapping": {
    "messages": "{{item.messages}}",
    "expected_actions": "{{item.expected_actions}}",
}

Formato de acciones esperadas:

expected_actions Puede ser una lista sencilla de los pasos esperados:

expected_actions = ["identify_tools_to_call", "call_tool_A", "call_tool_B", "response_synthesis"]

O una tupla con nombres y parámetros de herramientas para una validación más detallada:

expected_actions = (
    ["func_name1", "func_name2"],
    {
        "func_name1": {"param_key": "param_value"},
        "func_name2": {"param_key": "param_value"},
    }
)

Output:

Devuelve un resultado de paso o error binario más precisión, recuperación y puntuaciones F1:

{
    "type": "azure_ai_evaluator",
    "name": "task_navigation_efficiency",
    "passed": true,
    "details": {
        "precision_score": 0.85,
        "recall_score": 1.0,
        "f1_score": 0.92
    }
}

Esquema de mensajes del agente

Los evaluadores de agentes usan matrices de mensajes cuando necesitan instrucciones, llamadas a herramientas y resultados de herramientas. Para obtener la estructura de mensajes canónica, las definiciones de roles y los datos de ejemplo, consulte Mensajes con llamadas a herramientas y formato de consulta y respuesta independientes.