AAYMA
RU
Войти

Digital Yakuza

Агент для кейса Beeline: по истории переходов строит гипотезы, проверяет их пилотами с байесовским обновлением, составляет план 1–10 кампаний…

Доведённый продукт
Команда «Digital_yakuza» 54💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: Digital_yakuza
Кейс HackAlem.ai: Телеком — Beeline
Стадия: Доведённый продукт

Задача кейса: Агент, который решает, каким абонентам какой тариф предложить (чистый прирост ARPU)

Суть

Агент для кейса Beeline: по истории переходов строит гипотезы, проверяет их пилотами с байесовским обновлением, составляет план 1–10 кампаний (аудитория, тариф, канал) в пределах бюджета, а LLM объясняет план аналитику.

Как устроено

История переходов и профиль аудитории → априорная таблица эффектов по связкам «тариф × ARPU-сегмент → цель» с погрешностью (q, q_se, n_obs, иерархия, осторожная оценка для тарифов без истории) → последовательные пилоты с байесовским обновлением → ранжирование кампаний по консервативной оценке с учётом пересечений и ресурсов, экономический выбор канала (push → SMS/реклама/звонок, если доплата окупается) → Agent.act(env), submission.csv и trace. Настройка на генераторе миров (180 тренировочных, 135 контрольных). gpt-5.6-luna объясняет сохранённый план по фактам со ссылками, числа подставляет код.

Ключевые решения

  • байесовское обновление
  • консервативная оценка по нижней границе
  • иерархическая оценка prior
  • симулятор миров
  • A/B на мирах
  • экономический выбор канала
  • structured output с проверкой ссылок

Метрики

Mock-среда, seed 42: net ARPU +5 165 453 у.е., 5 кампаний / 20 пилотов, затраты 95 094 из 100 000; на 135 контрольных мирах медиана 2,77 млн у.е., 1,5% миров в минусе, 0 нарушений ТЗ (у шаблона организаторов медиана −0,13 млн)

Особенности

Дисциплина эксперимента: отдельные тренировочные (180) и контрольные (135) миры, изменения принимаются по тренировочным и один раз проверяются на контрольных, отклонённые варианты задокументированы. LLM не меняет план, а числа в объяснении подставляются по ссылкам.

Стек

Python · NumPy · pandas · FastAPI · SQLAlchemy · PostgreSQL · Alembic · React 19 · TypeScript · Vite · Heroku · Vercel

Модели

gpt-5.6-luna (OpenAI API)


Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-902325c9-digital-yakuza.

README

README.md

Digital Yakuza — агент тарифных кампаний Beeline

Открыть демо →

API / Swagger · Результаты · Запуск · Проверка ТЗ

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

Проект команды Digital Yakuza для кейса Beeline на HackAlem AI. На выходе — план в CSV, результаты пилотов и отчёт для аналитика.

Файлы сдачи кейса: beeline_agent/agent.py (класс Agent, метод act(env)) и beeline_agent/submission.csv (из make_submission.py, seed 42).

Бизнес-задача и ценность решения

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

Задача аналитикаЧто делает системаПрактическая ценность
Выбрать гипотезы для проверкиСтроит кандидатов по истории и профилю аудиторииПереводит данные в конкретные варианты кампаний
Решить, каким результатам доверятьОбновляет оценку после пилота с учётом его размера и шумаПоказывает неопределённость и основания выбора
Уложиться в ограниченияУчитывает бюджет, контакты, число и размер кампанийВозвращает план в формате и лимитах кейса
Обосновать решениеСохраняет журнал, связывает кампании с пилотами, формирует объяснениеПозволяет проверить рекомендацию перед запуском

Цель кейса — чистый прирост ARPU после затрат на коммуникацию:

net_arpu_gain = прирост ARPU по уникальным абонентам − стоимость контактов

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

Все данные синтетические. Результаты — условные единицы симулятора, не измеренная выручка Beeline. Экономия времени аналитика отдельно не измерялась.

Пользовательский сценарий

  1. Запустить расчёт. Аналитик открывает дашборд и запускает агента на предоставленной аудитории.
  2. Проверить разведку. Агент проводит пилоты; аналитик видит их результаты и затраты.
  3. Изучить план. Для финальных кампаний доступны аудитории, целевые тарифы, каналы и показатели результата.
  4. Проверить основания. Отчёт связывает кампании с пилотами и содержит объяснение и предупреждения.
  5. Скачать CSV. Аналитик получает воспроизводимый план для дальнейшего решения о запуске.

