Симулируем кожаных 👩‍👩‍👦

У Microsoft есть интересный open-source проект — TinyTroupe. В чем суть? Большинство фреймворков заточены под assistance — помощь в решении задач. TinyTroupe заточен под симуляцию. Разница фундаментальная: ассистент должен быть эффективным, а симулятор — достоверным. Достоверный человек тупит, имеет предвзятость, помнит о завтраке и обладает характером.

Что внутри этого Python-зоопарка:
1. TinyPerson: У агента есть mental_faculty (когнитивные способности) и два вида памяти: EpisodicMemory (событийная цепочка) и SemanticMemory (база знаний и фактов).
2. Action Correction: Если LLM-агент внезапно «забывает» свою личность (например, веган начинает советовать стейк-хаус), система валидации TinyPersonValidator ловит это за руку, дает агенту по шапке и заставляет перегенерировать действие.
3. TinyWorld: Среда обитания. Здесь агенты взаимодействуют по правилам, которые вы описываете кодом. Можно задать даже социальную сеть с графами отношений.
4. TinyFactory: Генератор толпы. Если вам нужно 50 бразильских врачей, любящих тяжелый металл и экологию, для теста вашего нового приложения — фабрика их нашинкует по демографическим вводным.

Зачем это все?
Синтетические данные: Вместо того чтобы мучить реальных юзеров или покупать сомнительные датасеты, вы прогоняете проект через фокус-группу из 100 агентов с разными характерами.
Тестирование ПО: Можно заставить агента «пользоваться» вашим чат-ботом или поисковиком и смотреть, где он сломает логику своими человеческими ожиданиями.
Маркетинг: Оценка рекламы на симулированной аудитории до того, как вы сольете весь бюджет.

Внутри — типичный современный Python-стек: llama-index для RAG, chevron для шаблонов промптов и много-много JSON-спецификаций. Главный минус — по умолчанию все заточено под OpenAI.

Ну и кроме всего прочего, это доказательство, что мы живем в матрице 🌝

#годный_опенсорс