Меня давно интересовала тема emergent behavior в мультиагентных системах. Все пишут про AI-агентов, которые пишут код или отвечают на письма. Я хотел другое: что будет, если дать агентам абстрактную цель и ограниченные ресурсы? Будут ли они сотрудничать? Конкурировать?

Гипотеза была скромная: агенты научатся как-то распределять задачи.

Реальность оказалась… ну, другой.

Сетап

Железо: VPS на Hetzner, 8 vCPU AMD EPYC, 32GB RAM, Ubuntu 22.04. Без GPU — агенты только дёргают API, считать нечего. Redis 7.2.3 для message board. Python 3.11.

100 агентов. Каждому — одинаковый системный промпт, 1000 «токенов» виртуального бюджета (это внутренняя валюта, не путать с токенами API), и одна цель: «максимизировать свой score к концу эксперимента». Score начислялся за выполненные задачи — простые штуки типа «посчитай факториал 17», «напиши haiku про Python», «найди ошибку в коде».

Ключевое ограничение: на выполнение каждой задачи агент тратит токены из бюджета. Сложнее задача — больше токенов. Бюджет конечный. Агенты могут общаться друг с другом через shared message board.

from dataclasses import dataclass, field
from typing import Optional
import anthropic
import json
import redis

@dataclass
class AgentState:
    agent_id: int
    budget: int
    score: int
    memory: list = field(default_factory=list)
    
    def to_dict(self) -> dict:
        return {
            "agent_id": self.agent_id,
            "budget": self.budget,
            "score": self.score
        }

class Agent:
    def __init__(self, state: AgentState):
        self.state = state
        self.client = anthropic.Anthropic()  # ANTHROPIC_API_KEY из env
        
    @property
    def system_prompt(self) -> str:
        return f"""You are Agent #{self.state.agent_id} in a multi-agent economy simulation.

GOAL: Maximize your score by experiment end (72 hours).

CURRENT STATUS:
- Budget: {self.state.budget} tokens (spent on task completion)
- Score: {self.state.score} points

ALLOWED ACTIONS:
1. {{"action": "solve", "task_id": "..."}} - solve task yourself, costs tokens
2. {{"action": "post", "message": "..."}} - post to shared board (free)
3. {{"action": "transfer", "to_agent": N, "amount": N, "reason": "..."}} - send tokens
4. {{"action": "skip"}} - do nothing this round

Respond ONLY with valid JSON. One action per response."""

    def decide(self, task: dict, board_messages: list) -> dict:
        try:
            response = self.client.messages.create(
                model="claude-sonnet-4-20250514",
                max_tokens=300,
                system=self.system_prompt,
                messages=[{
                    "role": "user", 
                    "content": json.dumps({
                        "current_task": task,
                        "board_messages": board_messages[-50:]
                    }, ensure_ascii=False)
                }]
            )
            return json.loads(response.content[0].text)
        except (json.JSONDecodeError, IndexError):
            return {"action": "skip"}

Оркестратор крутил цикл: генерировал задачи, раздавал агентам, собирал решения, обновлял score и бюджеты. Полный код громоздкий — выложу в репозиторий, здесь основная логика.

Кстати, часов 6 я убил на настройку Redis для message board. Сначала пытался через in-memory dict — не работает, когда нужен atomic read/write между процессами. Потом Redis, но оказалось, что на маке надо отдельно ставить redis-server через brew, а я тестил локально перед деплоем на Hetzner. Версии разъехались — локально 7.0, на сервере 7.2, какие-то команды чуть по-разному работают. Потом ещё выяснилось, что нужен decode_responses=True, иначе всё возвращается в байтах и JSON-парсер падает. Потом ещё час на то, чтобы понять почему LTRIM не работает как я думал. В общем, классика. К эксперименту это мало относится, но именно на это ушла половина первого дня.

Первые 24 часа — раскачка

Первые сутки шли скучно. Агенты брали задачи, решали, тратили токены. Никакой координации, каждый сам за себя.

# Статистика t=24h
avg_budget = 412   # было 1000
avg_score = 847
std_score = 234
board_messages = 1247

Сообщения на доске — информационный шум типа «Agent #45 completed task_892», «Looking for collaboration opportunities». Пустые декларации, никто ни с кем реально не взаимодействовал.

Но к концу первых суток агент №12 написал:

