Код Клода переписывает SQL-парсер PostHog с ускорением в 70 раз – как работают тестирование на основе свойств и параллельные агенты

Инженер PostHog Робби Кумбер использовал несколько длительных параллельных сессий Claude Code для переписывания своего SQL-парсера, добившись ускорения примерно в 70 раз по сравнению с существующим ANTLR-парсером на C++. Новый парсер содержит 16 тысяч строк вручную написанного кода на Rust, а также 5 тысяч строк инструментов и тестов.
Зачем переписывать?
PostHog транслирует пользовательский SQL в сырой ClickHouse SQL для логических представлений данных и оптимизаций. Парсер преобразует SQL в AST для последующего контроля доступа и оптимизации. Старый ANTLR-парсер использовал универсальный интерпретатор обхода графа (ATN — NFA со стеком) с произвольным динамическим просмотром вперед, что было медленно, несмотря на реализацию на C++. Собственные рекурсивные парсеры с нисходящим разбором по умолчанию быстрее.
Подход: параллельные сессии агентов + оракул TDD
- Тестировались два подхода параллельно: один, ориентированный на производительность (рекурсивный спуск с синтаксическим анализом Пратта), другой — на корректность (имитация поведения ANTLR с явным кодом). Оба сработали одинаково хорошо.
- Существующий C++-парсер использовался как оракул для выявления расхождений — находились SQL-запросы, где парсеры различались, новый парсер исправлялся, и процесс повторялся.
- Property-based тестирование генерировало бесчисленные вариации SQL, включая тест на
SELECT SELECT FROM FROM WHERE WHERE AND AND(допустимый SQL). - Новый парсер согласуется с оракулом для всех реалистичных запросов; различия возникают только для патологических запросов.
Результаты
Ускорение в 70 раз при парсинге. Итоговый парсер использует рекурсивный спуск с просмотром вперед и возвратами только там, где это необходимо. Кумбер отмечает, что без ИИ написание и поддержка такого собственного парсера заняли бы месяцы и, вероятно, не оправдали бы усилий. С Claude Code это стало возможным.
Ключевой вывод
Этот пример показывает, что параллельные сессии ИИ-кодирования в сочетании с property-based тестированием и оракулом для разработки через тестирование могут радикально улучшить производительность критического кода. Метод — использование агентов для переписывания ключевой инфраструктуры с опорой на автоматическое обнаружение расхождений — применим и для других проектов.
📖 Источник: HN AI Agents
👀 Смотрите также

Skales Desktop AI Agent, созданный с использованием Claude, с маскотом в стиле Клиппи
Skales — это настольный ИИ-агент, работающий локально на Windows и macOS, использующий Claude через API OpenRouter/Anthropic для рассуждений и выполнения инструментов. Включает плавающий талисман Desktop Buddy со скином в виде скрепки и может выполнять команды, такие как отправка писем, управление файлами, просмотр веб-страниц и управление календарями.

Anchormd: Инструмент для управления контекстом между сессиями Claude AI
Anchormd — это инструмент с открытым исходным кодом, который решает проблему потери контекста в сессиях Claude AI, индексируя тщательно составленные markdown-планы в поисковый граф знаний. Он позволяет агентам загружать обзоры проектов в начале сессии и запрашивать конкретные детали по мере необходимости.

ClawBridge – Безопасно открывайте свои сущности Home Assistant для OpenClaw
ClawBridge предлагает безупречный способ интеграции сущностей Home Assistant с OpenClaw, улучшая автоматизацию и обеспечивая безопасность. Узнайте о его возможностях и преимуществах.

Sx: Пакетный менеджер с открытым исходным кодом для навыков ИИ, MCP и команд
Sx — это частный менеджер пакетов в стиле npm для AI-активов — навыков, конфигураций MCP, команд, хуков и агентов, — который позволяет командам делиться, версионировать и ограничивать область видимости AI-конфигураций в любом AI-клиенте (Claude Code, Cursor, Copilot, Gemini).