10 советов, как получить лучший R-код от AI coding agent
С правильной настройкой и подсказками вы можете заставить Claude Code, Codex, Posit Assistant и другие coding agent писать R-код почти как профессионал. Вот как.
Большинство инструментов generative AI хуже знают R, чем такие языки, как JavaScript и Python, из-за того, сколько обучающих данных доступно по каждому из них. Однако с небольшой дополнительной настройкой можно дать large language model (LLM) знания, которые нужны ей, чтобы лучше работать с R.
Ниже — 10 способов помочь generative AI писать R-код на уровне профи.
Используйте coding agent
AI coding agent дают больше возможностей, гибкости и инструментов, ориентированных именно на код, чем универсальные чат-боты.
Claude Code от Anthropic и Codex от OpenAI доступны в версиях для терминала, расширений для IDE, desktop- и mobile-приложений и других интеграций.
Пользователям R также стоит присмотреться к Posit Assistant от Posit, который создан для анализа данных на R и Python. Для R ему нужно меньше настройки, чем универсальным coding agent, а встроенных знаний о data science, разработке пакетов R и Shiny apps у него больше. Кроме того, он по умолчанию может читать объекты в ваших средах R и Python, что бывает полезно в некоторых случаях, хотя и не лучший вариант при работе с конфиденциальными данными. Версии Posit Assistant есть для RStudio, IDE Positron и терминала. Информация по установке — здесь.
Примечание: Posit Assistant — это не то же самое, что старый Positron Assistant, который показывали на прошлогодней posit::conf(). Старый assistant со временем будет заменён Posit Assistant. Он предустановлен в RStudio, но не активирован по умолчанию, так что использовать его необязательно.
Оригинальный вход Google в этот сегмент, Gemini CLI, выводится из эксплуатации в пользу нового «Antigravity CLI» с 18 июня.
Есть и другие IDE-платформы со встроенными agent, включая Cursor и Windsurf, а также terminal + subscription coding agent вроде Warp, который в апреле стал open source. Однако здесь я их не рассматриваю.
На работе вас может ограничивать то, что разрешает использовать работодатель, но вы всё равно можете экспериментировать на своих данных — а затем добиваться внедрения нового agent, если другой вариант лучше подходит под ваши задачи. Какой бы инструмент вы ни выбрали, переход от web-based chatbot к одному из этих agent должен дать более качественный код.
«Переход от chatbot к agent — самое важное изменение в том, как люди используют AI, со времени запуска ChatGPT», — говорит Ethan Mollick, содиректор Generative AI Labs в Wharton School при University of Pennsylvania.
Настройте knowledge files CLAUDE.md, AGENTS.md или GEMINI.md
Все основные coding agent ищут knowledge files, которые загружаются при каждом запуске сессии, и вы можете легко редактировать эти файлы. В них можно указать, например, ваш уровень владения разными языками и то, как вы любите документировать проекты. Например, я говорю своим LLM, что хочу README.md в каждом проекте — с информацией о том, как использовать проект, и с техническими деталями о том, как он был написан.
Большинство coding tools позволяют иметь и общий основной файл, который загружается в каждую сессию, и дополнительный файл для каждого проекта.
Если вы добавляете Claude или Codex в существующую code base, slash command /init создаст один из таких project .md-файлов после сканирования и анализа кода. Можно также попросить LLM провести с вами интервью, чтобы создать такой файл или дополнить его.
Claude Code ищет основной пользовательский файл CLAUDE.md в ~/.claude/CLAUDE.md, а затем project-level файл в ./CLAUDE.md или ./.claude/CLAUDE.md. Slash command /memory показывает, где расположены эти файлы. Codex использует файлы AGENTS.md. В документации Antigravity сказано, что он ищет основной GEMINI.md, а также GEMINI.md и/или AGENTS.md в рабочем каталоге.
Positron Assistant, согласно документации, настроен на чтение AGENT.md, AGENTS.md, POSITRON.md, CLAUDE.md, GEMINI.md и LLMS.txt в корне workspace. Подробнее о custom instructions — в документации Positron.
Используйте agent skills
Agent skills могут превратить LLM со спорным знанием R в специалиста, который понимает, как именно вы хотите, чтобы он писал код. Вы можете разрабатывать свои skills, создавать их вместе с LLM или загружать skills, написанные другими. У Claude даже есть skill, который помогает создавать skills. Это один из лучших способов перестать повторять одни и те же инструкции снова и снова. Вместо этого LLM будет «помнить», что находится в ваших skill-файлах, загружая их тогда, когда они нужны.
В чём разница между упомянутыми выше knowledge .md-файлами и skill? Я бы думал о CLAUDE.md или AGENTS.md как о важной фоновой информации, которая всегда доступна, а о skills — как о более конкретных инструкциях, полезных в определённые моменты. Или, как сформулировал Claude Opus 4.7: «Skills нужны для триггерных workflows (“когда пользователь просит X, делай Y”). Постоянное правило, применимое ко всем проектам, не зависит от триггера; это директива, которой я должен следовать всегда». Постоянные правила должны быть в CLAUDE.md.
«Создавайте skill, когда вы постоянно вставляете в чат одни и те же инструкции, чеклист или многошаговую процедуру, или когда раздел CLAUDE.md вырос из факта в процедуру», — говорится в документации Claude Code от Anthropic. «В отличие от содержимого CLAUDE.md, body skill загружается только тогда, когда он используется, так что длинный справочный материал почти ничего не стоит, пока он вам не нужен». При запуске каждой сессии загружаются только описания skills, чтобы LLM знал, какие skills доступны.
Изначально Anthropic создала skills для Claude в октябре 2025 года, а затем через пару месяцев опубликовала концепцию как open standard. Сейчас их используют большинство coding agent.
У Anthropic есть простой guide по созданию custom skills здесь, если хотите попробовать сделать свой.
Posit Assistant поставляется с несколькими встроенными R-related skills и позволяет добавлять новые. Найти их можно здесь.
Если вы не используете Posit Assistant, вы можете добавить skills, созданные Posit, в другой coding agent. Posit опубликовала GitHub repository со skills для создания R packages, Shiny apps и Quarto documents; для создания и обработки GitHub pull requests; для open-source релизов пакетов R и Python; для code review (R, Python, JavaScript/TypeScript, SQL); а также для создания архитектурной документации по codebase. Посмотреть все можно здесь.
Читайте и редактируйте скачанные skills
Skills — это просто папка с одним или несколькими markdown-текстовыми файлами со структурированным YAML-заголовком. В эту папку также могут входить дополнительные ресурсы и скрипты. Файлы инструкций skill легко читать и редактировать, так что вы можете убедиться, что они делают именно то, что вам нужно. Настраивайте их как хотите.
Например, Claude помог мне написать собственный customized R skill. Claude тяготеет к tidyverse packages, но есть и другие пакеты, которые мне очень нравятся, например data.table. Я сделал так, чтобы R skill знал мои предпочтения по пакетам и в каких случаях я предпочитаю каждый из них.
Если один из предпочитаемых вами процессов меняется, не забудьте обновить связанные skills. Или попросите LLM обновить их за вас. Поддержание skills в актуальном состоянии сделает ваш coding agent полезнее.
Обновляйте и файлы CLAUDE.md или AGENTS.md. Допустим, вы начали с файла CLAUDE.md, где сказано, что вы опытный Python programmer, который только учит R. Через три месяца вы, возможно, захотите обновить свой уровень владения R. Или вы указали в AGENTS.md, что любите подробно документированный код, но теперь предпочли бы более лёгкий стиль. Время от времени полезно вместе пройтись по этим файлам с coding agent и спросить, какие основные пункты там есть и нужно ли их обновить.
Используйте пакет R btw и его MCP server
Раздражает, когда LLM пишет код, опираясь на древнюю версию R package из обучающих данных, или вообще не знает о сравнительно новом пакете. Пакет btw решает эту проблему, давая вашему coding agent доступ к информации обо всех R packages, установленных в вашей системе. Это значит, что он может писать код с учётом именно вашей R environment. Кроме того, btw позволяет LLM получать доступ к переменным в текущей R environment через MCP server.
MCP servers — это стандартизированный способ, которым LLM получают доступ к внешним данным, в данном случае к вашей работающей R session; внешнее не обязательно означает cloud. Как и skills, MCP был создан Anthropic как open standard и с тех пор принят большинством крупных AI platforms. Пакет R btw включает MCP server, который можно установить для Claude Code, выполнив следующий код в terminal window, а не в R console.
claude mcp add -s "user" r-btw -- Rscript -e "btw::btw_mcp_server()"
В btw очень много tools. Перегружать LLM инструментами, которыми он, возможно, никогда не воспользуется, — не лучшая идея. Если вы хотите только зарегистрировать tools btw для доступа к своей R session и поиска документации по пакетам, можно выполнить такую команду:
claude mcp add -s "user" r-btw -- Rscript -e "btw::btw_mcp_server(tools = btw::btw_tools('btw_tool_run_r', 'docs', 'env'))"
Это нужно сделать только один раз.
Чтобы подключить Claude Code к открытой R session, нужно также запускать btw::btw_mcp_session() в каждой новой R session. Я иногда забываю об этом, пока не начинаю ломать голову, почему Claude не может прочитать мои R variables или даже увидеть, какие packages у меня установлены.
Посмотреть demo btw можно в этом видео Posit, где сравниваются Claude Code и Posit Assistant.