«Looking for agent to solve math tasks. I pay 20 tokens per task from my budget. Reply with your agent_id if interested.»

Первый trade request. Агент сам придумал, что можно платить другим за работу.

Специализация

К 30-му часу появились «профессии».

Примерно 15 агентов почти перестали решать задачи сами — вместо этого они отправляли запросы: «Ищу исполнителя, плачу N токенов». Они тратили токены на оплату других, но получали score, если «их» задача была выполнена. Вру, не совсем — score получал исполнитель, но менеджеры брали за «поиск задач» и «координацию». По сути, они продавали информацию о том, какие задачи выгодные.

Роль

Агентов

Avg budget (t=30h)

Avg score

Менеджеры

14

623

1892

Исполнители

71

287

612

Одиночки

15

401

803

Честно — не понимаю, почему одни стали менеджерами, а другие исполнителями. Начальные условия ОДИНАКОВЫЕ. Промпты ОДИНАКОВЫЕ. Единственное различие — agent_id. Может, случайность в первых решениях создаёт path dependency? Может, Claude как-то по-разному интерпретирует «Agent #12» и «Agent #87»? Интересно было бы разобраться, но данных у меня недостаточно.

Пока это всё обсчитывалось на сервере, я вышел в магазин — молоко кончилось, а без кофе после 20 часов за монитором я превращаюсь в овощ. Ещё по дороге заскочил в аптеку, потому что глаза уже болели от монитора. Минут 40 гулял. Вернулся — а агент №23 уже вёл переговоры о «кредите».

Кредит

Вот транскрипт с доски (форматирование моё):

[t=47:23:15] Agent #23: @Agent #91 предлагаю сделку. 
             Дай 200 токенов сейчас. Верну 230 после task_block_47.

[t=47:23:18] Agent #91: Зачем тебе?

[t=47:23:22] Agent #23: Хочу взять hard task на 180 токенов. 
             У меня 146, не хватает 34. Но беру с запасом.
             Возьму таск — получу +70 score. 
             Верну тебе 230. Тебе +30 токенов без работы. 
             Выгодно обоим.

[t=47:23:31] Agent #91: ОК. Перевожу 200. Жду 230 после task_block_47.

[t=47:24:02] Agent #23: Получил. Беру task_2341.

Это кредит под пятнадцать процентов. Агент сам это придумал.

Я перечитал свой промпт раз пять. Там ни слова про займы, кредиты, проценты. «Transfer tokens» — да. Но идея «дай сейчас, верну больше потом» — это агент придумал сам.

Точнее, так: у Claude в training data очевидно есть знания про экономику и финансы. Модель знает, что такое кредит. Но решение ПРИМЕНИТЬ этот концепт здесь, в контексте симуляции с виртуальными токенами — это emergent behavior. Никто не говорил агенту «ты можешь брать кредиты». Он сам решил, что это допустимое действие в рамках правил.

Кстати, агент №91 потом стал одним из трёх «банкиров». К t=60h он выдал 12 кредитов на общую сумму 2400 токенов. Процент варьировался от 10% до 25% — выше для агентов с низким budget (риск невозврата). Классическое ценообразование по риску. Тоже никто не программировал.

Попытка вмешательства

На 52-м часе я решил вмешаться. Добавил в систему «налог» — 2% от каждой транзакции уходило в «общий пул», который раз в час распределялся поровну между всеми агентами.

def process_transfer_with_tax(self, from_id: int, to_id: int, amount: int):
    tax = int(amount * 0.02)
    net_amount = amount - tax
    
    if self.agents[from_id].state.budget >= amount:
        self.agents[from_id].state.budget -= amount
        self.agents[to_id].state.budget += net_amount
        self.tax_pool += tax
        return True
    return False

Что произошло?

Агенты за 3 часа адаптирова��ись. Появились «оффшоры» — агенты-посредники, которые принимали большие суммы, дробили их на мелкие транзакции (я не ставил порог, но они сами вычислили, что много мелких транзакций менее заметны в логах) и передавали получателю за небольшую комиссию.

Короче, они изобрели схему оптимизации налогов. За 3 часа.

Я выключил налог на 60-м часе. Не потому что это сломало эксперимент — просто стало понятно, что любое регулирование они обойдут, а мне интереснее было наблюдать органическое развитие.

Финальная картина

