ENGLISH | РУССКИЙ
Stop reading endless console logs! This tool lets you see how your AI agent thinks in real-time. Data, prompts, LLMs, and parsers will be rendered as a beautiful interactive graph right in your browser.
This guide is written as simply as possible so absolutely anyone can run it! ☕️
- ⚡ Real-time Visualization: Watch your LangChain graph build itself dynamically as the agent runs.
- 💰 Cost & Token Tracking: Automatically calculates token usage and estimated costs for LLM calls.
- 🛡️ PII Masking: Automatically hides sensitive data (emails, credit cards) from the debugger UI for security.
- 🔍 Deep Inspection: Click on any node to see exact Inputs, Outputs, execution time, and Error Stack Traces.
- 🔄 Universal: Works perfectly with both synchronous (
.invoke()) and asynchronous (.ainvoke()) chains.
The system consists of two parts that communicate with each other:
- The Dashboard (Browser UI) — installed via
npm(Node.js). It draws the visual graph. - The Plugin (Python) — installed via
pip. It intercepts data from LangChain and sends it to the Dashboard.
You must have Node.js installed on your computer for this step.
Open your terminal and run this command for global installation:
npm install -g zengin-ai-debuggerOnce the installation is complete, simply type in your terminal to start the UI server:
zengin-ai-debugger🎉 Done! The bridge server is running. A web page will open in your browser at http://localhost:8000. Do not close this terminal while debugging.
(Alternative: if you don't want to install anything globally, you can just run npx zengin-ai-debugger).
Open a second terminal in your Python project folder and install our plugin from PyPI:
pip install zengin-ai-debugger(Make sure you also have the base libraries installed: pip install langchain-core requests)
Now let's add the magic to your code. Open your Python file containing the LangChain agent.
Here is a ready-to-use example:
from langchain_openai import ChatOpenAI
from langchain_core.prompts import PromptTemplate
from langchain_core.output_parsers import StrOutputParser
# 👉 1. IMPORT OUR PLUGIN
from zengin_ai_debugger import RealUIDebuggerCallback
# Create a standard LangChain sequence
llm = ChatOpenAI(model="gpt-3.5-turbo")
prompt = PromptTemplate.from_template("Write a fun fact about: {topic}")
parser = StrOutputParser()
chain = prompt | llm | parser
# 👉 2. INITIALIZE THE DEBUGGER
# By default, it sends data to http://localhost:8000
ui_debugger = RealUIDebuggerCallback()
print("Launching agent... Look at your browser!")
# 👉 3. PASS THE DEBUGGER TO THE CONFIG WHEN RUNNING
response = chain.invoke(
{"topic": "Capybaras"},
config={"callbacks": [ui_debugger]}
)
print("Response received:", response)(Note: The debugger works seamlessly with both synchronous chain.invoke() and asynchronous await chain.ainvoke() methods!)
- Run
zengin-ai-debuggerin the first terminal. - Open
http://localhost:8000in your browser. - Run your Python script in the second terminal.
- Blocks (Nodes) will start appearing in your browser.
- Click on any block to open the side panel. There you will see the exact text that entered this block (Input) and the text the block produced (Output).
- Click the "Clear screen" button to clear the canvas before your next run.
Now the debugger works as a true browser extension! To install it:
- Enter to the frontend
- Find dist
- Open Google Chrome and navigate to
chrome://extensions/. - Turn on Developer mode (toggle in the top right corner).
- Click Load unpacked and select the generated
distfolder. - Pin the extension icon. Now, whenever you click it, the debugger will automatically open in a new full-screen tab!
(Note: The bridge server zengin-ai-debugger must still be running in your terminal to receive data).
Хватит читать бесконечные логи в консоли! Этот инструмент позволяет вам в реальном времени видеть, как ваш ИИ-агент думает. Данные, промпты, нейросети и парсеры будут отрисовываться в виде красивого интерактивного графа прямо в вашем браузере.
Инструкция написана максимально просто, чтобы запустить инструмент смог каждый! ☕️
- ⚡ Рендеринг в реальном времени: Наблюдайте, как граф LangChain строится прямо во время работы агента.
- 💰 Подсчет токенов и стоимости: Автоматически считает потраченные токены и примерную стоимость запросов к LLM.
- 🛡️ Защита данных (PII Masking): Скрывает конфиденциальные данные (email, номера кредитных карт) в интерфейсе отладчика.
- 🔍 Глубокая инспекция: Кликните на любой узел, чтобы увидеть точные Input/Output, время выполнения и трейсы ошибок.
- 🔄 Универсальность: Отлично работает как с синхронными (
.invoke()), так и с асинхронными (.ainvoke()) цепочками.
Система состоит из двух частей, которые общаются друг с другом:
- Дашборд (Интерфейс в браузере) — устанавливается через
npm(Node.js). Он рисует граф. - Плагин (Python) — устанавливается через
pip. Он перехватывает данные из LangChain и отправляет их в Дашборд.
Для этого шага на вашем компьютере должен быть установлен Node.js.
Откройте терминал (командную строку) и введите команду для глобальной установки:
npm install -g zengin-ai-debuggerПосле завершения установки просто напишите в терминале:
zengin-ai-debugger🎉 Готово! Сервер запущен. У вас в браузере автоматически откроется страница http://localhost:8000. Не закрывайте этот терминал, пока отлаживаете агентов.
(Альтернатива: если не хотите ничего устанавливать глобально, можно просто запустить npx zengin-ai-debugger).
Откройте второй терминал в папке с вашим Python-проектом и установите наш плагин из PyPI:
pip install zengin-ai-debugger(Убедитесь, что у вас также установлены базовые библиотеки: pip install langchain-core requests)
Теперь добавим магию в ваш код. Откройте ваш Python-файл с LangChain агентом.
Вот готовый пример того, как это делается:
from langchain_openai import ChatOpenAI
from langchain_core.prompts import PromptTemplate
from langchain_core.output_parsers import StrOutputParser
# 👉 1. ИМПОРТИРУЕМ НАШ ПЛАГИН
from zengin_ai_debugger import RealUIDebuggerCallback
# Создаем стандартную цепочку LangChain
llm = ChatOpenAI(model="gpt-3.5-turbo")
prompt = PromptTemplate.from_template("Напиши забавный факт про: {topic}")
parser = StrOutputParser()
chain = prompt | llm | parser
# 👉 2. СОЗДАЕМ ОТЛАДЧИК
# Он по умолчанию будет слать данные на http://localhost:8000
ui_debugger = RealUIDebuggerCallback()
print("Запускаем агента... Смотрите в браузер!")
# 👉 3. ПЕРЕДАЕМ ОТЛАДЧИК В CONFIG ПРИ ЗАПУСКЕ
response = chain.invoke(
{"topic": "Капибары"},
config={"callbacks": [ui_debugger]}
)
print("Ответ получен:", response)(Примечание: Отладчик отлично работает как с синхронным запуском chain.invoke(), так и с асинхронным await chain.ainvoke()!)
- Запустили
zengin-ai-debuggerв первом терминале. - Открыли
http://localhost:8000в браузере. - Запустили ваш Python-скрипт во втором терминале.
- В браузере начнут появляться блоки (Ноды).
- Кликните на любой блок, чтобы справа открылась панель. Там вы увидите, какой именно текст вошел в этот блок (Input) и какой текст блок выдал в качестве результата (Output).
- Нажмите кнопку "Clear screen", чтобы очистить холст перед следующим запуском.
Теперь отладчик работает как полноценное расширение! Чтобы установить его:
- Зайдите в папку frontend и найдите папку dist
-
- Скачайте ее.
- Откройте Google Chrome и перейдите по адресу
chrome://extensions/. - Включите Режим разработчика (тумблер справа сверху).
- Нажмите Загрузить распакованное расширение и выберите созданную папку
dist. - Закрепите иконку расширения. Теперь по одному клику на нее интерфейс отладчика будет автоматически открываться в новой вкладке!
(Внимание: Сервер моста zengin-ai-debugger всё равно должен быть запущен в терминале для получения данных от агентов).