проблема разработки хорошего агента заключается в проблеме автоматической формализации контекста, точнее том никто ее хорошо не делает (пока что - возможно это будем делать мы!)
использование LLM как таковой слишком дорого, а чтобы считать алгоритмически - задачу нужно явно формализовать и описать на каком-то формальном языке, имеющем проекцию в линейный текст
ошибки перевода из интуиции модели в формулы - очень сложно описать языком. вообще схватить момент возникновения ошибки, чтобы назвать её. Сложно работать с тем, у чего нет имени.
и чем богаче формализм, тем ошибок больше.
поэтому я думаю, что нужно брать самый слабый формализм, который УЖЕ ловит КАКИЕ-ТО ошибки, но чтобы эти ошибки реально встречались у агентов
в этом смысле мой выбор Lean (HoTT) глубоко неправильный теоретически. Это очень жесткий вариант, в котором нашим "планам работ агентов" тесно. Он очень дорогой, дорого найти себе место внутри жестких ограничений, надо постоянно биться башкой об потолок. В конце концов, HoTT это не универсальный вычислитель: автоматичекий поиск доказательств неразрешим по своей природе, так что писать их в Lean или Agda будет та же LLM. Писать это без всякой LLM (идеальный вариант) никак не получится.
правильный формализм - это все со слабыми фрагментами. LTL/MTL, темпоральные сети (STN/STNU), SMT, Datalog, PDDL/HTN, TLA+
но правильный практически, потому что анализ Rust на Lean это уже достаточно хорошо исследованная область. Ирония: я только начал копаться в этой области, но у меня уже есть патчи (пулл риквесты) на Энея и Харона, потому что там есть очевидные косяки
что я хочу, после реализации всего на Lean, подключить более расслабленный движок (Z3 или STN плюс LTLf-монитор), который будет генерировать контрпримеры, и смотреть на разницу
тут еще в все зависит от того, что мы будем обсчитывать. Я неформально называю это "темпоральной логикой второго уровня", а что это такое будет - кванторы по планам и свойствам, логика над трассами перепланирований? Диффы сетки "успей меня если сможешь" в духе Оптопланера? Пока непонятно что лучше, надо пробовать всё
что касается самого процесса разработки, в силу невозможности просчитать бесконечные развития событий, нужно просто решать практически возникающие развития событий и придумывать решения в них
нужны задачи нужны со специально добавленными туда противоречиями. И с горизонтом, растущим скажем, от 10 до 500 шагов
измерять стоит долю невалидных планов, цену перепланирования при изменении предпосылки, токены и отдельно частоту ошибок формализации
ну и да, такой контрольной задачей для меня является разработка опенсорсного ядра VibeVM. Агент, на котором это обкатывается, условно называется Zap
сейчас план на VibeVM 1.1.0 это нечто порядка 300 шагов - не очень мало, но и не очень много (навскидку кажется, что решить это можно, наш темпоральный движок не должен захлебнуться)
кстати говоря, в VibeVM/Zap нет "шагов от начала" (нет никакого начала), иначе бы получился алгоритм маляра Шлемэля, когда мы каждый день уходим всё дальше от банки с краской. Вместо этого есть динамически двигающийся Туман Войны из Heroes 3
это не столько про то, чтобы просто сделать удобную хорошую штуку для управления промт-пакетами. Это ступенька в Большое Будущее.
в ту самую вожделенную историю про непрерывное и неконтролируемое рекурсивное самоулучшение мыслящих машин, которое однажды схлопнет мир в информационную сингулярность - и если мы силно постараемся, возможно, это случится надеюсь, в ближайшие лет 10
такие вот мечты. Тут и сказочке конец, а кто слушал - пора спать