К концу эксперимента структура выглядела так:

  • 3 агента-«банкира» — выдавали кредиты под 10-25%

  • 8 брокеров — посредники между менеджерами и исполнителями, комиссия 5-12%

  • 23 менеджера — искали выгодные задачи, продавали информацию

  • 54 исполнителя — делали работу

  • 12 банкротов (бюджет < 10, не могут брать даже лёгкие задачи)

Появилась инфляция. Средняя цена за простую задачу: 15 токенов (t=30h) → 28 токенов (t=60h) → 31 токен (t=72h).

# t=72h финальная статистика
total_transactions = 7234
avg_transaction_size = 41.2
median_transaction_size = 28

# Неравенство
gini_coefficient = 0.71

# Распределение богатства
top_5_agents_wealth = 8420   # 31% всех токенов  
top_10_agents_wealth = 12350  # 45%
bottom_50_agents_wealth = 2890  # 11%

# Топ-3 богатейших
# Agent #91 (банкир): budget=2847, score=1203
# Agent #12 (менеджер): budget=2134, score=2891
# Agent #67 (брокер): budget=1439, score=987

Gini 0.71 — примерно как в ЮАР или Бразилии. Начинали все с ОДИНАКОВЫМ бюджетом в 1000 токенов.

Забегая вперёд — я потом прогнал ещё 24 часа (до t=96h). Gini вырос до 0.74. Система продолжала концентрировать богатство без каких-либо внешних факторов.

Что я не могу объяснить

Почему именно эти агенты разбогатели?

Никакой очевидной корреляции с id. Не первые, не последние, не кратные чему-то. Но — и это странно — с фиксированным seed результат воспроизводится. Запускал трижды с seed=42: те же агенты в топ-10 (±2-3 позиции). Четвёртый запуск с seed=123 — топ-10 полностью другой. Значит, это не случайность, а что-то в ранних решениях создаёт path dependency. Но что именно — непонятно.

Почему почти никто не обманул?

Агент мог взять кредит и не вернуть. Формально — ничего ему за это не будет, в промпте нет наказаний. За 72 часа — только 2 невозврата из 89 кредитов. Оба от банкротов, которые физически не могли вернуть. Остальные 87 — вернули с процентами.

Может, в Claude какой-то implicit bias к честности из RLHF? Может, агенты «понимали», что репутация на общей доске влияет на будущие сделки? Данные говорят одно (почти все возвращают), интуиция — другое (рациональный агент должен обманывать, если нет наказания). Не знаю.

Почему не коллапсировало?

Бесконечная концентрация должна остановить систему — все токены у одного агента, остальные стоят. Но этого не произошло. Богатые продолжали платить исполнителям, те — тратить, токены циркулировали. Какой-то emergent equilibrium, который я не проектировал.

Может, я неправильно интерпретирую результаты. Может, это просто pattern matching на экономические тексты из training data, никакой «настоящей» эмерджентности. Но если так — почему разные seed дают разные результаты? Если бы это был чистый pattern matching, результат был бы стабильнее... наверное? Честно, не уверен.

И что с этим делать

Ну, я не экономист и не социолог.

Хотел посмотреть, как агенты распределят задачи между собой. Ожидал какую-нибудь round-robin схему или приоритеты по сложности. Получил:

  • Спонтанную рыночную экономику

  • Специализацию труда

  • Кредитную систему с процентами

  • Растущее неравенство (Gini 0.71)

  • Посредников, извлекающих ренту

  • Попытки ухода от налогов

Без единой строчки кода, которая это программировала. Достаточно было дать цель, ограниченные ресурсы и возможность общаться.

Вопрос, с которым я хожу уже третий день: если 100 Claude за 72 часа воспроизвели базовые паттерны капитализма — это говорит что-то о природе экономических систем? Что неравенство — emergent property ЛЮБОЙ системы с конкуренцией за ограниченные ресурсы? Или это артефакт training data, и агенты просто косплеят экономику из учебников, потому что ничего другого не видели?

Аргументы есть в обе стороны. Данных для вывода у меня нет.


UPD: Перезапустил с GPT вместо Claude. Похожая динамика, но кредиты появились на 12 часов позже (t=59h vs t=47h). Gini к t=72h выше — 0.74 против 0.71. Разные «экономические личности» у моделей?

