Агент управления тарифными маркетинговыми кампаниями
Python-агент для кейса Beeline: выбирает аудитории, целевые тарифы и каналы, проверяет гипотезы пилотами через env.run_pilot и распределяет бюджет…
О проекте
Команда: Wai
Кейс HackAlem.ai: Телеком — Beeline
Стадия: Доведённый продукт
Задача кейса: Агент, который решает, каким абонентам какой тариф предложить (чистый прирост ARPU)
Суть
Python-агент для кейса Beeline: выбирает аудитории, целевые тарифы и каналы, проверяет гипотезы пилотами через env.run_pilot и распределяет бюджет на итоговые кампании (до 10), чтобы максимизировать чистый прирост ARPU.
Как устроено
candidate_research.py группирует абонентов по текущему тарифу и ARPU-сегменту и строит до 3 гипотез целевого тарифа на группу, начальные оценки берутся из дедуплицированной истории change_tariff.csv. Агент последовательно выбирает пилоты с учётом ценности информации и уменьшения неопределённости и после каждого наблюдения делает байесовское обновление. Планировщик по консервативной оценке (среднее − 0.5σ) жадно выбирает кампании и каналы (push/sms/digital_ads/call) с учётом ресурсов и пересечения аудиторий. Есть резервная логика при сбоях. make_submission.py с seed 42 выпускает submission.csv.
Ключевые решения
- Bayesian updating
- sequential pilot selection (value of information)
- greedy resource allocation
- conservative lower-bound estimate
- history deduplication
- fallback plan
Метрики
Чистый прирост ARPU 5 063 252 (seed 42); медиана по seeds 0–9 4 808 448, min/max 4 435 121 / 5 051 876, 10/10 положительны; 20 пилотов / 6 кампаний; бюджет 99 932 из 100 000; 17 тестов
Особенности
Схема explore/exploit с байесовским обновлением по пилотам вместо слепого доверия истории из другой выборки. В experiments/ лежат ablation, robustness shift и сравнение альтернативных агентов. В репозитории набор .agents/skills для AI-ассистента (EDA, data-quality audit и др.).
Стек
Python · numpy · pandas · unittest · GitHub Actions
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-1bf1c5f3-wai.
README
README.mdАгент управления тарифными маркетинговыми кампаниями
Решение для кейса Beeline на HackAlem: Python-агент помогает маркетинговому аналитику составить план предложений по смене тарифа. Он выбирает аудиторию, целевой тариф и канал связи, проверяет гипотезы небольшими пилотами и распределяет оставшиеся ресурсы между финальными кампаниями.
Все данные и результаты синтетические. Они не описывают реальных клиентов или финансовые показатели Beeline.
Финальная версия находится в challenges/beeline-tariff-campaigns/. Основные артефакты — agent.py и воспроизводимый submission.csv. Для работы агента также нужны модули candidate_research.py и campaign_planner.py.
Задача и пользователь
Пользователь — аналитик маркетинга, планирующий тарифные кампании на следующий месяц. Предложение сменить тариф может повысить выручку, не дать эффекта или привести к менее выгодному переходу. При ограниченном бюджете важно проверить гипотезы до масштабирования кампаний.
История относится к другой выборке абонентов. Агент использует её для начальной оценки, а затем уточняет эффект по пилотам на текущей аудитории. Цель — увеличить чистый прирост ARPU, то есть средней выручки на абонента, с учётом стоимости коммуникаций:
Чистый результат = прирост ARPU по уникальным абонентам − стоимость контактов
В результат входят пилоты и финальные кампании. Повторные контакты не умножают эффект: оценщик учитывает для каждого абонента лучшую кампанию, а стоимость контактов сохраняется.
Что реализовано
- Гипотезы по текущему тарифу и ARPU-сегменту: до трёх целевых тарифов на каждую группу аудитории.
- Слабые исторические оценки эффекта с удалением точных дубликатов и снижением доверия к редким переходам.
- Последовательный выбор пилотов с учётом ожидаемой пользы новых наблюдений и уменьшения неопределённости.
- Обновление оценок по фактической обратной связи
env.run_pilot(...). - Выбор каналов
push,sms,digital_adsиcallс учётом эффекта, стоимости и ресурсов. - Планирование до десяти финальных кампаний с учётом пересечения аудиторий.
- Резервная логика при ошибках обработки пилотов или планирования, сохраняющая пользу уже проведённых пилотов.
- Генерация
submission.csv, проверки ограничений, воспроизводимости и обработки ошибок.
На предоставленных данных формируется 189 гипотез для 63 групп аудитории. Это результат обработки входных таблиц, а не список тарифов или клиентов, зашитый в агент.
Как работает решение
- Получение среды. Оценщик вызывает
Agent().act(env). Среда предоставляет аудиторию, тарифы, параметры каналов, остатки ресурсов и метод запуска пилотов. - Подготовка гипотез.
candidate_research.pyгруппирует аудиторию по текущему тарифу и ARPU-сегменту. Историяdata/change_tariff.csvзадаёт начальные оценки. Если история недоступна, используются нейтральные гипотезы для ближайших более дорогих тарифов. - Пилоты. Агент последовательно выбирает гипотезы для проверки. Обычно используется SMS и до 200 клиентов на пилот. После каждого наблюдения обновляются средняя оценка эффекта и её неопределённость. Выбор учитывает как поиск лучшего предложения, так и дополнительную проверку перспективного варианта.
- Планирование. Для всех каналов, включая бесплатный push, применяется осторожная оценка:
средний эффект − 0,5 × стандартное отклонение. Планировщик последовательно выбирает кампании с наибольшим ожидаемым дополнительным чистым эффектом, проверяя оставшиеся ресурсы. - Результат.
act(env)возвращает список словарей с аудиториями, тарифами и каналами. Скриптmake_submission.pyзапускает агента с фиксированным seed 42 и сохраняет план в CSV.
При сбое планировщика агент использует резервный план. Если все оценки отрицательны, резервная логика ищет небольшую допустимую аудиторию с наименьшей оценкой потерь, чтобы выполнить требование вернуть хотя бы одну кампанию.
Архитектура
flowchart LR
E["env: аудитория, тарифы, каналы и лимиты"] --> A["agent.py"]
E --> C["candidate_research.py"]
H["data/change_tariff.csv"] --> C
C --> A
A <-->|"пилоты и наблюдения"| P["env.run_pilot"]
A --> L["campaign_planner.py"]
L --> R["Список финальных кампаний"]
R --> S["make_submission.py → submission.csv"]
Пути в таблице указаны относительно challenges/beeline-tariff-campaigns/.
| Компонент | Назначение |
|---|---|
agent.py | Точка входа, цикл пилотов и обработка сбоев |
candidate_research.py | Группы аудитории и исторические гипотезы |
campaign_planner.py | Байесовское обновление оценок, выбор пилотов и распределение ресурсов |
submission.csv | Воспроизводимый результат для сдачи |
requirements.txt | Зависимости Python |
tests/ | Проверки интерфейса, лимитов, воспроизводимости и резервной логики; отдельные тесты исследовательских моделей |
environment.py, mock_environment.py | Среда организатора и её локальная имитация |
scoring_core.py, local_eval.py, make_submission.py | Организаторские инструменты оценки и подготовки результата |
data/, customer_profile.csv | Исходные данные в предусмотренных организатором путях |
experiments/ | Исследовательские скрипты, альтернативные агенты, результаты и производные таблицы |
Финальный агент не импортирует код и не читает результаты из experiments/. Исходные данные и скрипты организатора сохранены без изменений.
Технологии и интеграции
Используются Python, numpy>=1.24 и pandas>=2.0; тесты написаны на стандартном unittest. В конфигурации GitHub Actions указан Python 3.11.
Оценки эффекта обновляются байесовским методом, а финальные кампании выбираются жадным алгоритмом. В финальной версии нет LLM, внешних API, базы данных или отдельных файлов обученной модели. Ключи доступа и сетевые подключения для работы агента не требуются после установки зависимостей. Рабочая интеграция — публичный интерфейс среды организатора.
Установка и запуск
Команды выполняются из корня клонированного репозитория. Можно использовать Python 3.11, указанный в CI проекта.
Windows PowerShell
cd challenges\beeline-tariff-campaigns
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.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 -m unittest discover -s tests -v
Здесь интерпретатор окружения вызывается напрямую, поэтому активация PowerShell-скриптом не нужна. Если окружение уже создано и зависимости установлены, шаги подготовки можно пропустить.
Linux / macOS
cd challenges/beeline-tariff-campaigns
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 -m unittest discover -s tests -v
Официальные команды нужно запускать из каталога challenges/beeline-tariff-campaigns: скрипты организатора используют относительные пути к данным. Команда python agent.py сама по себе не запускает оценку: класс агента вызывается оценщиком через act(env).
Сценарий проверки для жюри
- Запустить
local_eval.py. Проверить статусPASS, наличие пилотов и отсутствие отброшенных или обрезанных финальных кампаний. Ограничение в десять кампаний относится к финальному плану; отчёт оценщика также включает пилоты. - Запустить
local_eval.py --runs 10для проверки поведения при разных выборках и шуме пилотов. - Запустить
make_submission.py. В каталоге появится или обновитсяsubmission.csv. - Запустить генератор ещё раз и сравнить содержимое CSV. В Git-копии с исходными данными команда
git diff --exit-code -- submission.csvпроверяет совпадение с сохранённым результатом. - Запустить
python -m unittest discover -s tests -vиз активированного окружения либо соответствующим интерпретатором из блока для Windows.
Подтверждённый локальный результат
Проверки выполнены 23.09.2026 на финальном агенте и предоставленной локальной среде.
| Проверка | Результат |
|---|---|
| Один запуск, seed 42 | PASS |
| Чистый прирост ARPU, seed 42 | 5 063 252 условных единиц |
| Проведённые пилоты / финальные кампании | 20 / 6 |
| Все контакты, включая пилоты | 15 000 |
| Расход бюджета, включая пилоты | 99 932 из 100 000 |
| Медиана чистого результата, seeds 0–9 | 4 808 448 |
| Минимум / максимум за десять запусков | 4 435 121 / 5 051 876 |
| Положительные результаты | 10 из 10 |
| Набор автоматических тестов | 17 успешно пройденных тестов |
submission.csv воспроизводится из финального кода. Локальный балл не предсказывает результат судейства: эффекты в скрытой среде будут другими. Разные seed локального оценщика меняют пилотные выборки и шум, но не создают новые скрытые эффекты.
Данные и их замена
Пути указаны относительно каталога кейса.
| Файл или источник | Содержание и использование |
|---|---|
env.customer_profile | Актуальная аудитория; в локальном запуске загружается из customer_profile.csv |
env.tariffs, env.channels | Тарифы и параметры каналов; локальный каталог загружается из data/dict_tariff.csv |
env.run_pilot(...) | Наблюдения на текущей аудитории для уточнения решений |
data/change_tariff.csv | История переходов для начальных оценок; единственный файл данных, который агент читает напрямую |
data/traffic.csv, data/arpu_monthly.csv | Дополнительная история для исследований; финальный агент её не читает |
tariff_dictionary.csv, feature_dictionary.csv | Справочники тарифов и признаков |
В исходном профиле 23 441 абонент, в каталоге — 21 тариф. Текущая аудитория и тарифы поступают через env, поэтому агент не подменяет судейские данные локальными CSV.
Для других локальных данных нужно сохранить предусмотренные организатором имена файлов и схемы колонок. Перенос в папку input/ не требуется: официальный оценщик ожидает customer_profile.csv и файлы в data/. История разрешается относительно agent.py; при её отсутствии или ошибке чтения агент переходит к нейтральным гипотезам. Для воспроизведения сохранённого submission.csv нужна исходная история.
Подробный перечень входных файлов отделён от производных таблиц и искусственных тестовых эффектов, которые хранятся в experiments/.
Ограничения
Лимиты кейса действуют одновременно:
| Ресурс | Лимит |
|---|---|
| Финальные кампании | От 1 до 10 |
| Абоненты в одной финальной кампании | Не более 5 000 |
| Все контакты, включая пилоты | Не более 15 000 |
| Общий бюджет, включая пилоты | Не более 100 000 условных единиц |
| Пилоты | Не более 20, по 10–200 абонентов |
| Время работы по требованиям кейса | Не более 10 минут |
Качество решения ограничено историческими гипотезами и числом пилотов. На каждую группу остаётся до трёх целевых тарифов: другие варианты могут быть пропущены. Частота выбора тарифа в истории служит лишь приближением конверсии на новой аудитории. Жадный планировщик не гарантирует глобально оптимальное распределение ресурсов. Без идентификаторов участников пилотов через публичный интерфейс нельзя полностью исключить пересечения пилотных и финальных контактов.
Следующий пилот выбирается по текущим наблюдениям, но размер обычно остаётся равным 200 при достаточной аудитории и ресурсах. Внешний маркетинговый сервис не подключён: агент возвращает план для среды кейса и не рассылает реальные сообщения клиентам.
Развёртывание и состав сдачи
Проект запускается локально как Python-решение. Веб-интерфейс, серверное развёртывание и публичная онлайн-версия отсутствуют; для этого кейса они не требуются.
Для сдачи сохраните вместе agent.py, candidate_research.py, campaign_planner.py, requirements.txt и сгенерированный submission.csv. Историю data/change_tariff.csv и организаторское окружение нужно сохранить в предусмотренной структуре для воспроизведения локального результата. Исследовательские альтернативы не являются финальной версией агента.
Документация и исследования
- Техническое задание участника — интерфейс, ограничения и правила оценки.
- Требования организаторов к README.
- Каталог финального решения.
- Архив исследований и команды воспроизведения.
- Результаты улучшения стратегии.
- Исследование интеграции исторической модели — испытанные варианты и причины сохранения текущего агента.
Авторы коммитов
История коммитов
- 2026-09-23 17:45docs: prepare Russian submission README and organize research artifactsDDBull
- 2026-09-23 17:38last 2Yernaz Satybaldiyev
- 2026-09-23 17:28lastYernaz Satybaldiyev
- 2026-09-23 17:24research: compare teammate agent and evaluate historical model integrationsDDBull
- 2026-09-23 17:21feat: add configurable timeout for LLM selection and update testsMargulan
- 2026-09-23 17:02feat: implement optional LLM selection for pilot hypotheses and update agent logicMargulan
- 2026-09-23 16:55adaptive pilotsYernaz Satybaldiyev
- 2026-09-23 16:45feat: improve campaign strategy with validated pilot selectionDauren Dyussupov
Все коммиты (20)
- 2026-09-23 16:43candidates generationYernaz Satybaldiyev
- 2026-09-23 16:34added offline priorYernaz Satybaldiyev
- 2026-09-23 16:07increased pilots to 20Yernaz Satybaldiyev
- 2026-09-23 16:04feat: prepare deduplicated tariff history summariesDDBull
- 2026-09-23 15:27feat: implement Beeline tariff campaign agent with resource-aware planning and evaluationMargulan
- 2026-09-23 15:13chore: align repository with Beeline Python challengeDDBull
- 2026-09-23 15:03docs: update README and kickoff sheet with Beeline case details; add team tasks documentMargulan
- 2026-09-23 14:54Include Beeline challenge datasetsYernaz Satybaldiyev
- 2026-09-23 14:52Add Beeline tariff campaign challenge materialsYernaz Satybaldiyev
- 2026-09-23 14:49docs: enhance Beeline case requirements with pilot design insights and decision-making detailsMargulan
- 2026-09-23 14:44docs: update kickoff sheet and add detailed requirements for Beeline tariff marketing campaignsMargulan
- 2026-09-23 14:34chore: establish HackAlem project baselineDDBull
Структура репозитория (168 файлов)
.agents/skills/analysis-planning/SKILL.md .agents/skills/analysis-planning/assets/analysis_plan_template.md .agents/skills/analysis-planning/assets/kickoff_doc_template.md .agents/skills/analysis-planning/references/effort_estimation.md .agents/skills/analysis-planning/references/risks_dependencies.md .agents/skills/analysis-planning/references/scoping_framework.md .agents/skills/business-metrics-calculator/SKILL.md .agents/skills/business-metrics-calculator/assets/metrics_report_template.md .agents/skills/business-metrics-calculator/references/metric_definitions.md .agents/skills/business-metrics-calculator/scripts/saas_metrics.py .agents/skills/data-quality-audit/SKILL.md .agents/skills/data-quality-audit/assets/audit_report_template.html .agents/skills/data-quality-audit/assets/quality_rubric.md .agents/skills/data-quality-audit/references/business_rule_patterns.md .agents/skills/data-quality-audit/references/quality_dimensions.md .agents/skills/data-quality-audit/scripts/duplicate_finder.py .agents/skills/data-quality-audit/scripts/freshness_check.py .agents/skills/data-quality-audit/scripts/null_counter.py .agents/skills/data-quality-audit/scripts/referential_integrity.py .agents/skills/data-quality-audit/scripts/value_range_validator.py .agents/skills/executive-summary-generator/SKILL.md .agents/skills/executive-summary-generator/assets/executive_summary_template.md .agents/skills/executive-summary-generator/references/executive_communication.md .agents/skills/executive-summary-generator/references/pyramid_principle_guide.md .agents/skills/insight-synthesis/SKILL.md .agents/skills/insight-synthesis/assets/insight_brief_template.md .agents/skills/insight-synthesis/references/insight_framework.md .agents/skills/insight-synthesis/references/prioritization_guide.md .agents/skills/programmatic-eda/SKILL.md .agents/skills/programmatic-eda/assets/eda_report_template.md .agents/skills/programmatic-eda/assets/findings_summary.md .agents/skills/programmatic-eda/references/eda_checklist.md .agents/skills/programmatic-eda/references/pandas_polars_recipes.md .agents/skills/programmatic-eda/references/quality_thresholds.md .agents/skills/programmatic-eda/scripts/correlation_explorer.py .agents/skills/programmatic-eda/scripts/data_overview.py .agents/skills/programmatic-eda/scripts/distribution_summary.py .agents/skills/programmatic-eda/scripts/null_profiler.py .agents/skills/programmatic-eda/scripts/outlier_detector.py .agents/skills/root-cause-investigation/SKILL.md .agents/skills/root-cause-investigation/assets/rca_report_template.md .agents/skills/root-cause-investigation/references/hypothesis_testing_guide.md .agents/skills/root-cause-investigation/references/rca_framework.md .agents/skills/root-cause-investigation/scripts/drilldown_analyzer.py .agents/skills/start-hackathon/SKILL.md .agents/skills/start-hackathon/agents/openai.yaml .agents/skills/visualization-builder/SKILL.md .agents/skills/visualization-builder/assets/viz_spec_template.md .agents/skills/visualization-builder/references/chart_selection_guide.md .agents/skills/visualization-builder/references/visual_design_principles.md .agents/skills/visualization-builder/scripts/chart_builder.py .github/workflows/python.yml .gitignore AGENTS.md README.md challenges/beeline-tariff-campaigns/PARTICIPANT_GUIDE.md challenges/beeline-tariff-campaigns/PARTICIPANT_GUIDE.pdf challenges/beeline-tariff-campaigns/README.md challenges/beeline-tariff-campaigns/agent.py challenges/beeline-tariff-campaigns/agent_template.py challenges/beeline-tariff-campaigns/campaign_planner.py challenges/beeline-tariff-campaigns/candidate_research.py challenges/beeline-tariff-campaigns/customer_profile.csv challenges/beeline-tariff-campaigns/data/README.md challenges/beeline-tariff-campaigns/data/arpu_monthly.csv challenges/beeline-tariff-campaigns/data/change_tariff.csv challenges/beeline-tariff-campaigns/data/dict_tariff.csv challenges/beeline-tariff-campaigns/data/traffic.csv challenges/beeline-tariff-campaigns/environment.py challenges/beeline-tariff-campaigns/experiments/README.md challenges/beeline-tariff-campaigns/experiments/baseline_check.json challenges/beeline-tariff-campaigns/experiments/benchmark_agents.py challenges/beeline-tariff-campaigns/experiments/borrow_prior.py challenges/beeline-tariff-campaigns/experiments/compare_main.py challenges/beeline-tariff-campaigns/experiments/final_comparison_30_59.json challenges/beeline-tariff-campaigns/experiments/integrate_prior.py challenges/beeline-tariff-campaigns/experiments/integrated_pilots_10_29.json challenges/beeline-tariff-campaigns/experiments/integration_baseline/README.md challenges/beeline-tariff-campaigns/experiments/integration_baseline/agent.py challenges/beeline-tariff-campaigns/experiments/integration_baseline/campaign_planner.py challenges/beeline-tariff-campaigns/experiments/integration_baseline/candidate_research.py challenges/beeline-tariff-campaigns/experiments/integration_conclusion.json challenges/beeline-tariff-campaigns/experiments/integration_development.json challenges/beeline-tariff-campaigns/experiments/integration_development_round2.json challenges/beeline-tariff-campaigns/experiments/integration_effect_worlds.csv challenges/beeline-tariff-campaigns/experiments/integration_effect_worlds_round2.csv challenges/beeline-tariff-campaigns/experiments/integration_rank_diagnostics.json challenges/beeline-tariff-campaigns/experiments/integration_rank_snapshot/README.md challenges/beeline-tariff-campaigns/experiments/integration_rank_snapshot/agent.py challenges/beeline-tariff-campaigns/experiments/integration_rank_snapshot/campaign_planner.py challenges/beeline-tariff-campaigns/experiments/integration_rank_snapshot/candidate_research.py challenges/beeline-tariff-campaigns/experiments/integration_rank_snapshot/transition_prior.py challenges/beeline-tariff-campaigns/experiments/integration_rejected/README.md challenges/beeline-tariff-campaigns/experiments/integration_rejected/agent.py challenges/beeline-tariff-campaigns/experiments/integration_rejected/campaign_planner.py challenges/beeline-tariff-campaigns/experiments/integration_rejected/candidate_research.py challenges/beeline-tariff-campaigns/experiments/integration_rejected/transition_prior.py challenges/beeline-tariff-campaigns/experiments/integration_selection.json challenges/beeline-tariff-campaigns/experiments/integration_selection_round2.json challenges/beeline-tariff-campaigns/experiments/integration_validation.json challenges/beeline-tariff-campaigns/experiments/integration_validation_round2.json challenges/beeline-tariff-campaigns/experiments/main_ablation_results.json challenges/beeline-tariff-campaigns/experiments/main_ablations.py challenges/beeline-tariff-campaigns/experiments/main_comparison.md challenges/beeline-tariff-campaigns/experiments/main_comparison_diagnostics.json challenges/beeline-tariff-campaigns/experiments/main_comparison_plan.md challenges/beeline-tariff-campaigns/experiments/main_comparison_results.json challenges/beeline-tariff-campaigns/experiments/main_snapshot/README.md challenges/beeline-tariff-campaigns/experiments/main_snapshot/agent.py challenges/beeline-tariff-campaigns/experiments/main_snapshot/campaign_planner.py challenges/beeline-tariff-campaigns/experiments/main_snapshot/candidate_research.py challenges/beeline-tariff-campaigns/experiments/main_snapshot/transition_prior.py challenges/beeline-tariff-campaigns/experiments/pilot_compare.py challenges/beeline-tariff-campaigns/experiments/pilot_findings.md challenges/beeline-tariff-campaigns/experiments/pilot_results_0_10_baseline_fixed100_adaptive_sms_adaptive_channels.json challenges/beeline-tariff-campaigns/experiments/pilot_results_0_10_confirm_uniform.json challenges/beeline-tariff-campaigns/experiments/pilot_results_0_10_confirm_winners.json challenges/beeline-tariff-campaigns/experiments/pilot_results_10_30_baseline_confirm_winners.json challenges/beeline-tariff-campaigns/experiments/pilot_snapshot/agent.py challenges/beeline-tariff-campaigns/experiments/pilot_snapshot/campaign_planner.py challenges/beeline-tariff-campaigns/experiments/pilot_snapshot/candidate_research.py challenges/beeline-tariff-campaigns/experiments/planner_channel_pairs.py challenges/beeline-tariff-campaigns/experiments/planner_compare.py challenges/beeline-tariff-campaigns/experiments/planner_comparison_0_10.json challenges/beeline-tariff-campaigns/experiments/planner_comparison_consistent_0_10.json challenges/beeline-tariff-campaigns/experiments/planner_comparison_consistent_nosearch_0_10.json challenges/beeline-tariff-campaigns/experiments/planner_comparison_consistent_nosearch_10_30.json challenges/beeline-tariff-campaigns/experiments/planner_joint.py challenges/beeline-tariff-campaigns/experiments/planner_joint_0_30.json challenges/beeline-tariff-campaigns/experiments/planner_joint_pairs_0_10.json challenges/beeline-tariff-campaigns/experiments/planner_shadow.py challenges/beeline-tariff-campaigns/experiments/planner_shadow_base.py challenges/beeline-tariff-campaigns/experiments/prepare_history.py challenges/beeline-tariff-campaigns/experiments/prepared_history/README.md challenges/beeline-tariff-campaigns/experiments/prepared_history/arpu_monthly_median_by_id_month.csv challenges/beeline-tariff-campaigns/experiments/prepared_history/change_tariff_exact_deduplicated.csv challenges/beeline-tariff-campaigns/experiments/prepared_history/transition_summary.csv challenges/beeline-tariff-campaigns/experiments/prior_integration_plan.md challenges/beeline-tariff-campaigns/experiments/robustness_audit.md challenges/beeline-tariff-campaigns/experiments/robustness_public_contract.py challenges/beeline-tariff-campaigns/experiments/robustness_public_contract_results.json challenges/beeline-tariff-campaigns/experiments/robustness_shift.py challenges/beeline-tariff-campaigns/experiments/robustness_shift_baseline.json challenges/beeline-tariff-campaigns/experiments/robustness_shift_models.csv challenges/beeline-tariff-campaigns/experiments/robustness_shift_results.json challenges/beeline-tariff-campaigns/experiments/transition_prior.py challenges/beeline-tariff-campaigns/feature_dictionary.csv challenges/beeline-tariff-campaigns/local_eval.py challenges/beeline-tariff-campaigns/make_submission.py challenges/beeline-tariff-campaigns/mock_environment.py challenges/beeline-tariff-campaigns/requirements.txt challenges/beeline-tariff-campaigns/scoring_core.py challenges/beeline-tariff-campaigns/submission.csv challenges/beeline-tariff-campaigns/tariff_dictionary.csv challenges/beeline-tariff-campaigns/tests/test_agent_contract.py challenges/beeline-tariff-campaigns/tests/test_agent_resilience.py challenges/beeline-tariff-campaigns/tests/test_historical_candidates.py challenges/beeline-tariff-campaigns/tests/test_transition_prior.py docs/00-kickoff.md docs/agent-improvement-plan.md docs/agent-improvement-results.md docs/beeline-case-requirements.md docs/data-profile.md docs/demo-script.md docs/historical-model-integration.md docs/readme_prompt_provided_organizers.md docs/team-tasks-beeline.md docs/updated_rules.md
Ветки (3)
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.