Ejemplos Prácticos
Tres ejemplos con complejidad creciente: desde el flujo RAG mínimo hasta un agente asegurador completo con formulario, categorización, enrutamiento, suspensión e informes diferenciados.
Ejemplo 1 — RAG Chat (Simple)
Objetivo: Responder a las preguntas de los usuarios acudiendo a los documentos empresariales y a la Knowledge Base. El flujo más sencillo y más común.
Flujo:
Begin → Retrieval → LLM → MessageConfiguración Completa
Nodo Begin
| Parámetro | Valor |
|---|---|
| mode | conversational |
| inputFields | (vacío) |
Nodo Retrieval (retrieval_1)
| Parámetro | Valor |
|---|---|
| query | {{sys.query}} |
| topK | 10 |
| scoreThreshold | 0.5 |
| useReranking | true |
| companyDocs | true |
| knowledgeBase | true |
| legalSources | false |
Nodo LLM (llm_1)
| Parámetro | Valor |
|---|---|
| model | writer |
| temperature | 0.3 |
| maxTokens | 2048 |
System Prompt:
Eres un asistente empresarial preciso y profesional. Responde siempre en español.
Basa tus respuestas EXCLUSIVAMENTE en los documentos proporcionados en el contexto.
Si la información requerida no está en los documentos, indícalo explícitamente: no inventes.
Cita siempre las fuentes con referencias numéricas [N].User Prompt:
Documentos de contexto:
{{retrieval_1.formalized_content}}
Pregunta del usuario:
{{sys.query}}Nodo Message (message_1)
| Parámetro | Valor |
|---|---|
| content | {{llm_1.content}} |
| format | markdown |
| showCitations | true |
Que Aprendes
- Cómo usar
{{sys.query}}como consulta de retrieval. - Cómo pasar
{{retrieval_1.formalized_content}}al prompt LLM. - El patrón fundamental Begin → Retrieval → LLM → Message.
- Cómo el nodo Message gestiona citas y formato.
Ejemplo 2 — Smart Router (Medio)
Objetivo: Gestionar preguntas de distintos tipos con LLM diferentes. Las preguntas técnicas usan el modelo writer para respuestas en profundidad; las preguntas simples usan el modelo planner para mayor velocidad; las preguntas fuera de ámbito reciben un mensaje estático.
Flujo:
Begin → Categorize → [Tecnico] → LLM writer → Message respuesta técnica
→ [Simple] → LLM planner → Message respuesta rápida
→ [FueraAmbito] → Message estáticoConfiguración Completa
Nodo Begin
| Parámetro | Valor |
|---|---|
| mode | conversational |
Nodo Categorize (categorize_1)
| Parámetro | Valor |
|---|---|
| input | {{sys.query}} |
| minConfidence | 0.65 |
Categorías:
| Nombre | Descripción | Goto |
|---|---|---|
| Tecnico | Preguntas sobre productos, especificaciones técnicas, procedimientos, manuales, instalaciones, configuraciones, averías técnicas | retrieval_tecnico |
| Simple | Preguntas de carácter general, saludos, solicitudes de aclaración breve, preguntas sobre servicios básicos | llm_rapido |
| FueraAmbito | Preguntas no pertinentes a la actividad empresarial, temas personales, contenidos no permitidos | message_fuera_ambito |
Rama Técnica
Nodo Retrieval (retrieval_tecnico):
| Parámetro | Valor |
|---|---|
| query | {{sys.query}} |
| topK | 15 |
| useReranking | true |
| companyDocs | true |
| knowledgeBase | true |
Nodo LLM writer (llm_tecnico):
| Parámetro | Valor |
|---|---|
| model | writer |
| temperature | 0.2 |
| maxTokens | 3000 |
System Prompt:
Eres un experto técnico empresarial. Proporciona respuestas detalladas, precisas y estructuradas.
Usa listas con viñetas y encabezados cuando sea útil. Cita las fuentes con [N].
La pregunta ha sido clasificada como TÉCNICA (confianza: {{categorize_1.confidence}}).User Prompt:
Documentación técnica disponible:
{{retrieval_tecnico.formalized_content}}
Pregunta técnica:
{{sys.query}}Nodo Message (message_tecnico):
| Parámetro | Valor |
|---|---|
| content | {{llm_tecnico.content}} |
| format | markdown |
| showCitations | true |
Rama Simple
Nodo LLM planner (llm_rapido):
| Parámetro | Valor |
|---|---|
| model | planner |
| temperature | 0.5 |
| maxTokens | 512 |
System Prompt:
Eres un asistente empresarial amable. Responde de forma concisa y directa.User Prompt:
{{sys.query}}Nodo Message (message_rapido):
| Parámetro | Valor |
|---|---|
| content | {{llm_rapido.content}} |
| format | markdown |
| showCitations | false |
Rama Fuera de Ámbito
Nodo Message (message_fuera_ambito):
| Parámetro | Valor |
|---|---|
| content | Esta pregunta no está dentro del ámbito del asistente. Puedes preguntarme sobre productos, procedimientos técnicos o servicios empresariales. |
| format | plain |
| showCitations | false |
Que Aprendes
- Cómo usar Categorize para el enrutamiento semántico sin condiciones rígidas.
- Cómo crear ramas paralelas con LLM distintos para eficiencia y calidad.
- Cómo usar
{{categorize_1.confidence}}en el prompt para mayor transparencia. - Cómo terminar ramas con mensajes estáticos o dinámicos.
Ejemplo 3 — Análisis de Siniestro Asegurador (Complejo)
Objetivo: Gestionar toda la pipeline de evaluación de un siniestro asegurador. El flujo recoge los datos iniciales, categoriza el tipo de siniestro, recupera pólizas y normativa aplicable, analiza la cobertura y — si la cobertura no está confirmada — solicita documentación adicional al usuario antes de generar el informe final.
Flujo completo:
Begin (formulario)
→ Categorize (tipo de siniestro)
→ VariableAssigner (prepara consulta)
→ Retrieval (pólizas + normativa)
→ LLM Análisis (evaluación de cobertura)
→ Switch (¿COBERTURA CONFIRMADA?)
→ [SI] LLM Informe Positivo → Message Resultado Positivo
→ [NO] UserFillUp (documentos adicionales)
→ Retrieval suplementario
→ LLM Informe Negativo → Message Resultado NegativoConfiguración Completa
Nodo Begin
| Parámetro | Valor |
|---|---|
| mode | task |
Input Fields:
| Nombre | Etiqueta | Tipo | Obligatorio |
|---|---|---|---|
tipoSiniestro | Tipo de Siniestro | select [Auto, Vida, Hogar, Responsabilidad Civil, Otro] | Sí |
fechaSiniestro | Fecha del Evento | date | Sí |
descripcion | Descripción del Suceso | text | Sí |
numeroPoliza | Número de Póliza | string | Sí |
importoEstimado | Importe del Daño Estimado (€) | number | No |
Nodo Categorize (categorize_1)
| Parámetro | Valor |
|---|---|
| input | {{sys.inputs.tipoSiniestro}}: {{sys.inputs.descripcion}} |
| minConfidence | 0.70 |
Categorías:
| Nombre | Descripción | Goto |
|---|---|---|
| Auto | Accidentes de tráfico, daños al vehículo, robo de auto, responsabilidad civil auto | varassign_query |
| Vida | Fallecimiento, invalidez permanente, enfermedad grave, accidentes | varassign_query |
| Hogar | Daños en la vivienda, incendio, inundación, robo en casa, responsabilidad civil hogar | varassign_query |
| RC | Responsabilidad civil frente a terceros, daños a personas o cosas causados por el asegurado | varassign_query |
| Otro | Siniestros no clasificables en las categorías anteriores | varassign_query |
(Todas las categorías convergen en el nodo siguiente; el valor {{categorize_1.category}} se usa en la consulta)
Nodo VariableAssigner (varassign_query)
assignments:
- name: consultaBusqueda
type: concat
value: "Siniestro {{categorize_1.category}} poliza {{sys.inputs.numeroPoliza}} cobertura condiciones exclusiones {{sys.inputs.descripcion}}"
- name: resumenSiniestro
type: concat
value: |
TIPO SINIESTRO: {{sys.inputs.tipoSiniestro}} (categoría: {{categorize_1.category}})
FECHA EVENTO: {{sys.inputs.fechaSiniestro}}
NÚMERO PÓLIZA: {{sys.inputs.numeroPoliza}}
IMPORTE ESTIMADO: {{sys.inputs.importoEstimado}} EUR
DESCRIPCIÓN: {{sys.inputs.descripcion}}Nodo Retrieval Principal (retrieval_polizze)
| Parámetro | Valor |
|---|---|
| query | {{varassign_query.consultaBusqueda}} |
| topK | 20 |
| scoreThreshold | 0.45 |
| useReranking | true |
| companyDocs | true |
| knowledgeBase | true |
| legalSources | true |
Nodo LLM Análisis de Cobertura (llm_analisi)
| Parámetro | Valor |
|---|---|
| model | writer |
| temperature | 0.1 |
| maxTokens | 3000 |
| jsonMode | false |
System Prompt:
Eres un perito de seguros senior con 20 años de experiencia.
Analiza la documentación proporcionada y determina si el siniestro está cubierto por la póliza.
REGLAS CRÍTICAS:
1. Basa la evaluación EXCLUSIVAMENTE en los documentos proporcionados. No supongas coberturas no documentadas.
2. Cita siempre las referencias contractuales y normativas con [N].
3. Concluye SIEMPRE tu análisis con una de las dos frases exactas:
- "VEREDICTO: COBERTURA CONFIRMADA" si el siniestro está dentro de las coberturas de la póliza
- "VEREDICTO: COBERTURA NO CONFIRMADA" si faltan evidencias de cobertura o hay exclusiones aplicables
4. Tras el veredicto, enumera la documentación adicional necesaria (si la hay).User Prompt:
DATOS DEL SINIESTRO:
{{varassign_query.resumenSiniestro}}
DOCUMENTACIÓN DE PÓLIZA Y NORMATIVA:
{{retrieval_polizze.formalized_content}}
Ejecuta la evaluación pericial completa siguiendo las reglas operativas.Nodo Switch (switch_copertura)
| Parámetro | Valor |
|---|---|
| elseGoto | userfillup_integrativi |
Condiciones:
| Variable | Operador | Valor | Goto |
|---|---|---|---|
{{llm_analisi.content}} | contains | COBERTURA CONFIRMADA | llm_report_positivo |
Rama Positiva — LLM Informe (llm_report_positivo)
| Parámetro | Valor |
|---|---|
| model | writer |
| temperature | 0.2 |
| maxTokens | 2500 |
System Prompt:
Eres un experto en comunicación aseguradora. Redacta informes profesionales y claros.User Prompt:
Sobre la base del siguiente análisis pericial, redacta un informe oficial de aceptación del siniestro
en español formal, estructurado con las secciones: Resumen, Documentación Examinada,
Evaluación de Cobertura, Próximos Pasos.
DATOS DEL SINIESTRO:
{{varassign_query.resumenSiniestro}}
ANÁLISIS PERICIAL:
{{llm_analisi.content}}Nodo Message Resultado Positivo (message_positivo)
| Parámetro | Valor |
|---|---|
| content | {{llm_report_positivo.content}} |
| format | markdown |
| showCitations | true |
Rama Negativa — UserFillUp (userfillup_integrativi)
| Parámetro | Valor |
|---|---|
| message | El análisis inicial no ha determinado una cobertura segura. Para continuar con la evaluación, te pedimos que proporciones la documentación adicional indicada a continuación. |
Fields:
| Nombre | Etiqueta | Tipo | Obligatorio |
|---|---|---|---|
fotoDano | Fotografías del daño | file | Sí |
peritaje | Peritaje técnico o valoración de daños | file | No |
documentoPropiedad | Documento de propiedad del bien asegurado | file | No |
notasAdicionales | Notas adicionales o aclaraciones | text | No |
Tips: Formatos aceptados: PDF, JPG, PNG, DOCX. Tamaño máximo por archivo: 20MB.
Retrieval Suplementario (retrieval_supplementare)
| Parámetro | Valor |
|---|---|
| query | {{varassign_query.consultaBusqueda}} exclusiones limitaciones franquicia máximos |
| topK | 15 |
| companyDocs | true |
| knowledgeBase | true |
| legalSources | true |
LLM Informe Negativo (llm_report_negativo)
| Parámetro | Valor |
|---|---|
| model | writer |
| temperature | 0.1 |
| maxTokens | 3000 |
System Prompt:
Eres un experto en comunicación aseguradora. Redacta informes profesionales, transparentes y precisos.
El informe debe ser claro sobre las razones de la denegación o de la solicitud adicional,
e indicar con exactitud la documentación necesaria para continuar.User Prompt:
Redacta un informe oficial de solicitud de documentación adicional para el siguiente siniestro.
Estructura el informe con las secciones: Resumen del Siniestro, Análisis Preliminar,
Motivo de la Solicitud Adicional, Documentación Recibida, Próximos Pasos.
DATOS DEL SINIESTRO:
{{varassign_query.resumenSiniestro}}
ANÁLISIS PERICIAL INICIAL:
{{llm_analisi.content}}
DOCUMENTACIÓN ADICIONAL RECIBIDA:
{{userfillup_integrativi.inputs.notasAdicionales}}
NORMATIVA Y CONDICIONES ADICIONALES:
{{retrieval_supplementare.formalized_content}}Nodo Message Resultado Negativo (message_negativo)
| Parámetro | Valor |
|---|---|
| content | {{llm_report_negativo.content}} |
| format | markdown |
| showCitations | true |
Que Aprendes
- Cómo construir un formulario estructurado con Begin en mode
task. - Cómo usar Categorize para enrutamiento semántico con varias categorías.
- Cómo VariableAssigner prepara datos compuestos para los nodos siguientes.
- Cómo un LLM con System Prompt riguroso produce output predecible para Switch.
- Cómo Switch enruta según el contenido textual de la respuesta LLM.
- Cómo UserFillUp suspende el flujo y recoge documentos adicionales.
- Cómo un segundo Retrieval enriquece el contexto después de la entrada del usuario.
- Cómo diferenciar el tono y la estructura de los informes según el resultado positivo o negativo.
Queria v3.1.2 -- Canvas Agent Builder