Anthropic опубликовал подробный разбор внутренней системы self-service аналитики на базе Claude. По данным компании, через неё проходит около 95% внутренних аналитических запросов, а средняя точность на внутренних тестах составляет примерно 95%. Чтобы получить такой результат, Anthropic пришлось серьёзно переработать данные, документацию, семантический слой и сам процесс анализа.
Одна из первых находок: качество аналитического агента чаще ломается не на SQL. Если Claude правильно понял вопрос и нашёл нужные данные, написать запрос обычно несложно. Основные ошибки возникают раньше. Anthropic выделяет три класса проблем: неоднозначность между бизнес-понятием и конкретной сущностью в данных, устаревшие определения и источники, а также ошибки при поиске нужной информации.
Например, вопрос «сколько у нас активных пользователей?» требует не только COUNT DISTINCT. Нужно определить, что считается активностью, за какой период она измеряется, какие аккаунты исключаются, какой источник считается основным и не менялось ли определение метрики. В большой компании такие детали обычно распределены между документацией, кодом, старыми запросами и знаниями команды.
Поэтому Anthropic начал с сокращения числа конкурирующих источников данных. Компания рекомендует выделять основные наборы данных и явно фиксировать для них уровень детализации, определения метрик, происхождение данных, владельцев и правила использования. Если для одной бизнес-сущности существует много почти одинаковых витрин, один только поиск по ним проблему не решает.
Следующий слой — семантический. Если вопрос можно выразить через уже определённую метрику, агент должен использовать её в первую очередь и переходить к сырым таблицам только при необходимости. Anthropic попробовал автоматически построить такой слой с помощью LLM на основе таблиц и истории запросов. Результат оказался хуже ручной разметки: модель генерировала правдоподобные определения, но сохраняла существующие неоднозначности. Claude можно использовать для подготовки документации, но ответственность за определения ключевых бизнес-метрик Anthropic оставляет людям.
Отдельный эксперимент был связан с историей SQL-запросов. Claude получил доступ к тысячам запросов из панелей, аналитических ноутбуков и конвейеров преобразования данных. Точность выросла меньше чем на один процентный пункт. При этом примерно в 80% ошибочных случаев необходимая информация действительно присутствовала в доступном корпусе. Проблемой оказался не недостаток контекста, а выбор правильного контекста.
После этого Anthropic перешёл к более жёстко структурированной документации. Для отдельных предметных областей создаются справочные файлы с описанием того, какие таблицы использовать, что означает одна строка, какие связи между таблицами допустимы, какие фильтры обязательны и какие ошибки здесь уже встречались.
Особое место занимают разделы с типичными ловушками — gotchas. В них фиксируются детали, которые редко видны из схемы данных, но напрямую влияют на результат анализа. Например, когда похожую таблицу использовать нельзя, какие идентификаторы дают разные результаты, какие данные обновляются с задержкой или какие домены нужно исключать из выборки.
Для навигации по этой информации Anthropic использует skills. Один skill помогает Claude найти правильный источник: сначала проверить семантический слой, а затем, если нужного определения там нет, обратиться к ограниченному набору справочных файлов по нужной области. Другой задаёт порядок анализа: уточнить вопрос, выбрать источник, провести расчёт и проверить результат. В него же входят типовые аналитические процедуры, включая анализ удержания, воронок и разложение изменений показателей на составляющие.
продолжение в комментариях...
Одна из первых находок: качество аналитического агента чаще ломается не на SQL. Если Claude правильно понял вопрос и нашёл нужные данные, написать запрос обычно несложно. Основные ошибки возникают раньше. Anthropic выделяет три класса проблем: неоднозначность между бизнес-понятием и конкретной сущностью в данных, устаревшие определения и источники, а также ошибки при поиске нужной информации.
Например, вопрос «сколько у нас активных пользователей?» требует не только COUNT DISTINCT. Нужно определить, что считается активностью, за какой период она измеряется, какие аккаунты исключаются, какой источник считается основным и не менялось ли определение метрики. В большой компании такие детали обычно распределены между документацией, кодом, старыми запросами и знаниями команды.
Поэтому Anthropic начал с сокращения числа конкурирующих источников данных. Компания рекомендует выделять основные наборы данных и явно фиксировать для них уровень детализации, определения метрик, происхождение данных, владельцев и правила использования. Если для одной бизнес-сущности существует много почти одинаковых витрин, один только поиск по ним проблему не решает.
Следующий слой — семантический. Если вопрос можно выразить через уже определённую метрику, агент должен использовать её в первую очередь и переходить к сырым таблицам только при необходимости. Anthropic попробовал автоматически построить такой слой с помощью LLM на основе таблиц и истории запросов. Результат оказался хуже ручной разметки: модель генерировала правдоподобные определения, но сохраняла существующие неоднозначности. Claude можно использовать для подготовки документации, но ответственность за определения ключевых бизнес-метрик Anthropic оставляет людям.
Отдельный эксперимент был связан с историей SQL-запросов. Claude получил доступ к тысячам запросов из панелей, аналитических ноутбуков и конвейеров преобразования данных. Точность выросла меньше чем на один процентный пункт. При этом примерно в 80% ошибочных случаев необходимая информация действительно присутствовала в доступном корпусе. Проблемой оказался не недостаток контекста, а выбор правильного контекста.
После этого Anthropic перешёл к более жёстко структурированной документации. Для отдельных предметных областей создаются справочные файлы с описанием того, какие таблицы использовать, что означает одна строка, какие связи между таблицами допустимы, какие фильтры обязательны и какие ошибки здесь уже встречались.
Особое место занимают разделы с типичными ловушками — gotchas. В них фиксируются детали, которые редко видны из схемы данных, но напрямую влияют на результат анализа. Например, когда похожую таблицу использовать нельзя, какие идентификаторы дают разные результаты, какие данные обновляются с задержкой или какие домены нужно исключать из выборки.
Для навигации по этой информации Anthropic использует skills. Один skill помогает Claude найти правильный источник: сначала проверить семантический слой, а затем, если нужного определения там нет, обратиться к ограниченному набору справочных файлов по нужной области. Другой задаёт порядок анализа: уточнить вопрос, выбрать источник, провести расчёт и проверить результат. В него же входят типовые аналитические процедуры, включая анализ удержания, воронок и разложение изменений показателей на составляющие.
продолжение в комментариях...