Odoo 19 marcó un cambio significativo en cómo se integra la IA en la plataforma.
En lugar de incorporar la IA como un añadido de última hora, Odoo la ha integrado directamente en el núcleo de la infraestructura, con embeddings nativos, RAG (Retrieval-Augmented Generation) y agentes de IA configurables.
Pero ¿cómo funciona todo esto realmente por dentro? ¿Qué promesas puede cumplir la tecnología? ¿Cómo podemos personalizarla y ampliarla?
Hemos buceado en el código fuente y la arquitectura para responder a las preguntas que se hace todo implementador técnico de Odoo.
Conoce la mecánica de la arquitectura de IA de Odoo 19, qué puedes personalizar y qué sigue siendo una incógnita.
Los 3 pilares centrales de la arquitectura de IA de Odoo
La funcionalidad de IA de Odoo 19 se construye sobre tres pilares centrales:
- Base de datos vectorial para habilitar RAG: recuperación de documentos basada en embeddings para fundamentar las respuestas de la IA en tus datos
- Agentes de IA: asistentes configurables que combinan prompts de sistema, temas, herramientas y fuentes
- Herramientas de IA: acciones de servidor expuestas al LLM para interactuar con los datos de Odoo. Conceptualmente, es similar a MCP y una vía integral de interactuar con los datos de Odoo.
RAG basado en vectores
RAG (Retrieval-Augmented Generation) es la forma en que la IA encuentra información relevante en tus documentos antes de responder a una pregunta.
En lugar de leerlo todo cada vez, Odoo convierte tus documentos en patrones matemáticos (vectores) y los almacena.
Cuando haces una pregunta, encuentra rápidamente las secciones más relevantes y las incluye en la respuesta de la IA.
Por eso la IA puede citar con precisión las políticas de tu empresa o las especificaciones de tus productos: realmente las está consultando en lugar de hacer conjeturas.
Los agentes de IA de Odoo
Un agente de IA en Odoo es como un asistente virtual que vive dentro de tu sistema.
Puedes configurarlo para responder preguntas, ayudar con tareas o proporcionar información basada en los documentos y datos de tu empresa.
Piensa en él como un ChatGPT que conoce tu negocio: puede consultar tus cifras de ventas, redactar correos o explicar tus políticas internas.
Herramientas de Odoo AI
Las herramientas de IA son las acciones que un agente de IA puede realizar en Odoo.
Cuando le pides al agente «Muéstrame mis presupuestos abiertos», usa una herramienta para buscar directamente en tu base de datos y recuperar esa información.
Las herramientas permiten a la IA hacer cosas como abrir registros, crear leads o extraer informes, en lugar de limitarse a hablar de ellas.
Odoo requiere PostgreSQL con la extensión pgvector para almacenar y consultar los vectores de embeddings. Es un requisito estricto. Sin pgvector, la funcionalidad RAG no funciona. Es también uno de los nuevos requisitos de bajo nivel más importantes de Odoo 19.

Analicemos los detalles técnicos, función por función.
Odoo requiere PostgreSQL con la extensión pgvector para almacenar y consultar los vectores de embeddings. Es un requisito estricto. Sin pgvector, la funcionalidad RAG no funciona. Es también uno de los nuevos requisitos de bajo nivel más importantes de Odoo 19.

