Самое сложное в создании AI-агентов - это не сам AI. Это UI.
Объясняю:
Бэкенд для агентов, по сути, уже решенная задача.
Выбираешь фреймворк - LangGraph, CrewAI, Mastra - и собираешь что угодно.
Но как только пытаешься прикрутить это к фронтенд-приложению, начинаются проблемы:
↳ стриминг в реальном времени
↳ синхронизация состояния между UI и агентом
↳ разбор сообщений, вызовы инструментов и событий статуса
↳ логика реконнекта, когда пользователь обновляет страницу посреди диалога
У многих команд недели уходят на самописные WebSocket-хендлеры и обвязку, чтобы просто завести базу.
CopilotKit только что выкатили useAgent(), чтобы закрыть эту проблему
Один этот хук дает живое подключение к любому агенту:
const { agent } = useAgent({ agentId: "my-agent" });Из коробки получаешь стриминг, синхрон состояния, пользовательский ввод автоматически упаковывается в события AG-UI, и есть "ручное подтверждение человеком".
Работает с любым бэкендом, который реализует протокол AG-UI.
Поддержка тредов встроена, так что разговоры сохраняются и автоматически продолжаются. Реконнект стрима тоже просто работает.
Для понимания, AG-UI - это протокол, который соединяет агентов с UI-приложениями. Можно думать так:
MCP: агенты - инструменты
A2A: агенты - агенты
AG-UI: агенты - пользователи
Если ты строишь интерактивных агентов уровня Cursor или Lovable, это тот фреймворк, который объединяет весь твой агентный стек
Полностью open-source.
Ссылка на GitHub 🕺
👉
@PythonPortal