AI рекомендует — решает человек. Интеграции с реальной рассылкой абонентам нет. ИИ-объяснение показывается в дашборде в блоке «Почему такой план» с пометкой источника: «ИИ (luna)» или шаблон.

Что реализовано и как работает агент

История переходов + профиль аудитории
                  ↓
        Гипотезы и начальные оценки
                  ↓
      Выбор пилота → наблюдение результата
                  ↑             ↓
                  └── обновление оценки и погрешности
                                ↓
                  План с учётом риска и лимитов
                                ↓
                   CSV + факты + журнал решений
                                ↓
                     ИИ-объяснение → аналитик
  • Исторические оценки. Начальный эффект и ошибка по связкам «текущий тариф × ARPU-сегмент → цель», с поправкой на неопределённость переноса.
  • Последовательная разведка. Пилоты выбираются по предыдущим результатам. Байесовское обновление учитывает их размер и шум. Размер пока зависит от численности аудитории — 100 или 200; выбор размера по ожидаемой пользе не реализован.
  • Планирование. Кампании ранжируются по консервативной оценке с учётом пересечений и ресурсов. Канал выбирается экономически: кампания начинает с бесплатного push и переходит на SMS, интернет-рекламу или звонок, только если доплата окупается по нижней границе оценки и помещается в остаток бюджета. Если ни одна кампания не прошла порог, используется небольшая запасная push-кампания с причиной в журнале. Прибыль не гарантируется.
  • Проверяемый результат. Agent.act(env) возвращает 1–10 кампаний; пилоты, обновления оценок и решения записываются в trace.
  • Приложение. Фоновый запуск, сохранение в PostgreSQL, показ кампаний и пилотов, скачивание CSV.

Пример из seed 42: кампания C1 для MID → tariff_8 связана с пилотами P5 и P6. Наблюдаемые эффекты SMS-пилотов — около 11,07% и 13,61%; финальная кампания содержит 4 108 контактов. Связь и значения можно проверить в report.json, а не принимать объяснение на веру.

Результаты и качество

Официальная mock-среда, seed 42:

ПоказательРезультат
Чистый прирост ARPU после коммуникаций+5 165 453 у.е.
Финальные кампании / пилоты5 / 20
Затраты, включая пилоты95 094 из 100 000 у.е.
Каналы финальных кампанийSMS × 3, интернет-реклама × 2
Контакты, включая пилоты13 320 из 15 000

Проверка переноса на другие эффекты: 135 контрольных миров, 9 сценариев × 15 seed (10 000–10 014). Все стратегии запускались на одинаковых мирах и seed. Контрольный набор использовался только для итоговых проверок, без настройки на нём: сначала для версии a631a16, затем для сдаваемой версии, чей выбор каналов уже был принят по 180 тренировочным мирам.

СтратегияМедиана net, млн у.е.10-й перцентильХудшийМиров в минусеМиров с нарушениями ТЗ
Шаблон организаторов−0,13−0,96−1,3876,3%6 / 135
Только история, без пилотов2,980,57−1,673,7%135 / 135
Наш агент без выбора каналов (a631a16)2,600,33−0,922,2%0 / 135
Наш агент, сдаваемая версия2,770,35−0,901,5%0 / 135

Как интерпретировать: агент улучшил результат относительно шаблона и выполнил проверяемые условия ТЗ во всех 135 мирах. У стратегии «только история» медиана выше, но нет обязательных пилотов и хуже минимальный результат. Сдаваемая версия превосходит её в 30% миров; в сценарии плохого переноса истории random медиана агента — 1,58 млн против 0,44 млн. Это показывает пользу проверки истории и одновременно цену осторожности.

Сдаваемая версия отличается от a631a16 только экономическим выбором каналов (dfcccc4). Он принят по 180 тренировочным мирам (медиана парной разницы +68 тыс. у.е., лучше в 71% миров) и затем один раз проверен на тех же 135 контрольных мирах: медиана парной разницы +127 тыс. у.е., лучше в 81% миров, хуже в 12%, медиана выше во всех 9 сценариях. Повторный пилот «только при неясном решении» (−16 тыс., лучше в 39%) и разведка тарифов без истории (−595 тыс., лучше в 18%) реализованы за переключателями и отклонены. Скрытая среда судейства неизвестна; отдельные контрольные миры остаются убыточными.

Методика и отклонённые варианты, включая совместную модель ячеек: EXPERIMENTS.md.

Роль ИИ, надёжность и стоимость