Analicemos los detalles técnicos, función por función.
1. El almacén de vectores de Odoo construye tu base de datos de IA
RAG («Retrieval-Augmented Generation») es un patrón que permite a la IA consumir tu contenido de forma más nativa y rápida para enriquecer la respuesta que da tu IA generativa. A veces se le llama «base de datos de IA» y, en la práctica, no es más que un almacén de vectores dentro de PostgreSQL.
En Odoo 19, el sistema RAG se centra en el modelo ai.embedding. Este modelo actualmente solo toma datos de las fuentes (ai.agent.source), que pueden conectarse a cualquier agente de IA (ai.agent).
Por ahora, no parece haber límite en cuántas fuentes pueden adjuntarse a un agente.
Esto es lo que ocurre cuando añades una fuente a un agente de IA:
Pipeline del agente de IA de Odoo
- Adición de fuentes: Cuando añades un artículo de Knowledge, un PDF u otra fuente a un agente de IA, se crea un registro de fuente ai.agent
- Activación del cron: se ponen en marcha dos acciones planificadas: AI Agent Sources: Process Sources y AI Embedding: Generate Embeddings
- Extracción de texto: el contenido de la fuente se extrae y se trocea en fragmentos manejables
- Llamada a la API: cada fragmento de contenido se envía al proveedor de LLM configurado (OpenAI o Google) para generar vectores de embeddings con un modelo de embeddings básico
- Almacenamiento: los vectores se guardan en la tabla ai.embedding usando el tipo vector nativo de pgvector
El campo de estado de las fuentes pasa de Processing a Indexed cuando los embeddings están completos. Las actualizaciones se gestionan automáticamente mediante los cron jobs.
Preguntas frecuentes sobre el almacén de vectores de Odoo
¿Dónde viven los vectores en Odoo?
Los vectores de embeddings se almacenan siempre en el modelo ai.embedding , nunca directamente en los registros de las fuentes.
Este enfoque centralizado mantiene limpia la arquitectura y permite búsquedas por similitud eficientes en todo el contenido indexado.
¿Pueden usarse estos vectores en otros modelos o conjuntos de datos?
Si has inspeccionado ir.model.fields buscando el campo embedding_vector, habrás visto que su ttype es null. No es un bug: es consecuencia de cómo Odoo implementó el soporte de pgvector.
Odoo introdujo un nuevo tipo de campo llamado Vector que se comunica directamente con la extensión pgvector de PostgreSQL.
Sin embargo, este nuevo tipo de campo nunca se añadió al campo de selección ttype en ir.model.fields.
No está claro si fue intencionado o un descuido, pero el campo funciona correctamente a nivel de base de datos a pesar de esa laguna en los metadatos.
Sí hace más difícil llevar esta funcionalidad a otros modelos y conjuntos de datos, ya que tampoco hay un mixin disponible.
¿Qué datos está embebiendo realmente Odoo?
Al usar las nuevas funciones de IA, siempre nos pareció que la búsqueda en productos u oportunidades funcionaba muy bien.
Pero Odoo actualmente no usa embeddings para los modelos estándar de Odoo como leads, productos o contactos. Las impresionantes capacidades de búsqueda que ves con el agente de IA provienen de las herramientas, no de los embeddings.
Así que cuando le pides a la IA «Muéstrame mis oportunidades abiertas», no está haciendo una búsqueda vectorial semántica. Está llamando a una herramienta que ejecuta una consulta estándar a la base de datos.
Como esto funciona muy bien y es obviamente mucho más eficiente, asequible y rápido, esperamos que Odoo mejore las herramientas, pero no añada todos los datos a un RAG.
Solo los elementos de ai.agent.source (artículos de Knowledge, PDF, documentos subidos, contenido de enlaces) entran actualmente en nuestro RAG.
La forma en que están separados los modelos permite, en general, que Odoo y nosotros añadamos más datos a nuestro RAG local más adelante.
¿Cuál es el futuro de la búsqueda vectorial de IA en Odoo?
Para nosotros, los mejores candidatos para añadir a la base de datos vectorial de Odoo serían elementos ya cercanos a las fuentes del agente:
- Todos los artículos de la app Knowledge
- Todos los documentos
Esto te permite encontrar duplicados y sugerir fuentes relacionadas, lo que hace que los agentes sean extremadamente potentes por defecto.
Aunque es menos obvio, podríamos incorporar modelos que contienen mucho texto. Esto habilitaría capacidades de búsqueda de texto completo para:
- Tareas de proyecto: encontrar tickets similares y redactar tickets a partir del historial de tickets
- Tickets de helpdesk: redactar automáticamente preguntas frecuentes en la app Knowledge para las preguntas más habituales y responder automáticamente cualquier ticket a partir de respuestas anteriores
- Productos: encontrar productos que encajen bien con los clientes a partir de la descripción
- ¡Y cualquier otro proceso que tenga mucho texto!
Nuestra esperanza para Odoo 20 es que los embeddings sean más baratos y pgvector más rápido.
A decir verdad, en much. Consulting operamos nuestro propio RAG a medida precisamente para este tipo de modelos de Odoo.
¿Nuestras conclusiones hasta ahora? Los casos de uso que esto habilita son asombrosos.
2. Los agentes de IA de Odoo construyen las respuestas mediante una secuencia de prompts
Cuando un usuario envía un prompt a un agente de IA, Odoo construye la petición en un orden concreto:
Proceso de ensamblado del prompt de la IA de Odoo
1. Prompts de sistema
Los prompts de sistema configurados de Odoo funcionan como base. Son instrucciones de sistema de bajo nivel para el LLM, y también se añaden todos los prompts de las herramientas.
2. Prompt del agente
El prompt específico del agente se añade al prompt del sistema.
3. Inyección de contexto
Contexto del objeto: se añaden la fecha actual y los datos del usuario. Si se usa sobre un registro, también se adjunta la información del registro.
Contexto RAG: los fragmentos relevantes de las fuentes del agente se recuperan mediante búsqueda por similitud de embeddings y se añaden al mensaje de sistema.
4. Mensaje del usuario
Se añade la entrada del usuario.
5. Llamada a la API
La petición completa se envía al LLM (OpenAI o Google).
6. Ejecución de herramientas
Si la IA decide llamar a una herramienta, Odoo la ejecuta y devuelve el resultado. Odoo permite que el LLM llame recursivamente a las herramientas de IA de Odoo para cumplir la tarea.
7. Respuesta final
La IA genera su respuesta a partir de todo el contexto disponible.
Este bucle puede repetirse varias veces si la IA necesita llamar a varias herramientas para reunir información antes de responder.
Curiosamente, Odoo establece algunos límites que pueden cambiarse en los parámetros del sistema:
- ai.max_successive_calls (por defecto 20): si no se establece, permite de forma recursiva hasta 20 llamadas al agente LLM si no se encuentra una respuesta al prompt del usuario. Esto consume muchos tokens al observar cargas de trabajo reales.
- ai.max_tool_calls_per_call: el LLM solo puede llamar a herramientas 20 veces en una misma ejecución, para evitar tiempos de carga extremadamente largos y sobrecarga de la base de datos.
3. Los agentes de IA interactúan con los datos de Odoo mediante temas y herramientas
Los temas son el puente entre los agentes de IA y tus datos de Odoo. Agrupan las herramientas de IA (acciones de servidor) que el agente puede usar.
¿Cómo funcionan las herramientas de IA en Odoo?
Cada tema tiene un campo many2many que apunta a acciones de servidor (herramientas de IA). Estas herramientas permiten a la IA:
- Obtener los detalles de los campos de los modelos de Odoo
- Abrir distintas vistas (formulario, lista, pivote, gráfico)
- Crear registros (leads, tareas, etc.)
- Buscar y recuperar datos
- Ejecutar lógica de negocio a medida.
Y un detalle crucial: aquí no se usan embeddings.
Cuando la IA busca en tu CRM o recupera datos de productos, está llamando a herramientas que ejecutan operaciones estándar de base de datos.
Es una consulta normal de Odoo, no búsqueda semántica.
¿Pueden crearse herramientas de IA a medida para Odoo?
Puedes ampliar las capacidades del agente creando nuevos temas y herramientas:
- Crea una nueva acción de servidor con tu lógica a medida
- Crea o selecciona un tema
- Vincula tu acción de servidor al campo de herramientas de IA del tema
- Añade el tema a tu agente.
Esto te da una forma potente de exponer cualquier funcionalidad de Odoo a tus agentes de IA sin modificar el código del núcleo.
Opciones y limitaciones de personalización de la IA de Odoo
Aquí tienes un desglose práctico de las opciones de personalización: adaptaciones sin código, soluciones a medida y esperanzas de futuro.
Fácil de adaptar sin personalización
- Prompts de sistema: control total sobre la personalidad y las instrucciones del agente
- Fuentes: añade cualquier artículo de Knowledge o documento
- Temas: crea nuevos temas y vincúlalos a los agentes
- Nuevas herramientas de IA sencillas: construye acciones de servidor sencillas a medida y exponlas como herramientas de IA
- Estilo de respuesta: configura cómo se comunica el agente.
Posible, pero requiere trabajo
- URL base para los proveedores de IA: puede añadirse mediante parámetros del sistema o ajustes vía personalización
- Nuevas herramientas de IA complejas: pueden hacerse creando acciones de servidor y vinculándolas a temas.
Limitado por ahora, pero previsto para el futuro
- RAG para modelos a medida: Odoo no embebe los modelos estándar; añadirlo requeriría un trabajo considerable
- Puntos finales hardcodeados: Los puntos finales individuales de la API (no solo la URL base) parecen estar hardcodeados; no es seguro que un LLM autoalojado funcione como sustituto directo
- Botones de acción del chatter: los botones «Send as message» y «Write as note» parecen estar hardcodeados en JavaScript.
Endpoints de la API de Odoo: ¿hardcodeados o configurables?
Es una pregunta habitual en organizaciones que quieren usar LLM autoalojados, un agregador de LLM o un LLM a través de su proveedor cloud (AWS Bedrock (AWS), Azure OpenAI, Vertex AI).
La realidad en Odoo:
- La URL base puede cambiarse
- Los puntos finales individuales de la API están hardcodeados en el código
- Estos puntos finales son específicos de las estructuras de API de OpenAI y Google, así que solo funcionarán cuando los puntos finales sean iguales en el servicio alternativo.
Esto significa que, aunque podrás apuntar a una URL base diferente, no es seguro que un LLM autoalojado con una estructura de API distinta funcione como sustituto directo.
Necesitarías que el LLM implementara puntos finales compatibles con la base de Odoo o asumir bastante trabajo adicional de adaptación.
Esperamos que aparezcan muchas soluciones del marketplace o de la OCA que traigan más modelos y servicios a medida a Odoo.
Implicaciones prácticas y consejos
Para implementadores
No esperes búsqueda semántica en leads/productos: es consulta basada en herramientas, no RAG.
Invierte en crear buenos artículos de Knowledge: es el mejor contenido para embeber en un agente de IA, porque es una fuente de conocimiento actualizable.
Las herramientas a medida son tus aliadas: son la forma más limpia de ampliar las capacidades del agente.
Prueba con tus datos reales: la calidad del RAG depende mucho del contenido de las fuentes.
Para desarrolladores
El tipo de campo Vector funciona: a pesar del ttype null, funciona correctamente.
pgvector es obligatorio: asegúrate de que tu instalación de PostgreSQL lo incluye.
Las acciones de servidor son el punto de extensión: construye herramientas, no modificaciones del núcleo.
Los cambios de UI requieren trabajo de JavaScript: los botones de acción exigen trabajo de frontend.
El futuro de la IA en Odoo
La arquitectura de IA de Odoo 19 es una base sólida, pero claramente es solo el principio.
Esperamos que futuras versiones puedan ampliar las capacidades de RAG a otros modelos, añadan más herramientas integradas y mejoren las opciones de personalización para los proveedores de IA.
Por ahora, el sistema funciona bien dentro del alcance para el que fue diseñado: RAG basado en documentos combinado con interacciones con Odoo basadas en herramientas.
Entender esta mecánica ayuda a fijar expectativas realistas y orienta dónde invertir el esfuerzo de personalización.
Hablemos de tu configuración de IA en Odoo
Nuestros expertos trabajan activamente con clientes en despliegues de Odoo potenciados con IA y estarán encantados de adaptar lo que hemos aprendido a tus necesidades.