Создание интеллектуальных агентов с TinyTroupe: Быстрый старт
Что такое TinyTroupe?
TinyTroupe — это экспериментальная Python-библиотека от Microsoft, предназначенная для моделирования людей с определёнными личностными характеристиками, интересами и целями. Эти искусственные агенты, называемые «TinyPerson», могут взаимодействовать между собой и с окружающей средой, имитируя реалистичное поведение.
Что такое TinyPerson?
В основе TinyTroupe лежит класс TinyPerson. TinyPerson - это основной строительный блок для создания сложных, управляемых LLM агентов.
Экспериментируйте с различными промптами, конфигурациями памяти и ментальными способностями, чтобы раскрыть весь потенциал моделирования человеческого поведения.
Представьте его как чертеж для смоделированной личности. Каждая TinyPerson обладает:
Имя: Уникальный идентификатор.
Когнитивные состояния: Внутренние переменные, представляющие внимание, эмоции, цели и другие ментальные аспекты, влияющие на поведение.
Память: Разделенная на episodic_memory (конкретные события) и semantic_memory (общие знания), отражая структуру человеческой памяти.
Поведенческие абстракции: Методы listen() и act() имеют решающее значение для взаимодействия, моделируя циклы стимул-реакция.
Установка
В папке ваших проектов выполните команды
git clone https://github.com/microsoft/TinyTroupe.git
cd TinyTroupe
python -m venv venv
venv\Scripts\activate
pip install git+https://github.com/microsoft/TinyTroupe.git@main
Переименуйте файл .env.example в .env и добавьте в него свой ключ OpenAI API.
Примеры использования
1. Создание TinyPerson
Внутри директории examples создайте файл my_person.py и добавьте следующий код:
Этот пример создаёт агента, задаёт его характеристики, инициирует взаимодействие и показывает историю взаимодействия.
2. Методы взаимодействия
act(): Определяет поведение агента, запрашивая у LLM действие на основе памяти и когнитивного состояния.
listen(): Моделирует получение сообщения от другого агента или среды, сохраняя информацию в памяти.
_observe(): Записывает стимулы (события, ощущения) во внутреннюю память агента.
3. Управление памятью
TinyPerson использует episodic_memory и semantic_memory:
episodic_memory: Хранит конкретные события, организует их по времени и ограничивает количество используемых записей.
semantic_memory: Хранит общие знания, индексируя текстовые документы с помощью llama_index.
4. Внутреннее состояние и конфигурация
_update_cognitive_state(): Изменяет цели, внимание, эмоции и другие внутренние переменные.
define(): Устанавливает или обновляет параметры конфигурации агента.
reset_prompt(): Пересоздаёт системный промпт для LLM на основе текущей конфигурации и памяти агента.
Управление акторами и средой
5. Создание и управление мирами
В TinyTroupe среда моделируется с помощью TinyWorld, а социальные связи — через TinySocialNetwork.
Метод make_everyone_accessible() позволяет всем агентам взаимодействовать друг с другом.
6. Управление акторами в комнате
Если акторы уже определены, но вам нужно их обновить или заменить, можно использовать:
7. Запуск симуляции
Для моделирования взаимодействий используется run():
8. Управление взаимодействиями
Если вам нужно контролировать диалоги между агентами:
Этот код инициирует разговор и генерирует ответ агента.
9. Создание социальных сетей
TinySocialNetwork позволяет моделировать социальные связи и группы:
Пример простого чата с общением на русском языке:
функция установки языка акторов
Часть словарей характеристики актора:
Словари большие. Целиком здесь 👇
MyTinyTroupe/examples/agents/Lila.agent.json at master · hypo69/MyTinyTroupe · GitHub
MyTinyTroupe/examples/agents/Oscar.agent.json at master · hypo69/MyTinyTroupe · GitHub
код чата:
Этот код создает двух агентов (lila и oscar), загружает их спецификации, переводит их язык общения на русский, помещает их в общий мир (world), делает всех участников доступными друг для друга и запускает взаимодействие между ними.
Разбор кода по шагам:
Загрузка агентов из спецификаций:
Создаются два агента: lila и oscar.
Они загружаются из спецификаций lila_spec и oscar_spec, которые, содержат их характеристики (возраст, профессия, интересы и т. д.).
Настройка языка общения:
configure_language устанавливает русский язык для агентов.
Это также пересоздает их системный промпт, чтобы они отвечали на русском.
Создание мира и размещение агентов:
Создается виртуальный мир TinyWorld с названием "Chat Room".
В этот мир добавляются lila и oscar, что позволяет им взаимодействовать.
Делаем всех доступными друг для друга:
Убеждаемся, что агенты могут "видеть" и "слышать" друг друга.
Без этого метода агент мог бы не знать, что другой агент существует в том же мире.
Инициирование общения:
lila получает фразу "Начинает разговор с Оскаром, чтобы узнать о нем больше".
Это стимулирует ее к действию (например, задать вопросы Оскару).
Запуск симуляции взаимодействий:
world.run(4) запускает симуляцию на 4 цикла, в течение которых агенты будут:
Воспринимать информацию (listen()).
Действовать (act()).
Обновлять память (что они узнали, какие эмоции испытали).
Ожидаемое поведение
lila попытается поговорить с oscar, задавая вопросы на русском.
oscar ответит, используя информацию из своей памяти и спецификации.
world.run(4) заставит их несколько раз обменяться репликами.
После выполнения кода в памяти агентов появятся новые знания о собеседнике.
💡 Совет: Если агенты не разговаривают, попробуйте добавить world.step() после lila.listen(), чтобы проверить их реакцию перед запуском полного цикла run(4).
Пример в Google Colab
код на гитхабе
Тебя может заинтересовать также LangChain и Browser-Use: Создание ИИ-агентов для работы с веб-браузером. Быстрый старт
Удачи!
Масленица у Балрога в Мории
Из группы: "Упоротое Средиземье"
(Yumir)





