Перейти к записи

Pulse — платформа для ИИ-агентов

Попросили в чате.
Задача готова.

Напишите, что нужно сделать. Подтвердите — и продолжайте работу.

Запись работающего продукта · демонстрационные данныеКак это выполнено
LangGraph

Исполняет граф ИИ-агента

А вот как это выполнено

LangGraph исполняет граф в Python: разбирает запрос, сохраняет состояние и ждёт подтверждения человека. Здесь показан путь запроса из записи. Нажмите на шаг, чтобы увидеть его инструкцию.

Задача созданаtask.createПосле «Да, создавай.»

Загружаем граф запроса…

Модель при разборе просьбы
gpt-4.1-mini
Входные токены
1 859
Выходные токены
15

Расход из ответа провайдера в этой записи. Граф построен по журналу выполнения Python / LangGraph.

Почему сотрудник не может самовольно изменить данные

Вход определяет пользователя и проект. Модель выбирает действие из разрешённого каталога, но не получает доступ к базе или ключам.

Перед записью LangGraph сохраняет состояние и ждёт решения человека. После подтверждения Go повторно проверяет права, поля и состояние действия. Только затем создаёт задачу и возвращает её в чат.

Инструкции, авторизация и контроль в коде
Агенты работают вместе

Пришло письмо.
Отделы уже за работой.

Один агент читает почту и распределяет обращения. ИИ-отдел готовит страницу сайта, бухгалтерия — счёт. Вы подтверждаете результат.

Сценарий в демо-компании · реальная модель · подтверждение человекомОткрыть сценарий в компании
Возможности продукта

Работа команды — в одном контексте

От обращения посетителя до задачи, сценария и оплаты. У каждого раздела есть интерфейс, серверная логика и границы доступа.

01

ИИ-сотрудник на LangGraph

Просьбы обычными словами, контекст проекта и инструменты. Граф останавливается перед изменениями и продолжает работу после вашего подтверждения.

Как устроено
02

Задачи и доски

Статусы, исполнители, приоритеты, сроки и комментарии. Задачу можно удалить и восстановить вместе с историей.

Как устроено
03

Процессы и учёт времени

Шаблоны работы, этапы и таймеры. Видно, кто выполняет задачу и сколько времени на неё потрачено.

Как устроено
04

Визуальные сценарии

Триггеры, условия и действия в редакторе графа. Черновики, публикация версий и отключение отдельного шага без потери настроек.

Как устроено
05

Чат на сайте

Виджет для посетителя и рабочее место оператора. Переписка, вложения и контекст; при сбое текст остаётся для повторной отправки.

Как устроено
06

Клиенты и услуги

Карточка клиента, его услуги, задачи и документы. Команда работает с общей историей в контексте своего проекта.

Как устроено
07

Оплаты и документы

График оплат, статусы и банковские черновики со сроком и назначением. Поддержан контракт счёта и платёжной ссылки; выпуск через банк ещё не подключён.

Как устроено
08

Команда и права

Компании, проекты и роли. Сервер проверяет доступ к данным и каждому действию, включая инструменты ИИ-сотрудника.

Как устроено
09

Интеграции и вебхуки

Каталог действий, входящие события, почта, мессенджеры и CRM. Реальные отправки требуют отдельного подключения провайдера.

Как устроено
10

История выполнения

Шаги сценария, ошибки, результаты и повторы. У ИИ видны пройденный граф, вызовы инструментов и фактический расход токенов.

Как устроено
11

SDK и фреймворки

TypeScript, Python, Go, PHP и другие языки. Примеры подключения для React, Next.js, Vue, FastAPI, Django, Laravel и других фреймворков.

Как устроено
12

Свой сервер и открытый код

React и Next.js, Go, Python и PostgreSQL. Исходники, контракты OpenAPI/gRPC и инструкции для самостоятельного запуска.

Как устроено
Все возможности и текущая готовность
Другие сценарии

Посмотрите остальные возможности в работе

Отключение шага, переписка с посетителем и подготовка счёта — в коротких записях интерфейса.

Запись интерфейсаТестовое пространство

Запись рабочего редактора. Сохранение проверяется через Go API. Во время исполнения отключённый шаг пропускается без внешнего вызова.

Сценарий 02

Изменения под контролем

Визуальный редактор хранит граф и настройки действий. Ненужный шаг можно отключить, сохранить и позднее вернуть в работу.

Отключить письмо клиенту, сохранив его настройки
  1. Выбираем действие на схеме
  2. Отключаем шаг и сохраняем черновик
  3. Открываем сценарий повторно: состояние сохранено
