{"id":17001,"date":"2025-04-01T08:00:17","date_gmt":"2025-04-01T15:00:17","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=17001"},"modified":"2025-06-13T16:39:40","modified_gmt":"2025-06-13T23:39:40","slug":"build-your-first-open-source-ai-agent-with-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/build-your-first-open-source-ai-agent-with-couchbase\/","title":{"rendered":"Cree su primer agente de IA de c\u00f3digo abierto con Couchbase"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Si 2024 fue el a\u00f1o de los chatbots de IA, 2025 es el a\u00f1o de los agentes de IA. A primera vista, pueden parecer similares, pero nada m\u00e1s lejos de la realidad. Aunque se puede interactuar con un agente de IA de la misma manera que con un chatbot de IA, quiz\u00e1s a trav\u00e9s de una interfaz web, las diferencias entre ellos son notables.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Los agentes de IA pueden actuar de forma aut\u00f3noma para satisfacer su petici\u00f3n. As\u00ed es, lo he dicho: <em>de forma aut\u00f3noma<\/em>. Una IA que act\u00faa en tu nombre y decide qu\u00e9 hacer y cu\u00e1les deben ser sus pr\u00f3ximos pasos sin tu intervenci\u00f3n.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00bfQuiere encontrar un buen restaurante para una cita nocturna y reservar mesa? Deja que tu agente de IA lo haga por ti, desde la b\u00fasqueda hasta la reserva.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00bfNecesita realizar un seguimiento de las interacciones con nuevos clientes en su CRM y enviar correos electr\u00f3nicos personalizados? Deje que su agente de IA lo haga por usted, desde el seguimiento hasta la redacci\u00f3n del correo electr\u00f3nico y su env\u00edo.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Esencialmente, los agentes pueden hacer casi cualquier cosa por usted en l\u00ednea. Incluso puede tener varios agentes trabajando en t\u00e1ndem. Todo lo que necesitan es un <\/span><i><span style=\"font-weight: 400;\">tarea<\/span><\/i><span style=\"font-weight: 400;\"> que les propongas y ellos se encargar\u00e1n de completar esa tarea.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Es posible que piense que construir o utilizar IA ag\u00e9ntica le costar\u00e1 una fortuna, y no se equivocar\u00eda al pensar eso. Las empresas, algunas de las m\u00e1s importantes del sector, ofrecen estos servicios por cuotas mensuales muy elevadas. Sin embargo, con un poco de conocimiento de Python y JavaScript, puede construir una interfaz de usuario web de agente de IA de pila completa de forma gratuita. Lo mejor de todo es que puedes incorporar f\u00e1cilmente Couchbase para el almacenamiento de datos de alto rendimiento, recuperaci\u00f3n y capacidades de b\u00fasqueda de texto completo. Couchbase Capella, la base de datos totalmente gestionada como servicio, incluso ofrece un nivel gratuito para siempre, que puedes utilizar en tu aplicaci\u00f3n.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/github.com\/hummusonrails\/browser-use-agent-with-couchbase\/blob\/main\/README.md\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-17002 alignright\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/Screenshot-2025-03-31-at-4.24.40\u202fPM-1024x675.png\" alt=\"\" width=\"412\" height=\"272\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/Screenshot-2025-03-31-at-4.24.40\u202fPM-1024x675.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/Screenshot-2025-03-31-at-4.24.40\u202fPM-300x198.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/Screenshot-2025-03-31-at-4.24.40\u202fPM-768x506.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/Screenshot-2025-03-31-at-4.24.40\u202fPM-1536x1012.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/Screenshot-2025-03-31-at-4.24.40\u202fPM-2048x1350.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/Screenshot-2025-03-31-at-4.24.40\u202fPM-1320x870.png 1320w\" sizes=\"auto, (max-width: 412px) 100vw, 412px\" \/><\/a>\u00bfHe despertado su inter\u00e9s? Buenas noticias. Ni siquiera tienes que construirlo desde cero. Puedes encontrar la aplicaci\u00f3n completa en mi <a href=\"https:\/\/github.com\/hummusonrails\/browser-use-agent-with-couchbase\">agente navegador de c\u00f3digo abierto repositorio GitHub<\/a> &#8211; <\/span><span style=\"font-weight: 400;\">con instrucciones para empezar a utilizarlo.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Veamos la arquitectura de la aplicaci\u00f3n y c\u00f3mo est\u00e1 construida. Una mejor comprensi\u00f3n de su funcionamiento le permitir\u00e1 adaptarla a su caso de uso personal.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">La aplicaci\u00f3n se compone de un frontend React y un backend Python. Nos centraremos en el backend ya que es donde ocurre el trabajo del agente y las interacciones con Couchbase. Puedes explorar el frontend libremente en GitHub, que ofrece un dise\u00f1o mobile-first.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">C\u00f3mo funciona<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">La base de esta aplicaci\u00f3n es una mezcla armoniosa de un frontend React y un backend Python. Mientras que el frontend garantiza una experiencia de usuario fluida y receptiva, el backend es donde opera el agente de IA, gestionando las solicitudes de los usuarios e interactuando con Couchbase para la gesti\u00f3n de datos.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">El agente de IA con uso de navegador<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">En el n\u00facleo del agente de IA est\u00e1 la integraci\u00f3n de la <a href=\"https:\/\/browser-use.com\/\">biblioteca Python de c\u00f3digo abierto de Browser Use<\/a>. Esta biblioteca permite al agente realizar diversas tareas simulando las acciones del navegador. Tanto si se trata de navegar por el sitio web de un restaurante para reservar una mesa como de acceder al CRM para realizar un seguimiento de los compromisos de los clientes, Browser Use proporciona las herramientas necesarias para que el agente interact\u00fae con los recursos web de forma eficaz.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Inicializar un agente Browser Use AI s\u00f3lo requiere unas pocas l\u00edneas de c\u00f3digo en tu backend Python:<\/span><\/p>\n<pre class=\"nums:false lang:python decode:true\">async def ejecutar_browser_agent(tarea: str):\r\n    \"\"\"\r\n    Ejecuta el agente del navegador y devuelve sus resultados en un formato serializable JSON.\r\n    \"\"\"\r\n    agent = Agente(task=tarea, llm=llm, use_vision=True, max_failures=3, retry_delay=5)\r\n    history = await agent.run(max_steps=50)\r\n\r\n    resultados_serializados = []\r\n    if historia e historia.historia:\r\n        for paso en historia.historia:\r\n            if paso.resultado:\r\n                if isinstance(paso.resultado, lista):\r\n                    for res in paso.resultado:\r\n                        serialized_results.append(vars(res))\r\n                else:\r\n                    serialized_results.append(vars)\r\n\r\n    return resultados_serializados<\/pre>\n<p><span style=\"font-weight: 400;\">El Agente es instanciado con varios par\u00e1metros, incluyendo:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">La tarea espec\u00edfica que desea que realice<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">El gran modelo ling\u00fc\u00edstico que utilizar\u00e1 para analizar los resultados de su investigaci\u00f3n independiente (el proyecto es compatible actualmente con Anthropic, OpenAI, DeepSeek, Qwen, Azure, Gemini y otros).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Un valor booleano para <\/span><span style=\"font-weight: 400;\">visi\u00f3n<\/span><span style=\"font-weight: 400;\">que permite al agente analizar tambi\u00e9n las im\u00e1genes de su investigaci\u00f3n.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">El n\u00famero de fallos que tolerar\u00e1 antes de salir de la tarea sin \u00e9xito.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Cu\u00e1nto tiempo esperar en segundos entre reintentos<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Cu\u00e1ntos pasos autoriza a ejecutar al agente para intentar completar la tarea.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">El resto del c\u00f3digo para instanciar el agente s\u00f3lo se ocupa de devolver los resultados.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Eso es todo lo que se necesita para crear un agente y ponerlo en el mundo. Unas pocas l\u00edneas de Python, en realidad.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Cuando el agente de IA recibe una tarea, como reservar un restaurante o enviar correos electr\u00f3nicos personalizados, utiliza la biblioteca Browser Use para realizar las acciones necesarias en l\u00ednea. Esto implica navegar por sitios web, rellenar formularios e incluso analizar informaci\u00f3n, todo ello ejecutado mediante programaci\u00f3n para satisfacer las peticiones de los usuarios de forma eficiente.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">La persistencia y la b\u00fasqueda de datos son caracter\u00edsticas fundamentales de las aplicaciones modernas. No s\u00f3lo puede persistir los datos para fines de usuario, como el historial de chat, sino que tambi\u00e9n podr\u00eda proporcionar m\u00e1s contexto a su agente con los datos persistidos con una metodolog\u00eda llamada <a href=\"https:\/\/www.couchbase.com\/blog\/es\/ai-powered-recommendation-engine-llm-rag\/\">Generaci\u00f3n de Recuperaci\u00f3n Aumentada (RAG)<\/a>. Recomiendo leer <a href=\"https:\/\/www.couchbase.com\/blog\/es\/ai-powered-recommendation-engine-llm-rag\/\">este art\u00edculo<\/a> <\/span><span style=\"font-weight: 400;\">si le interesa profundizar en este tema.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Por ahora, vamos a introducir la persistencia de datos y la funcionalidad de b\u00fasqueda en la interfaz de usuario de tu agente con Couchbase.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Interacci\u00f3n con Couchbase para la b\u00fasqueda de texto completo<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Couchbase desempe\u00f1a un papel fundamental en la gesti\u00f3n y recuperaci\u00f3n eficiente de datos de chat. Aprovechando las capacidades de Couchbase Full Text Search (FTS), el backend puede buscar r\u00e1pidamente a trav\u00e9s de extensos historiales de chat para encontrar conversaciones relevantes basadas en las consultas de los usuarios. Este es un ejemplo simplificado de c\u00f3mo el backend interact\u00faa con Couchbase para FTS usando el Couchbase Python SDK:<\/span><\/p>\n<pre class=\"nums:false lang:python decode:true\">from typing import Lista\r\nfrom couchbase.search import QueryStringQuery, SearchOptions\r\nimport registro\r\n\r\ndef search_chats(user_id: str, search_text: str) -&gt; List[dict]:\r\n    \"\"\"\r\n    Busca chats para un usuario dado bas\u00e1ndose en search_text usando Couchbase FTS.\r\n\r\n    Args:\r\n        user_id (str): El ID del usuario.\r\n        search_text (str): El texto a buscar dentro de los nombres de chat.\r\n\r\n    Devuelve:\r\n        Lista[dict]: Una lista de documentos de chat que coinciden con los criterios de b\u00fasqueda.\r\n    \"\"\"\r\n\r\n    probar:\r\n        # Ejecuta la consulta de b\u00fasqueda contra el \u00edndice FTS especificado\r\n        search_result = cluster.search_query(\r\n            \"nombre-cubo.nombre-\u00e1mbito.nombre-\u00edndice-b\u00fasqueda\",\r\n            QueryStringQuery(texto_b\u00fasqueda),\r\n            SearchOptions(fields=[\"chat_id\", \"user_id\", \"name\", \"messages.content\", \"messages.timestamp\", \"messages.sender\"])\r\n        )\r\n\r\n        resultados = []\r\n\r\n        for fila en resultado_busqueda.filas():\r\n            chat = fila.campos.copiar()\r\n\r\n            # Extraer los detalles de los mensajes\r\n            contenido_mensajes = chat.get(\"contenido.mensajes\", [])\r\n            messages_timestamp = chat.get(\"mensajes.timestamp\", [])\r\n            messages_sender = chat.get(\"mensajes.remitente\", [])\r\n\r\n            # Aseg\u00farate de que todas las listas de mensajes est\u00e1n alineadas\r\n            if len(mensajes_contenido) == len(mensajes_fecha-hora) == len(mensajes_remitente):\r\n                chat[\"mensajes\"] = [\r\n                    {\r\n                        \"content\": contenido\r\n                        \"timestamp\": timestamp,\r\n                        \"remitente\": remitente\r\n                    }\r\n                    para contenido, fecha y hora, remitente en zip(mensajes_contenido, mensajes_fecha y hora, mensajes_remitente)\r\n                ]\r\n            else:\r\n                logging.warning(\"No coinciden los campos de los mensajes. S\u00f3lo se incluye el contenido.\")\r\n                chat[\"mensajes\"] = [{\"contenido\": contenido} for contenido in contenido_mensajes]\r\n\r\n            # Limpia los campos redundantes\r\n            chat.pop(\"mensajes.contenido\", Ninguno)\r\n            chat.pop(\"mensajes.timestamp\", None)\r\n            chat.pop(\"mensajes.remitente\", Ninguno)\r\n\r\n            results.append(chat)\r\n\r\n        # Filtra los chats pertenecientes al usuario especificado\r\n        user_chats = [chat for chat in results if chat.get(\"user_id\") == user_id]\r\n\r\n        logging.info(f \"La b\u00fasqueda devolvi\u00f3 {len(user_chats)} chats para el usuario '{user_id}'.\")\r\n\r\n        return chats_usuario\r\n\r\n    except Exception as e:\r\n        logging.error(f \"Error durante la b\u00fasqueda: {e}\")\r\n        return []<\/pre>\n<p><span style=\"font-weight: 400;\">En este fragmento, el<\/span><em><span style=\"font-weight: 400;\"> buscar_chats<\/span><\/em><span style=\"font-weight: 400;\"> es fundamental para recuperar conversaciones de chat relevantes basadas en la entrada del usuario. Cuando un usuario introduce una consulta de b\u00fasqueda, la funci\u00f3n construye una solicitud de b\u00fasqueda dirigida al \u00edndice FTS dentro de Couchbase. Especifica los campos a recuperar, asegur\u00e1ndose de que toda la informaci\u00f3n necesaria, como <\/span><em><span style=\"font-weight: 400;\">chat_id<\/span><\/em><span style=\"font-weight: 400;\">, <\/span><em><span style=\"font-weight: 400;\">usuario_id<\/span><\/em><span style=\"font-weight: 400;\">, <em>nombre<\/em>y <\/span><em><span style=\"font-weight: 400;\">mensaje<\/span><\/em><span style=\"font-weight: 400;\"> se incluyen en los resultados de la b\u00fasqueda.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-17003 alignright\" style=\"border: 1px solid Gainsboro;\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/chat_interface_example.png\" alt=\"\" width=\"268\" height=\"574\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/chat_interface_example.png 406w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/chat_interface_example-140x300.png 140w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/chat_interface_example-300x643.png 300w\" sizes=\"auto, (max-width: 268px) 100vw, 268px\" \/>A medida que la funci\u00f3n procesa cada resultado de b\u00fasqueda, organiza meticulosamente el contenido del mensaje, las marcas de tiempo y los remitentes, asegur\u00e1ndose de que la estructura de datos se mantiene coherente y fiable. Esta cuidadosa gesti\u00f3n garantiza que el frontend reciba datos bien estructurados, listos para mostrarse al usuario sin ning\u00fan contratiempo.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">La interacci\u00f3n entre el agente de IA y Couchbase garantiza que todas las interacciones del usuario se almacenen de forma segura y puedan recuperarse r\u00e1pidamente cuando sea necesario. Couchbase ofrece la escalabilidad y el rendimiento necesarios para gestionar una base de usuarios en crecimiento sin comprometer la velocidad ni la fiabilidad, ya se trate de recuperar historiales de chat o de actualizar las preferencias de los usuarios.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Cuando un usuario inicia una b\u00fasqueda desde el frontend, la aplicaci\u00f3n React env\u00eda la consulta al backend. El agente de IA procesa esta solicitud, interact\u00faa con Couchbase para obtener los chats relevantes y devuelve los resultados al frontend. Este viaje de ida y vuelta garantiza que los usuarios reciban informaci\u00f3n precisa y oportuna, mejorando su experiencia general con la aplicaci\u00f3n.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Al combinar las capacidades de la biblioteca Browser Use con las funciones de gesti\u00f3n de datos de Couchbase, la aplicaci\u00f3n ofrece una experiencia de agente de IA completa. Los usuarios pueden gestionar sus tareas en l\u00ednea, entablar conversaciones significativas con su agente y confiar en el sistema para gestionar operaciones complejas entre bastidores.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Esta arquitectura no s\u00f3lo proporciona una funcionalidad inmediata, sino que tambi\u00e9n sienta unas bases s\u00f3lidas para futuras mejoras. A medida que la aplicaci\u00f3n evoluciona, la integraci\u00f3n entre el frontend, el agente de IA y Couchbase garantiza su adaptabilidad, escalabilidad y capacidad de respuesta a las necesidades de los usuarios.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Conclusi\u00f3n<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">La pr\u00f3xima vez que veas servicios de agentes de IA en la naturaleza y sientas el FOMO porque tu tarjeta de cr\u00e9dito no puede soportar la factura mensual, recuerda que con s\u00f3lo un poco de Python y un poco de JavaScript, puedes tener tu propio agente a tu disposici\u00f3n.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00bfQuieres empezar? Visite el proyecto en <a href=\"https:\/\/github.com\/hummusonrails\/browser-use-agent-with-couchbase\">GitHub<\/a><\/span><span style=\"font-weight: 400;\">cl\u00f3nalo en tu ordenador y sigue las instrucciones del L\u00c9AME para probarlo.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00bfQu\u00e9 tareas de ahorro de tiempo har\u00e1 que su agente haga por usted? \u00danete a nuestra activa y creciente comunidad de Discord para compartir lo que has creado.<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Empieza a utilizar las funciones de IA en <a href=\"https:\/\/cloud.couchbase.com\">Couchbase Capella<\/a> hoy, gratis<\/li>\n<\/ul>\n<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>If 2024 was the year of AI chatbots, then 2025 is the year of AI agents. At first glance, they may seem similar, but nothing could be farther from the truth. While you may interact with an AI agent in [&hellip;]<\/p>","protected":false},"author":85356,"featured_media":17004,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[10123,10122,1815,2165,9973,9139],"tags":[9924],"ppma_author":[9985],"class_list":["post-17001","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agentic-ai-apps","category-artificial-intelligence-ai","category-best-practices-and-tutorials","category-full-text-search","category-generative-ai-genai","category-python","tag-rag-retrieval-augmented-generation"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Build Your First Open Source AI Agent with Couchbase - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Build an open-source AI agent with Python, JavaScript, and Couchbase. Automate tasks and deploy your own AI assistant\u2014completely free!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/build-your-first-open-source-ai-agent-with-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build Your First Open Source AI Agent with Couchbase\" \/>\n<meta property=\"og:description\" content=\"Build an open-source AI agent with Python, JavaScript, and Couchbase. Automate tasks and deploy your own AI assistant\u2014completely free!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/build-your-first-open-source-ai-agent-with-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-01T15:00:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-13T23:39:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/blog_header_images_2025-13.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1256\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ben Greenberg, Senior Developer Evangelist\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ben Greenberg, Senior Developer Evangelist\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/\"},\"author\":{\"name\":\"Ben Greenberg, Senior Developer Evangelist\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/48efa1524aec97312d92f65a270c255d\"},\"headline\":\"Build Your First Open Source AI Agent with Couchbase\",\"datePublished\":\"2025-04-01T15:00:17+00:00\",\"dateModified\":\"2025-06-13T23:39:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/\"},\"wordCount\":1323,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/blog_header_images_2025-13.png\",\"keywords\":[\"RAG retrieval-augmented generation\"],\"articleSection\":[\"Agentic AI Applications\",\"Artificial Intelligence (AI)\",\"Best Practices and Tutorials\",\"Full-Text Search\",\"Generative AI (GenAI)\",\"Python\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/\",\"name\":\"Build Your First Open Source AI Agent with Couchbase - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/blog_header_images_2025-13.png\",\"datePublished\":\"2025-04-01T15:00:17+00:00\",\"dateModified\":\"2025-06-13T23:39:40+00:00\",\"description\":\"Build an open-source AI agent with Python, JavaScript, and Couchbase. Automate tasks and deploy your own AI assistant\u2014completely free!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/blog_header_images_2025-13.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/blog_header_images_2025-13.png\",\"width\":2400,\"height\":1256},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Build Your First Open Source AI Agent with Couchbase\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/48efa1524aec97312d92f65a270c255d\",\"name\":\"Ben Greenberg, Senior Developer Evangelist\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/c9bda12524045d12a5878a2ef3fbe0de\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/06\/T024FJS4M-U075H3NTJUR-b4c321d902e2-512.jpeg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/06\/T024FJS4M-U075H3NTJUR-b4c321d902e2-512.jpeg\",\"caption\":\"Ben Greenberg, Senior Developer Evangelist\"},\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/bengreenberg\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Build Your First Open Source AI Agent with Couchbase - The Couchbase Blog","description":"Build an open-source AI agent with Python, JavaScript, and Couchbase. Automate tasks and deploy your own AI assistant\u2014completely free!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/build-your-first-open-source-ai-agent-with-couchbase\/","og_locale":"es_MX","og_type":"article","og_title":"Build Your First Open Source AI Agent with Couchbase","og_description":"Build an open-source AI agent with Python, JavaScript, and Couchbase. Automate tasks and deploy your own AI assistant\u2014completely free!","og_url":"https:\/\/www.couchbase.com\/blog\/es\/build-your-first-open-source-ai-agent-with-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2025-04-01T15:00:17+00:00","article_modified_time":"2025-06-13T23:39:40+00:00","og_image":[{"width":2400,"height":1256,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/blog_header_images_2025-13.png","type":"image\/png"}],"author":"Ben Greenberg, Senior Developer Evangelist","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ben Greenberg, Senior Developer Evangelist","Est. reading time":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/"},"author":{"name":"Ben Greenberg, Senior Developer Evangelist","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/48efa1524aec97312d92f65a270c255d"},"headline":"Build Your First Open Source AI Agent with Couchbase","datePublished":"2025-04-01T15:00:17+00:00","dateModified":"2025-06-13T23:39:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/"},"wordCount":1323,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/blog_header_images_2025-13.png","keywords":["RAG retrieval-augmented generation"],"articleSection":["Agentic AI Applications","Artificial Intelligence (AI)","Best Practices and Tutorials","Full-Text Search","Generative AI (GenAI)","Python"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/","name":"Build Your First Open Source AI Agent with Couchbase - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/blog_header_images_2025-13.png","datePublished":"2025-04-01T15:00:17+00:00","dateModified":"2025-06-13T23:39:40+00:00","description":"Build an open-source AI agent with Python, JavaScript, and Couchbase. Automate tasks and deploy your own AI assistant\u2014completely free!","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/blog_header_images_2025-13.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/03\/blog_header_images_2025-13.png","width":2400,"height":1256},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/build-your-first-open-source-ai-agent-with-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Build Your First Open Source AI Agent with Couchbase"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/48efa1524aec97312d92f65a270c255d","name":"Ben Greenberg, Desarrollador Evangelista Senior","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/c9bda12524045d12a5878a2ef3fbe0de","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/06\/T024FJS4M-U075H3NTJUR-b4c321d902e2-512.jpeg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/06\/T024FJS4M-U075H3NTJUR-b4c321d902e2-512.jpeg","caption":"Ben Greenberg, Senior Developer Evangelist"},"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/bengreenberg\/"}]}},"authors":[{"term_id":9985,"user_id":85356,"is_guest":0,"slug":"bengreenberg","display_name":"Ben Greenberg, Senior Developer Evangelist","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/06\/T024FJS4M-U075H3NTJUR-b4c321d902e2-512.jpeg","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/06\/T024FJS4M-U075H3NTJUR-b4c321d902e2-512.jpeg"},"author_category":"","last_name":"Greenberg, Senior Developer Evangelist","first_name":"Ben","job_title":"Senior Developer Evangelist","user_url":"","description":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/17001","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/85356"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=17001"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/17001\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/17004"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=17001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=17001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=17001"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=17001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}