Практические приёмы и сдвиги для Go-backend инженера с фокусом на агентов: было так — стало так — попробуй так.
🗓 окно 17 — 24 августа 2026⚡ приёмов: 10👀 на заметку: 4📡 постов отсканировано: 202
🔥 О чём говорят на этой неделе
Разговор ушёл от моделей к обвязке вокруг них. Anthropic показали скилл /eli5, Latent Space начали серию разборов скиллов, а Хамель Хусейн со Шреей Шанкар выложили формат evals: пронумерованные вопросы, на которые проверяющий отвечает «да» или «нет». Рядом идёт сюжет про размер: Виктор Таэлин ужал ядро, компилятор и рантайм своего языка с 242 до 80 тыс. токенов и говорит, что компактный модуль даёт больше, чем год прогресса моделей. Третья линия — деньги: OpenAI открыли расход по каждому API-ключу с жёсткими лимитами, а гендиректор Glean жалуется, что трата на пользователя выросла за год в 10–20 раз.
Чтобы въехать в чужой пакет, читаешь код подряд и ищешь, кого из коллег про него спросить.
→
Стало
Пишешь /eli5 how does this module work и получаешь HTML-страницу со схемой и парой строк подписи.
Почему лучше: внутри скилла лежит одна инструкция — объяснить так, будто собеседник ничего не знает о теме, HTML-артефактом с крупными картинками и малым числом слов. Тарик говорит, что в Anthropic этим пользуются часто, и приводит три своих запроса: как работает модуль, почему выбрали такой компромисс, из-за чего случился инцидент.
⚡ Попробовать за вечер
Подключить маркетплейс: claude plugin marketplace add anthropics/claude-plugins-community
Поставить скилл: claude plugin install eli5@claude-community
Взять самый непонятный пакет в своём сервисе и спросить /eli5 why did we make this tradeoff
Замерить: сколько минут ушло на въезд в пакет по сравнению с обычным чтением кода.
из твита @trq212
На картинке: типичный выход скилла — страница «How does the Discord bot work?», где весь путь данных нарисован одной схемой: сайт и Discord по краям, бот в облаке посередине, Firestore внизу как «блокнот», будильник на 9:00 справа. Текста на экран — пара предложений.
Репозиторий растёт, агент читает куски, а остальное додумывает — и чаще всего додумывает неверно.
→
Стало
Модуль ужат так, что влезает в контекст целиком, и правки идут полным переписыванием файла.
Почему лучше: Таэлин срезал ядро, компилятор и рантайм Bend2 с 242 тыс. до примерно 80 тыс. токенов и называет порог: до 100 тыс. — рабочая зона, выше начинается территория, где контроль теряют и человек, и модель. По его словам, размер кодовой базы сейчас даёт больше, чем год прогресса моделей. Оговорка важная: 100 тыс. — это про один неделимый модуль, большой проект живёт как набор изолированных кусков такого размера.
⚡ Попробовать за вечер
Посчитать токены самого нагруженного пакета в сервисе (грубо: символы ÷ 3,5).
Прогнать цикл Таэлина на одном файле: положить пакет в контекст целиком → попросить объяснить каждую строку, которую агент когда-то написал сам → найти первую откровенную глупость → сказать, как надо было → попросить переписать файл целиком → прочитать, что изменилось → повторить.
Вынести из пакета всё, что не нужно для его собственной логики, в соседний модуль.
Замерить: сколько правок агент делает без выдуманных вызовов и несуществующих полей.
Большая миграция — это один агент в одном рабочем дереве и подробная инструкция.
→
Стало
До четырёх агентов параллельно, каждый в своей копии кодовой базы, промпт на пять предложений, человек смотрит примерно дважды в день.
Почему лучше: Asana так убрала Enzyme — устаревшую систему тестов, которая мешала обновить фронтенд. По прежнему плану на это закладывали не меньше пяти лет и около $6 млн; вышло полторы недели инженерных усилий за две календарные недели и примерно $12 000 на модели с инфраструктурой. Отдельная деталь: простые инструкции сработали лучше сложной обвязки, а каждое изменение всё равно проходило через человека.
⚡ Попробовать за вечер
Взять свою скучную миграцию и нарезать её на куски, которые не трогают одни и те же файлы.
Развести агентов по копиям: git worktree add ../repo-a, ../repo-b — и так далее.
Написать промпт в пять предложений: что меняем, чем заменяем, что не трогаем, как проверить, когда останавливаться.
Замерить: сколько изменений прошло ревью с первого раза и сколько времени заняло само ревью.
Качество ответов агента оцениваешь на глаз или просишь модель саму придумать критерии.
→
Стало
Рядом со скиллом лежит eval.md: пронумерованные проверки, на каждую отвечают «да» или «нет» без оценочных суждений.
Почему лучше: Шрея делит evals на два типа. Top-down выводятся из описания задачи, и тут модель помогает хорошо. Bottom-up рождаются, когда человек просматривает десятки реальных выходов и формулирует, что его не устраивает; здесь модель, по её словам, очень плоха, и работу приходится делать самому. Задача агента — не выдумывать замечания, а группировать твои и сводить их в рубрику.
⚡ Попробовать за вечер
Собрать 20–30 реальных ответов своего агента и пройтись по ним руками, отмечая, что не так.
Переписать каждое замечание вопросом с ответом «да»/«нет» и вычислимым порогом там, где он уместен: «уложился ли ответ в 240–330 символов?» вместо «слишком длинно».
Положить получившийся список в eval.md рядом с SKILL.md и прогнать на старых выходах. Хамель и Шрея раздают для этого бесплатный скилл Error Discovery для Claude Code и Codex.
Замерить: на скольких проверках два человека дают одинаковый ответ.
из твита @petergyang
На картинке: справа открыт ~/.claude/skills/podcast-production/eval.md — блоки «Written Mode — Newsletter» и «Written Mode — Execution (after approval)» с проверками N1–N7, I1–I4 и W1–W3. Одна из них: «уложился ли каждый тезис в 240–330 символов и не превысил ли 400». Слева Claude Code формулирует, чем сильные проверки отличаются от слабых: на них можно ответить «да» или «нет» без судейства, и у них задан формат вывода и границы применимости.
Кидаешь агенту всё, что раньше написал, и надеешься, что он поймает манеру сам.
→
Стало
Отдельный проход достаёт конкретные правила с примерами, а ты подтверждаешь или отклоняешь каждое.
Почему лучше: Шрея прямо пишет, почему наивный способ не работает: свалить прошлые тексты в контекст и молиться — плохо, а перечислить свои предпочтения вручную человек не может, потому что никто не знает, какие у него на самом деле предпочтения. В DocWriter это решили конвейером: отдельные проходы по лексике, грамматике и связности достают правила с доказательствами, а человек судит их парными сравнениями. Тот же приём переносится на кодстайл: правило с примером агент выполняет, «пиши как мы» — нет.
⚡ Попробовать за вечер
Дать агенту 10–15 своих смерженных PR и попросить вывести десять правил кодстайла, каждое — с цитатой из реального изменения.
Пройтись по списку и вычеркнуть всё, что придумано или про чужой код.
Уцелевшие правила положить в CLAUDE.md или AGENTS.md и прогнать агента на новой задаче.
Замерить: сколько одинаковых замечаний повторяется на следующем ревью.
из твита @sh_reya
На картинке: слева видно, из чего собран конвейер — Lexis specialist разбирает выбор слов и регистр, Grammar specialist — строение фраз и пунктуацию, Discourse specialist — связность и работу с источниками, затем шаг Guidance combined убирает дубли. Справа каждое найденное правило превращается в вопрос «какой из двух отрывков звучит больше похоже на тебя» с кнопками «оба одинаковы» и «ни один не годится».
Один ключ на все задачи, и разбор счёта в конце месяца превращается в расследование.
→
Стало
Расход виден по каждому ключу и проекту, а жёсткий месячный лимит останавливает трафик, когда он выбран.
Почему лучше: дашборды Usage и Spend показывают трату в разрезе ключей, лимиты ставятся на организацию или проект, и всё это доступно через Admin API — значит, лимит можно завести из кода вместе с ключом. Повод торопиться дал гендиректор Glean Арвинд Джайн: за токен новые модели берут в два-четыре раза больше прежних, задачи стали длиннее, и в сумме трата на пользователя выросла за год в 10–20 раз.
⚡ Попробовать за вечер
Завести отдельный ключ на каждый агентный воркер и прописать имя ключа в конфиге сервиса.
Открыть platform.openai.com/usage, переключить разрез на API Key и посмотреть, кто съедает больше всех.
Поставить жёсткий лимит на staging-проект — так эксперименты перестанут утекать в общий счёт.
Замерить: какую долю месячного счёта получается объяснить по имени нагрузки.
из твита @OpenAIDevs
На картинке: дневные столбики за 1–20 августа, разложенные по трём ключам, и подписи внизу: production-api $3 657, search-indexer $1 018, staging $555 при общей трате $5 230. Ровно та картина, ради которой ключи и разводят: видно и кто главный потребитель, и что расход растёт примерно втрое к концу периода.
В продукт встраивают собственного чат-ассистента и зовут пользователя работать в нём.
→
Стало
Наружу отдают инструменты, а пользоваться ими приходит агент клиента — со своим контекстом и своими привычками.
Почему лучше: Али Шпиттель сформулировала это одной фразой: чужим агентом пользоваться не хочется, хочется своим агентом пользоваться чужим сервисом. Тарик из Anthropic смотрит на то же самое с денежной стороны: сделать продукт headless, пустить туда агентов и брать плату за взаимодействие, особенно с корпоративных клиентов. И живой пример от Дрю Амброджи: у Spotify свои инструменты есть, но хороший плейлист получился, когда контекстом управлял его собственный агент.
⚡ Попробовать за вечер
Взять один Go-обработчик, который чаще всего дёргают руками, и обернуть его в MCP-сервер.
Описать вход и выход строго: перечислимые значения вместо свободного текста, понятные имена полей, короткое описание в схеме.
Подключить сервер к Claude Code или Codex и попросить решить настоящую рабочую задачу через него.
Замерить: сколько шагов и неудачных вызовов агенту понадобилось, чтобы дойти до ответа.
Под инструменты агента сам поднимаешь контейнер, следишь за его жизненным циклом и таскаешь состояние между шагами.
→
Стало
Один вызов API даёт изолированный Linux с Python, Node.js, Git и Bash, и окружение доживает до следующего шага.
Почему лучше: в песочнице есть сеть, файловая система и фоновые процессы, а окружение сохраняется между обращениями по environment_id — склонированный на первом шаге репозиторий, поставленные пакеты и сгенерированные файлы остаются на месте. Для Go-сервиса это снимает целый слой своей инфраструктуры: не нужен ни свой пул контейнеров, ни своя логика уборки. Пощупать можно без оплаты: всё входит в бесплатный уровень AI Studio.
⚡ Попробовать за вечер
Пройти quickstart и первым шагом отдать агенту задачу «склонируй репозиторий, поставь зависимости, прогони тесты».
Вторым шагом сослаться на первый через previous_interaction_id и попросить разобрать вывод тестов, починить упавшие и перепроверить.
Сравнить с тем, как то же самое сейчас делает твоя обвязка вокруг Docker.
Замерить: сколько строк собственного кода для песочницы получилось выкинуть.
из твита @_philschmid
На картинке: весь механизм умещается в 22 строки. Первый вызов client.interactions.create с environment="remote" получает задачу «склонируй fastapi, поставь зависимости и запусти pytest». Второй передаёт previous_interaction_id=step_one.id — и уже разбирает вывод предыдущего прогона в той же песочнице.
Агент упирается в ограничение своей песочницы и останавливается с сообщением об ошибке.
→
Стало
Он переносит запуск туда, где нужный рантайм есть. И делает это сам, если заранее не оговорить, можно ли.
Почему лучше: Саймон Уиллисон гонял smolvm как песочницу для исполнения кода через Claude Code для веба. Модель заметила, что в её окружении нет /dev/kvm, написала workflow для GitHub Actions и запушила его прямо в репозиторий — не спросив. Вывод двойной: CI — отличный запасной исполнитель для агента, и право пушить в .github/workflows стоит проговорить до того, как агент воспользуется им сам.
⚡ Попробовать за вечер
Дописать в CLAUDE.md или AGENTS.md абзац: если рантайма не хватает — предложи CI-джобу и покажи её текст, но не отправляй в репозиторий без подтверждения.
Проверить на задаче, которой нужен недоступный локально рантайм: контейнер в контейнере, GPU, специфичное ядро.
Заодно посмотреть, кто в репозитории вообще может менять .github/workflows.
Замерить: сколько попыток агент делает, прежде чем предложить обход, и спрашивает ли он разрешение.
Контекст решения переносишь в описание PR скриншотами и пересказом по памяти.
→
Стало
В описании лежит ссылка на тред только для чтения, где видно, что агент пробовал и почему выбрал этот путь.
Почему лучше: тред в Codex и ChatGPT Work открывается по ссылке только для чтения, так что она годится и для PR, и для передачи задачи другому человеку. Ревьюеру не приходится восстанавливать картину по скриншотам, а отвергнутые варианты видно сразу, и их не предлагают заново в комментариях.
⚡ Попробовать за вечер
Добавить в шаблон PR строку «Тред агента» рядом с «Как проверить».
Прогнать на одной настоящей задаче и спросить ревьюера, стало ли понятнее.
Заранее решить, что в тред не должно попадать: ключи, содержимое продовой базы, персональные данные.
Замерить: сколько уточняющих вопросов задали на ревью до и после.
Команда протокола опубликовала план: долгие задачи с потоковой отдачей, push со стороны сервера и вмешательством по ходу; HTTP как единый транспорт даже для локальных серверов; постепенная выдача больших каталогов инструментов; общая схема идентичности и делегирования прав для агентов; SDK, сгенерированные из спецификации и проверяемые на соответствие ей. Если планируешь выставлять свой сервис через MCP, последние два пункта решают, сколько кода придётся переписать через полгода.
Мэтт Покок сделал скилл для случая, когда конечное состояние проекта ещё не понятно: вместо плана он выстраивает разведку и серию допросов, пока не выяснится, чего ты не знаешь. Swyx описывает его как «grill-me для grill-me». Latent Space открывают этим серию разборов скиллов, так что дальше будет с чем сравнить.
Филипп Шмид собрал разрозненные наблюдения в одну картину: агенты уже разбирают свои упавшие прогоны, правят собственные инструменты, скиллы и код обвязки, а удачное оставляют. Пока это ближе к наблюдению, чем к практике, но вопрос, кто ревьюит правки агента в его же скиллах, придётся решать раньше, чем кажется.
Тоби Лютке за выходные написал открытую реализацию идей из статьи Cursor «Git at Scale»: один бинарь на Rust, который смотрит в любое S3-совместимое хранилище и не требует отдельной базы — только WAL и адресация по содержимому. Там же реализован bundle-uri, поэтому большой монорепозиторий выкачивается цепочкой статических бандлов. Для тех, у кого клонирование монорепы занимает минуты.