Перейти к содержимому

Проблема структур данных, которую не видят 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...