Modernice los pagos con Agentic AI, un modelo canónico basado en JSON y MongoDB Atlas para unir ISO 20022, ISO 8583 y Stablecoins.
Casos de uso: Inteligencia Artificial, Pagos
Industrias: Servicios financieros
Productos y herramientas: Atlas de MongoDB, Búsquedavectorial en Atlas deMongoDB, Búsqueda en Atlas de MongoDB
Asociados: Amazon Bedrock, LangChain, LangGraph
Resumen de la solución
Los procesadores de pagos actuales se enfrentan a un problema de interoperabilidad. Deben gestionar mensajes de tarjetas heredados (ISO 8583), estándares modernos de datos enriquecidos (ISO 20022) y plataformas de pago de criptomonedas en constante evolución. Los sistemas tradicionales se basan en procesos rígidos de extracción, transformación y carga (ETL) que se interrumpen cuando aparece un nuevo campo o cambia la normativa local.
Para conectar la infraestructura heredada con el futuro de las finanzas, un modelo de pago canónico nativo de JSON actúa como la base esencial de la orquestación moderna. En un 20022 entorno posterior a la norma ISO, resuelve la fragmentación semántica del dialecto observada en diversas implementaciones, como CBPR+ y FedNow. Previene los riesgos de truncamiento de datos identificados por SWIFT, donde los sistemas internos heredados 20022 eliminan datos ISO enriquecidos por falta de capacidad para almacenar campos expandidos. Dado que el modelo captura la profundidad completa del mensaje en un formato JSON flexible, el sistema no pierde datos durante la traducción.
Junto con una abstracción de API universal, la plataforma permite a los equipos de TI abandonar los mapas de bits binarios opacos y los estándares fragmentados para adoptar un entorno optimizado para desarrolladores. Este entorno facilita el desarrollo y la reutilización acelerados, ya que las nuevas plataformas de pago, desde UPI de la India hasta las monedas estables, pueden integrarse como extensiones modulares en lugar de reescribir el código principal.
Además de la velocidad de desarrollo, este modelo establece un esquema de pago centralizado y gobernanza de datos, lo que permite actualizaciones en un único punto donde un nuevo campo regulatorio se define una sola vez y se hereda en toda la lógica de transformación. Esta transición de esquemas SQL rígidos a un modelo de documento flexible elimina la deuda técnica y la carga de mantenimiento típica de los centros de datos tradicionales. Al normalizar los datos en un modelo de datos verdaderamente estandarizado y consistente en las primeras etapas del ciclo de vida, el modelo facilita la implementación temprana de las normas de cumplimiento y la reparación proactiva en vuelo. En definitiva, proporciona la gestión definida y la agilidad operativa necesarias para navegar en un mundo multirraíl en constante evolución bajo nuevas regulaciones, como los Mercados de Criptoactivos (MiCA).
El siguiente vídeo ofrece un ejemplo de un pago transfronterizo de DE a JP con transliteración japonesa Katakana del nombre del acreedor impulsada por el agente:
Esta solución demuestra cómo un modelo de pago canónico con Agentic AI puede redefinir el procesamiento de pagos. Al pasar de los rígidos esquemas SQL a un modelo canónico flexible basado en JSON, las instituciones financieras pueden capacitar a los agentes de IA para ingerir, normalizar, enrutar y reparar transacciones de forma autónoma en cualquier canal de pago, como una transferencia SWIFT o USDC en una blockchain pública.
Fundación JSON
Un modelo de datos basado en JSON es la base fundamental para un sistema de procesamiento ferroviario de múltiples pagos debido a las siguientes propiedades:
API nativa: Los pagos modernos, especialmente en criptomonedas y fintech, utilizan comunicación basada en API (REST/GraphQL/RPC), que se basa fundamentalmente en JSON. Un formato nativo reduce la latencia y la complejidad de la traducción.
Flexibilidad del esquema: JSON maneja campos comunes (monto, remitente) al mismo tiempo que admite campos específicos de cada ferrocarril (por ejemplo, límites de gas para criptomonedas, códigos zengin para Japón, información de remesas para ISO) 20022 sin romper el esquema central.
Preparación para IA: Los LLM se entrenan en código y JSON. Los agentes pueden analizar la estructura de datos directamente, detectando anomalías y realizando mapeos complejos con mayor eficacia que con mapas de bits binarios opacos o tablas SQL rígidas.
Arquitecturas de Referencia
Esta demostración de procesamiento de pagos incluye una plataforma de procesamiento de pagos que gestiona todo el ciclo de vida de las transacciones, desde la incorporación del formato hasta su ejecución y reparación. La arquitectura delega responsabilidades específicas a componentes especializados:
Construir
Config Builder: Acelera la integración de formatos durante el desarrollo. Los canales de agregación extraen asignaciones de campos de las configuraciones existentes, mientras que un LLM sugiere asignaciones para campos desconocidos. Los nuevos formatos que antes tardaban meses en integrarse ahora se configuran en semanas. Una vez establecidas las configuraciones, la plataforma gestiona el procesamiento de transacciones en tiempo real.
Ejecutar
Servicio de Traducción de Mensajes: Los mensajes entrantes pasan por un sistema de procesamiento basado en la configuración. La mayoría de los campos siguen reglas deterministas almacenadas en MongoDB, construidas durante el proceso de compilación descrito anteriormente. Los campos complejos no estructurados, como la información de remesas, se enrutan a una línea de IA impulsada por Claude.
Servicio de Resolución Agentic: Un sistema multiagente que repara las transacciones que no se validan. Un supervisor dirige las tareas a agentes especializados: el Agente de Resolución encuentra los valores correctos para los campos faltantes o no válidos (mediante búsquedas en bases de datos, Búsqueda Atlas o inferencia de IA), y el Agente de Ejecución aplica los cambios aprobados y registra un registro de auditoría.
Figura 1. Arquitectura de la plataforma de procesamiento de pagos que muestra la traducción de mensajes, el enrutamiento JSON canónico y la resolución de agentes con MongoDB Atlas.
Como se muestra en el diagrama de arquitectura, MongoDB funciona como la Capa de Datos Operacionales (ODL). El sistema almacena cada transacción como un único documento que contiene JSON canónico normalizado y un registro de auditoría completo de las decisiones de los agentes. Las configuraciones de conversión residen en una colección independiente, lo que permite que los cambios de formato se basen en datos. Esta estructura proporciona la auditabilidad necesaria para el cumplimiento normativo.
Capacidades básicas
Esta demostración muestra cuatro capacidades principales donde el esquema flexible de MongoDB y la IA agentic transforman las operaciones de pago.
Traducción de mensajes basada en datos
Los sistemas heredados suelen codificar la lógica de traducción (por ejemplo, "el campo 4 se asigna al campo 32A"). Esta solución almacena las reglas de traducción y los metadatos en MongoDB junto con los datos, lo que permite que la lógica de traducción se base en datos.
En lugar de recompilar código para cambiar una asignación, se actualiza un documento de configuración en MongoDB. El servicio de conversión lee estas reglas dinámicamente (extrae patrones, asignaciones de campos y rutas de salida) para normalizar los mensajes entrantes ISO 8583 o SWIFT MT al formato JSON canónico.
Transformación basada en configuración:
# Load config from MongoDB config = db.conversion_configs.find_one({"_id": "MT103_to_JSON"}) # Extract fields using patterns from config["extract"] for field_id, pattern in config["extract"].items(): extracted[field_id] = re.search(pattern, message).group(1) # Transform using rules from config["map"] for mapping in config["map"]: value = extracted[mapping["from"]] if "ai" not in mapping: # RULES lane output[mapping["to"]] = value else: # AI lane ai_fields.append({"value": value, "field_type": mapping["ai"]})
Algunos campos no se ajustan a los patrones de expresiones regulares, como el campo SWIFT 70 (información de remesa), que puede contener texto libre con propósitos de pago, referencias de facturas e instrucciones en varias líneas. La configuración marca estos campos para el procesamiento de IA ("ai": "remittance"), y el LLM extrae datos estructurados del texto no estructurado. Este enfoque mantiene reglas deterministas para la mayoría de los campos, pero gestiona el resto complejo mediante inferencia.
Los nuevos formatos de mensajes se habilitan a través de inserciones de documentos: el código del convertidor permanece sin cambios, lo que mantiene la lógica de traducción fuera del ciclo de implementación.
Conversión adaptativa impulsada por inteligencia artificial
Con reglas y metadatos históricos almacenados en la base de datos, puede utilizar IA generativa (LLM) para acelerar la incorporación de nuevos formatos de pago.
Para añadir compatibilidad con un nuevo tipo de mensaje, proporcione un mensaje de ejemplo. El Servicio de Aprendizaje Adaptativo carga todas las configuraciones de conversión existentes de MongoDB y extrae los campos mediante análisis específico del formato. Compara los ID de campo detectados con las asignaciones de las configuraciones existentes. Por ejemplo, si el campo "32A" existe en MT103_to_JSON, se reutiliza esa asignación exacta.
Para los campos que no se encuentran en ninguna configuración existente, un LLM sugiere asignaciones que usted revisa y perfecciona. Esto genera un borrador de configuración listo para su revisión e implementación. Las vías de pago que antes tardaban meses en integrarse ahora se pueden implementar más rápido.
Aprendizaje adaptativo con agregación y LLM:
# Aggregation pipeline: extract field mappings from ALL existing configs pipeline = [ {"$addFields": {"extract_array": {"$objectToArray": "$extract"}}}, {"$unwind": "$map"}, {"$project": {"field_id": "$map.from", "mapping": "$map", "source_config": "$_id"}}, {"$group": {"_id": "$field_id", "mapping": {"$first": "$mapping"}}} ] field_lookup = {doc["_id"]: doc for doc in db.conversion_configs.aggregate(pipeline)} # Match detected fields against learned patterns for field_id in detected_fields: if field_id in field_lookup: matched[field_id] = field_lookup[field_id]["mapping"] else: unknown.append(field_id) # For unknown fields: LLM suggests mappings constrained by format spec suggestions = bedrock.invoke_claude(f"Map {unknown} to {target_format} fields")
La canalización de agregación genera una búsqueda de campo a mapeo a partir de todas las configuraciones en una sola consulta. Los campos conocidos obtienen coincidencias instantáneas. Los campos desconocidos reciben sugerencias de LLM limitadas por los campos compatibles con el formato de destino.
Reparación de pagos de Agentic
Los pagos transfronterizos suelen fallar debido a requisitos de compensación locales, como códigos faltantes, scripts incorrectos o datos institucionales incompletos. Los sistemas tradicionales ponen estas excepciones en cola para su revisión manual, cuya resolución suele tardar días.
El Agente de Resolución gestiona estas excepciones mediante herramientas que el LLM selecciona automáticamente según las cadenas de documentación y las indicaciones del sistema. El patrón guía al LLM hacia opciones más económicas y rápidas primero.
Selección de herramientas del agente de resolución:
from langchain_core.tools import tool from langgraph.prebuilt import create_react_agent def atlas_search(collection: str, query: str, search_fields: list, fuzzy: bool = True) -> dict: """Search MongoDB using Atlas Search. Use fuzzy=False for exact match first.""" pipeline = [{"$search": { "index": f"{collection}_search", "text": {"query": query, "path": search_fields, "fuzzy": {"maxEdits": 2} if fuzzy else {}} }}] results = list(db[collection].aggregate(pipeline)) return {"found": bool(results), "top_result": results[0] if results else None} def vector_search(collection: str, query: str) -> dict: """Semantic search using Atlas Vector Search - matches by meaning, not keywords.""" embedding = voyage_client.embed([query], model="voyage-3").embeddings[0] pipeline = [{"$vectorSearch": { "index": f"{collection}_vector", "path": "embedding", "queryVector": embedding, "numCandidates": 100, "limit": 3 }}] results = list(db[collection].aggregate(pipeline)) return {"found": bool(results), "top_result": results[0] if results else None} agent = create_react_agent(model=llm, tools=[atlas_search, vector_search])
El LLM lee las cadenas de documentación de las herramientas y las indicaciones del sistema para determinar qué herramienta llamar. Atlas Search gestiona búsquedas exactas y coincidencias con tolerancia a errores tipográficos. Vector Search gestiona la clasificación semántica cuando las palabras clave no coinciden, pero el significado sí. Para ilustrar estas capacidades en la práctica, considere los siguientes escenarios de pago:
Japón (transliteración katakana): Un pago a Tokio requiere el nombre del beneficiario en katakana, pero el mensaje entrante contiene caracteres latinos (por ejemplo, Heinrich Mueller). El agente primero verifica la
bank_detailscolección para una traducción conocida. Si no se encuentra, utiliza Atlas Search para realizar coincidencias aproximadas. Como alternativa, llama a un LLM para transliterar el nombre al katakana ("ハインリッヒ・ミュラー").India (Búsqueda de código IFSC): Un pago a India requiere un código IFSC para dirigirse a la sucursal correcta, pero el remitente solo proporciona el nombre del banco y la ciudad. El agente consulta la
ifsc_codescolección para encontrar una coincidencia exacta. Si la entrada contiene errores tipográficos (por ejemplo, "HDFC Connaught" en lugar de "Connaught Place"), Atlas Search realiza la búsqueda aproximada para encontrar el código correcto.
Revisión de participación humana
Los bancos operan en un entorno de alto riesgo donde los cambios autónomos requieren supervisión. Antes de aplicar cualquier reparación, el flujo de trabajo de LangGraph se detiene mediante un mecanismo interrupt(), presentando el cambio propuesto para su aprobación.
El usuario ve:
Valor original: el campo tal como llegó (por ejemplo, "Heinrich Mueller").
Valor propuesto: lo que encontró el agente (por ejemplo, "ハイン リッヒ・ミュラー").
Razonamiento: ¿Qué herramienta se utilizó y por qué?
El usuario puede entonces:
Aprobar: el agente de ejecución aplica el cambio y lo registra en el registro de auditoría.
Rechazar: el flujo de trabajo finaliza y se conserva el valor original.
Modificar: El usuario proporciona un valor corregido, que luego el sistema aplica.
Este proceso garantiza una auditoría completa: los usuarios revisan cada decisión del agente antes de la ejecución y el sistema registra cada cambio con valores anteriores y posteriores y marcas de tiempo.
Implementación HITL de LangGraph:
from langgraph.types import interrupt def human_review_node(state: dict) -> dict: """Pause workflow for human approval.""" # interrupt() halts execution, returns data to caller, waits for resume review_decision = interrupt({ "original_value": state.get("original_value"), "proposed_value": state.get("solution", {}).get("proposed_value"), "confidence": state.get("solution", {}).get("confidence") }) # When resumed: {"approved": True/False, "modified_value": "..."} return {"approved": review_decision.get("approved"), "human_review": review_decision} # Workflow: resolution → human_review → execution workflow.add_edge("resolution", "human_review") # Always review before execution app = workflow.compile(checkpointer=MemorySaver()) # Checkpointer persists state
La función interrupt() es el mecanismo clave. Cuando el flujo de trabajo llega a este nodo, serializa el estado actual, devuelve los datos de revisión al llamador de la API y espera. El frontend muestra estos datos al usuario. Cuando el usuario envía la decisión, la API reanuda el flujo de trabajo con la decisión inyectada como valor de retorno interrupt().
Extensibilidad multirraíl: ejemplo de liquidación en blockchain
El modelo JSON canónico proporciona una abstracción interna estable para integrar múltiples canales de pago al normalizar las intenciones de pago principales (como partes, activos, importes e instrucciones) en una estructura única y consistente. Mediante el modelo de documento polimórfico de MongoDB, los detalles de ejecución y los metadatos específicos de cada canal se almacenan junto con los campos canónicos, sin necesidad de esquemas ni modelos de datos independientes. Esto minimiza la complejidad del protocolo en los sistemas de origen y destino, a la vez que permite que diferentes canales consuman la misma representación de pago.
La demostración muestra este patrón en acción con una integración de Solana: los pagos que contienen campos de liquidación de criptomonedas se enrutan a un servicio de Solana que ejecuta transferencias reales en devnet.
Integración de servicios de Solana:
# Step 1: Convert incoming message to canonical JSON hop1_result = await converter.convert( source_format="pacs.008", # or MT103, ISO8583, etc. target_format="JSON", message=raw_message ) # Step 2: Parse the canonical JSON from conversion result canonical_json = json.loads(hop1_result['converted_message']) # Step 3: Check canonical JSON for crypto settlement fields if canonical_json.get('crypto_blockchain') and canonical_json.get('crypto_receiver_wallet'): # Route to Solana solana_service.transfer( to_pubkey=canonical_json['crypto_receiver_wallet'], amount_sol=50000 ) # step 4: Solana Service Class class SolanaService: def transfer(self, to_pubkey: str, amount_sol: float) -> dict: response = self.client.send_raw_transaction(bytes(tx)) self.client.confirm_transaction(response.value) return { "signature": str(response.value), "explorer_url": f"https://explorer.solana.com/tx/{response.value}?cluster=devnet" }
A diferencia de los sistemas de pago tradicionales, blockchain ofrece una prueba de liquidación integrada. Cada transferencia devuelve una URL de Solana Explorer donde los usuarios verifican en la cadena el remitente, el receptor, el importe, la marca de tiempo y el estado de confirmación de la transacción. Esta transparencia no está disponible con SWIFT ni con las redes de tarjetas, donde la prueba de liquidación requiere una conciliación interna.
La demostración se ejecuta en la red de desarrollo Solana, que utiliza el mismo protocolo que la red principal: las transacciones se firman criptográficamente, se propagan a los validadores y se registran de forma permanente.
¿Por qué MongoDB?
MongoDB proporciona una plataforma de datos unificada para toda la plataforma de procesamiento de pagos, que admite tanto el desarrollo (configuración de formato) como el tiempo de ejecución (procesamiento de transacciones, decisiones de agentes, registros de auditoría) en un solo sistema.
La plataforma utiliza varias capacidades centrales de MongoDB para optimizar estos flujos de trabajo financieros complejos:
Flexibilidad de esquema: El modelo de documentos de MongoDB se alinea de forma natural con los formatos de pago canónicos. Los desarrolladores pueden desarrollar modelos de datos sin migraciones, almacenar datos relacionados (JSON canónico, metadatos, registro de auditoría) en un solo documento y gestionar diversas estructuras de mensajes sin conflictos de esquema.
Búsqueda de Atlas para resolución con tolerancia a errores tipográficos: el agente de resolución utiliza la búsqueda de Atlas cuando fallan las búsquedas exactas: tolerancia a errores tipográficos hasta 2 una distancia de edición de, consultas compuestas en múltiples campos, no se requiere infraestructura de búsqueda externa.
Búsqueda vectorial en Atlas para coincidencia semántica: para una clasificación más allá del texto exacto: similitud semántica para categorizar las descripciones de pago (por ejemplo, "pagar salarios" se asigna al código de propósito SALA), integrado en Atlas sin una base de datos vectorial separada.
Canalizaciones de agregación para aprendizaje adaptativo: el servicio de aprendizaje adaptativo utiliza
$objectToArrayy$unwindpara crear búsquedas de campo a mapeo desde todas las configuraciones en una consulta: procesamiento a nivel de base de datos para reutilización instantánea de patrones.Actualizaciones automáticas de documentos: la atomicidad de un solo documento garantiza que el agente de ejecución actualice los campos de pago y registre el registro de auditoría en una sola operación, algo fundamental para el cumplimiento normativo en servicios financieros de alto riesgo.
En conjunto, estas capacidades hacen de MongoDB el ODL para el procesamiento de pagos impulsado por IA, respaldando las demandas de las finanzas modernas de múltiples vías.
Enfoque del modelo de datos
MongoDB almacena dos tipos de documentos que impulsan el proceso de procesamiento de pagos.
JSON canónico (Documento de pago)
{ "transaction_ref": "MED-CH-ZA-2024-001", "value_date": "2024-12-15", "amount": "180000.00", "currency": "CHF", "debtor_name": "SWISS PHARMA INTERNATIONAL AG", "debtor_account": "CH9300762011623852957", "debtor_bank": "UBSWCHZH80A", "creditor_name": "SOUTH AFRICAN HEALTH SUPPLIES PTY LTD", "creditor_account": "ZA123456789012345678901", "creditor_bank": "ABSAZAJJXXX", "remittance_info": "INVOICE MED-ZA-2024-5678", "charge_bearer": "SHA" "metadata": {...} }
Esta estructura plana actúa como un puente universal con las siguientes asignaciones:
MT103 se asigna a JSON, que se asigna a pacs.008.
MT202 se asigna a JSON, que se asigna a pacs.009.
Un concepto semántico equivale a un nombre de campo y la misma asignación en todos los formatos. Cada documento también incluye un objeto metadata con detalles de procesamiento y un objeto audit_trail que registra cada decisión del agente (valor anterior, valor nuevo, herramienta utilizada, marca de tiempo).
Configuración de conversión
El sistema admite conversiones multisalto mediante JSON y conversiones directas para rutas comunes. El siguiente ejemplo muestra una configuración de conversión directa:
{ "_id": "MT103_to_pacs.008", "extract": { "20": ":20:([^\\n:]+)", "32A": ":32A:([^\\n:]+)", "50K": ":50K:([\\s\\S]*?)(?=:[0-9])" }, "map": [ {"from": "20", "to": ["transaction_ref"]}, {"from": "32A", "to": ["value_date", "currency", "amount"], "split": [6, 9]}, {"from": "50K", "to": ["debtor_account", "debtor_name"], "multiline": true}, {"from": "70", "to": "remittance_info", "ai": "remittance"} ], "output": { "transaction_ref": "Document.FIToFICstmrCdtTrf.CdtTrfTxInf.PmtId.InstrId", "amount": "Document.FIToFICstmrCdtTrf.CdtTrfTxInf.IntrBkSttlmAmt.#text" } }
Tres secciones definen la conversión:
extract: Extrae campos mediante expresiones regulares.map:Los transforma (dividiendo compuestos, formateando fechas, enrutando a IA).output:Coloca valores en el formato de destino.
Las inserciones de documentos permiten nuevos formatos de mensajes, eliminando la lógica de traducción del ciclo de implementación. Para las nuevas vías de pago, el modelo canónico acelera la conectividad al servir como punto de integración JSON universal, lo que garantiza que la lógica empresarial principal se mantenga intacta a medida que se escala.
Construir la solución
Para la implementación completa, siga las instrucciones en el repositorio de GitHub.
La Plataforma de Procesamiento de Pagos consta de dos microservicios: un Servicio de Traducción de Mensajes que gestiona la conversión de formato mediante un pipeline de tres vías (que incluye un Generador de Configuraciones para la integración de formatos en tiempo de desarrollo) y un Agente de Pagos que repara transacciones no válidas mediante un flujo de trabajo multiagente LangGraph. Ambos servicios comparten MongoDB Atlas como su ODL.
Implementar el servicio de conversión de pagos
El convertidor transforma mensajes entre formatos (MT103, ISO 20022, ISO 8583) mediante el uso de la configuración almacenada en MongoDB en lugar de lógica codificada.
Configurar la canalización de traducción: configure el extractor para enrutar campos según la complejidad: patrones de expresiones regulares deterministas para campos estructurados, como referencias y montos de transacciones, y llamadas LLM a través de AWS Bedrock para campos no estructurados, como información de remesas.
Almacenar configuraciones de conversión en MongoDB: Cada documento de configuración contiene tres secciones:
extract(patronesmapde expresiones regulares), (transformaciones de campos) youtput(rutas de formato de destino). El conversor las lee en tiempo de ejecución; no se requieren cambios de código para nuevos formatos.Construir el generador de salida: El generador toma los campos transformados y construye el formato de destino. Para ISO,20022 el generador genera XML válido con los espacios de nombres adecuados. Para destinos JSON, genera la estructura canónica plana.
Implementar el agente de pagos con LangGraph
El agente repara las transacciones que no pasan la validación (códigos IFSC faltantes, scripts incorrectos, datos de beneficiarios incompletos) mediante un flujo de trabajo de múltiples agentes.
Crear el agente supervisor: este agente recibe una tarea de reparación (por ejemplo, "creditor_name necesita Katakana para Japón") y determina si se debe dirigir al agente de resolución para su investigación o directamente a la ejecución si se conoce la solución.
Construya el Agente de Resolución con herramientas: configúrelo con tres herramientas:
atlas_search(búsqueda en base de datos con coincidencia exacta o difusa),vector_search(similitud semántica para clasificación) ytransliterate_text(conversión de scripts basada en LLM). El agente determina qué herramienta usar según el contexto del problema.Añadir el punto de control de Revisión Humana: Use la
interrupt()función de LangGraph para pausar el flujo de trabajo antes de aplicar los cambios. El usuario ve el valor original, la corrección propuesta, el nivel de confianza y el razonamiento. Puede aprobar, rechazar o modificar antes de que se reanude el flujo de trabajo.Implementar el agente de ejecución: tras la aprobación, este agente escribe el valor corregido en el JSON canónico y agrega una entrada al registro de auditoría con el valor anterior, el valor nuevo, la herramienta utilizada y la marca de tiempo.
Habilitar el aprendizaje adaptativo para nuevos formatos
Al incorporar un nuevo formato de pago, el sistema genera automáticamente la configuración aprendiendo de los patrones existentes.
Cargar configuraciones existentes: el Servicio de aprendizaje adaptativo consulta a MongoDB todas las configuraciones de conversión y crea un mapa de los ID de campo con sus asignaciones canónicas (por ejemplo, el campo "32A" se asigna a,
value_datecurrencyamounty).Analizar el mensaje de muestra: mediante el uso de extractores específicos de 8583 formato (como patrones de etiquetas SWIFT, posiciones de campo ISO y rutas XML), el servicio identifica todos los campos presentes en el nuevo formato.
Coincidir con patrones conocidos e inferir campos desconocidos: Para los campos que existen en otras configuraciones, el sistema reutiliza la asignación exacta. Para los campos que no se encuentran en ninguna parte, el servicio llama a un LLM con contexto sobre el tipo de formato para sugerir una asignación.
Generar y revisar la configuración: El servicio genera un borrador del documento de configuración con todas las asignaciones. El sistema marca los campos que no superan el umbral de confianza para su revisión. Una vez aprobado, inserta el documento en MongoDB y el convertidor lo procesa inmediatamente.
Aprendizajes clave
Canales de agregación para aprendizaje adaptativo: Cree búsquedas de campo a mapeo a partir de todas las configuraciones existentes en una sola consulta usando
$objectToArrayy.$unwindLos campos conocidos reciben mapeos automáticos; los campos desconocidos reciben sugerencias de LLM limitadas por especificaciones de formato.Búsqueda en Atlas para tolerancia a errores tipográficos: cuando fallan las búsquedas exactas en bases de datos, la búsqueda difusa con distancia de edición maneja los errores ortográficos (por ejemplo, "HDFC Connaught" se asigna a "HDFC Connaught Place") sin recurrir a una inferencia de IA más lenta.
Conversión basada en configuración: Almacene patrones de extracción, asignaciones de campos y rutas de salida en documentos MongoDB en lugar de código de aplicación. Añadir un nuevo formato de pago se convierte en una inserción en la base de datos, no en una implementación.
Cumplimiento de la intervención humana: utilice el
interrupt()mecanismo LangGraph para pausar los flujos de trabajo de los agentes antes de aplicar cambios, presentar correcciones propuestas a los usuarios y reanudarlos solo después de una aprobación explícita.Patrón de supervisor multiagente: Dirige las tareas de investigación, como la búsqueda y transliteración de IFSC, a un agente de resolución con herramientas de base de datos, y las tareas de ejecución, como las actualizaciones de campos, a un agente de ejecución. Esta separación garantiza una experiencia especializada y registros de auditoría más precisos.
Capa de datos operativos unificada: Almacene JSON canónico, configuraciones de conversión y registros de auditoría en MongoDB Atlas. Esta centralización elimina los silos de datos entre las vías de pago y proporciona el contexto transaccional completo que necesitan los agentes.
Autores
Wei You Pan, MongoDB
Kiran Tulsulkar, MongoDB
Ainhoa Múgica, MongoDB
Daniel Jamir, MongoDB