{"id":7092,"date":"2025-06-10T19:04:07","date_gmt":"2025-06-10T19:04:07","guid":{"rendered":"https:\/\/zebeh.com\/blog\/open-source-full-stack-ai-agent-stack-using-gemini-2-5-an\/"},"modified":"2025-06-10T19:04:07","modified_gmt":"2025-06-10T19:04:07","slug":"open-source-full-stack-ai-agent-stack-using-gemini-2-5-an","status":"publish","type":"post","link":"https:\/\/zebeh.com\/blog\/open-source-full-stack-ai-agent-stack-using-gemini-2-5-an\/","title":{"rendered":"Open-source full-stack AI agent stack using Gemini 2.5 an&#8230;"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/zebeh.com\/blog\/wp-content\/uploads\/2025\/06\/file_2.jpg\" alt=\"Open-source full-stack AI agent stack using Gemini 2.5 an...\" \/><\/p>\n<p>Architecture overview: Developer-friendly and extensible.<br \/>\nFrontend: Built with Vite + React, offering hot reloading and clean module separation.<br \/>\nBackend: Powered by Python (3.8+), FastAPI, and LangChain, enabling decision control, evaluation loops, and autonomous query refinement.<br \/>\nKey directories: The agent logic resides in backend\/src\/agent\/graph.py, while UI components are structured under frontend\/.<br \/>\nLocal setup: Requires Node.js, Python, and a Gemini API key. Run with make dev, or launch frontend\/backend separately.<br \/>\nEndpoints:<br \/>\nBackend API: http:\/\/127.0.0.1:2024<br \/>\nFrontend UI: http:\/\/localhost:5173<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Architecture overview: Developer-friendly and extensible. Frontend: Built with Vite + React, offering hot reloading and clean module separation. Backend: Powered [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[164],"tags":[],"class_list":["post-7092","post","type-post","status-publish","format-standard","hentry","category-pulse"],"aioseo_notices":[],"acf":[],"_links":{"self":[{"href":"https:\/\/zebeh.com\/blog\/wp-json\/wp\/v2\/posts\/7092","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zebeh.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zebeh.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zebeh.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/zebeh.com\/blog\/wp-json\/wp\/v2\/comments?post=7092"}],"version-history":[{"count":0,"href":"https:\/\/zebeh.com\/blog\/wp-json\/wp\/v2\/posts\/7092\/revisions"}],"wp:attachment":[{"href":"https:\/\/zebeh.com\/blog\/wp-json\/wp\/v2\/media?parent=7092"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zebeh.com\/blog\/wp-json\/wp\/v2\/categories?post=7092"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zebeh.com\/blog\/wp-json\/wp\/v2\/tags?post=7092"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}