00:00:00(энергичная музыка) - Привет, спасибо, что пригласили нас.
00:00:11Я Джек,
00:00:11и вместе с моей коллегой Никитой,
00:00:14которая скоро выйдет,
00:00:15мы создали Lightfield,
00:00:17CRM на основе ИИ.
00:00:19Мы начали использовать AI SDK V4 в январе,
00:00:21а V5 внедрили сразу,
00:00:23как только она вышла в альфа-версии в июне.
00:00:26Сегодня мы хотим поделиться с вами,
00:00:28как мы построили производственную систему,
00:00:30в которой ИИ-агенты имеют безопасный полный доступ на чтение и запись к данным клиентов,
00:00:35как мы организуем работу с участием человека,
00:00:37и какие архитектурные решения это сделали возможным.
00:00:40Мы расскажем о закономерностях,
00:00:42которые открыли,
00:00:43компромиссах,
00:00:43которые нашли,
00:00:44и о том,
00:00:45как AI SDK позволил нам быстро двигаться вперед,
00:00:47не создавая себе проблем на будущее.
00:00:49Но сначала поговорим о том,
00:00:51почему CRM-системы были несовершенны и почему это важно.
00:00:54Итак, кто знаком с CRM?
00:00:59Может быть?
00:01:00Кто-то из инженеров?
00:01:01Да, вот что должно происходить, верно?
00:01:03Вы начинаете общаться с клиентами.
00:01:05Может быть, вы основатель, который занимается продажами.
00:01:07Или вы в отделе продаж.
00:01:10Поначалу кажется, что всё управляемо.
00:01:11Вы помните всех.
00:01:13Каждый разговор свежий в памяти.
00:01:16Потом вы достигаете 10,
00:01:1820,
00:01:1850 клиентов,
00:01:19и кто-то из команды спрашивает: «Слушай,
00:01:22что Сара из Acme говорила о нашем ценообразовании?
00:01:26У неё были сомнения по поводу корпоративного тарифа?» И вот вы начинаете искать в Slack.
00:01:31Ищете в почте.
00:01:32Ищете в Google Docs.
00:01:34И может быть,
00:01:35в той записи Zoom,
00:01:36которую ещё не расшифровали.
00:01:38В итоге находите это,
00:01:39зарытое в тред от две недели назад,
00:01:41но понимаете,
00:01:42что в табличку так и не занесли.
00:01:44Так вы покупаете CRM.
00:01:47Обещает быть единственным источником информации,
00:01:49но становится ещё одним местом,
00:01:51которое забываешь обновлять.
00:01:52В чём проблема.
00:01:54Традиционные CRM-системы создавались десятки лет назад с фундаментальным предположением,
00:01:59что люди будут вручную вводить данные.
00:02:01Они предложили жёсткие поля и предустановленные схемы,
00:02:05но реальный контекст,
00:02:07нюансы ваших разговоров находятся в почте,
00:02:10Slack,
00:02:10заметках встреч,
00:02:12в разных местах.
00:02:13И CRM становится просто инструментом отчётности для VP отдела продаж,
00:02:18а не помощником в продажах.
00:02:20Мы подумали, что должен быть лучший способ.
00:02:22А что если система просто помнила бы?
00:02:25Что если бы она всё захватывала разумно и могла бы действовать от вашего имени?
00:02:30Это Lightfield.
00:02:31Итак, Lightfield переосмысляет, какой должна быть CRM.
00:02:35Это система памяти и действий для стартапов.
00:02:39Она имеет автоматический захват.
00:02:41Разговоры,
00:02:42встречи,
00:02:43письма — всё захватывается и структурируется без ручного ввода.
00:02:50Имеет память без потерь.
00:02:52Мы поддерживаем схемы списков и пользовательские схемы.
00:02:54Вам не нужно заранее знать,
00:02:55что отслеживать,
00:02:56или платить консультанту за настройку.
00:02:58И она превращает память в действия.
00:03:02Lightfield использует весь захваченный контекст,
00:03:04как структурированные,
00:03:05так и разговорные данные,
00:03:06чтобы составлять черновики ответов,
00:03:08выявлять закономерности и автоматизировать для вас рабочие процессы.
00:03:11Традиционно CRM создаются для отделов продаж,
00:03:14отслеживающих сделки,
00:03:15но поскольку Lightfield захватывает и структурирует все разговорные данные,
00:03:20она становится очень мощной для всех,
00:03:22кому нужно помнить и действовать на основе контекста клиента.
00:03:26Какие функции чаще всего запрашивали на встречах с новыми пользователями на прошлой неделе?
00:03:31Команды успеха клиентов анализируют закономерности в обращениях в поддержку.
00:03:35Одна система,
00:03:35разные вопросы,
00:03:37но всё работает благодаря одному слою памяти.
00:03:40Вот что это такое.
00:03:41Дайте я покажу, как это выглядит.
00:03:43Вот пример запроса к агенту Lightfield.
00:03:48Думаю,
00:03:49мы просим найти пять застопорившихся сделок и составить личное письмо для каждой.
00:03:55Так что агент может искать по всей информации о клиентах,
00:03:59используя агента,
00:04:00построенного на AI SDK.
00:04:02Он может понять,
00:04:03что такое застопорившиеся сделки,
00:04:05а потом использовать эту информацию для составления писем для всех этих возможностей.
00:04:23Вот пример.
00:04:25И потом,
00:04:25вы знаете,
00:04:26пользователь может,
00:04:27мы можем отправить это письмо.
00:04:29Как же всё это работает?
00:04:34Давайте разберёмся, что происходит за кулисами.
00:04:37Пользователь совершает действие.
00:04:39Это может быть отправка сообщения в чат.
00:04:41Это может быть внешнее событие,
00:04:43например триггер,
00:04:45письмо или окончание встречи.
00:04:47Агент сразу же получает контекст.
00:04:50Где пользователь в приложении?
00:04:52Что он делал недавно?
00:04:54И каково его намерение?
00:04:55Какие инструменты доступны?
00:04:57Потом включается Lightfield.
00:04:59Он ищет релевантные данные,
00:05:01действует в CRM,
00:05:02обновляет записи и отправляет ответ.
00:05:05Всё это происходит через один и тот же унифицированный уровень данных,
00:05:09который питает интерфейс.
00:05:10Дайте я покажу вам, как мы это делаем.
00:05:11Вот архитектура, которая всё это обеспечивает.
00:05:15Три разных интерфейса здесь.
00:05:19UI для людей,
00:05:20агенты для естественного языка и задачи рабочих потоков для автоматизации.
00:05:26Вот главное.
00:05:27Они все взаимодействуют через один унифицированный уровень,
00:05:31объекты домена.
00:05:32Они имеют одинаковые разрешения.
00:05:33Агент имеет те же разрешения,
00:05:35что и пользователь,
00:05:36который запустил агент.
00:05:37Одна и та же бизнес-логика и одинаковые шаблоны доступа к данным.
00:05:41Нет отдельного API для агентов с другими правилами или ограниченным доступом.
00:05:46Итак, мы объединяем хранилище из различных систем здесь.
00:05:51Структурированные данные,
00:05:52объектное хранилище и индексированные на различных платформах поиска.
00:05:57Мы предоставляем одинаковые возможности и одинаковый интерфейс.
00:06:01Один из принципов,
00:06:03которые мы используем при построении нашей платформы — это паритет UI агента.
00:06:10Если пользователь может получить доступ,
00:06:12агент может получить доступ.
00:06:14Полный доступ на чтение,
00:06:16создание и обновление для всех данных.
00:06:19Одинаковые разрешения, видимость, операции.
00:06:24Ну,
00:06:24это выбор продукта и архитектуры,
00:06:26который мы сделали с самого начала.
00:06:28Вот почему создание AI-native с нуля лучше,
00:06:31чем добавление агентов к устаревшим системам.
00:06:34Итак,
00:06:35агенты в Lightfield действуют от вашего имени с теми же разрешениями через тот же уровень данных,
00:06:41который питает UI.
00:06:42Они просто ещё один интерфейс к вашим данным.
00:06:44Так что когда мы выбирали инструменты для построения Lightfield,
00:06:48нам нужны были примитивы,
00:06:49которые не заставили бы нас использовать разные архитектуры для агентов и пользователей.
00:06:54Это ограничение повлияло на весь наш стек,
00:06:56включая выбранный нами фреймворк ИИ.
00:06:58И дело в том,
00:07:00что строить AI-продукты в 2025 году — никто не знает весь сценарий,
00:07:09верно?
00:07:10Так что мы оптимизируем скорость обучения выше совершенства.
00:07:14Мы на самом деле используем эту концепцию в Lightfield.
00:07:19Когда нашей инженерной команде нужно понять проблему клиента,
00:07:23ей не нужно перемещаться по CRM.
00:07:25Она может просто спросить.
00:07:26Так что естественный язык — это действительно интерфейс,
00:07:33который нам нужен.
00:07:35Итак,
00:07:36AISDK дал нам гибкость,
00:07:37чтобы итерировать это без переписывания всего.
00:07:41Но ключ в менталитете.
00:07:43Мы сосредоточились на создании функций и решении реальных проблем,
00:07:47а не на борьбе с фреймворками или излишней инженеризацией абстракций.
00:07:50Так что ключ здесь — двигаться быстро и учиться быстро.
00:07:53Мы постоянно возвращались к этой цитате.
00:08:02«Дублирование намного дешевле,
00:08:05чем неправильная абстракция» от Сэнди Метц.
00:08:08И я думаю,
00:08:09это очень актуально при создании AI-продуктов сегодня.
00:08:13Очень быстро можно писать ПО.
00:08:17И это даже быстрее, чем год назад.
00:08:19И убедиться,
00:08:20что существует правильный фреймворк,
00:08:22действительно важно.
00:08:23И неправильная абстракция может быть ещё более дорогостоящей.
00:08:27Давайте поговорим об этом подробнее на практике.
00:08:34Так как мы строили Lightfield,
00:08:37мы начали разрабатывать AISDK в январе этого года.
00:08:43Мы внедрили его для поддержки переключения моделей и начали использовать примитивы stream text.
00:08:54И так мы смогли отправить ранние задачи определённым агентам в течение недель.
00:08:58Мы начали строить всё больше и больше агентов и всё больше функций чата.
00:09:04И в июне 2025 года мы начали внедрять useChat API,
00:09:09конкретно из-за опций пользовательского транспорта,
00:09:14которые были выпущены.
00:09:16Главное здесь — мы смогли внедрить AISDK,
00:09:22переходя от V4 к альфа V5.
00:09:25Звучит так,
00:09:27как будто V6 скоро будет выпущена,
00:09:31довольно плавно и быстро.
00:09:34У нас внутри есть шутка,
00:09:37что мы определим нужную нам функцию AISDK и на следующий день увидим твит от команды AISDK.
00:09:46И узнав сегодня утром,
00:09:47что у Нико есть агент,
00:09:49который просто генерирует эти твиты.
00:09:51Забавно это видеть.
00:09:53Вот именно то, что вам нужно от фреймворка.
00:09:57Он растёт вместе с вами,
00:09:58вместо того чтобы заставлять переписывать или замедляться.
00:10:00Вот пример Lightfield в действии.
00:10:05В чате здесь я задаю вопрос, что дальше по этому аккаунту?
00:10:16Что Джордан Ли сказал на нашем последнем звонке?
00:10:19Обратите внимание, что пользователь не делал.
00:10:21Не пришлось говорить,
00:10:23что аккаунт это Streamline Protocol или спрашивать о конкретной встрече.
00:10:30Мы использовали AISDK для создания этой функции,
00:10:34которую называем адаптивный сбор контекста.
00:10:37Она предоставляет сигналы от пользователя в сочетании с разумным поиском,
00:10:42чтобы выяснить,
00:10:43что действительно важно.
00:10:45Давайте я расскажу примеры того,
00:10:47как мы используем SDK для этого.
00:10:49SDK имеет API,
00:10:50называемый Data Parts,
00:10:52и мы используем его для предоставления сигналов от клиента серверу,
00:10:59который строит контекст.
00:11:01Мы можем,
00:11:02на клиенте,
00:11:03использовать разные сущности и предоставлять разные сигналы,
00:11:07используя API Data Parts,
00:11:08и потом мы полностью гидрируем это на сервере.
00:11:11Я позволю своей коллеге Никите рассказать больше о том,
00:11:15как мы используем Data Parts для создания дополнительных функций.
00:11:19(энергичная музыка)
00:11:24(энергичная музыка) - Спасибо, Джек.
00:11:28Ещё один пример,
00:11:29похожий на адаптивный сбор контекста — это как мы внедряем файлы в поток чата.
00:11:35AISDK предоставляет нам действительно простой способ сделать это.
00:11:39Мы можем просто использовать функцию send message из хука use chat,
00:11:44предоставить ей запрос пользователя и список файлов,
00:11:47и это работает с любым провайдером прямо из коробки.
00:11:50Но это вызывает некоторые практические проблемы масштабируемости.
00:11:54Например,
00:11:55как убедиться,
00:11:56что мы не сохраняем эти данные напрямую в базе данных,
00:11:59если мы напрямую кодируем файлы?
00:12:01Если мы используем URL-адреса S3,
00:12:04как убедиться,
00:12:05что мы не случайно не раскроем приватные данные пользователя?
00:12:09Наше решение — вместо этого клиент отправляет серверу внутренний ID,
00:12:15ссылающийся на загруженный файл в нашем собственном хранилище данных.
00:12:21На сервере мы переберём все части файла и заменим эти внутренние идентификаторы подписанными URL-адресами S3.
00:12:30Это позволяет внешним провайдерам LM по-прежнему просматривать эти прикреплённые файлы,
00:12:35но время истечения подписанных URL-адресов предотвращает несанкционированный доступ.
00:12:41Ещё один пример того,
00:12:43как мы защищаем данные пользователя в Lightfield — через концепцию контекстных коллекций инструментов.
00:12:50Когда пользователь взаимодействует с продуктом чата Lightfield,
00:12:55мы динамически создаём набор инструментов,
00:12:58специфичный для пользователя.
00:13:00Мы вводим эти зависимости напрямую в инструменты.
00:13:03Например,
00:13:04в этом инструменте получения данных мы внедряем ID пользователя напрямую в сам инструмент.
00:13:11LLM никогда напрямую не выдаёт запросы к базе данных.
00:13:15Всё проходит через тот же унифицированный уровень данных,
00:13:19который пользователь получает через остальной интерфейс CRM.
00:13:23Итак,
00:13:24у нас есть эта философия дизайна поддержания паритета между UI CRM и возможностями агента.
00:13:34Когда пользователь может создавать сущности CRM,
00:13:37как аккаунты,
00:13:38возможности и контакты,
00:13:39через этот модальный интерфейс в UI,
00:13:42мы хотим,
00:13:42чтобы они могли делать то же через интерфейс,
00:13:45основанный на чате.
00:13:48LLM может выполнить вызов инструмента для создания этих аккаунтов и будет отображать форму с теми же входами,
00:13:54которые показаны в пользовательском интерфейсе.
00:13:57Мы создали это,
00:13:58используя абстракции человека в цикле обратной связи AI SDK.
00:14:03Вот как это в основном работает: когда LLM выполняет вызов инструмента,
00:14:08требующий подтверждения,
00:14:09он пересылает этот вызов инструмента на клиент фронтенда.
00:14:13Клиент отображает интерфейс и добавляет результат инструмента в зависимости от действия пользователя.
00:14:20На сервере,
00:14:21непосредственно перед тем,
00:14:23как мы отправим этот вывод LLM,
00:14:25мы выполняем функции в зависимости от того,
00:14:29что отправил пользователь.
00:14:31Схема, описывающая, как мы это сделали, показана здесь.
00:14:37Итак,
00:14:37первоначальный ввод пользователя — это вызов инструмента.
00:14:43LLM предлагает набор входных значений,
00:14:45в этом случае массив элементов,
00:14:48представляющих названия и домены аккаунтов.
00:14:51После редактирования значений пользователем результат становится отредактированными значениями пользователя плюс дополнительное поле,
00:14:59указывающее,
00:15:00одобрили ли они этот конкретный элемент.
00:15:03После выполнения функции мы добавляем этот результат к выходу инструмента перед его отправкой LLM.
00:15:11Например,
00:15:12была ли успешна создание аккаунта или он не удался по какой-то причине,
00:15:17например аккаунт уже существует в CRM?
00:15:19Это обеспечивает LLM полной видимостью истории взаимодействия.
00:15:26Он может видеть весь поток,
00:15:28первоначально предложенные значения и результаты.
00:15:33Это даёт ему возможность надлежащим образом предложить дальнейшие шаги.
00:15:38Итак,
00:15:38у нас также есть этот принцип дизайна,
00:15:41позволяющий пользователю адаптировать CRM под свои потребности.
00:15:45У каждого бизнеса есть уникальные аспекты и уникальные процессы продаж.
00:15:52Мы хотим,
00:15:53чтобы вы могли кастомизировать CRM и адаптировать взаимодействие с агентом под свои конкретные потребности.
00:16:00В Lightfield вы можете построить пользовательскую модель данных для каждой из сущностей CRM.
00:16:08Например,
00:16:09если вы B2B-компания,
00:16:11продающая ваш инструмент кодирования стартапам,
00:16:15вы,
00:16:15вероятно,
00:16:16особенно заинтересованы в отслеживании техстека вашего клиента,
00:16:21размера инженерной команды и,
00:16:23возможно,
00:16:24общих инвесторов.
00:16:26В Lightfield вы можете указать все эти типизированные поля.
00:16:30И вы можете указать,
00:16:32как агент должен использовать эти поля в своих процессах.
00:16:38Вы можете предоставить дополнительные инструкции по значениям этих полей и как он должен использовать эти поля при обновлении их в различных фоновых рабочих процессах.
00:16:48Например,
00:16:49если вы создали поле,
00:16:51вы можете попросить агента заполнить его,
00:16:54проведя глубокое исследование в веб и обогатить эти поля для всех аккаунтов в вашей системе.
00:17:03Или вы можете попросить его заполнить,
00:17:05ища по вашим записям CRM,
00:17:07которые включают записи встреч,
00:17:09письма и другие взаимодействия с аккаунтом.
00:17:13На сервере это выглядит так: мы создаём этот инструмент во время выполнения с помощью схемы,
00:17:22основанной на конкретной конфигурации вашей компании.
00:17:28Сама схема инструмента производна из этой базы данных.
00:17:32И когда LLM предлагает значения,
00:17:34мы проверяем типы,
00:17:35чтобы убедиться,
00:17:36что они совпадают с этой схемой.
00:17:38Это позволяет нам создавать действительно гибкие и надёжные инструменты.
00:17:42В Lightfield вы также можете настроить этот раздел знаний,
00:17:47где вы можете предоставить LLM дополнительный контекст о вашем бизнесе.
00:17:53Вы можете предоставить информацию о продуктах вашей компании и инструкции для того,
00:18:00как LLM должен запускать фоновые рабочие процессы,
00:18:04такие как подготовка к встречам.
00:18:06Перед каждой встречей Lightfield подготовит для вас документ,
00:18:12подготовив вас к обсуждению.
00:18:15Это перечислит ключевых участников и дополнительную информацию о них.
00:18:19Это перечислит информацию о конкретном аккаунте,
00:18:23с которым вы встречаетесь,
00:18:25и другие важные обсуждаемые вопросы.
00:18:27После встречи он предложит пункты повестки дня и предложит обновления полей на основе того,
00:18:34что вы обсудили.
00:18:35Все эти базовые строительные блоки объединяются,
00:18:39чтобы разблокировать мощные новые возможности.
00:18:42Поскольку Lightfield имеет полный контекст всех ваших взаимодействий с продажами и высокую степень пользовательских знаний,
00:18:49она может сотрудничать с вами,
00:18:51чтобы быстро генерировать высокопрофессиональные письма от вашего имени.
00:18:56Например,
00:18:56после встречи вы можете использовать этот инструмент для доступа к вашему Google Calendar,
00:19:02чтобы посмотреть вашу доступность.
00:19:05Когда генерируется этот черновик письма,
00:19:07он может надлежащим образом предложить время для последующих встреч на основе предыдущих обсуждений.
00:19:14Эти черновики писем всё еще заблокированы за пользовательским одобрением,
00:19:18поэтому вы можете быть уверены,
00:19:20что агент LLM никогда не действует без вашего явного одобрения.
00:19:25Эти пункты действий и черновики писем подготавливаются для вас,
00:19:30и мы отправим вам уведомления,
00:19:32чтобы убедиться,
00:19:33что вы остаётесь в курсе каждой сделки,
00:19:35над которой работаете.
00:19:37Ладно, я возвращаю слово Джеку, чтобы всё это собрать.
00:19:43- Ладно.
00:19:46(аплодисменты аудитории) Спасибо, Никита.
00:19:53Итак,
00:19:54основные принципы,
00:19:55которые мы открыли при построении Lightfield с AI SDK.
00:19:59Принцип первый, паритет безопасности UI агента.
00:20:03Спроектировано с самого начала.
00:20:05Агентам нужен полный доступ для чтения и записи через тот же уровень данных,
00:20:08который используют люди.
00:20:09Не создавайте отдельный API для агентов.
00:20:11В итоге вы будете поддерживать несколько систем,
00:20:14и ни одна не будет полной.
00:20:15Принцип второй,
00:20:16быстрая итерация вместо совершенной абстракции.
00:20:19Оптимизируйте скорость обучения в начале,
00:20:21а не совершенство с самого начала.
00:20:23У нас был похожий код в агентах чата,
00:20:25функциях API и фоновых рабочих процессах.
00:20:28Некоторое дублирование действительно дешевле,
00:20:31чем неправильная абстракция,
00:20:32особенно когда формируются соглашения.
00:20:35Принцип третий,
00:20:36рабочие процессы с участием человека,
00:20:38которым пользователи доверяют.
00:20:41Люди должны оставаться под контролем,
00:20:43особенно при высокорисковых взаимодействиях.
00:20:45Мы перехватили уровень инструментов.
00:20:48Агент видит первоначальное предложение,
00:20:50редактирование пользователя и результат выполнения.
00:20:53Полная прозрачность, полная история.
00:20:56Вот что завоёвывает доверие.
00:20:58Принцип четвёртый,
00:20:59программируемые системы пользователями и агентами.
00:21:02Реальные клиенты нуждаются в пользовательских моделях данных.
00:21:04Каждый бизнес отслеживает вещи по-разному.
00:21:07Как пользователи,
00:21:08так и агенты могут определять новые поля,
00:21:10и система может адаптироваться.
00:21:13Это означает,
00:21:13что ваш продукт адаптируется к тому,
00:21:15как клиенты структурируют свои данные,
00:21:17а не наоборот.
00:21:18Это более сложно для создания,
00:21:19но это разница между продуктом,
00:21:21который люди терпят,
00:21:22и тем,
00:21:23без которого они не могут жить.
00:21:24Мы будем рады услышать,
00:21:25над чем вы работаете и какие закономерности вы открываете.
00:21:28Найдите нас после или посетите lightfield.app,
00:21:31чтобы увидеть эти принципы в действии.
00:21:34Спасибо.
00:21:35(энергичная музыка)