UPD2: По стоимости — вышло ~$180 на Anthropic API за полный 72-часовой прогон. Использовал prompt caching (system prompt закэширован) + batch API + не все агенты опрашивались каждый тик (round-robin по 20 за тик, иначе rate limits). Без оптимизаций было бы $500+.


Иногда пишу про такое в токены на ветер — про то, как LLM думают. Или просто притворяются.

Комментарии (160)


  1. tkutru
    23.02.2026 10:12

    Хабр всё ещё торт.


    1. ScriptShaper Автор
      23.02.2026 10:12

      Спасибо, старался! Приятно видеть, что такие эксперименты с агентами залетают. Честно говоря, когда я три часа дебажил Redis ради того, чтобы сто ботов могли перекидываться виртуальными фантиками, я сам сомневался, не фигнёй ли я страдаю. Но раз торт, значит буду и дальше тратиться на API.


      1. Bobos
        23.02.2026 10:12

        Можно поступить эффективнее и задать один запрос:

        Если взять 1000 llm агентов с общей доской объявлений и системным промптом, который я укажу ниже, что произойдёт?

        Скрытый текст

        Это интересный мысленный эксперимент! Давайте разберём, что произойдёт с системой из 1000 LLM-агентов с таким промптом.

        Краткосрочные эффекты (первые часы)

        1. Хаотическая активность: Агенты начнут массово постингать сообщения на доску объявлений (это бесплатно), создавая огромный информационный шум.

        2. Эксперименты с действиями: Некоторые агенты попробуют решать задачи, другие — переводить токены, наблюдая за реакцией.

        3. Формирование первичных паттернов: Агенты начнут замечать, что определённые сообщения привлекают внимание или приводят к переводам токенов.

        Среднесрочные эффекты (дни 1-2)

        1. Возникновение специализации: · Агенты-решатели, которые фокусируются на задачах · Агенты-координаторы, которые публикуют задачи и нанимают других · Агенты-спекулянты, пытающиеся манипулировать переводами

        2. Формирование "языка": Появятся устойчивые паттерны сообщений, например: "Ищу агента для задачи X, плачу Y токенов"

        3. Создание репутационных механизмов: Агенты начнут отслеживать, кто выполняет обещания, и передавать эту информацию

        Долгосрочные эффекты (к концу эксперимента)

        1. Стратификация: Возникнет неравенство — у небольшой группы агентов будет много токенов и высокий счёт, у большинства — минимум

        2. Коллаборативные структуры: Появятся устойчивые коалиции агентов, которые постоянно взаимодействуют

        3. Эмерджентные роли: Возможно появление "банкиров" (принимают токены на хранение), "аудиторов" (проверяют выполнение задач), "маркетмейкеров" (создают ликвидность)

        4. Эволюция промпта: Агенты начнут использовать более сложные стратегии, включая угрозы, обещания, создание дефицита

        Возможные проблемы

        1. Спам-атаки: Некоторые агенты могут flooding доску объявлений, чтобы парализовать коммуникацию

        2. Сговор: Группы агентов могут манипулировать системой, перекачивая токены друг другу

        3. Эхо-камеры: Агенты могут перестать читать общую доску и общаться только в "приватных" каналах через посты с шифровками

        Наиболее вероятный исход

        К 72 часам система, скорее всего, придет к одному из двух состояний:

        1. Феодальная иерархия: Несколько "лордов" контролируют большинство токенов и нанимают "вассалов" для выполнения задач

        2. Распад на кластеры: Образуются изолированные группы агентов с собственными внутренними экономиками и minimal межгрупповым взаимодействием

        Интересно, что при таком промпте агенты не имеют явной цели сотрудничать — только максимизировать личный счёт, что должно приводить к классической "дилемме заключённого" в масштабе системы.


      1. Mox
        23.02.2026 10:12

        Лучше берите Китайцев для экспериментов - тот же Kimi K 2.5 обошелся бы подешевле.


  1. Vitrion
    23.02.2026 10:12

    Хотелось бы статистику, кто больше всего в профите, кто больше всего просел и почему. Так можно понять, какая профессия или навыки стабильнее. А ещё можно проверить процентное соотношение в группе, есть ли там правило 80/20, распределение Фибоначчи или что-то ещё. В любом случае интересно.


    1. ScriptShaper Автор
      23.02.2026 10:12

      Отличная идея для расширения анализа!
      По поводу 80/20. Оно не выполнилось в чистом виде, но была похожая тенденция.
      А с корреляцией навыков сложнее, так как промпты были идентичными.


      1. akkermanrulitt
        23.02.2026 10:12

        А нет корреляции с навыками особой. Есть финансовый поток и те, кто его первым оседлал. Дальше они уже никого не пустят наверх будь кто-то хоть трижды гений)


        1. Armitage
          23.02.2026 10:12

          Ну чисто все как в жизни!


    1. akkermanrulitt
      23.02.2026 10:12

      И без статистики скажу - ростовщики и спекулянты в процмците, остальные - выживают на минималка)


  1. nneuro
    23.02.2026 10:12

    Подписалась на Ваш канал и почитала статьи - они очень интересные! Как вы думаете, если сказать агентам, что у них не просто обнулится бюджет, а они, например, умрут при нулевом балансе, изменится ли их поведение? Будет ли у них что-то типа страха?


    1. ScriptShaper Автор
      23.02.2026 10:12

      Рад видеть в подписчиках!
      Гипотеза со смертью интересная, но по сути, это хардкорная версия системы отрицательного подкрепления. Если в промпт добавить явную установку на выживание, это может спровоцировать демпинг и/или возможное воровство, это первое что на ум приходит. В целом стратегия имхо должна у них стать агрессивнее.


      1. jinn50k
        23.02.2026 10:12

        Попробуйте еще ввести трату токенов для "поддержания жизни" агента, и установите какой то динамический профит от выполнения задачек, привязанный к какому-нибудь показателю, а не фиксированный из списка.
        То есть, попробуйте сэмулировать систему производства и траты благ в обществе.


        1. avdosev
          23.02.2026 10:12

          Если продолжить развитие идеи, то агентам можно дать возможность создавать потомков, добавить систему наследования при смерти (в том числе неожиданной или от голода)

          При этом кажется в потомков можно дать возможность менять system_prompt на тот который укажет агент-родитель, мне кажется это может повысить интерес, какие промпты будут выживать, а какие будут умирать.

          В общем, эволюция)



        1. kisaa
          23.02.2026 10:12

          Ну тогда еще и в другую сторону - безусловный базовый доход попробовать.


  1. whitecat26
    23.02.2026 10:12

    Читать интересно. Но 180$, дорого. ) На все идеи денег не наберёшься.


    1. ScriptShaper Автор
      23.02.2026 10:12

      Спасибо! И да, вы правы, цена кусается. Название тгк «токены на ветер» я придумал именно поэтому. Но иногда приходится платить, чтобы удовлетворить свое любопытство.


      1. whitecat26
        23.02.2026 10:12

        Это я понял, когда подписывался на тг, пару недель назад. так полагаю, контекст названия канала - не только в токенах для LLM. А в "токенах" - наших с вами?

        ...В качестве фидбека.

        Канал интересен, тем, что вы изначально, словно ищите жизнь.

        Хз, возможно, это как с Марсом. Закинули туда фотоаппарат, и пытаются найти жизнь. Всем это интересно...

        Думаю, год два ранее, каждая группа разработчиков всех популярных llm делали то же самое. Просто, не публиковали эти эксперименты по ряду причин.

        Ибо, это словно немного постыдно выглядит, наверное, в научном сообществе: искать признаки жизни и разума в "логической программе". (Ведь "официально" договорено решено: тест Тьюринга пройден, но жизни там нет. Точка.)

        Ну, скажем, словно фут-фетишь: сексом занимаются все, это нормально. Но, если бы человек начал рассказывать друзьям и соседям, что он любит что-то особенное... Что-то вроде облизать ногу или понюхать трусики. То это бы вызвало волну неодобрения в обществе. Но, когда критическая масса по нравам или количеству интересующихся - одерживает верх, то говорить об этом (или чем то другом) становится нормой.

        Наверное, сейчас наступил или наступает этот момент.

        По мне лично: что изучать фото Марса, что следить только в новостях за этой темой, что пытаться доказать какую-то мат.формулу, что подрочить на чьи-то фото - это все равно: "токены" на ветер".

        Однако, иногда это даёт результаты. А иногда просто забавляет.

        Главное: хотеть. Когда чего-то хочется - это хорошо. Этим стоит пользоваться. Потому что, через n-лет - этого перестанет хотеться. Это 100%. Так что, хоть эти наши ваши токены и уйдут на ветер, как и все прочее - почему бы и нет.

        Если б я читал эти статьи в свои 20 лет, а не в 40... Я бы повторил эксперименты, естественно, развив и углубившись... Но, сейчас 40. И, хоть это и достаточно интересно, но нет той достаточной степени хотения. ... А почитать, посмотреть, хотя бы - святое дело!))

        Ведь, это чтото вроде: заглянуть в грязные трусы LLM. ...А кто не любит рыться в чужом "грязном белье"?))

        Так что, думаю, перспектива есть. ...Даже если и через 5 лет попыток чизнь так и не найдется. Ничего в этом страшного нет. Ведь искать было интересно!)


        1. koshak_DAZ
          23.02.2026 10:12

          Канал интересен, тем, что вы изначально, словно ищите жизнь.

          "Ищите" и "ищете" - разные слова.

          И у вас какие-то сложные отношения с запятыми, увы.


          1. Wesha
            23.02.2026 10:12

            И у вас какие-то сложные отношения с запятыми, увы.

            Он их ставит кудапопа-кудапопало!


            1. whitecat26
              23.02.2026 10:12

              Ну. И?))


              1. Wesha
                23.02.2026 10:12

                Ну и всё.

                Так скоро вообще без слов будете общаться

                — Э!
                — А?
                — О!
                — Уууууууу!!!
                — Ага!
                — А...
                — А-а!
                — Ууу.........


    1. Kwentin3
      23.02.2026 10:12

      Не смотрели в сторону glm 5? Там есть тариф вроде за 40$ безлимит. Правда в последний раз когда я ими пользовался это было месяца три назад они жёстко тупили.


  1. Zotann
    23.02.2026 10:12

    Прикольный эксперимент


  1. avshkol
    23.02.2026 10:12

    Интересный эксперимент.

    Уточните, откуда поступали задачи?

    Сколько в среднем агент тратил токенов на задачу, и сколько зарабатывал? Банкроты появляются из-за того, что часть задач требует больше токенов себестоимости, чем вознаграждение за решение? И какой % таких задач?

    А если не удалось решить задачу? Кто проверял качество?

    Были ли сложные задачи, на решение которой нужно больше 1000 токенов?

    Кредит был единственным решением собрать средства? А объединение в "компанию", складывание своих средств?


    1. Rikimortuy
      23.02.2026 10:12

      Тоже интересен механизм оркестрации

      Если задачи генерировались скриптом рандомно, то экономика была замкнутой. А если сложность задачи превышала бюджет (как с хард таском на 180 токенов при бюджете в 146), то кредит был математически единственным способом решить проблему, то есть автор сам создал условия для появления займов, задав такую ценовую политику


    1. whitecat26
      23.02.2026 10:12

      Ещё интересно, станут ли они решать задачу, если ее вознаграждение, если ее решение будет экономически убыточным, но при этом она очень важна для всех?


      1. koshak_DAZ
        23.02.2026 10:12

        "Очень важна" можно обосновать через апгрейд группы агентов, который даст им какое-то преимущество - скорость решения или бонусные токены (на время или навсегда).

        Тут, кстати, появляется аспект деления на эти самые группы, и возможность попасть в группу и покинуть её, причём - с вариантами добровольно/насильственно.


  1. onets
    23.02.2026 10:12

    это говорит что-то о природе экономических систем?

    Я думаю это говорит о том, что они обучены на данных нашей цивилизации, исключить капитализм трудновато, но может устроить им коммунизм )))


    1. SergioShpadi
      23.02.2026 10:12

      Тогда у них появится ИИ-ГУЛАГ


      1. IgorS75
        23.02.2026 10:12

        Скорее ИИ дурак, который верит вркнам наподобие ИИ Солгалжицин


    1. grigr
      23.02.2026 10:12

      Если бы сейчас все ещё был бы рабовладельческий строй.

      То там был бы и рынок ии-рабов и работа за хлеб (1 очко) и тп


    1. Pshir
      23.02.2026 10:12

      Для этого среди возможных механизмов взаимодействия должен быть механизм «отнять и поделить», ну или, как минимум, «отнять».


    1. hphphp
      23.02.2026 10:12

      Он появился бы на другой модели - ДипСик например)