Ответ на пост «Конкурс: лучший кот Пикабу»2264
Не знаю, как на счёт Пикабу, но в Крыму это самый красивый кот, из тех, кто умеет плавать в море, выполнять команды: сидеть, лежать, ко мне, дай лапу, рядом, дай пять и так далее.












Кот по имени Симба. Двортерьер. 9 лет
Американский блогер рассказал, что интервью с Александром Лукашенко шокирует мир
Американский блогер, бизнесмен и финансовый эксперт, ведущий крупнейшего шоу в соцсети Х, Марио Науфал заявил, что интервью с президентом Беларуси Александром Лукашенко потрясет мировое сообщество. Об этом сообщили в Телеграм-канал «Пул Первого».
В анонсе Александр Лукашенко выразил мнение, что бы было, если бы страны Запада не поставляли оружие украинской стороне:
— Не было бы этого конфликта.
Далее белорусский лидер отметил тот факт, что кому-то этот конфликт нужен. Кроме того, Президент Беларуси в интервью рассказал о телефонном звонке:
— Я ему позвонил и сказал следующее: «Ты за это ответственен. За то, что не предотвратил войну и она идет на территории Украины».
Лидер Беларуси заявил, что США необходимо договориться с Китаем:
— С Китаем вам надо договориться. Я знаю очень хорошо Китай: 30 с лишним лет знаю Китай. На моих глазах Китай развивался. Вы Китай не остановите.
В Телеграм-канале отметили, что краткий обзор интервью с президентом страны покажут 3 марта в 04:20 (00:20 по минскому времени). Полная версия интервью станет доступна 4 марта.
02.03.1983 - День создания компакт-диска [вехи_истории]
Эта дата считается днем создания компакт-диска (CD), когда он впервые поступил в продажу в США и других странах. Разработка этого носителя велась с 1970-х годов компаниями Philips и Sony.
Диаметр первого демонстрационного компакт-диска составлял 12 сантиметров. На нем в качестве демонстрации была записана Девятая симфония Бетховена. Продолжительность записи, которая была выполнена лазером и считывалась также лазерным проигрывателем, составила 74 минуты — именно столько длилась симфония в самом популярном исполнении того времени.
Компакт-диски революционизировали индустрию музыки, кино и программного обеспечения, заменив кассеты и виниловые пластинки. Позже появились CD-R и CD-RW, позволившие пользователям записывать и перезаписывать данные.
🥲 Ставим слезки в комменты, если скучаете по тем временам, когда хватало 700МБ на диске)
📝 Пишите в комментарии, что вы записывали на "болванки"?
