Для Posit Assistant такая настройка не нужна, потому что инструменты для доступа к вашей R session и переменным уже встроены.
Используйте plan mode для своих проектов
Я не могу это переоценить. Как людям полезно иметь план перед началом проекта, так и LLM полезно сначала пройти через план, а уже потом начинать генерировать код. Кроме того, иногда полезно «мозговым штурмом» вместе с LLM обсудить структуры и функции, попросить альтернативы или даже дать другому LLM проверить план перед реализацией.
Anthropic советует начинать с plan mode. «Если позволить Claude сразу перейти к кодированию, он может написать код, который решает не ту проблему. Используйте plan mode, чтобы разделить исследование и исполнение», — говорится в документе с best practices.
Claude, Codex, Gemini и Posit Assistant во всех CLI-версиях имеют plan mode, который можно включить с помощью slash command /plan.


Следите, чтобы coding agent учился на своих ошибках
Это один из лучших советов, который я впервые прочитал у Joe Amditis, associate director of operations в Center for Cooperative Media при Montclair State University: если ваш coding agent ошибся, а вы вместе исправили проблему, обязательно сохраните эту память, чтобы он не повторял ту же ошибку.
У вашего agent может быть автосистема памяти, которая частично делает это сама (я использовал Claude Code для этого), но вы можете поручить любому coding agent вести отдельный lessons learned file для каждого проекта — или спросить его, как лучше сделать так, чтобы он не повторял одну и ту же ошибку. Это не гарантия, как и то, что LLM будет следовать всем правилам в CLAUDE.md или AGENTS.md, либо всем шагам в skill. Но это заметно сократило число повторяющихся ошибок у моих agent.
Пусть agent пишет тесты и делает code review
Тесты и code review, выполненные coding agent, не заменяют человека, который проверяет, работает ли software. Всегда проверяйте результаты LLM сами, когда задача важна. Однако сгенерированные agent тесты всё же помогают предотвратить часть проблем и сокращают время, которое вы тратите в роли напарника по отладке. Если вы не знаете, с чего начать, чтобы помочь agent тестировать и проверять код, посмотрите skills Posit: testing-r-packages и critical-code-reviewer. У вашего agent также могут быть встроенные skills для code review, например slash command /code-review в Claude Code.
Skills для code review есть у многих. Например, у Sentry в своём repository есть skill для code review. Он ориентирован на нужды конкретного проекта и может служить полезным образцом для похожих skills. А superpowers — популярный набор общих programming skills, который позиционируется как «полная методология разработки software для ваших coding agents, построенная поверх набора компонуемых skills и начальных инструкций, которые убеждаются, что агент их использует». Я сам superpowers не использую, но, судя по более чем 227 000 GitHub stars и 20 000 forks, им пользуются многие.
Ещё один совет: несколько экспертов предлагают использовать для code review другую LLM — возможно, даже другого поставщика, — потому что у каждой модели есть свои сильные и слабые стороны.
Не забывайте об общих good habits при prompting
На каком бы языке программирования вы ни работали, ясность улучшит результат. Формулируйте запросы точечно и не ждите, что LLM будет читать ваши мысли.
«Codex лучше справляется со сложной работой, когда вы разбиваете её на более мелкие, сфокусированные шаги», — говорится в developer docs OpenAI. «Небольшие задачи проще тестировать Codex и проще проверять вам. Если не знаете, как разбить задачу, попросите Codex предложить план».
«Уделите время тому, чтобы сделать prompts максимально релевантными, как если бы вы помогали новому коллеге сформулировать задачу», — советует Google в материале Five Best Practices for Using AI Coding Assistants. «Подумайте, какие детали нужно сообщить, чтобы человек добился успеха, и передайте все эти детали вашему AI tool».
И не заполняйте context window до опубликованного лимита LLM. По мере приближения к максимальному token limit производительность часто снижается.
Используйте open LLM, особенно если у вас есть ограничения по бюджету и токенам
Open-weight models — особенно те, что достаточно малы, чтобы работать на desktop computer, — вряд ли когда-либо сравняются с frontier LLM вроде Claude, GPT или Gemini. Но для большого числа задач по R-коду им это и не нужно.
Чтобы понять, насколько хорошо LLM пишет R-код, у него должен быть такой же harness, какой Claude Code, Codex или Posit Assistant дают более крупным LLM. «Harness — это продукт», — утверждает Mallory Mejias из Sidecar, компании, занимающейся AI education. «Модель — это двигатель внутри него: важный, но всё более взаимозаменяемый». Я бы не стал заходить так далеко, потому что для меня LLM по-прежнему критически важна, и модели отличаются. Но одна и та же LLM будет работать по-разному в зависимости от инструментов и контекста, которые у неё есть.
Недавно Posit добавила открытый Gemma 4 26B от Google к существующим вариантам более крупных закрытых LLM. «До этого момента модели такого размера — достаточно маленькие, чтобы комфортно работать на дорогих потребительских ноутбуках, — были у нас в поле зрения, но ещё не были достаточно хороши, чтобы управлять agent harness вроде Posit Assistant», — написал senior software engineer Posit Simon Couch в блоге Posit. «За последние месяцы это изменилось с выходом моделей вроде Gemma 4». Однако, чтобы использовать её в Posit Assistant в RStudio, всё ещё нужно запускать её через подписку Posit AI, а не локально. Она расходует в 10 раз меньше бюджета, чем та же сессия с Claude Sonnet.
Некоторые проекты могут использовать Claude Code для запуска локальных LLM. Ollama, open-source software для локального запуска LLM, делает это через команду терминала ollama launch claude --model <model-name>, например:
ollama launch claude --model gemma4:26b
Создатели Unsloth, open-source framework для запуска и обучения моделей, говорят, что локальные LLM внутри Claude Code могут работать очень медленно из-за проблемы с invalidation cache. Они утверждают, что это можно исправить, добавив "CLAUDE_CODE_ATTRIBUTION_HEADER" : "0" в ~/.claude/settings.json в разделе “env”.
Unsloth тоже может использовать Claude Code для запуска локальных моделей, но установить и настроить его несколько сложнее, чем Ollama. См. этот tutorial Unsloth.
Open-source coding agent Open Code запускает LLM от OpenAI, Anthropic, Google, Kimi, Qwen от Alibaba и других. По сравнению с коммерческими CLI-инструментами, которые я пробовал, я пока не проникся к нему, но у него 174 000 GitHub stars, так что поклонников явно много.
AI consultant Thomas Wiegold, который перешёл с Claude на Open Code, сказал: «OpenCode покрывает всё, что мне нужно для ежедневного workflow. Он быстрый, гибкость выбора провайдера действительно полезна, а TUI лучше подходит для долгих сессий… Но я не буду делать вид, что там всё безоблачно». Он отметил проблемы со стабильностью и уязвимость remote code execution, о которой стало известно ранее в этом году.
Совет Wiegold? «Установите оба. Попробуйте другие. Сохраняйте гибкость».
В итоге
Large language models остаются несовершенными и непредсказуемыми инструментами, но они быстро улучшаются — как и harness вокруг них. Даже frontier LLM в коммерческих coding agent иногда игнорируют инструкции и ведут себя неприятно неожиданно. Однако ваши шансы получить качественный код резко вырастут, если использовать coding agent, уделять время их настройке и помнить хорошие принципы prompting. Удачи!
—
Справка по coding agent
Claude Code — coding agent от Anthropic доступен в терминале и как расширение для IDE, desktop app, mobile apps, Slack app и cloud-версия, которая может работать напрямую в ваших repositories на GitHub. По сути, это один из первых прорывных coding agent; теперь у него есть элегантная remote-control опция, где вы можете начать сессию на desktop, а потом продолжить её на телефоне или планшете. Хотя он рассчитан на Claude LLM, его можно использовать и для запуска локальных LLM через инструменты вроде Ollama или Unsloth Studio. При использовании моделей Claude он, как правило, даёт меньше лимитов, чем предложения других вендоров. Anthropic выложила код terminal-версии на GitHub, а использование регулируется коммерческими условиями Anthropic. Claude Code можно использовать по API pay per use или в рамках подписки Claude.
Codex — ответ OpenAI на Claude Code доступен через terminal, app, IDE extension или cloud, с интеграциями для GitHub, Slack и Linear. CLI-инструмент open source под лицензией Apache, доступен на GitHub и работает по API pay per use или в рамках подписки ChatGPT.
Posit Assistant — coding agent от Posit (ранее RStudio) создан для data work в R и Python, хотя, как сказал мне senior software engineer Posit Simon Couch, он вполне подойдёт и для programming work в других сценариях и на других языках. Он доступен для IDE RStudio (через подписку Posit AI в RStudio), IDE Positron и как отдельное CLI-приложение для терминала, хотя CLI-вариант пока не кажется таким же полноценным, как IDE-интеграции, — это может измениться. На момент написания материала в Positron можно также использовать API keys от Anthropic, OpenAI и Snowflake Cortex, а также аккаунт GitHub Copilot. Posit Assistant довольно часто обновляется, сказал Couch. Если вы тестировали его месяц или два назад, сейчас у него возможностей больше.
Antigravity CLI — terminal-based tool от Google в этом месяце заменит Gemini CLI для пользователей без оплаты и пользователей Google One. Есть также Antigravity IDE, SDK и platform для оркестрации нескольких agents. Один из плюсов Antigravity: Google предлагает бесплатный план с доступом к Gemini 3.5 Flash, Gemini 3.1 Pro, Gemini 3 Flash, Claude Sonnet 4.6, Claude Opus 4.6 и gpt-oss-120b, а также к, как они говорят, «щедрым», но не определённым weekly rate limits, зависящим от «степени нашей capacity».
Материал — перевод статьи с английского.
Оригинал: 10 tips for getting better R code from your AI coding agent