Модель gpt-5.6-luna через OpenAI API объясняет уже готовый план: связывает кампании с доказательствами, формулирует предупреждения и следующие действия аналитика. Статистический код выбирает пилоты и кампании; модель не меняет их и не редактирует CSV.

МеханизмЗачем он нужен
Компактные факты вместо всего клиентского датасетаОграничивает объём запроса и делает основания ответа проверяемыми
Структурированный ответ со ссылкамиКаждая кампания объясняется один раз; проверяются существование фактов и связь с её пилотами и тарифами
Числа подставляет код: {C1.contacts}Ответ с числовыми значениями вне разрешённых ссылок отклоняется
План сохраняется до вызова моделиТаймаут или ошибка объяснения не теряют результат расчёта
Шаблон с указанной причинойWorkflow работает без ключа, при сбое API или отклонённом ответе

Тестовый вызов команды: 2 909 входных / 1 188 выходных токенов, 12,2 с, около $0,00201 по использованным ценам. Токены, задержка и оплаченные попытки записываются в отчёт. Бюджет проверяется до запроса, но предварительная оценка токенов приблизительная: строгий финансовый потолок не гарантируется. USD API и у.е. кампаний — разные бюджеты.

Проверка ссылок и чисел не доказывает правильность каждой смысловой формулировки. Содержательную полезность объяснений для аналитика ещё предстоит измерить. Подробности workflow.

Архитектура и технологии

React / TypeScript → FastAPI → отдельный worker → Agent.act(env)
                        ↑              ↓
                        └────── PostgreSQL: план, пилоты, журнал
                                       ↓
                           explain_result: факты → LLM / шаблон
                                       ↓
                           объяснение того же сохранённого run_id

explain_result объясняет сохранённый запуск без повторных пилотов. Агент использует публичный интерфейс среды; истинные эффекты доступны оценщику. Mock-метрики отчёта рассчитываются после запуска.

КомпонентТехнологииКод
Агент и расчётыPython, NumPy 2.2.4, pandas 2.2.3agent.py
ИИ и отчётыOpenAI API, SDK openai==2.54.0workflow.py
Оценки и симуляторPython, статистическая обработка данныхprior/, sim/, eval/
API и хранениеFastAPI, SQLAlchemy, PostgreSQL, Alembicbackend/
ДашбордReact 19, TypeScript, Vitefrontend/
Запуск и тестыDocker Compose, pytestИнструкция, тесты

Данные и интеграции

Данные организаторов включены в beeline_agent; для базового запуска внешняя выгрузка не нужна.

ИсточникИспользование
customer_profile.csv23 441 абонент: текущие тарифы, сегменты и прогнозный ARPU
data/change_tariff.csvНачальные оценки эффектов переходов
data/traffic.csv, data/arpu_monthly.csvИсследование потребления, качества данных и переносимости истории
data/dict_tariff.csv, словари тарифов и признаковПараметры 21 тарифа и описание полей
OpenAI APIОбъяснение готового результата при включённой модели
PostgreSQLХранение запусков приложения

Очистка оставляет 12 699 из 14 823 строк: удалены дубли и слишком малая база ARPU, рост ограничен по правилу среды. Подготовлены 451 связка с историей и 809 без неё в формате (q, q_se, n_obs): эффект, его ошибка и число наблюдений. Разведка связок без истории испытана и отклонена: при 20 пилотах она ухудшила результат (см. «Результаты и качество»). Методика.

Установка и запуск

Агент и отчёт без внешних сервисов

Нужен Python 3.12. Начните из корня репозитория:

python -m venv .venv

Активируйте созданное окружение: PowerShell — .\.venv\Scripts\Activate.ps1, Linux/macOS — source .venv/bin/activate.

cd beeline_agent
python -m pip install -r requirements-workflow.txt
python workflow.py --no-llm

Для сдаваемой версии ожидается 5 кампаний, net 5 165 453, объяснение template. В outputs/ появятся:

ФайлСодержимое
submission.csvФинальный план кампаний
report.jsonПлан, метрики mock, пилоты, журнал, факты, связи, объяснение и расход модели
explanation.mdЧитаемое объяснение с указанием источника
Включить модель и настроить расходы

Создайте beeline_agent/.env по .env.example, если файла ещё нет. Заполните личный ключ локально:

OPENAI_API_KEY=YOUR_API_KEY
AGENT_LLM=1
OPENAI_MODEL_FAST=gpt-5.6-luna
AGENT_LLM_RUN_BUDGET_USD=0.05

YOUR_API_KEY — обозначение места для ключа. .env и выходные отчёты исключены из Git; переменные окружения имеют приоритет над файлом.