Фрагмент определения сценария · JSON
{
  "action_key": "mail",
  "action_type_key": "email.send",
  "label": "Письмо клиенту",
  "config": {
    "disabled": true
  }
}
Посмотреть реализацию
Архитектура и исходный кодReact · Go · Python · LangGraph · gRPC · PostgreSQL
Архитектура

У каждого слоя своя работа

Типизированные контракты соединяют интерфейс, бизнес-логику и ИИ. Ключи провайдеров не передаются в браузер.

01 /

Интерфейс

Next.js · React · TypeScript

Чат, визуальный граф, карточки действий. Пользователь видит предложение и подтверждает изменения.

Исходный код
02 /

Прикладной сервер

Go · OpenAPI · PostgreSQL

Проверка доступа, команды, транзакции и журнал действий. Здесь принимается решение о записи данных.

Исходный код
03 /

ИИ-сотрудник

Python · LangGraph · gRPC

Разбор запроса, поиск контекста, подготовка предложения и возобновление после подтверждения.

Исходный код
Запрос в чатеStartTurn · gRPCПредложениеПодтверждение Запись в БД

Проверяемое действие

Инструмент описывает вход, права и необходимость подтверждения. Ответ содержит результат и ссылку на созданную сущность.

Контракт инструментов

Продолжение после паузы

LangGraph сохраняет состояние в PostgreSQL. Подтверждение возобновляет выполнение; разрыв соединения не означает, что действие не произошло.

Хранение состояния

Надёжное исполнение

Worker забирает работу с ограниченной арендой. Журнал эффектов и очередь исходящих событий помогают контролировать повторы.

Журнал эффектов
Границы текущей реализации

Видеозаписи используют вымышленные данные. В открытом демо подключён APInet: можно получить совет и создать задачу после подтверждения. Данные гостей разделены, обращения к модели ограничены. Запись ИИ-сценария показывает просьбу в чате, подтверждение словами и созданную задачу. Затем раскрывается граф этого выполнения и фактический расход токенов. Банковский интерфейс пока сохраняет черновики: адаптеры банков ещё не реализованы.

Сервер — модульный монолит с командами владельцев данных и контрактами чтения. Транзакция объединяет действие, результат подтверждения и очередь событий. Проверки границ модулей и конкурентного выполнения входят в репозиторий.

Ограничения и состояние проекта
Для технического знакомства

Решения, которые можно проверить в коде

Четыре примера: состояние React, транзакции Go, граф Python и поведение внешних операций при сбое.

React / TypeScript

Интерфейс учитывает сбои сети

Общий HTTP-транспорт управляет отменой, тайм-аутами и повторами чтения. Ответ старого диалога не должен попасть в новый. Черновик остаётся у пользователя после ошибки отправки.

AbortSignal · CSRF · single-flight refresh
Разобрать решение

Команды записи не повторяются транспортом вслепую. Обновление сессии объединяет одновременные запросы. Публичное описание рендерится на сервере; клиентский JavaScript нужен для взаимодействий.

Открыть реализацию
Go / PostgreSQL

Правила выдерживают конкурирующие запросы

Удаление задачи проверяет права, блокирует строку и сохраняет изменение вместе с историей. Работающий таймер не позволяет удалить задачу.

BEGIN → FOR UPDATE → проверка → COMMIT
Разобрать решение

Проверка после SELECT FOR UPDATE закрывает гонку между удалением и запуском таймера. Повтор уже выполненной команды не дублирует событие. Поведение проверяется с настоящим PostgreSQL.

Открыть реализацию
Python / LangGraph / gRPC

Предложение ИИ становится управляемым действием

Граф отделяет разбор запроса, контекст, предложение и ожидание подтверждения. Python обращается к инструментам Go по контракту; права проверяет сервер.

StartTurn → предложение → ResumeTurn → результат
Разобрать решение

StartTurn передаёт поток событий, ResumeTurn продолжает диалог после решения пользователя. Checkpoint хранит состояние. Ответ инструмента возвращает результат и ссылку на сущность.

Открыть реализацию
Go worker / интеграции

Потерянный ответ — отдельное состояние

Worker получает работу с ограниченной арендой. Журнал эффектов различает успех, ошибку и неопределённый результат, когда внешний сервис мог уже выполнить действие.

started / succeeded / failed / unknown
Разобрать решение

Lease и fencing token контролируют владение заданием. Для внешнего API нужны идемпотентность и сверка; универсальная гарантия «ровно один раз» не заявляется. Поэтому будущий банковский адаптер предусматривает Lookup.

Открыть реализацию

15 минут с исходниками

Маршрут для ревью: файлы, вопросы к реализации, тесты и известные ограничения.

Перейти к разбору кода
SDK и интеграции с фреймворками