Мультиагентная система на LangChain для поиска мошеннических транзакций в датасете The Truman Show - train.
- загружает
transactions.csv,users.json,locations.json,sms.json,mails.json; - строит поведенческие признаки по каждому пользователю;
- выделяет подозрительные транзакции эвристиками;
- при наличии ключа OpenRouter прогоняет кандидатов через 3 агентов:
Signals Agentанализирует фишинг и давление через сообщения;Network Agentанализирует новизну получателя и платежный паттерн;Decision Agentпринимает финальное решение;
- при наличии Langfuse пишет трейсы вызовов.
- Установить зависимости:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt- Подготовить
.env:
cp .env.example .env- Запустить и сохранить сабмит в ASCII-файл:
python main.py --output-file submission.txtВ submission.txt будет построчный список transaction_id, как требует задача.
Полный отчет по кандидатам:
python main.py --reportЗапуск на конкретном датасете:
python main.py --dataset-dir "Brave New World - train" --output-file brave_submission.txtOPENROUTER_API_KEY— ключ OpenRouter.OPENROUTER_MODEL— модель через OpenRouter, по умолчаниюopenai/gpt-4o-mini.LANGFUSE_PUBLIC_KEYLANGFUSE_SECRET_KEYLANGFUSE_HOST— по умолчаниюhttps://challenges.reply.com/langfuseTEAM_NAME— используется в trace session id.
- Без
OPENROUTER_API_KEY: детерминированный baseline по эвристикам. - С
OPENROUTER_API_KEY: baseline + LangChain multi-agent reasoning.
Так как в train-наборе нет явных меток fraud/non-fraud, текущая система строит shortlist на основе аномалий, фишинговых сигналов и отклонений от обычного поведения. Это хороший каркас для challenge, но пороги и промпты стоит дотюнить после проверки на валидации.