ИИ-сотрудник на LangGraph
Просьбы обычными словами, контекст проекта и инструменты. Граф останавливается перед изменениями и продолжает работу после вашего подтверждения.
Как устроеноPulse — платформа для ИИ-агентов
Напишите, что нужно сделать. Подтвердите — и продолжайте работу.
LangGraph исполняет граф в Python: разбирает запрос, сохраняет состояние и ждёт подтверждения человека. Здесь показан путь запроса из записи. Нажмите на шаг, чтобы увидеть его инструкцию.
task.createПосле «Да, создавай.»Загружаем граф запроса…
Расход из ответа провайдера в этой записи. Граф построен по журналу выполнения Python / LangGraph.
Вход определяет пользователя и проект. Модель выбирает действие из разрешённого каталога, но не получает доступ к базе или ключам.
Перед записью LangGraph сохраняет состояние и ждёт решения человека. После подтверждения Go повторно проверяет права, поля и состояние действия. Только затем создаёт задачу и возвращает её в чат.
Инструкции, авторизация и контроль в кодеОдин агент читает почту и распределяет обращения. ИИ-отдел готовит страницу сайта, бухгалтерия — счёт. Вы подтверждаете результат.
От обращения посетителя до задачи, сценария и оплаты. У каждого раздела есть интерфейс, серверная логика и границы доступа.
Просьбы обычными словами, контекст проекта и инструменты. Граф останавливается перед изменениями и продолжает работу после вашего подтверждения.
Как устроеноСтатусы, исполнители, приоритеты, сроки и комментарии. Задачу можно удалить и восстановить вместе с историей.
Как устроеноШаблоны работы, этапы и таймеры. Видно, кто выполняет задачу и сколько времени на неё потрачено.
Как устроеноТриггеры, условия и действия в редакторе графа. Черновики, публикация версий и отключение отдельного шага без потери настроек.
Как устроеноВиджет для посетителя и рабочее место оператора. Переписка, вложения и контекст; при сбое текст остаётся для повторной отправки.
Как устроеноКарточка клиента, его услуги, задачи и документы. Команда работает с общей историей в контексте своего проекта.
Как устроеноГрафик оплат, статусы и банковские черновики со сроком и назначением. Поддержан контракт счёта и платёжной ссылки; выпуск через банк ещё не подключён.
Как устроеноКомпании, проекты и роли. Сервер проверяет доступ к данным и каждому действию, включая инструменты ИИ-сотрудника.
Как устроеноКаталог действий, входящие события, почта, мессенджеры и CRM. Реальные отправки требуют отдельного подключения провайдера.
Как устроеноШаги сценария, ошибки, результаты и повторы. У ИИ видны пройденный граф, вызовы инструментов и фактический расход токенов.
Как устроеноTypeScript, Python, Go, PHP и другие языки. Примеры подключения для React, Next.js, Vue, FastAPI, Django, Laravel и других фреймворков.
Как устроеноReact и Next.js, Go, Python и PostgreSQL. Исходники, контракты OpenAPI/gRPC и инструкции для самостоятельного запуска.
Как устроеноОтключение шага, переписка с посетителем и подготовка счёта — в коротких записях интерфейса.
Запись рабочего редактора. Сохранение проверяется через Go API. Во время исполнения отключённый шаг пропускается без внешнего вызова.
Визуальный редактор хранит граф и настройки действий. Ненужный шаг можно отключить, сохранить и позднее вернуть в работу.
Отключить письмо клиенту, сохранив его настройки
{
"action_key": "mail",
"action_type_key": "email.send",
"label": "Письмо клиенту",
"config": {
"disabled": true
}
}Типизированные контракты соединяют интерфейс, бизнес-логику и ИИ. Ключи провайдеров не передаются в браузер.
Чат, визуальный граф, карточки действий. Пользователь видит предложение и подтверждает изменения.
Исходный кодПроверка доступа, команды, транзакции и журнал действий. Здесь принимается решение о записи данных.
Исходный кодРазбор запроса, поиск контекста, подготовка предложения и возобновление после подтверждения.
Исходный кодИнструмент описывает вход, права и необходимость подтверждения. Ответ содержит результат и ссылку на созданную сущность.
Контракт инструментовLangGraph сохраняет состояние в PostgreSQL. Подтверждение возобновляет выполнение; разрыв соединения не означает, что действие не произошло.
Хранение состоянияWorker забирает работу с ограниченной арендой. Журнал эффектов и очередь исходящих событий помогают контролировать повторы.
Журнал эффектовВидеозаписи используют вымышленные данные. В открытом демо подключён APInet: можно получить совет и создать задачу после подтверждения. Данные гостей разделены, обращения к модели ограничены. Запись ИИ-сценария показывает просьбу в чате, подтверждение словами и созданную задачу. Затем раскрывается граф этого выполнения и фактический расход токенов. Банковский интерфейс пока сохраняет черновики: адаптеры банков ещё не реализованы.
Сервер — модульный монолит с командами владельцев данных и контрактами чтения. Транзакция объединяет действие, результат подтверждения и очередь событий. Проверки границ модулей и конкурентного выполнения входят в репозиторий.
Ограничения и состояние проектаЧетыре примера: состояние React, транзакции Go, граф Python и поведение внешних операций при сбое.
Общий HTTP-транспорт управляет отменой, тайм-аутами и повторами чтения. Ответ старого диалога не должен попасть в новый. Черновик остаётся у пользователя после ошибки отправки.
AbortSignal · CSRF · single-flight refreshКоманды записи не повторяются транспортом вслепую. Обновление сессии объединяет одновременные запросы. Публичное описание рендерится на сервере; клиентский JavaScript нужен для взаимодействий.
Открыть реализациюУдаление задачи проверяет права, блокирует строку и сохраняет изменение вместе с историей. Работающий таймер не позволяет удалить задачу.
BEGIN → FOR UPDATE → проверка → COMMITПроверка после SELECT FOR UPDATE закрывает гонку между удалением и запуском таймера. Повтор уже выполненной команды не дублирует событие. Поведение проверяется с настоящим PostgreSQL.
Открыть реализациюГраф отделяет разбор запроса, контекст, предложение и ожидание подтверждения. Python обращается к инструментам Go по контракту; права проверяет сервер.
StartTurn → предложение → ResumeTurn → результатStartTurn передаёт поток событий, ResumeTurn продолжает диалог после решения пользователя. Checkpoint хранит состояние. Ответ инструмента возвращает результат и ссылку на сущность.
Открыть реализациюWorker получает работу с ограниченной арендой. Журнал эффектов различает успех, ошибку и неопределённый результат, когда внешний сервис мог уже выполнить действие.
started / succeeded / failed / unknownLease и fencing token контролируют владение заданием. Для внешнего API нужны идемпотентность и сверка; универсальная гарантия «ровно один раз» не заявляется. Поэтому будущий банковский адаптер предусматривает Lookup.
Открыть реализациюМаршрут для ревью: файлы, вопросы к реализации, тесты и известные ограничения.