python workflow.py

При успехе выводится объяснение: llm, иначе — template с причиной. CSV не зависит от ответа модели.

По умолчанию: таймаут попытки 30 с, ответ до 2 000 токенов, до 2 попыток на ключ. AGENT_LLM=0 или --no-llm отключает модель. Полные настройки и переопределение цен — в WORKFLOW.md.

Поднять API, PostgreSQL и дашборд локально

Нужны Docker с Linux containers и Node.js 22.12+. Команды PowerShell, каждый блок — из корня репозитория в отдельном терминале:

cd backend
if (-not (Test-Path .env)) { Copy-Item .env.example .env }
docker compose up --build -d
docker compose exec backend alembic upgrade head

API: http://localhost:8000; /health должен вернуть {"status":"ok","database":"ok"}. Для объяснений нужна миграция 0003_agent_run_explanation.

cd frontend
if (-not (Test-Path .env)) { Copy-Item .env.example .env }
npm install
npm run dev

Дашборд: http://localhost:5173; VITE_API_URL=http://localhost:8000. Настройте CORS по инструкции. Ключ и AGENT_LLM=1 задаются только на бэкенде.

Бэкенд · Фронтенд · API · Деплой.

Как проверить решение

Для демонстрации: откройте сайт по ссылке в начале, запустите агента с seed 42, изучите кампании и пилоты, скачайте CSV. Ожидается «seed 42 · агент 59547e1d», 5 кампаний, чистый эффект 5 165 452,81 у.е. и блок «Почему такой план» с пометкой «ИИ (luna)»; CSV совпадает с beeline_agent/submission.csv. Версию агента на хостинге можно сверить: GET /api/case/summary возвращает agent_sha256, у сдаваемой версии — 59547e1d…. Воспроизводимая локальная проверка выполняется из beeline_agent:

python local_eval.py
python make_submission.py
python -m eval.checks

Ожидаются PASS, 5 финальных кампаний и проверки без FAIL для зафиксированной версии. Официальный оценщик выводит 25 кампаний суммарно: 20 пилотов + 5 финальных. T4 в тренажёре — диагностика генератора, не прибыль агента.

python -m pip install pytest
python -m pytest -q tests
python local_eval.py --runs 10

Проходят 47 тестов (агент, workflow, выбор каналов) и 11 из 11 проверок тренажёра. local_eval.py --runs 10: 10 из 10 положительных, медиана +4,82 млн, минимум +3,01 млн у.е. Тесты API используют подмену и не требуют платных запросов.

Соответствие обязательным условиям ТЗ

УсловиеГде проверить
Agent.act(env) запускаетсяagent.py, local_eval.py
1–10 корректных финальных кампанийВалидация плана и запасной путь; seed 42: 5 кампаний
Пилоты влияют на решенияrun_pilot, обновление оценок и журнал trace
Соблюдены лимиты ресурсовeval/checks.py: 100 000 у.е., 15 000 контактов, до 5 000 на кампанию, до 20 пилотов по 10–200
Воспроизводимый submission.csvmake_submission.py и сравнение ниже

Таймаут воркера — 600 секунд. Полное ТЗ. Результаты проверок относятся к испытанным сценариям.

Соответствие критериям HackAlem

КритерийБаллыГде в проекте
Соответствие кейсу20Agent.act(env), пилоты через env.run_pilot, submission.csv в формате make_submission.py, таблица условий ТЗ выше
Реализация без имитации25Решения принимает статистический код по реальным пилотам; ИИ вызывается через OpenAI API с учётом токенов, шаблон помечается source: template
README20Этот документ: задача, сценарий, архитектура, запуск, проверка, данные, ограничения, материалы
Воспроизводимость20Фиксированный seed, закреплённые версии зависимостей, данные в репозитории; CSV одинаков с ИИ и без него
Надёжность1547 тестов, 11 проверок тренажёра, запасной план при сбоях, план сохраняется до объяснения, таймауты агента и модели
Проверить совпадение CSV и воспроизвести контрольный набор

После make_submission.py:

python workflow.py --no-llm
python -c "from pathlib import Path; assert Path('submission.csv').read_bytes() == Path('outputs/submission.csv').read_bytes(); print('CSV совпадает')"

Ожидается CSV совпадает. С включённой моделью сравнение должно дать тот же результат. В отчёте доступны trace, campaign_pilot_links, explanation.source и llm_usage.

Таблица 135 миров, команда из beeline_agent (agent — сдаваемая версия, agent_pre2 — a631a16):

