Closed-loop оптимизация коммуникации центрального банка через синтетические фокус-группы.
ЦБ публикует один пресс-релиз на языке экспертов. Эксперт и пенсионер читают одну фразу — и реагируют противоположно (Kim & Lee, «Bounded Rationality in CB Communication»). Communicado прогоняет релиз через мультиагентный замкнутый цикл — интервью с синтетическими персонами → анализ → редактура → валидация — пока текст не станет понятен каждой аудитории без потери фактов.
Работает из коробки без API-ключей (детерминированный mock-режим) или с Anthropic API для живых прогонов.
English version: README.md.
| Факт | Источник |
|---|---|
| ~30% домохозяйств обновляют ожидания после решений ЦБ | Lamla & Vinogradov (2024, JME) |
| Flesch Reading Ease оригинальных релизов ≈ 35 («очень сложный») | Оборнева (2006) |
| Эксперт и не-эксперт реагируют на одну фразу ЦБ противоположно | Kim & Lee |
| 37% россиян узнают экономические новости из Telegram | НАФИ (2024) |
Релиз ЦБ → Экстрактор (5 тезисов) → Интервью (6 персон × 6 вопросов)
→ Аналитик (Score + проблемы) → Редактор → Валидатор (сохранность тезисов)
→ [повтор до сходимости]Шесть агентных ролей общаются через единый шлюз llm.py. Валидатор гарантирует сохранность фактов: если потерян хоть один из 5 тезисов или появился инвестиционный совет — редактура отклоняется и повторяется.
- Communication Score (LLM, 0–100) — понятность по панели персон, с anchor points калибровки;
- Flesch Reading Ease — детерминированная метрика читаемости для русского языка (Оборнева, 2006) + счётчик жаргона ЦБ;
- Sentiment Balance — словарный баланс тревожных и успокаивающих слов, не зависит от LLM.
6 синтетических персон, 19 полей, 7 осей дифференциации из литературы. Формат профилей воспроизводит подход СФГ Банка России.
| Персона | Роль | Ключевая ось | Attention |
|---|---|---|---|
| Валентина, 67 | Пенсионерка, Воронеж | Низкая грамотность, ТВ, высокая тревожность | ~25% |
| Алексей, 38 | Финдиректор, Москва | Высокая грамотность, cbr.ru напрямую | ~95% |
| Ольга, 34 | Мама с ипотекой, Казань | Максимальная чувствительность к ставке | ~60% |
| Сергей, 45 | Водитель, Челябинск | Мин. активы, мин. внимание к ЦБ | ~15% |
| Павел, 51 | Владелец бизнеса, Краснодар | Кредитный канал, pricing power | ~30% |
| Даниил, 22 | Студент-экономист, СПб | Молодёжь, соцсети, теория без практики | ~15% |
На 4 реальных пресс-релизах ЦБ (окт 2025 – мар 2026), 6 персон, adaptive-интервью:
- 4/4 прогона показывают стабильный рост Score;
- +27 средний прирост Communication Score (от 35–42 до 62–72);
- 0.0 sentiment после оптимизации — тревога нейтрализована;
- 72 лучший Score (релиз 20.03.2026, снижение ставки до 15%).
| Оригинал (Score 42) | После 3 итераций (Score 72) |
|---|---|
| «снизить ключевую ставку на 50 б.п., до 15,00% годовых» | «снизить ключевую ставку на 0,5 процентного пункта — до 15%. От этой ставки зависят проценты по вкладам и кредитам» |
| «устойчивые показатели текущего роста цен остаются в диапазоне 4–5% в пересчете на год» | «базовая инфляция — рост цен на товары и услуги, кроме продуктов и топлива — остается в диапазоне 4–5% в год» |
| «значимо выросла неопределенность со стороны внешних условий» | «ситуация в мире стала менее предсказуемой, и это может повлиять на российскую экономику» |
Из одного релиза — текст для любого канала. Каждый канал оптимизируется через свой closed loop с персонами целевой аудитории.
| Канал | Аудитория | Score | Стиль |
|---|---|---|---|
| Пресс-релиз cbr.ru | Алексей, Павел | 45 → 68 | Официальный, с терминами |
| ТГ-канал ЦБ | Алексей, Даниил, Ольга | 45 → 78 | Доступный, до 1000 знаков |
| Деловые СМИ | Алексей, Павел | 45 → 75 | Цифры, прогнозы, кредиты |
| VK Клипы / Reels | Даниил, Ольга | 45 → 78 | Сценарий 60 сек, на «ты» |
- Знакомство — бот расспрашивает: возраст, профессия, ипотека, вклады, откуда новости;
- Построение персоны — из ответов строится профиль с 19 полями;
- Closed Loop — пресс-релиз прогоняется через цикл оптимизации для этого пользователя;
- Персональный текст + Q&A — пользователь получает своё объяснение и может задать вопросы.
git clone https://github.com/bzgly/communicado.git
cd communicado
pip install -r requirements.txt
# Streamlit-демо — работает в mock-режиме без ключей
streamlit run app.pyС реальным Claude API:
cp .env.example .env # вписать ANTHROPIC_API_KEY
python run_one.py release 3 # последний релиз, 3 итерации
python run_one.py channel vk_clips
python -m pytest tests/ -v # тесты (mock-режим)
USE_MOCK=0 python test_prod.py # прод-тесты с живым API
python bot.py # Telegram-бот (нужен BOT_TOKEN в .env)Переменные окружения: ANTHROPIC_API_KEY (живой режим), CLAUDE_MODEL (по умолчанию claude-opus-4-8), USE_MOCK=1/0 (принудительный mock), BOT_TOKEN (только для бота).
communicado/
├── engine.py # closed loop: extract → interview → analyze → edit → validate
├── llm.py # LLM-шлюз: Anthropic API + детерминированный mock-режим
├── interview.py # интервьюер: scripted и adaptive (LLM follow-up) режимы
├── personas.py # 6 персон, 19 полей, 7 осей из литературы
├── prompts.py # системные промпты всех агентов
├── readability.py # детерминированные метрики: Flesch-RU, жаргон, sentiment
├── channels.py # 5 каналов коммуникации ЦБ с целевыми аудиториями
├── sample_releases.py # 4 реальных пресс-релиза ЦБ
├── mock_data.py # калиброванные мок-ответы для демо без API
├── app.py # Streamlit-демо (цикл + каналы + сравнение)
├── bot.py # Telegram-бот персональной коммуникации
├── run_one.py # одиночный прогон → results/*.json
├── run_benchmarks.py # массовые прогоны для презентации
├── build_charts.py # графики из результатов (Plotly)
├── build_presentation.py # генератор PDF-презентации (reportlab)
├── test_prod.py # прод-тесты с реальным API
├── tests/ # юнит- и интеграционные тесты
└── docs/ # презентация, речь к защите- LLM склонны к стереотипизации — персоны откалиброваны по 7 осям из литературы; следующий шаг — валидация на реальных транскриптах СФГ.
- Score может колебаться — поэтому рядом работают детерминированные метрики (Flesch, jargon count, sentiment balance).
- Не замена фокус-группы — инструмент быстрых итераций между реальными фокус-группами (минуты вместо недель).
- Упрощение может усиливать тревогу — эффект Kim & Lee: понятный текст доносит тревожный сигнал сильнее.
- Argyle et al. (2023). "Out of One, Many." Political Analysis
- Blinder et al. (2024). "CB Communication." JEL
- Bholat et al. (2019). "Enhancing CB Communications." BoE
- Cloyne et al. (2024). "Homeownership and MP." JME
- Christelis et al. (2020). "Trust in CB." IJCB
- D'Acunto et al. (2024). "Household Inflation Expectations." NBER
- Horton (2023). "Homo Silicus." NBER
- Kim & Lee. "Bounded Rationality in CB Communication"
- Lamla & Vinogradov (2024). "CB Announcements." JME
- Jung & Mongelli (2025). "Direct Communication." ECB
- Оборнева И.В. (2006). Адаптация Flesch для русского
- Банк России WP 148 (2024). "Households' Inflation Expectations: RCT"
Учебный проект по коммуникации центрального банка. Презентация: docs/presentation.pdf · Речь к защите: docs/speech.md · English version