Modernice los pagos con Agentic IA, un modelo canónico basado en JSON y MongoDB Atlas para conectar ISO 20022, ISO 8583 y Stablecoins.
caso de uso: Inteligencia artificial, Pagos
Industrias: Servicios financieros
Productos y herramientas: MongoDB Atlas, búsqueda vectorial en MongoDB Atlas, Búsqueda en MongoDB Atlas
emparejar: Amazon Bedrock, LangChain, LangGraph
Descripción general de la solución
Los procesadores de pagos enfrentan hoy en día un problema de interoperabilidad. Deben gestionar los mensajes de tarjetas heredados (ISO 8583), las normas modernas de datos enriquecidos (ISO 20022) y los medios de pago en criptomonedas en evolución. Los sistemas tradicionales dependen de pipelines de extracción, transformación y carga (ETL) rígidos que dejan de funcionar cuando aparece un nuevo campo o cambia una normativa local.
Para conectar la infraestructura heredada y el futuro de las finanzas, un modelo de pago canónico nativo JSON actúa como la base esencial para la orquestación moderna. En un escenario posterior al ISO 20022, soluciona la fragmentación del dialecto semántico observada en diferentes implementaciones, como CBPR+ y FedNow. Previene los riesgos de truncamiento de datos identificados por SWIFT, en los que los sistemas internos heredados eliminan los datos enriquecidos de ISO 20022 porque no tienen la capacidad para almacenar campos expandidos. Debido a que el modelo capta la profundidad completa del mensaje en un formato JSON flexible, el sistema no pierde ningún dato durante la traducción.
Junto con una abstracción universal de API, la plataforma permite a los equipos de TI alejarse de mapas de bits binarios opacos y estándares fragmentados hacia un entorno amigable para desarrolladores. Este entorno permite un desarrollo acelerado y reutilización, ya que nuevas vías de pago—desde la UPI de la India hasta las monedas estables—pueden integrarse como extensiones modulares en lugar de como reescrituras del código central.
Más allá de la velocidad de desarrollo, este modelo establece una esquema de pago centralizada y gobernanza de datos, permitiendo actualizaciones de un solo punto donde un nuevo campo regulatorio se define una vez y se hereda en toda la lógica de transformación. Este cambio de esquemas SQL rígidos a un modelo orientado a documentos flexible elimina la deuda técnica y la carga de mantenimiento típicas de los hubs heredados. Al normalizar los datos en un modelo de datos verdaderamente estandarizado y coherente desde el principio del ciclo de vida, el modelo permite una interacción temprana con el cumplimiento y una reparación proactiva en curso. En última instancia, proporciona la administración definida y la agilidad operativa necesarias para navegar en un mundo multicanal que evoluciona constantemente bajo nuevas regulaciones como los Mercados de Criptoactivos (MiCA).
El siguiente video da un ejemplo de un pago transfronterizo de DE a JP con transliteración japonesa de Katakana impulsada por un agente del nombre del acreedor:
Esta solución demuestra cómo un modelo de pagos canónico con Agentic AI puede redefinir el procesamiento de pagos. Al pasar de esquemas SQL rígidos a un modelo canónico flexible basado en JSON, las instituciones financieras pueden otorgar a los agentes de IA la capacidad de ingerir, normalizar, enrutar y reparar de forma autónoma transacciones a lo largo de cualquier sistema de pago, como una transferencia SWIFT o una transferencia 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 de múltiples vías de pago debido a las siguientes propiedades:
Nativo de API: Los pagos modernos, especialmente en el ámbito de las criptomonedas y la tecnología financiera, utilizan comunicación impulsada por API (REST/GraphQL/RPC), que está inherentemente basada en JSON. Un formato nativo reduce la latencia y la complejidad de la traducción.
Flexibilidad del esquema: JSON gestiona campos comunes (monto, remitente) mientras admite campos específicos del riel (por ejemplo, límites de gas para criptomonedas, códigos zengin para Japón, información de la remesa para ISO 20022) sin alterar el esquema central.
Preparación de la IA: los LLM se entrenan con código y JSON. Los agentes pueden analizar la estructura de datos directamente, detectar anomalías y realizar diversos mapeos de manera más eficaz que con bitmaps 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 la transacción, desde la incorporación al formato hasta la ejecución y la reparación. La arquitectura delega responsabilidades específicas a componentes especializados:
compilar
Config Builder: Acelera la incorporación de formatos durante el desarrollo. Los pipelines de agregación extraen asignaciones de campos de configuraciones existentes, mientras que un LLM sugiere asignaciones para campos desconocidos. Los nuevos formatos que antes llevaban meses en integrarse ahora pueden configurarse en semanas. Una vez configurado, la plataforma gestiona el procesamiento de transacciones en vivo.
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 que se construyen en el proceso de creación descrito anteriormente. Los campos complejos y desestructurados, como la información de remesas, se dirigen a una línea de IA impulsada por Claude.
Servicio de Res olución Agente: un sistema multiagente que soluciona transacciones que no superan la validación. Un supervisor asigna tareas a agentes especializados: el agente de resolución encuentra los valores correctos para los campos que faltan o son inválidos (mediante búsquedas en bases de datos, Atlas Search o inferencias de IA), y el agente de ejecución aplica los cambios aprobados y registra un historial de auditoría.
Figura 1. La arquitectura de la Plataforma de Procesamiento de Pagos muestra la traducción de mensajes, el enrutamiento de JSON canónico y la resolución mediante agentes con MongoDB Atlas
Como se muestra en el diagrama de arquitectura, MongoDB sirve como la Capa de Datos Operacional (ODL). El sistema almacena cada transacción como un único documento que contiene un JSON canónico normalizado y una pista de auditoría completa de las decisiones de los agentes. Las configuraciones de conversión se encuentran en una colección separada, lo que hace que los cambios de formato dependan de los datos. Esta estructura proporciona la auditoría necesaria para el cumplimiento normativo.
Capacidades básicas
Esta demostración exhibe cuatro capacidades fundamentales que transforman las operaciones de pago gracias al esquema flexible de MongoDB y la IA agente.
Traducción de mensajes basada en datos
Los sistemas heredados suelen codificar de forma rígida la lógica de traducción; por ejemplo, "campo 4 está relacionado con campo 32A". Esta solución almacena reglas de traducción y metadatos en MongoDB junto con los datos, haciendo que la lógica de traducción sea guiada por datos.
En lugar de recompilar el código para cambiar un mapeo, se actualiza un documento de configuración en MongoDB. El servicio de conversión lee estas normas de forma dinámica—extrayendo patrones, mapeo de campos y rutas para la salida—con el fin de normalizar mensajes ISO 8583 o SWIFT MT entrantes al formato canónico JSON.
Transformación impulsada por 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 resisten patrones regex como el campo SWIFT 70 (información de remesas), que puede contener propósitos de pago en texto libre, referencias de facturas e instrucciones distribuidas en varias líneas. La configuración marca estos campos para el procesamiento de IA ("ai": "remesa"), y el LLM extrae datos estructurados del texto no estructurado. Este enfoque mantiene reglas determinísticas para la mayoría de los campos, pero gestiona el resto complejo a través de la inferencia.
Se habilitan nuevos formatos de mensaje mediante inserciones de documentos: el código del conversor permanece sin cambios, manteniendo la lógica de traducción fuera del ciclo de implementación.
Conversión adaptativa potenciada por IA genérica
Con las reglas y los metadatos históricos almacenados en la base de datos, puedes usar IA generativa (LLMs) para acelerar la incorporación de nuevos formatos de pago.
Para agregar soporte para un nuevo tipo de mensaje, proporcione un mensaje de muestra. El Servicio de Aprendizaje Adaptativo carga todas las configuraciones de conversión existentes desde MongoDB y extrae los campos utilizando un análisis específico del formato. Coincide los ID de campo detectados con las asignaciones de las configuraciones existentes. Por ejemplo, si el campo "32A" existe en MT103_to_JSON, ese mapeo exacto se reutiliza.
Para los campos que no se encuentran en ninguna configuración existente, un LLM sugiere asignaciones que se pueden revisar y refinar. Esto genera una configuración de borrador lista para la revisión e implementación humanas. Los carriles de pago que antes tardaban meses en integrarse ahora pueden incorporarse 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")
El pipeline de agregación crea una búsqueda de mapeo de campo a campo a partir de todas las configuraciones en una sola query. Los campos conocidos obtienen coincidencias instantáneas. Los campos desconocidos reciben sugerencias de LLM restringidas por los campos compatibles con el formato de destino.
Reparación Agéntica de Pagos
Los pagos transfronterizos suelen fallar debido a requisitos de compensación local, como códigos faltantes, scripts incorrectos o datos institucionales incompletos. Los sistemas tradicionales ponen estas excepciones en cola para su revisión manual, lo que a menudo lleva días resolverlas.
El agente de resolución gestiona estas excepciones utilizando herramientas que el LLM selecciona de manera autónoma en función de docstrings e indicaciones del sistema. El patrón guía al LLM hacia opciones más económicas y rápidas en primer lugar.
Selección de herramienta 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 los docstrings de las herramientas y las indicaciones del sistema para determinar qué herramienta llamar. Atlas Search gestiona búsquedas exactas y coincidencias tolerantes a errores ortográficos. Búsqueda vectorial maneja 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 en Katakana): Un pago a Tokio requiere el nombre del beneficiario en el script Katakana, pero el mensaje entrante contiene caracteres latinos (por ejemplo, Heinrich Mueller). El agente primero revisa el
bank_detailsColección de una traducción conocida. Si no lo encuentra, utiliza Atlas Search para las coincidencias aproximadas. Como alternativa, llama a un LLM para transliterar el nombre a Katakana ("ハインリッヒ・ミュラー").India (Búsqueda de códigos IFSC): Un pago a India requiere un código IFSC para encaminarlo a la sucursal correcta, pero el remitente solo proporciona el nombre del banco y la ciudad. El agente query la colección
ifsc_codespara obtener una coincidencia exacta. Si la entrada contiene errores tipográficos (por ejemplo, "HDFC Connaught" en lugar de "Connaught Place"), Atlas Search gestiona la búsqueda difusa para encontrar el código correcto.
Revisión con participación humana
Los bancos operan en un entorno de alto riesgo donde los cambios autónomos requieren supervisión. Antes de que se aplique cualquier reparación, el flujo de trabajo de LangGraph se detiene utilizando un mecanismo de interrupt(), presentando el cambio propuesto para su aprobación humana.
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 termina y se preserva el valor original.
Modifica: El usuario proporciona un valor corregido, que el sistema aplica posteriormente.
Este proceso asegura una auditoría completa: los usuarios hacen una revisión de cada decisión del agente antes de su ejecución, y el sistema registra en el registro cada cambio con valores antes y después, junto con 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 la revisión al solicitante de la API y espera. El frontend muestra estos datos al usuario. Cuando el usuario envíe la decisión, la API reanudará el flujo de trabajo con la decisión inyectada como el valor de retorno de interrupt().
Extensibilidad multi-Rail: 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 la intención de pago principal, como participantes, activos, montos e instrucciones, en una estructura única y coherente. Al utilizar el modelo orientado a documentos polimórfico de MongoDB, los detalles de ejecución específicos de Rail y los metadatos se almacenan junto a campos canónicos sin requerir esquemas o modelos de datos separados. Esto mantiene la complejidad del protocolo fuera de los sistemas ascendentes y descendentes mientras permite que diferentes vías 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 en criptomonedas se dirigen 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 proporciona una prueba incorporada de liquidación. Cada transferencia devuelve una URL del Explorer de Solana donde los usuarios verifican el remitente de la transacción en la cadena, el receptor, la cantidad, la marca de tiempo y el estado de confirmación. Esta transparencia no está disponible con SWIFT ni con redes de tarjetas, donde la prueba de liquidación requiere conciliación en la oficina administrativa.
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 la plataforma unificada de datos para toda la Plataforma de Procesamiento de Pagos - que soporta tanto el desarrollo (configuración de formato) como la ejecución (procesamiento de transacciones, toma de decisiones por parte del agente, rastreo de auditoría) en un solo sistema.
La plataforma utiliza varias capacidades clave de MongoDB para agilizar estos complejos flujos de trabajo financieros:
Flexibilidad del esquema: El modelo orientado a documentos de MongoDB se alinea de forma natural con los formatos de pago canónicos. Los desarrolladores pueden evolucionar modelos de datos sin migraciones, almacenar datos relacionados (JSON canónico, metadatos, registro de auditoría) en un solo documento y gestionar estructuras diversas de mensajes sin conflictos de esquemas.
Búsqueda Atlas para resolución tolerante a errores tipográficos: El Agente de Resolución utiliza Búsqueda Atlas cuando las búsquedas exactas fallan: tolerancia a errores tipográficos hasta 2 distancia de edición, consultas compuestas en múltiples campos, sin necesidad de infraestructura de búsqueda externa.
Búsqueda vectorial de Atlas para la coincidencia semántica: para una clasificación más allá del texto exacto, similitud semántica para categorizar las descripciones de los pagos (por ejemplo, " pagar salarios " se mapea con el código de propósito SALA), integrado en Atlas sin una base de datos vectorial independiente.
Pipelines de agregación para el aprendizaje adaptativo: el Servicio de aprendizaje adaptativo utiliza
$objectToArrayy$unwindpara compilar búsquedas de campo a mapeo desde todas las configuraciones en una sola query: procesamiento a nivel de base de datos para reutilización instantánea de patrones.Actualizaciones Automáticas de Documentos: La atomicidad de documentos individuales garantiza que el Agente de Ejecución actualice los campos de pago y registre la trazabilidad de la 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, adaptándose a las demandas de las finanzas multicarril modernas.
Enfoque de modelo de datos
MongoDB almacena dos tipos de documentos que potencian la pipeline 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 a la misma asignación en todos los formatos. Cada documento también incluye un objeto metadata que contiene los detalles del procesamiento y un 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 tanto conversiones multinivel a través de JSON como 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 utilizando expresiones regulares.mapTransforma los datos (dividiendo compuestos, formateando fechas y enrutar a la IA).outputColoca los valores en el formato objetivo.
Los insertos en los documentos permiten la incorporación de nuevos formatos de mensaje, removiendo la lógica de traducción del ciclo de implementación. Para nuevas infraestructuras de pago, el modelo canónico acelera la conectividad al servir como un punto de integración universal de JSON, garantizando que la lógica empresarial central permanezca intacta a medida que escales.
Compilar la solución
Para la implementación completa, sigue 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 formatos a través de un pipeline de tres carriles, incluidos un Generador de Configuración para la incorporación de formatos durante el desarrollo, y un Agente de Pagos que repara transacciones inválidas utilizando un flujo de trabajo multiagente de LangGraph. Ambos servicios comparten MongoDB Atlas como su ODL.
Implemente el servicio de conversión de pagos
El convertidor transforma los mensajes entre formatos (MT103, ISO 20022, ISO 8583) utilizando configuraciones almacenadas en MongoDB en lugar de lógica codificada rígidamente.
Configurar la pipeline de traducción: Configure el extractor para enrutar campos según su complejidad: patrones regex determinísticos para campos estructurados como referencias de transacciones y montos, y llamadas a LLM a través de AWS Bedrock para campos no estructurados como la información de remesas.
Almacene configuraciones de conversión en MongoDB: Cada documento de configuración contiene tres secciones:
extract(patrones regex),map(transformaciones de campo), youtput(rutas de formato objetivo). El convertidor los lee en tiempo de ejecución — no se necesitan cambios de código para nuevos formatos.Compila el generador de resultados: El constructor toma los campos transformados y construye el formato objetivo. Para ISO 20022, el generador crea XML válido con los espacios de nombres adecuados. Para objetivos JSON, genera la estructura canónica plana.
Implementar el agente de pago con LangGraph
El agente repara las transacciones que no pasan la validación (falta de códigos IFSC, scripts incorrectos o datos incompletos del beneficiario) utilizando un flujo de trabajo multiagente.
Crear el agente supervisor: Este agente recibe una tarea de reparación (por ejemplo, "nombre_del_acreedor necesita Katakana para Japón") y determina si debe derivar a un agente de resolución para investigación o directamente a ejecución si la solución ya se conoce.
Compila el Agente de Resolución con herramientas: equipa con tres herramientas:
atlas_search(búsqueda en la 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 utilizar según el contexto del problema.Agrega el punto de control de revisión humana: Utiliza la función
interrupt()de LangGraph para pausar el flujo antes de aplicar cambios. El usuario visualiza el valor original, la solución propuesta, la puntuación de confianza y el razonamiento. Pueden aprobar, rechazar o modificar antes de que el flujo de trabajo se reanude.Implementa el agente de ejecución: Cuando se aprueba, este agente escribe el valor corregido en el JSON canónico y añade una entrada al historial de auditoría con el valor anterior, valor nuevo, herramienta utilizada y 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: Adaptive Learning Service query MongoDB para todas las configuraciones de conversión y compila un mapa de los ID de campo con sus asignaciones canónicas (por ejemplo, el campo "32A" se asigna a
value_date,currencyyamount).Analizar el mensaje de muestra: Al utilizar extractores específicos de formatos, como patrones de etiquetas SWIFT, posiciones de campos ISO 8583 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 el mapeo exacto. Para campos que no se encuentran en ningún lugar, el servicio llama a un LLM con contexto sobre el tipo de formato para sugerir un mapeo.
Genere y revise la configuración: El servicio ofrece un documento de configuración preliminar con todas las asignaciones. El sistema señala los campos que están por debajo del umbral de confianza para revisión humana. Una vez aprobado, inserta el documento en MongoDB: el convertidor lo procesa inmediatamente.
Lecciones clave
Pipelines de agregación para el aprendizaje adaptativo: construye búsquedas de mapeo de campo a partir de todas las configuraciones existentes en una sola query utilizando
$objectToArrayy$unwind. Los campos conocidos reciben asignaciones automáticas; los campos desconocidos reciben sugerencias de LLM limitadas por especificaciones de formato.Atlas Search para tolerancia a errores tipográficos: Cuando las búsquedas exactas en la base de datos fallan, la búsqueda difusa con distancia de edición gestiona 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: almacena patrones de extracción, mapeos de campos y rutas de salida en documentos de MongoDB en lugar de en el código de la aplicación. Agregar un nuevo formato de pago se convierte en una inserción de base de datos, no en una implementación.
Cumplimiento humano en el ciclo: Utilice el mecanismo
interrupt()de LangGraph para pausar los flujos de trabajo del agente antes de aplicar cambios, presentar correcciones propuestas a los usuarios y reanudar solo después de la aprobación explícita.Patrón multiagente de Supervisor: Asigna tareas de investigación, como la consulta de IFSC y la transliteración, a un agente de resolución con herramientas de bases de datos, y tareas de ejecución, como las actualizaciones de campos, a un agente de ejecución. Esta separación garantiza una experiencia enfocada y una auditoría de seguimiento más limpia.
Capa de datos operativos unificada: almacena el JSON canónico, las configuraciones de conversión y las pistas de auditoría en MongoDB Atlas. Esta centralización elimina los silos de datos entre los carriles de pago y proporciona el contexto completo de la transacción que los agentes necesitan.
Autores
Wei You Pan, MongoDB
Kiran Tulsulkar, MongoDB
Ainhoa Múgica, MongoDB
Daniel Jamir, MongoDB