python -c "from pathlib import Path; from eval.run import run, summarize; s='mock,random,noise,flip,shift,stingy,unknown_rich,high_rich,resample'.split(','); df=run(15,s,'control',['template','history_only','agent','agent_pre2']); Path('eval/results').mkdir(exist_ok=True); df.to_csv('eval/results/readme_control135.csv',index=False); print(summarize(df).to_string()); print(df.groupby('strategy')['net'].agg(['count','median','min']))"

Ожидаются 540 строк: 135 миров × 4 стратегии, файл eval/results/readme_control135.csv. Прогон длительный. Сырые результаты не входят в Git. Сейчас генератор содержит 12 сценариев: --scenario all --worlds 15 создаст другой набор из 180 миров на стратегию. Повторение старого набора не является новой независимой проверкой.

Ограничения и следующий этап

Ограничение текущей версииСледующий шаг
Пилот проверяет смесь тарифов, оценка переносится на остаток после удаления пересечений; среднее по людям отличается от ценности по ARPUСогласовать модель наблюдения и фактическую аудиторию кампании
Тарифы без истории не разведываются: 20 пилотов не хватает, в сравнении это ухудшило результатБольше пилотов или отбор новых тарифов по сходству с известными
Пилоты и финальный план могут принести убыток при других эффектахПроверить новую финальную стратегию на заранее зафиксированном свежем контрольном наборе
ИИ объясняет готовый план, его вклад в качество решений аналитика не измеренОценить полезность объяснений и ложные предупреждения на примерах
В тексте ИИ-объяснения встречаются англоязычные термины (lift, observed, LCB) и неудачные формулировки ограничений охватаУпростить язык инструкции модели и проверить формулировки на примерах аналитиков

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

Команда и использованные материалы

УчастникВклад
ДимашАгент, workflow, тренажёр, проверки и документация
ТимурИсследование и очистка данных, оценки, генератор миров
АйдосБэкенд, БД, фронтенд и интеграция приложения

Использованы синтетический пакет, среда (environment.py, mock_environment.py, scoring_core.py), локальный оценщик и шаблон агента организаторов; остальной код — командный, написан на хакатоне. Claude (Anthropic) и OpenAI Codex применялись при разработке и ревью вместе с локальными инструкциями и навыками; модель gpt-5.6-luna через OpenAI API используется только во время выполнения workflow для объяснения. Библиотеки перечислены в файлах зависимостей.

Зависимости: агент, workflow, бэкенд, фронтенд.

Звёзды
⭐ 3
Форки
0
Язык
Python
Последний push
в прошлом месяце
Коммиты
72
Авторы
4
Файлы
169
Ветки
3

Авторы коммитов

Bekeshev Dimash 25Mindcore 25Айдос Амангельды 20Aidos Amangeldi 2

История коммитов

  • 2026-09-23 17:42README: объяснение показано в дашборде, проверка сайта на seed 42 с ожидаемыми значениямиBekeshev Dimash
  • 2026-09-23 17:35README: explanation is shown on the dashboard; site check on seed 42 with expected values; LLM wording as a known limitationBekeshev Dimash
  • 2026-09-23 17:33Revise EXPERIMENTS.md with latest evaluation dataAidos Amangeldi
  • 2026-09-23 17:25Update README.mdAidos Amangeldi
  • 2026-09-23 17:24Update frontend for productionАйдос Амангельды
  • 2026-09-23 17:23Update frontend for productionАйдос Амангельды
  • 2026-09-23 17:12Finalize backend for productionАйдос Амангельды
  • 2026-09-23 16:57README: submitted version (channel choice) — seed 42 net 5,165,453; 135 control worlds median 2.77M, 1.5% negative, 0 TZ violations; submission files, HackAlem criteria tableBekeshev Dimash
