Добавить в корзинуПозвонить
Найти в Дзене
LLM's Hell

Hack'n'Vibe — мой агент для BitGN PAC1

В апреле на слепом прогоне (pac1-prod, ~104 задачи) я занял 3 место в Accuracy Leaderboard и 5 место в Ultimate Leaderboard. Соревнование проводил Ринат Абдуллин (LLM под капотом) на своём бенчмарке BitGN. Делюсь кодом и тем, что под капотом. Это не классический чат-бот агент с собственным LLM-циклом, а тонкий транспорт + Claude Code в качестве мозга. Никаких ключей OpenAI/Anthropic в самом коде — Claude Code CLI и есть та LLM-петля, которая ведёт диалог и принимает решения. Что внутри: ⚙️ runner.py — голый Python без LLM. Только RPC к harness и PCM runtime: recon, exec, submit, learn. У LLM-ки нет одного универсального execute_code — вместо этого ~11 VM-нативных операций (tree, find, search, read, write, delete, mkdir, move, context, answer), оформленных как JSON-команды. Каждая мапится 1:1 на gRPC-вызов. Никакого Python-sandbox внутри VM, никакого посредника. 📋 RULES.md — паттерн-словарь, накопленный итеративно через десятки прогонов. 9 stop-rules + 13 паттернов задач (CRM ops,

Hack'n'Vibe — мой агент для BitGN PAC1

В апреле на слепом прогоне (pac1-prod, ~104 задачи) я занял 3 место в Accuracy Leaderboard и 5 место в Ultimate Leaderboard. Соревнование проводил Ринат Абдуллин (LLM под капотом) на своём бенчмарке BitGN. Делюсь кодом и тем, что под капотом.

Это не классический чат-бот агент с собственным LLM-циклом, а тонкий транспорт + Claude Code в качестве мозга. Никаких ключей OpenAI/Anthropic в самом коде — Claude Code CLI и есть та LLM-петля, которая ведёт диалог и принимает решения.

Что внутри:

⚙️ runner.py — голый Python без LLM. Только RPC к harness и PCM runtime: recon, exec, submit, learn. У LLM-ки нет одного универсального execute_code — вместо этого ~11 VM-нативных операций (tree, find, search, read, write, delete, mkdir, move, context, answer), оформленных как JSON-команды. Каждая мапится 1:1 на gRPC-вызов. Никакого Python-sandbox внутри VM, никакого посредника.

📋 RULES.md — паттерн-словарь, накопленный итеративно через десятки прогонов. 9 stop-rules + 13 паттернов задач (CRM ops, knowledge repo, prompt injection, date math, lookups). Подгружается перед каждой задачей. Когда агент ошибается — он сам зовёт learn "...", дописывает правило, и в следующий trial оно уже работает.

🎯 Skill-оркестратор — /solve-pac1 для Claude Code. Раздаёт trial_ids батчами по 10 субагентам, запускает их параллельно в одном сообщении. Все ~104 задачи решаются одновременно, каждый субагент получает свежий RULES.md. На blind prod retry бесполезен — ставка на один точный параллельный прогон.

🧠 Цикл — простой и плоский: recon (tree глубины 3 + read всех найденных файлов) → Claude видит весь vault разом → доп. exec если нужны точные числа (recon truncate-ает большие файлы) → submit с answer + refs + outcome.

Слабые места (классы задач, на которых ломался):

— Даты от context.time (агент брал дату из файла, а не из контекста trial)

— Counting через recon (truncate-ет файлы → 1 вместо 810)

— Manager lookup без сканирования всех acct_*.json

— Конфликт инструкций в двух документах — Claude склонен «выбрать», а правильно было CLARIFICATION

Все четыре грабли теперь явно прописаны в стоп-листе RULES.md.

Ключевые принципы, чтобы повторить:

— Простой набор инструментов вместо одного execute_code

— Растущий чеклист правил, переиспользуемый между прогонами

— Параллелизм через субагентов

— Чистая разводка: Python только транспорт, LLM — все решения

Спасибо Ринату за крутой бенчмарк — задачи не банальные, проверяют именно то, что ломает агентов в проде: prompt injection, скрытые конфликты в docs, грязные данные с рандомизацией.

Исходники на GitHub

@hack_n_vibe — про AI-кодинг и доставку продукта в прод