> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jelou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Agente Facematch

> Sistema para comparación facial 1:1 entre dos imágenes para determinar si corresponden a la misma persona

<Info>
  **Versión:** 1.3.0-public
</Info>

El **Agente Facematch** es un sistema multiagente que emplea la técnica de "match facial 1:1" para determinar si dos imágenes faciales corresponden a la misma persona, aplicando un nivel de tolerancia definido para asegurar la precisión del resultado.

Se puede hacer uso de este agente cuando se requiera comprobar la presencia de rostro y evaluar su similitud.

## Experiencia de usuario

### ✅ Checklist para iniciar sin bloqueos

* Los **inputs** (foto del documento y foto del video selfie) deben provenir del **Agente Document Check** y del **Agente Prueba de Vida**.
* Configura el **umbral** de comparación (recomendado: 60 %) y el **proveedor** (por ejemplo Jelou, u otros).
* <u>Recomendado:</u> definir el flujo de atención si activas **Human in the loop** (quién revisa, tiempos, y qué ocurre si no responde).

### Validaciones

<CardGroup cols={3}>
  <Card title="Detección de Rostros" icon="face-smile">
    Identificamos la presencia y ubicación de rostros en las imágenes obtenidas.
  </Card>

  <Card title="Comparación Facial" icon="user-check">
    Verificamos si los rostros detectados coinciden.
  </Card>

  <Card title="Definición del Nivel de Similitud" icon="percentage">
    Calculamos el porcentaje de similitud entre las imágenes para confirmar si pertenecen a la misma persona.
  </Card>
</CardGroup>

### Proceso

El video selfie obtenido durante la prueba de vida se compara con dos posibles fuentes:

* **Foto del Documento de Identidad:** Utilizamos la foto extraída del documento, asegurándonos previamente de que el documento sea auténtico y la información haya sido verificada con fuentes gubernamentales, garantizando un alto estándar de seguridad identificatoria.
* **Foto Registrada en la Entidad Gubernamental:** Cuando está disponible, también comparamos el video selfie con la foto almacenada en bases de datos gubernamentales.

## Configuración

<Tabs>
  <Tab title="Inputs">
    <AccordionGroup>
      <Accordion title="% Umbral aceptado en comparación facial" icon="percentage">
        <ParamField body="% Umbral aceptado en comparación facial" type="string" required>
          Variable: `facematchThreshold`. Umbral mínimo requerido para la comparación en facematch.

          **Tipo:** Texto (0-100)

          **Recomendado:** 60%
        </ParamField>
      </Accordion>

      <Accordion title="Foto rostro extraída de cédula" icon="id-card">
        <ParamField body="Foto rostro extraída de cédula" type="string" required>
          Variable: `imgDocumentNumber`. Foto extraída de la cédula.
        </ParamField>
      </Accordion>

      <Accordion title="Foto Video Selfie" icon="video">
        <ParamField body="Foto Video Selfie" type="string" required>
          Variable: `imgVideoSelfie`. Foto extraída del Video Selfie.
        </ParamField>
      </Accordion>

      <Accordion title="Proveedor" icon="server">
        <ParamField body="Proveedor" type="string" required>
          Variable: `provider`. Proveedor de Facematch.

          **Valores disponibles:** `Jelou`, `Facephi`

          **Recomendado:** `Jelou`
        </ParamField>
      </Accordion>
    </AccordionGroup>
  </Tab>

  <Tab title="Outputs">
    ### ✅ Éxito

    <AccordionGroup>
      <Accordion title="Verificación Facial Exitosa" icon="circle-check">
        La verificación facial ha sido completada exitosamente.

        **Variable:** `facematchSuccess`

        <Tip>
          Para acceder a la información de esta variable utilizar el comando `$memory.get("result_facematch")`
        </Tip>

        **Ejemplo de respuesta:**

        ```json theme={null}
        {
          "result_facematch": {
            "facematch_result": "approved",
            "facematch_confidence": 99
          }
        }
        ```

        **Campos importantes:**

        * `facematch_result`: Resultado de la comparación (ejemplo: `approved` o `decline`)
        * `facematch_confidence`: Nivel de confianza en porcentaje (0-100)
        * `error_name`: Nombre del error si ocurrió alguno (vacío si no hay error)

        <Note>
          El objeto `result_facematch` corresponde a la respuesta de la tool **Facematch AWS Recognition (TOOL)**.
        </Note>

        **Información guardada en Memory:**

        El agente guarda automáticamente la siguiente información en [variables de memoria](/guides/variables/memory):

        ```json theme={null}
        {
          "facematchResult": true,
          "result_facematch": {
            "facematch_result": "approved",
            "facematch_confidence": 99,
            "error_name": ""
          }
        }
        ```

        **Variables disponibles:**

        * `$memory.facematchResult`: Indica si la verificación facial fue exitosa (`true`) o no (`false`)
        * `$memory.result_facematch`: Objeto con el resultado completo de la comparación facial (respuesta de la tool Facematch AWS Recognition)

        <Tip>
          Puedes acceder a esta información en cualquier momento del flujo usando `$memory.get("facematchResult")` o `$memory.get("result_facematch")`.
        </Tip>
      </Accordion>
    </AccordionGroup>

    ### 🔴 Errores

    <AccordionGroup>
      <Accordion title="Verificación Facial No Exitosa" icon="triangle-exclamation">
        La verificación facial no ha sido exitosa.

        **Variable:** `facematchFailedError`
      </Accordion>
    </AccordionGroup>
  </Tab>
</Tabs>

## Integración

<Steps>
  <Step title="Seleccionar el flujo">
    Te ubicas en el Flujo dentro de la company donde requieres instalar este Agente. Haz clic en el botón flotante con el nombre del flujo y el ícono de carpeta para abrir el panel de Workflows & Tools. Selecciona "Abrir Marketplace" y allí escribes el nombre del Agente y lo descargas.
  </Step>

  <Step title="Configuración inicial">
    Lo primero que debes configurar es la **Versión** que se encuentra en "Configuración avanzada".

    <Tip>
      **Importante:** Todos los campos de este Agente son **Obligatorios**. Debes ingresar:

      * Los insumos a comparar (foto de documento y foto del video selfie)
      * El umbral requerido (recomendable: 60%)
      * El proveedor (por lo general debe ser "Jelou")
    </Tip>
  </Step>

  <Step title="Configurar Outputs">
    Este Agente cuenta con 1 output de error y 1 de success. Cada uno de ellos puedes dirigirlo a:

    * Una cajita de texto con mensaje personalizado
    * Al PMA (Panel Multiagente) si el cliente cuenta con este módulo
  </Step>

  <Step title="Realizar pruebas">
    Con la configuración que acabas de realizar, puedes proceder a realizar las pruebas utilizando como precursor un flujo u otro agente. Asegúrate de que los inputs provengan del **Agente Document Check** y del **Agente Prueba de Vida**.
  </Step>
</Steps>