Все коммиты (72)
  • 2026-09-23 16:55analytics: удалена ранняя версия пайплайна данныхMindcore
  • 2026-09-23 16:55prior: чистка — без устаревшего формата, каналы из правил среды, ab_worlds в формате агентаMindcore
  • 2026-09-23 16:55sim: чистка — цены каналов и лимиты из правил среды, прогоны по умолчанию не в gitMindcore
  • 2026-09-23 16:45sim: оптимизатор — кандидаты «каждый тариф к своей лучшей цели»; план отыгрывает 92% потолкаMindcore
  • 2026-09-23 16:39contract: backend imports beeline_agent directly (a731154), no repackagingBekeshev Dimash
  • 2026-09-23 16:38Merge remote-tracking branch 'origin/Agent'Айдос Амангельды
  • 2026-09-23 16:36contract: note on CRLF and agent sha for packagingBekeshev Dimash
  • 2026-09-23 16:35agent: economic channel choice by lower bound (+68k paired, 71% of worlds); repeat-pilot and unseen-tariff switches offBekeshev Dimash
  • 2026-09-23 16:25switch backend to direct agent importАйдос Амангельды
  • 2026-09-23 16:24sim: каналы по точке окупаемости поверх плана агента — замер на тренировочных и свежих seedMindcore
  • 2026-09-23 16:15prior: проверка режима по пилотам (regime.py) + графики для READMEMindcore
  • 2026-09-23 16:15sim: оптимальный план при известных эффектах (optimizer.py), headroom --milp, README и графикиMindcore
  • 2026-09-23 16:10Merge remote-tracking branch 'origin/analysis_dataset'Айдос Амангельды
  • 2026-09-23 16:10Merge remote-tracking branch 'origin/Agent'Айдос Амангельды
  • 2026-09-23 16:08Update backend integration and frontendАйдос Амангельды
  • 2026-09-23 16:06docs: контракт backend ↔ актуальный агент (журнал, поля, объяснение, API, приёмка seed 42)Bekeshev Dimash
  • 2026-09-23 16:02eval: итог на контрольных мирах в журнале экспериментовBekeshev Dimash
  • 2026-09-23 16:01backend: объяснение сохранённого запуска отдельно от плана; актуальный пакет агентаBekeshev Dimash
  • 2026-09-23 15:56Merge remote-tracking branch 'origin/main' into AgentBekeshev Dimash
  • 2026-09-23 15:51workflow: 5 исправлений ИИ-обвязки по ревью + 17 тестов с подменой APIBekeshev Dimash
  • 2026-09-23 15:50sim: headroom.py — где лежат недополученные деньги; REQUIRE_PILOT в hypotheses.pyMindcore
  • 2026-09-23 15:42workflow: агент → план и CSV → факты → ИИ-объяснение → отчёт; агент зафиксирован (a631a16)Bekeshev Dimash
  • 2026-09-23 15:42sim: hypotheses.py — учёт нарушений ТЗ, параллельный прогон (--jobs), --outMindcore
  • 2026-09-23 15:36prior: q режима raw — ровно формула среды; независимая перепроверка; понятные именаMindcore
  • 2026-09-23 15:36sim: понятные имена в worlds.py — миры не изменилисьMindcore
  • 2026-09-23 15:27Remove obsolete root deployment and documentation directoriesАйдос Амангельды
  • 2026-09-23 15:27Merge remote-tracking branch 'origin/Agent'Айдос Амангельды
  • 2026-09-23 15:27Merge remote-tracking branch 'origin/analysis_dataset'Айдос Амангельды
  • 2026-09-23 15:26Ignore local Vercel configurationАйдос Амангельды
  • 2026-09-23 15:23Merge remote-tracking branch 'origin/Agent' into analysis_datasetMindcore
  • 2026-09-23 15:23agent: резерв ресурсов, корректный запасной план, q_se Тимура; T4 на 40 мирахBekeshev Dimash
  • 2026-09-23 15:18Обновление скрипта для проверки гипотез: изменение параметров запуска, улучшение обработки результатов и добавление новых функций для анализа.Mindcore
  • 2026-09-23 15:17Merge remote-tracking branch 'origin/analysis_dataset' into AgentBekeshev Dimash
  • 2026-09-23 15:16agent: план никогда не пустой + проверка обязательных условий ТЗ во всех мирахBekeshev Dimash
  • 2026-09-23 15:14Merge remote-tracking branch 'origin/Agent' into analysis_datasetMindcore
  • 2026-09-23 15:09sim: сценарии random_soft, random_hard, causal — существующие миры не менялисьMindcore
  • 2026-09-23 15:05prior: q_se — малые выборки и тройки без историиMindcore
  • 2026-09-23 14:54Merge remote-tracking branch 'origin/main' into AgentBekeshev Dimash
  • 2026-09-23 14:53agent: шаг 3 — погрешность оценки в единицах q, таблица (q, q_se, n_obs)Bekeshev Dimash
  • 2026-09-23 14:52Merge remote-tracking branch 'origin/analysis_dataset'Айдос Амангельды
  • 2026-09-23 14:52Merge remote-tracking branch 'origin/Agent'Айдос Амангельды
  • 2026-09-23 14:52Update frontendАйдос Амангельды
  • 2026-09-23 14:44Merge remote-tracking branch 'origin/analysis_dataset' into AgentBekeshev Dimash
  • 2026-09-23 14:39prior, sim: формат (q, q_se, n_obs), проверка исследования, иерархия и A/B на мирахMindcore
  • 2026-09-23 14:32merge: генератор миров Тимура (sim/) и аналитика в ветку Agent; тренажёр переключён на sim.worldsBekeshev Dimash
  • 2026-09-23 14:28Integrate agent API and background runsАйдос Амангельды
  • 2026-09-23 14:20agent: обновлён submission.csv под новый априор + проверка R5Bekeshev Dimash
  • 2026-09-23 14:18eval: тренажёр агента — прогоны по мирам, потолок и проверки правилBekeshev Dimash
  • 2026-09-23 14:11agent: решение кейса перенесено в папку beeline_agent/Bekeshev Dimash
  • 2026-09-23 14:11prior: правила чистки истории и устойчивая оценка эффектаMindcore
  • 2026-09-23 14:11prior: осторожная оценка для 12 тарифов без истории (PRIOR_UNSEEN)Mindcore
  • 2026-09-23 14:11sim: генератор миров для настройки агента (sim/worlds.py)Mindcore
  • 2026-09-23 14:11agent: каркас агента Beeline + пакет кейса для проверкиBekeshev Dimash
  • 2026-09-23 14:02Merge remote-tracking branch 'origin/analysis_dataset'Айдос Амангельды
  • 2026-09-23 14:02Merge remote-tracking branch 'origin/Agent'Айдос Амангельды
  • 2026-09-23 14:01Prepare backend deploymentАйдос Амангельды
  • 2026-09-23 14:01prior: осторожная оценка для 12 тарифов без истории (PRIOR_UNSEEN)Mindcore
  • 2026-09-23 13:58prior: правила чистки истории и устойчивая оценка эффектаMindcore
  • 2026-09-23 13:45agent: решение кейса перенесено в папку beeline_agent/Bekeshev Dimash
  • 2026-09-23 13:41agent: каркас агента Beeline + пакет кейса для проверкиBekeshev Dimash
  • 2026-09-23 13:13Initial project scaffoldАйдос Амангельды
  • 2026-09-23 13:48analytics: audience map, history-vs-audience shift, prior validationMindcore
  • 2026-09-23 13:46analytics: prior table of tariff-change effects for the agentMindcore
  • 2026-09-23 13:41analytics: data cleaning pipeline and data quality reportMindcore
