Помогите своему ИИ лучше работать с данными с помощью навыков агентов dbt
Создание и развитие лучших практик силами сообщества — пожалуй, главная движущая сила роста dbt и аналитической инженерии: рабочие процессы и подходы, которые можно перенимать, позволяют каждому создавать и распространять знания внутри организации. На заре развития dbt файл dbt_style_guide.md от dbt Labs Fishtown Analytics содержал основополагающие рекомендации для всех, кто впервые знакомился с подходом dbt.
Сегодня мы выпустили набор навыков агентов dbt, чтобы ИИ-агенты (такие как Claude Code, Codex от OpenAI, Cursor, Factory или Kilo Code) могли следовать тем же лучшим практикам dbt, которых вы ожидаете от любого участника, работающего с вашей кодовой базой. Это важно, потому что, расширяя базовые возможности агентов, навыки позволяют превратить универсальных агентов для программирования в высококвалифицированных агентов для работы с данными.
Навыки агентов dbt позволяют превратить универсальных агентов для программирования в высококвалифицированных агентов для работы с даннымиЭти навыки объединяют обширные знания, накопленные сообществом dbt и командой Developer Experience в dbt Labs на основе практического опыта. За ними стоят десятки часов целенаправленной работы экспертов dbt, подкреплённые годами использования dbt.
Экосистема быстро развивается — как для авторов навыков, так и для агентов, которые ими пользуются. Мы считаем, что эти навыки очень полезны уже сегодня, и что в ближайшие недели и месяцы они станут ещё полезнее по мере того, как:
- навыки будут глубже интегрироваться в рабочие процессы агентов, в частности агенты будут чаще выбирать подходящие навыки в нужный момент
- более широкое использование сообществом и обратная связь будут расширять охват и повышать глубину доступных навыков
Что входит в набор
Наш репозиторий навыков агентов содержит навыки для следующих задач:
- Аналитическая инженерия: создание и изменение моделей dbt, написание тестов, изучение источников данных
- Семантический слой: создание метрик, измерений и семантических моделей с помощью MetricFlow
- Эксплуатация платформы: устранение сбоев заданий, настройка сервера dbt MCP
- Миграция: перенос проектов с dbt Core на движок dbt Fusion
Вы заметите, что эти навыки различаются по масштабу и сложности задач. Основной навык использования dbt для аналитической инженерии содержит информацию обо всём рабочем цикле аналитической инженерии. Другие навыки более узконаправленны и зависят от конкретной задачи.
Мы планируем продолжать совершенствовать эти навыки и со временем добавлять новые. Если вам нужен полезный навык, которого пока нет в наборе, создайте issue в репозитории.
Быстрый старт
1. Добавьте навыки своему агенту
В Claude Code выполните следующие команды (по одной):
/plugin marketplace add dbt-labs/dbt-agent-skills
/plugin install dbt@dbt-agent-marketplace
Для других агентов используйте эту команду (требуется установленный Node):
npx skills add dbt-labs/dbt-agent-skills --global
или просто вручную скопируйте нужные файлы в подходящий каталог для вашего агента.
2. Начните новый сеанс работы с агентом
Перезапустите терминал, чтобы новые навыки были обнаружены.
3. Попробуйте сами
Попробуйте дать агенту одну из следующих инструкций:
- Спланируй и создай модели для моих новых исходных таблиц HubSpot
- Выясни, почему моя команда
dbt buildтолько что завершилась с ошибкой - Напиши модульные тесты на основе требований из этого GitHub issue, а затем создай новую модель, которая их проходит
- Обнови
fct_transactions, чтобы она стала семантической моделью - Есть ли разница в показателе отказов между бесплатными и платными почтовыми доменами?
Мы сосредоточились на задачах, которые либо часто встречаются (ежедневное создание моделей, отладка), либо сложны (настройка семантического слоя, модульное тестирование граничных случаев). Каждый навык содержит концентрированные полезные знания и прошёл проверку в реальных условиях и на задачах ADE-bench.
Если вы просто хотите начать пользоваться навыками уже сегодня, на этом можно остановиться. Но нам ещё многое хочется рассказать о том, что такое навыки, почему они полезны и как, по нашим ожиданиям, они впишутся в рабочие процессы dbt сегодня и в будущем.
При использовании агентов для программирования действуют обычные меры предосторожности. Позаботьтесь о надлежащих мерах защиты, особенно при работе с производственными или конфиденциальными данными.
Так что же такое навык?
Навыки можно представить как наборы промптов (и скриптов), которые LLM могут динамически объединять, чтобы получать контекст или специальные знания для конкретной задачи.
В некотором смысле навык очень прост: это markdown-файл с заранее заданной структурой. Старый добрый dbt_style_guide.md отлично вписался бы в этот формат! В нём есть набор инструкций в виде маркированного списка, примеры кода и ссылки на другие ресурсы там, где они нужны; новый формат Skills устроен точно так же. Anthropic представила Skills в октябре 2025 года, и теперь это открытый стандарт, который поддерживают более 30 агентов.
Возможно, вместо вопроса «что?» полезнее задать вопрос «зачем?». Вот что говорится на сайте Agent Skills:
Агенты становятся всё более способными, но им часто не хватает контекста, необходимого для надёжного выполнения реальной работы. Навыки решают эту проблему, предоставляя агентам доступ к знаниям о процедурах и контексту, специфичному для компании, команды и пользователя, которые можно загружать по мере необходимости.
Вот пример навыка от Anthropic:
Пример файла SKILL.md для работы с PDF, который также содержит ссылки на более сложные рабочие процессы, загружаемые по мере необходимостиКак навыки взаимодействуют с MCP?
Ещё один частый вопрос: чем навыки отличаются от серверов MCP и нужны ли оба инструмента.
- MCP предоставляет доступ к инструментам (особенно к удалённым инструментам, требующим аутентификации)
- Навыки предоставляют контекст и знания об использовании этих инструментов
Навыки агентов dbt и сервер dbt MCP дополняют друг друга, но для получения пользы необязательно использовать их вместе.
Рассмотрим пример с PDF. Для работы с PDF-файлами не нужен сервер MCP, поскольку библиотеку для редактирования можно установить локально. Но вам нужно, чтобы эта библиотека использовалась единообразно, а не чтобы LLM каждый раз изобретала подход с нуля.
Тогда почему в dbt MCP также есть инструменты, вызывающие CLI? Для интерфейсов, которые поддерживают MCP, но не навыки, полезно встроить конкретный способ вызова команд CLI в сервер MCP. Однако этот вопрос остаётся открытым, и мы внимательно следим за развитием ситуации.
От универсала к специалисту
Подводя итог, навыки лучше всего представлять как многоуровневое учебное руководство. Если бы вы взяли очень умного универсала с улицы, что ему потребовалось бы, чтобы использовать и реализовывать рабочие процессы вашей организации?
Почему навыки важны
Навыки позволяют передавать сложные знания о процессах, неочевидные для агентов
Любой опытный специалист по dbt интуитивно понимает ряд вещей при работе с проектом dbt:
- Прежде чем вносить изменения, стоит немного осмотреться и составить представление о схеме и исходных данных. Почитать документацию, выполнить пару запросов
dbt showи тому подобное. - Если вы изменяете существующую модель, нужно посмотреть на исходные данные и понять, какие столбцы есть в вышестоящих источниках данных.
- После создания или изменения модели нужно снова посмотреть на данные, а также рассчитать сводные и агрегированные статистики, чтобы проверить, соответствуют ли структура и результаты вашим ожиданиям
Нынешнее поколение агентов для программирования обычно не делает этого по умолчанию. Навыки исправляют ситуацию, включая общие лучшие практики dbt, подобные перечисленным выше, но они также могут предоставлять очень подробные рекомендации с учётом тонкостей через дополнительные справочные материалы, например:
- Настройки, специфичные для хранилища данных, такие как предотвращение полного сканирования таблиц в BigQuery при изучении данных
- Различия, зависящие от конкретной версии или движка dbt:
dbt compileможет выявлять многие ошибки SQL при запуске в движке dbt Fusion, тогда как в dbt Core для такого же результата необходимо выполнитьdbt build.
Навыки также могут развиваться быстрее, чем выходят новые передовые модели ИИ, что упрощает обновление рекомендаций и адаптацию к изменениям в средствах разработки dbt. Недавно мы обновили процесс создания семантических моделей; добавив навык, который знает новый синтаксис, мы можем предотвратить использование агентом старого синтаксиса, хотя именно он преобладает в обучающих данных из интернета.
Навыки защищают от правдоподобных, но неверных результатов
Если попросить LLM добавить тесты к модели, она может добавить тест accepted values. Документация dbt по тестам accepted_values содержит пример, в котором допустимыми значениями столбца order_status являются ['placed', 'shipped', 'completed', 'returned']. Мы видели, как некоторые модели воспроизводят этот набор или иным образом выдумывают возможные значения столбца.
С помощью навыка вы можете указать агенту просматривать данные перед написанием тестов, чтобы результат соответствовал реальным данным в вашем хранилище.
Навыки позволяют давать агентам рекомендации, основанные на конкретных предпочтениях
Помимо общих лучших практик, в проекте dbt конкретной команды есть и ряд решений, основанных на её предпочтениях:
- Какие типы тестов данных должны быть у моих моделей?
- Когда для вопросов на естественном языке следует использовать Semantic Layer, а когда — SQL?
- Как должен быть организован проект (stg/int/mart? Medallion? Data vault?)
Наши текущие навыки лишь частично задают конкретные подходы: они содержат рекомендации о том, как и где применять тесты данных, но не предписывают, следует ли использовать рекомендованную dbt структуру проекта или руководство по стилю. В будущем мы планируем выпустить собственные руководства с конкретными рекомендациями по структуре проектов и кода и ожидаем появления развитой экосистемы навыков от сообщества, отражающих разные подходы к различным аспектам работы с данными.
Навыки позволяют предоставлять агентам непубличную информацию
Помимо использования наших навыков, стоит добавить и свои собственные.
Превратить умного универсала широкого профиля в умного универсала со специализацией в dbt всё ещё недостаточно. Ему также нужно стать специалистом по тому, как именно ваша компания работает с данными.
Очевидно, мы не можем включить эти сведения в наши навыки общих лучших практик, но здесь на помощь приходит возможность комбинировать навыки. Вы можете добавить контекст о вашей компании, ваших данных, конкретных особенностях и нюансах взаимодействия с вашими системами и рассчитывать, что он дополнит предоставленные нами знания.
Примеры вопросов, на которые вы можете ответить в своих навыках:
- Переопределены ли какие-либо стандартные макросы в проекте моей организации?
- Какова mesh-стратегия моей организации для взаимодействия между проектами или платформами?
- Какие правила партиционирования следует применять к новым моделям при конкретном сценарии использования?
Вскоре мы подробнее расскажем о возможной поддержке навыков уровня организации в проектах dbt.
Как мы проверяли навыки агентов dbt
Оценить эффективность рабочих процессов с ИИ бывает непросто. Есть много способов это сделать, и все они несовершенны, поэтому мы остановились на многоуровневой стратегии, позволяющей убедиться, что наши навыки агентов работают так, как мы ожидаем.
Тщательное создание и проверка навыков экспертами
Хотя при создании некоторых навыков мы действительно прибегали к помощи LLM, это совсем не «результаты генерации с одного запроса». Каждый навык — это часы разработки, проверки и доработки экспертами dbt мирового уровня, направленные на то, чтобы точно отразить наши знания в навыках. В работе с данными очень много неявных знаний и граничных случаев, и именно здесь навыки особенно полезны.
Практическое тестирование каждого навыка на реальных примерах
Ничто не заменит практического использования, поэтому мы проверили каждый навык, чтобы увидеть, как он работает в реальных сценариях. Это помогло нам повысить эффективность и выявить неочевидные пробелы в инструкциях.
Особенно нас порадовал результат, когда мы попросили агента дать рекомендации по повышению производительности одной из крупнейших таблиц в нашем проекте dbt — с навыком и без него. В обоих случаях рекомендации выглядели правдоподобно, но, по оценке нашей внутренней команды по работе с данными, рекомендации с использованием навыка были более конкретными и лучше соответствовали нашему сценарию.
Собственный набор инструментов для A/B-тестирования навыков
Мы разработали систему для быстрого сравнения различных сочетаний инструментов (MCP + навыки, только навыки, без инструментов), чтобы понять, как они меняют результат работы агента.
Эта библиотека позволяет проверять, как различные варианты навыков работают в заданном сценарии, и подробно изучать, какие навыки и инструменты вызывал агент.
Мы предоставляем Claude Code контекст (например, проект dbt или несколько YAML-файлов) и просим решить задачу при разных условиях:
- с разными вариантами навыка
- с подключённым сервером MCP или без него
- с явным указанием использовать навык или с возможностью обнаружить его самостоятельно
Затем мы можем либо вручную сравнить диалоги (какие навыки вызывались, какой результат был получен), либо попросить Claude Code автоматически оценить разные запуски.
В ходе этого процесса мы обнаружили, что Claude гораздо менее охотно использует навыки при «безголовых» запусках через CLI, чем при «интерактивных», когда пользователь ведёт с ним диалог. Поэтому мы сочли допустимым включить явное указание использовать навык в задания бенчмарка.
Оценка на ADE-bench
Мы также выполнили задания ADE-bench, чтобы оценить результаты с навыками и без них. Хотя не для каждого навыка в бенчмарке есть соответствующие задания (пока!), он даёт полезную информацию, особенно об основном навыке аналитической инженерии.
Мы увидели умеренное улучшение результатов на бенчмарке при использовании навыков: доля верных решений выросла с 56% без навыков до 58,5% с навыками. Но важнее не итоговые цифры, а отдельные задачи, которые удалось решить с навыками и у которых раньше доля успешных решений составляла 0%.
В частности, мы обнаружили значительные преимущества в задачах, требующих итеративной работы с DAG dbt. По нашему опыту, именно здесь агенты для программирования особенно часто терпят неудачу при работе с dbt.
Например, получив задание создать несколько моделей на основе их определения в schema.yml, базовый агент создал сразу 6 моделей и объявил об успехе. Агент, использующий навык, работал итеративно и каждый раз успешно выполнял задачу.
С другой стороны, поощрение принципа DRY привело к тому, что в этой задаче агент с навыком иногда повторно использовал столбец с логической ошибкой, тогда как базовый агент замечал и исправлял её.
Где ещё есть пробелы
Сегодня загрузка навыков не всегда срабатывает стабильно. Как и всё в сфере ИИ, эта область быстро развивается, а навыки получают широкое распространение, поэтому мы не думаем, что это станет долгосрочной проблемой. Нам также хотелось бы видеть более развитые и надёжные перекрёстные ссылки между навыками, например такие, как описаны здесь.
И ещё раз: попробуйте сами
Вот репозиторий, инструкции по установке находятся в readme.
Навыки агентов дают огромную отдачу при выполнении задач с определённой последовательностью действий, особенно если учесть, насколько легко начать ими пользоваться. Нам очень приятно видеть, как участники сообщества пробуют их в реальных рабочих процессах и создают собственные навыки.
Мы также изучаем способы более тесной интеграции dbt с навыками агентов и упрощения управления пользовательскими навыками для конкретных проектов dbt и данных.
Лучший способ участвовать — делиться своими находками в канале #topic-agentic-analytics в Slack или создавать issue в репозитории GitHub.





