Mesa de Ayuda IA is built around five independent, specialized AI agents. Every agent is a Python subclass of the abstractDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/geremyjampiersalasgarcia-eng/Caso_Practico_Semillero_IA/llms.txt
Use this file to discover all available pages before exploring further.
BaseAgent class, owns a ChromaDB vector collection as its knowledge source, loads its behavior from a dedicated Markdown system-prompt file, and is registered at startup in the global AgentRegistry. The LangGraph StateGraph orchestrator classifies each incoming request and routes it to the appropriate agent — or to multiple agents in parallel for mixed-intent queries — before consolidating the answers into a single coherent response.
Catalog Agent
Answers questions about Patito S.A. products, technical specifications, list prices, and stock availability. Intent:
catalogo_precios.Policies Agent
Handles discount limits, authorization levels, credit terms, warranties, and return policies. Intent:
politicas_comerciales.Sales Process Agent
Guides sales reps through the CRM pipeline stages, data requirements, and opportunity-closing criteria. Intent:
proceso_ventas.Multimodal Agent
Identifies products from uploaded images using Gemini Vision, then cross-references the catalog for pricing and availability. Intent:
multimodal.Action Agent
The only write-capable agent: collects opportunity data, validates required fields, requests confirmation, then registers via LangChain function calling. Intent:
accion_registro.Agent comparison
| Agent name | Intent category | ChromaDB collection | Knowledge document |
|---|---|---|---|
agente_catalogo | catalogo_precios | col_catalogo | 01_Catalogo_Productos_Precios.txt |
agente_politicas | politicas_comerciales | col_politicas | 02_Politicas_Comerciales_Descuentos_Credito.txt |
agente_proceso_ventas | proceso_ventas | col_proceso_ventas | 03_Proceso_Ventas_CRM.txt |
agente_multimodal | multimodal | col_catalogo | (shares catalog collection) |
agente_accion | accion_registro | col_proceso_ventas | 03_Proceso_Ventas_CRM.txt |
mixta intent, the orchestrator runs agente_catalogo, agente_politicas, and agente_proceso_ventas in parallel and passes all three partial answers to a consolidation step.
How to add a new agent
Every new agent follows the same four-step pattern:- Extend
BaseAgent— create a new file underbackend/app/agents/. - Implement the four abstract properties —
name,description,collection_name, andsystem_prompt_path. - Write a system prompt — add a Markdown file under
backend/app/prompts/. - Register the agent — import and instantiate it in
backend/app/agents/__init__.pyinsideregister_all_agents().
AgentRegistry at runtime.
BaseAgent abstract interface
The following excerpt shows the abstract property stubs and the process_query signature that every agent must satisfy. The concrete implementation in BaseAgent provides the full RAG→prompt→LLM→result pipeline as a default; subclasses that need a different flow (such as MultimodalAgent and AccionAgent) override process_query directly.
AgentResult schema
Every agent returns an AgentResult Pydantic model. Downstream consumers (the consolidator and the API response) rely on this contract:
SourceInfo entry in sources carries document_name, content_snippet (first 200 characters of the matched chunk), and relevance_score from the ChromaDB cosine-similarity search.