AIKYN BILD
Агент для кейса Beeline: по истории смены тарифов строит гипотезы, проверяет их пилотами через env.run_pilot и выдаёт до 10 непересекающихся…
О проекте
Команда: AIKYN BUILD
Кейс HackAlem.ai: Телеком — Beeline
Стадия: Рабочий MVP
Задача кейса: Агент, который решает, каким абонентам какой тариф предложить (чистый прирост ARPU)
Суть
Агент для кейса Beeline: по истории смены тарифов строит гипотезы, проверяет их пилотами через env.run_pilot и выдаёт до 10 непересекающихся тарифных кампаний в рамках бюджета и лимита контактов.
Как устроено
Вход: customer_profile.csv, справочники и история change_tariff.csv. Относительные изменения ARPU агрегируются медианой по связке (исходный тариф, ARPU-сегмент, целевой тариф) и задают только порядок разведки. До 12 первых пилотов исследуют разные сегменты, остальные (всего до 20) уточняют перспективные варианты. Решение принимается по среднему из пилотов с консервативной поправкой, которая убывает с числом наблюдений. Планировщик резервирует бюджет и контакты, выбирает непересекающиеся сегменты, сравнивает SMS с бесплатным push и имеет фолбэк на случай отказа всех пилотов. Выход: воспроизводимый submission.csv (seed=42).
Ключевые решения
- медианная агрегация прироста ARPU
- explore/exploit пилоты
- консервативная поправка на неопределённость
- жадный планировщик под бюджет и охват
- непересекающиеся сегменты
Метрики
seed=42: чистый прирост 1,222,447 у.е., расходы 31,488, 7,872 контакта; seed 0–9: 10/10 положительных, min 1,247,717, медиана 1,602,548, max 1,730,401 (мок-среда)
Особенности
Отдельный verify_pass.py проверяет сырые выходы агента до обрезки оценщиком: непересечение сегментов, реальные затраты с учётом пилотов, время на 10 seed и идентичность CSV. Работает полностью без LLM. Честно оговорено, что результат на мок-эффектах — не прогноз балла.
Стек
Python · pandas
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-30b4fd86-aikyn-build.
README
README.mdAIKYN BILD — Beeline Tariff Marketing Campaigns
Агент для HackAlem AI 2026: анализирует историю переходов, проверяет гипотезы пилотами и возвращает до 10 тарифных кампаний с учётом бюджета и охвата. Данные синтетические.
Быстрый запуск (Windows PowerShell)
Проверено на Python 3.14. Для запуска откройте корень репозитория:
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
$env:PYTHONIOENCODING='utf-8'
.\.venv\Scripts\python.exe local_eval.py
.\.venv\Scripts\python.exe local_eval.py --runs 10
.\.venv\Scripts\python.exe make_submission.py
.\.venv\Scripts\python.exe verify_pass.py
Быстрый запуск (macOS)
Откройте Terminal, перейдите в корень репозитория и выполните:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python local_eval.py
python local_eval.py --runs 10
python make_submission.py
python verify_pass.py
deactivate
На macOS используйте Python 3 (python3). Все команды запускаются из корня repo: организаторские скрипты используют относительные пути данных.
Основной сценарий и demo
Вход: customer_profile.csv, справочники и история data/change_tariff.csv.
Действие: Agent.act(env) формирует гипотезы, проводит реальные пилоты через публичный env.run_pilot, пересматривает оценки и выбирает кампании.
Выход: план в submission.csv и отчёт local_eval.py о приросте, расходах и охвате.
Показать жюри: запуск local_eval.py, чистый результат и соблюдение лимитов, затем submission.csv и повторную генерацию. verify_pass.py проверяет повторяемость файла и сохраняет validation.json.
Подход
- Исторические относительные изменения ARPU агрегируются медианой по исходному тарифу, ARPU-сегменту и целевому тарифу. Малые группы получают меньший вес. История определяет порядок разведки, а не скрытые эффекты.
- До 12 первых пилотов исследуют разные сегменты. Оставшиеся пилоты уточняют перспективные варианты с учётом неопределённости; до трёх измерений на гипотезу.
- Решения используют среднее из пилотов и консервативную поправку, убывающую с числом наблюдений. Это эвристика риска, не гарантированный доверительный интервал для скрытой аудитории.
- Первая версия сравнивает SMS с бесплатным push. Дорогие каналы пока не используются: перенос измерений на более сильный канал может быть неверным из-за насыщения конверсии.
- Финальные сегменты не пересекаются. Планировщик резервирует деньги и контакты с учётом пилотов, не полагаясь на автоматическое обрезание оценщиком. Крупные сегменты разбиваются доступными фильтрами.
- Если нет консервативно положительного варианта, возвращается лучший доступный проверенный вариант через бесплатный канал. Если все пилоты завершились ошибкой, агент пытается выдать одну исторически ранжированную кампанию на самом дешёвом канале; имя и диагностика отмечают её как непроверенную. Такой план соблюдает остаток бюджета и охвата, но не подтверждён пилотными данными.
Агент использует pandas и стандартную библиотеку, работает локально без LLM/API-ключей. Публичный интерфейс среды — единственный источник результатов пилотов; скрытые внутренности и модель эффектов агент не читает. При отсутствии истории гипотезы выбираются детерминированно без исторического ранжирования.
PASS и ограничения
- 1–10 валидных финальных кампаний; существующие тарифы и каналы.
- Более нуля и не более 20 пилотов, 10–200 абонентов в пилоте.
- До 5000 абонентов на кампанию, 15000 контактов и 100000 у.е. всего, включая пилоты.
- План зависит от наблюдений;
submission.csvвоспроизводится при seed=42. - Рабочая цель времени: менее 5 минут, что также удовлетворяет 10 минутам основного условия.
verify_pass.py проверяет сырые выходы агента до sanitizing/capping оценщика, отсутствие пересечения финальных сегментов, реальные затраты с пилотами, время на 10 seed, а также идентичность повторного CSV при seed=42. local_eval.py --runs 10 отдельно оценивает чистый результат.
Важно: поле «Кампаний» в отчёте local_eval включает пилоты. Например, 24 = 20 пилотов + 4 финальные кампании. Строки «Осталось бюджета/охвата» показывают остаток после пилотов; итоговые расходы смотрите в общей таблице результата.
Первый локальный результат
На seed=42: 5 финальных кампаний, 20 пилотов, чистый прирост 1,222,447 у.е., расходы 31,488, контакты 7,872. На seed 0–9: 10 из 10 результатов положительные; минимум 1,247,717, медиана 1,602,548, максимум 1,730,401 у.е. Округлено до целых. Эти показатели получены на мок-эффектах обычного сценария; резервный сценарий при отказе всех пилотов оценивается отдельно и использует непроверенную кампанию.
Это проверка на мок-эффектах, не прогноз конкурсного балла. История относится к другой выборке. Все положительные результаты на скрытой среде гарантировать невозможно.
Файлы и сдача
agent.py— решение команды, класс Agent и метод act(env).submission.csv— воспроизводимый план, генерируется make_submission.py.requirements.txt— зависимости.verify_pass.py,validation.json— дополнительные проверки и результат.local_eval.py,make_submission.py,environment.py,mock_environment.py,scoring_core.py, шаблон и данные — неизменённый пакет участника.PARTICIPANT_GUIDE.md— условие из пакета. Отдельный PDF кейса содержит также рубрику 25/25/25/15/10; README и воспроизводимость дают до 25 баллов.docs/— прежние подготовительные документы, сохранены. Их упоминания Construction и старых названий не определяют текущий кейс.
Официальный repo: BAITC-Hacks/hack-30b4fd86-aikyn-build. Команда: AIKYN BILD.
Авторы коммитов
История коммитов
- 2026-09-23 17:55Align docs with current campaign agentntleukin
- 2026-09-23 17:30Document macOS setup and verificationntleukin
- 2026-09-23 17:20Handle complete pilot API failure safelyntleukin
- 2026-09-23 16:45Merge pull request #1 from BAITC-Hacks/feature/batyrkhan-validationkobeevb05-del
- 2026-09-23 16:44Merge branch 'main' into feature/batyrkhan-validationkobeevb05-del
- 2026-09-23 16:19Refresh docs and submission after team integration and passing checksAGI Home Core
- 2026-09-23 16:17Merge remote-tracking branch 'origin/main'AGI Home Core
- 2026-09-23 16:10Replace preparation docs with actual Beeline architecture and demo guideAGI Home Core
Все коммиты (20)
- 2026-09-23 16:09Merge pull request #3 from BAITC-Hacks/feature/pilot-uncertainty-calibrationlinuks85
- 2026-09-23 16:07Stop pilot refinement when resources are exhaustedntleukin
- 2026-09-23 15:48Harden pilot strategy and retry handlingntleukin
- 2026-09-23 15:40Merge pull request #2 from BAITC-Hacks/feature/batyrkhan-validation-v2kobeevb05-del
- 2026-09-23 15:29Add independent campaign validationBatyrkhan Kobeev
- 2026-09-23 15:01Update README.mdkobeevb05-del
- 2026-09-23 15:00feat: add validation scripts and docs structureBatyrkhan Kobeev
- 2026-09-23 14:12Merge remote README update with verified Beeline implementationAGI Home Core
- 2026-09-23 14:12Implement AIKYN BILD Beeline agent and reproducible validationAGI Home Core
- 2026-09-23 13:58Revise README for AIKYN BUILD projectkobeevb05-del
- 2026-09-19 17:54Add case intake and hackathon runbookAGI Home Core
- 2026-09-19 17:54Prepare AIKYN BUILD hackathon workspaceAGI Home Core
Структура репозитория (37 файлов)
.gitignore PARTICIPANT_GUIDE.md PARTICIPANT_GUIDE.pdf README.md agent.py agent_template.py customer_profile.csv data/arpu_monthly.csv data/change_tariff.csv data/dict_tariff.csv data/traffic.csv docs/ARCHITECTURE.md docs/BATYRKHAN_TASK.md docs/CASE_INTAKE.md docs/CHANGES.md docs/DECISIONS.md docs/DEMODAY_DEFENSE.md docs/DEMO_CHECKLIST.md docs/DEMO_CONTRACT.md docs/IMPLEMENTATION.md docs/NURLAN_TASK.md docs/RUNBOOK.md docs/TEAM_COORDINATION.md docs/VALIDATION.md environment.py feature_dictionary.csv local_eval.py make_submission.py mock_environment.py requirements.txt scoring_core.py submission.csv tariff_dictionary.csv tests/test_agent_strategy.py tests/test_contract.py validation.json verify_pass.py
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.