Все знают, как задавать агентам md-скиллы, но никто не знает, как их координировать. Существующие фреймворки (n8n, LangGraph, CrewAI и др.) -- чисто инженерные решения, причём ad hoc. Некоторые из них (например, LangGraph, автор которого учился в Гарварде по cs, и потом возглавлял мощную команду по ML) реально глубоко осмысливают concurrency и математику конечных автоматов. Но ни один из них не опирается полноценно на то, что мы знаем из математики и computer science о композиции типов, спецификации протоколов или структурных гарантиях для параллельных систем. Надеюсь, кто-нибудь из вас, дорогие, это реализует :)
Агент -- это особый вид морфизма. Он принимает типизированный ввод и выдаёт типизированный вывод, как и любой другой морфизм, и мы можем успешно задействовать эти типы. Это хорошо известный приём: на самом деле, PydanticAI и тот же Vercel AI SDK делают именно так. Агенты реализуют типизацию на уровне языковой модели, создавая и принимая JSON, и мы можем легко чекать, что JSON имеет правильный формат. Это основа проверки типов.
Но в отличие от структурных морфизмов, агент is stateful. Поэтому мы принимаем соглашение из k-исчисления: если значение аргумента не используется, его можно просто не писать в явном виде, либо оно сокращается. То есть аргумент, помеченный как "неиспользуемый", может быть вообще исключён из синтаксиса или типа.
Это я к тому, что очередной поразительный синхронизм: как стал копать в темку теории категорий для агентов, так быстро попал в склейку с архитектурой портов и адаптеров, которую я начал понемногу формализовывать: идеальная стыковка! То есть агентов мы композируем через явные соединения между портами, и формально такая взаимосвязь выглядит как бесточечный стиль в функциональном программировании (функция строится через композицию других функций; от лямбда-исчисления к комбинаторной логике): сжатая форма удобна для мышления (агентов) и написания (агентами), а развёрнутая форма удобна для выполнения.
А я говорил, что самая мощная формальная база для продуктивного использования AI-агентов -- это мета-программирование, правильно подобранный/созданный DSL.
(базу по этому всему добавляю ментатам в гайде "Функциональные архитектуры")
Post #2309
734

- ✍ 31
- 🤔 11
- 👍 5