Проблема структур данных, которую не видят AI-агенты для кодинга
Boundary и HumanLayer
0:00 / 0:00
Проблема структур данных, которую не видят AI-агенты для кодинга
14 705 просмотров · 9 дней назад
Boundary и HumanLayer
14 705 просмотров · 9 дней назад
Агенты ИИ, занимающиеся программированием, могут создавать все более сложные программы, но качество этих программ часто зависит от решений, принимаемых до того, как код становится сложным.
В этом эпизоде подкаста «AI That Works» Декс, Вайбхав, Эйвери и Кайл подробно рассматривают две проблемы, лежащие в основе современных систем ИИ-программирования: выбор правильных структур данных и синхронизация огромных объемов быстро меняющихся данных между клиентами.
Эйвери начинает с обманчиво простого примера Ticketmaster, чтобы показать, как представление данных влияет на реализацию. По мере того, как агенты добавляют функции по одной, кажущиеся незначительными ошибки в структурах данных создают недопустимые состояния, дублирующиеся источники истины и усложняют кодовую базу. Затем он делится результатами эксперимента, в котором агенты-разработчики создавали систему постепенно, показывая, где именно они допускают эти ошибки и почему одних только хороших тестов недостаточно, чтобы их обнаружить.
Затем разговор переходит к архитектуре синхронизации HumanLayer. Кайл объясняет, почему простая реализация WebSocket быстро превращается в гораздо более сложную задачу распределенных систем, когда клиентам необходимо синхронизировать задачи, сеансы агентов, события разговора, файлы и быстро меняющиеся данные. Они разбирают механизмы синхронизации, PostgreSQL, WebSocket, надежные потоки, состояние клиента и разницу между обычной синхронизацией данных и высокочастотной потоковой передачей токенов.
Попутно они связывают инженерные проблемы с такими знакомыми системами, как многопользовательские видеоигры, и изучают важный урок для продуктов: пользователей не обязательно волнует задержка, если интерфейс создает ощущение мгновенной работы системы.
ОСНОВНЫЕ ВЫВОДЫ
• Хорошие структуры данных могут упростить алгоритмы и предотвратить целые категории недопустимых состояний
• Небольшие ошибки в коде ИИ становятся гораздо опаснее, когда они накапливаются во многих функциях
• Тесты могут оставаться положительными, даже если агент создал принципиально худшее представление
• Проверка структур данных может дать больше преимуществ, чем проверка каждой строки кода, сгенерированного ИИ
• Синхронизация в реальном времени намного сложнее, когда клиенты могут запрашивать множество различных форм быстро меняющихся данных
• Одних только WebSocket недостаточно для решения проблем сохранения, переподключения, буферизации и состояния
• Механизмы синхронизации отслеживают, что важно для каждого клиента, и доставляют только те обновления, которые имеют значение
• Для потоковой передачи токенов нужен более быстрый путь, чем многократная запись крошечных обновлений через Postgres
• Оптимизм на стороне клиента может создать у пользователей ощущение значительно большей скорости работы распределенных систем
• Лучшая архитектура часто получается в результате изучения систем, которые уже решили аналогичные проблемы
ВРЕМЕННЫЕ МЕТКИ
00:00 Почему структуры данных важнее кода
00:21 Что рассматривается в этом эпизоде
01:54 Структуры данных, ИИ Программирование агентов и механизмы синхронизации
04:12 Почему хорошие структуры данных делают алгоритмы очевидными
07:44 Почему программирование агентов вызывает трудности с представлением данных
09:37 Тестирование агентов ИИ с инкрементальными требованиями
13:06 Как агенты обрабатывают новые требования к структурам данных
17:05 Как новые функции создают нисходящую связь
18:24 Почему агенты ИИ создают недопустимые состояния
20:58 Почему прохождение тестов не означает хорошую архитектуру
22:28 Как небольшие ошибки ИИ накапливаются, превращаясь в хлам
25:08 Как HumanLayer синхронизирует сеансы программирования ИИ
28:58 Почему WebSockets недостаточно для синхронизации в реальном времени
32:16 Разница между синхронизацией чата и синхронизацией агента ИИ
35:55 Архитектура, лежащая в основе производственного механизма синхронизации
38:21 Почему быстрый доступ к данным сложнее, чем быстрый Пишет
41:44 Поддержание синхронизации быстро меняющихся данных агента
43:26 Как потоковая передача токенов обходит базу данных
45:10 Как механизм синхронизации определяет, каким клиентам нужны обновления
48:14 Как устойчивые потоки обрабатывают тысячи соединений
49:57 Создание ощущения мгновенности в распределенных системах ИИ
52:40 Почему оптимистичный пользовательский интерфейс важен для агентов ИИ
55:30 Как клиенты переподключаются без потери состояния
РАССМОТРЕНО ТЕМЫ
• Агенты ИИ
• Код, сгенерированный ИИ
• Структуры данных
• Архитектура программного обеспечения
• Качество кода
• Недостатки ИИ
• Технический долг
• Оценка агента
• Инкрементальная разработка
• Rust
• B-деревья
• Системы типов
• Распределенные системы
• Механизмы синхронизации
• Базы данных реального времени
• WebSockets
• Postgres
• Electric SQL
• Устойчивые потоки
• Потоковая передача токенов
• Синхронизация клиентов
• Оптимистичный пользовательский интерфейс
• Инфраструктура для ИИ-программирования
• Человеческий слой
• Многопользовательские системы
ХЭШТЕГИ
#AIT...