Структура репозитория (169 файлов)
.github/workflows/frontend-deploy.yml
.gitignore
.python-version
Procfile
README.md
analytics/.gitignore
analytics/README.md
analytics/audience_map.py
analytics/build_prior.py
analytics/clean_data.py
analytics/common.py
analytics/output/audience/cells.csv
analytics/output/audience/history_vs_audience.json
analytics/output/audience/subsegments.csv
analytics/output/data_quality.json
analytics/output/prior/audience_cells.csv
analytics/output/prior/pilot_candidates.csv
analytics/output/prior/prior_effects.csv
analytics/output/prior/prior_meta.json
analytics/output/prior/prior_table.py
analytics/output/prior/validation.json
analytics/requirements.txt
analytics/validate_prior.py
backend/.env.example
backend/.gitignore
backend/.python-version
backend/Dockerfile
backend/Dockerfile.dockerignore
backend/Procfile
backend/alembic.ini
backend/alembic/env.py
backend/alembic/script.py.mako
backend/alembic/versions/0001_initial.py
backend/alembic/versions/0002_agent_runs.py
backend/alembic/versions/0003_agent_run_explanation.py
backend/app/__init__.py
backend/app/agents/.gitkeep
backend/app/agents/__init__.py
backend/app/agents/base.py
backend/app/api/.gitkeep
backend/app/api/__init__.py
backend/app/api/router.py
backend/app/api/routes/__init__.py
backend/app/api/routes/beeline.py
backend/app/api/routes/health.py
backend/app/core/__init__.py
backend/app/core/beeline.py
backend/app/core/config.py
backend/app/core/database.py
backend/app/main.py
backend/app/models/__init__.py
backend/app/models/agent_run.py
backend/app/models/base.py
backend/app/models/example_item.py
backend/app/repositories/__init__.py
backend/app/repositories/agent_runs.py
backend/app/schemas/__init__.py
backend/app/schemas/agent.py
backend/app/schemas/health.py
backend/app/services/__init__.py
backend/app/services/agent_runs.py
backend/app/services/agent_worker.py
backend/app/services/case_summary.py
backend/app/tools/.gitkeep
backend/app/tools/__init__.py
backend/app/tools/base.py
backend/docker-compose.yml
backend/docs/beeline-api.md
backend/docs/deploy.md
backend/docs/local-start.md
backend/docs/migrations.md
backend/requirements.txt
backend/scripts/check_beeline.py
beeline_agent/.env.example
beeline_agent/.gitignore
beeline_agent/BACKEND_CONTRACT.md
beeline_agent/PARTICIPANT_GUIDE.md
beeline_agent/WORKFLOW.md
beeline_agent/agent.py
beeline_agent/agent_template.py
beeline_agent/customer_profile.csv
beeline_agent/data/arpu_monthly.csv
beeline_agent/data/change_tariff.csv
beeline_agent/data/dict_tariff.csv
beeline_agent/data/traffic.csv
beeline_agent/environment.py
beeline_agent/eval/EXPERIMENTS.md
beeline_agent/eval/__init__.py
beeline_agent/eval/baselines/agent_pre_step2.py
beeline_agent/eval/baselines/agent_step2_joint.py
beeline_agent/eval/baselines/agent_step2_naive.py
beeline_agent/eval/baselines/agent_step2_naive_ambig.py
beeline_agent/eval/baselines/agent_v0.py
beeline_agent/eval/baselines/prior_table_v0.csv
beeline_agent/eval/baselines/tests_step2_joint/test_group_update.py
beeline_agent/eval/checks.py
beeline_agent/eval/compare.py
beeline_agent/eval/core.py
beeline_agent/eval/prior_tables.py
beeline_agent/eval/run.py
beeline_agent/eval/simple_worlds.py
beeline_agent/eval/strategies.py
beeline_agent/eval/variants.py
beeline_agent/feature_dictionary.csv
beeline_agent/local_eval.py
beeline_agent/make_submission.py
beeline_agent/mock_environment.py
beeline_agent/prior/README.md
beeline_agent/prior/ab_worlds.py
beeline_agent/prior/breakeven.csv
beeline_agent/prior/build_prior.py
beeline_agent/prior/evaluate_estimators.py
beeline_agent/prior/hier.py
beeline_agent/prior/history.py
beeline_agent/prior/prior_table.csv
beeline_agent/prior/prior_unseen.csv
beeline_agent/prior/reports/estimator_comparison.csv
beeline_agent/prior/reports/prior_meta.json
beeline_agent/prior/reports/research_check.json
beeline_agent/prior/reports/similarity.json
beeline_agent/prior/research_check.py
beeline_agent/prior/similarity.py
beeline_agent/prior/unseen.py
beeline_agent/prior/verify_prior.py
beeline_agent/requirements-workflow.txt
beeline_agent/requirements.txt
beeline_agent/scoring_core.py
beeline_agent/sim/__init__.py
beeline_agent/sim/headroom.py
beeline_agent/sim/hypotheses.py
beeline_agent/sim/reports/headroom.csv
beeline_agent/sim/reports/hypotheses_runs.csv
beeline_agent/sim/worlds.py
beeline_agent/submission.csv
beeline_agent/tariff_dictionary.csv
beeline_agent/tests/test_estimates.py
beeline_agent/tests/test_fallback_reserve.py
beeline_agent/tests/test_improvements.py
beeline_agent/tests/test_workflow.py
beeline_agent/workflow.py
frontend/.env.example
frontend/.gitignore
frontend/Dockerfile
frontend/docs/local-start.md
frontend/index.html
frontend/package-lock.json
frontend/package.json
frontend/public/favicon.svg
frontend/src/.gitkeep
frontend/src/App.tsx
frontend/src/api/client.ts
frontend/src/components/Campaigns.tsx
frontend/src/components/CaseOverview.tsx
frontend/src/components/Explanation.tsx
frontend/src/components/Help.tsx
frontend/src/components/Pilots.tsx
frontend/src/components/Ui.tsx
frontend/src/hooks/useAgentRun.ts
frontend/src/hooks/useCaseSummary.ts
frontend/src/main.tsx
frontend/src/pages/Dashboard.tsx
frontend/src/styles.css
frontend/src/types/api.ts
frontend/src/utils/explanation.ts
frontend/src/utils/labels.ts
frontend/src/vite-env.d.ts
frontend/tsconfig.json
frontend/vite.config.ts
requirements.txt
Ветки (3)

Обсуждение 0 комментариев

Войдите, чтобы комментировать

Пока нет комментариев — будьте первым.