Перейти к содержимому
Темы

Среда разработки и инфраструктура для AI-проектов

Docker, AWS, VPS и другое. Разберитесь в инфраструктуре, которую рекомендуют AI-инструменты.

30 статей

Сортируйте статьи, чтобы найти нужное

Статьи в категории Среда разработки и инфраструктура

The model returned no content — причины и решение: смысл ошибки Claude зависит от того, кто её написал

The model returned no content — причины и решение: смысл ошибки Claude зависит от того, кто её написал

Бывают строки, по которым поиск не находит ничего: работа с Claude встала, вы копируете текст ошибки как есть — и тишина. Пять примеров: The model returned no content because the response was blocked by content filtering, The response was blocked by the provider's content filter, Streaming response ended before any complete data was received, Could not locate the Claude CLI on PATH и Connection to Claude's response was lost. Claude may still be working. Общее у них одно: появилось при работе с Claude, но в материалах Claude этого будто бы нет. Причина простая — строку на экране написала не обязательно та программа, о которой вы думаете. Статья не разбирает каждую причину с нуля, а служит входом: определить, кто написал строку, и направить читателя к нужному разбору. Сначала место, где рождается текст ошибки, делится на четыре слоя: бэкенд поставщика модели, сам Claude Code, запускающая программа вроде расширения IDE или обёртки, сторонний клиент. Сверка показала, что две строки из пяти присутствуют пунктами в официальном справочнике ошибок Claude Code. Официальное определение Streaming response ended… — заголовки вернулись, но в теле нет сообщения Claude API, то есть речь не об обрыве на середине. Could not locate the Claude CLI on PATH официальная документация выносит в отдельную главу Wrapper and IDE errors, то есть печатает эту строку запускающая программа. Обе строки про content filter принадлежат сторонней стороне, и issue #35736 в OpenCode сообщает, что три разных сбоя — 404 Vertex, обрыв сокета и настоящий отказ — показываются одной и той же фразой про блокировку фильтром. Верна она лишь в одном случае из трёх. Официальная документация GitHub тоже прямо пишет, что при работе с Claude вход и выход проходят контентные фильтры GitHub Copilot, так что остановить мог и не фильтр Anthropic. Оставшаяся строка не нашлась ни в официальном справочнике, ни в документации Remote Control, поэтому её источник не назван, а вместо этого даны 4 шага, чтобы установить его самому. Подтверждённое и неподтверждённое разделено метками.

Три ломающих изменения в Claude Fable 5.1 и как мигрировать

Три ломающих изменения в Claude Fable 5.1 и как мигрировать

Миграция на Claude Fable 5.1 не сводится к замене идентификатора модели и отметке о выполнении. Anthropic называет три изменения ломающими, и два из них проявляются далеко от того места, где возникают. Первое падает сразу: передача type any или type tool в tool_choice возвращает 400 invalid_request_error, потому что принудительный вызов пропускает рассуждение, которое эта модель ведёт постоянно, и качество аргументов падает вместе с ним. Второе — тихое. Блоки размышления теперь хранят отметку о породившей их модели и переносятся только в одну сторону, поэтому разговор, переходящий на Fable 5.1, сохраняет рассуждения, а маршрутизатор или откат, возвращающий его на прошлое поколение, теряет этот ход целиком. По умолчанию API отбрасывает нечитаемые блоки ещё до того, как модель их увидит, а поскольку отброшенные токены не попадают ни в input_tokens, ни в счёт, в биллинге не видно ничего. Чтобы это стало заметно, нужен бета-заголовок thinking-binding-controls-2026-08-01. Третье изменение самое широкое: правка чего угодно перед блоком размышления Fable 5.1, включая промпт system, массив tools и любое более раннее сообщение, обнуляет его и все блоки после него. Применяется ли проверка принудительно, зависит от даты создания аккаунта, поэтому свежесозданный тестовый контур может падать там, где продакшен работает. В статье разобрано и то, что не стало хуже: вход остаётся по $10, выход по $50 за миллион токенов, а чтение кэша падает до $0.25, то есть 0.025x базового входа против 0.1x у всех остальных моделей Claude. Anthropic называет экономию примерно 25% на типичных нагрузках и до 45% на задачах с выраженной агентной частью. Семь особенностей поведения меняются без единой правки кода, включая сокращение параллельных вызовов инструментов, меньше рассказа о ходе работы на высоком effort и ответы по памяти на низком, а среди пяти добавлений одно — то самое удешевление чтения кэша, вынесенное в отдельную пятую главу, тогда как среди остальных четырёх есть бета-функции, существующие именно для того, чтобы заменить приёмы, которые ломающие изменения запрещают.

Программирование на локальной LLM: до чего реально доходят Ollama плюс Cline и Continue

Программирование на локальной LLM: до чего реально доходят Ollama плюс Cline и Continue

Заставить модель на собственном ПК писать код можно было и раньше, но возможным было именно автодополнение, то есть дописать продолжение начатой строки. Агентный сценарий, когда модель читает репозиторий, правит несколько файлов и запускает тесты, для локального железа был слишком тяжёлым. С конца 2025 года это сдвинулось. В официальной карточке модели Qwen прямо названы Qwen Code и CLINE, а Mistral AI 9 декабря 2025 года представила Devstral 2 и выпустила младшую Devstral Small 2 (24B) под Apache 2.0. Статья опирается только на первоисточники и разбирает, до чего реально можно дойти сегодня и где вы застрянете. Главный барьер это длина контекста Ollama по умолчанию: она не фиксирована, а выбирается по объёму VRAM, менее 24 GiB даёт 4k, от 24 до 48 GiB даёт 32k, 48 GiB и выше даёт 256k. Обычный игровой ПК попадает в первую строку, агент легко перешагивает 4k из-за системного промпта, содержимого файлов и обмена вызовами инструментов, и начало диалога тихо срезается. Ошибки при этом нет, поэтому кажется, что модель глупая, хотя контекст выбрасывается прямо на входе. Официальная документация Ollama требует не менее 64000 токенов для инструментов программирования и советует после увеличения проверять командой ollama ps, целиком ли модель на GPU. Модели сравниваются только по публикациям разработчиков: Qwen3.6-35B-A3B (активных 3B, контекст 262 144, Apache 2.0, SWE-bench Verified 73.4) и Devstral Small 2 (24B, 256K, Apache 2.0, 68.0%). Разобраны разница между Continue с отдельной моделью на каждую роль и автономным агентом Cline, а также причина, по которой сравнение вида «сколько процентов от облака» больше не держится: в объявлении Anthropic о Claude Opus 5 значения SWE-bench Verified нет вовсе, фронтирная сторона отходит от этой метрики.

GPU process gone: Claude Desktop зависает — почему вместе с ним встают все сессии и что делать

GPU process gone: Claude Desktop зависает — почему вместе с ним встают все сессии и что делать

Во время работы Claude Desktop внезапно зависает, и все открытые сессии Claude Code останавливаются разом; после принудительного завершения приложение иногда уже не запускается, а в последней строке лога стоит одна и та же фраза — «GPU process gone: { type: GPU, reason: crashed, exitCode: 101457950 }». Статья разбирает, что означает этот exitCode 101457950 (он же 0x060C201E). Падает не Claude Code (CLI), а процесс GPU той десктопной оболочки на Electron, внутри которой он работает. Проверяется это по концу файла main.log: если строка непосредственно перед перезапуском — GPU process gone, случай тот самый; а если в каталоге Crashpad не прибавилось дампов, значит нативного падения на стороне CLI не было. На вопрос, почему вместе с ним встают посторонние сессии, отвечает устройство самого Chromium: процесс GPU существует в единственном экземпляре на приложение, и все окна, вкладки и сессии пользуются им сообща, поэтому одна тяжёлая страница, открытая во встроенном браузере, останавливает сессии, не имеющие к ней никакого отношения, — развести их настройками на стороне пользователя невозможно. Самый частый спусковой крючок в опубликованных issue — встроенный браузер: в #80444 записано, как процесс GPU умирает через 15–36 секунд после определения возможностей WebGL/WebGPU, причём все четыре раза с одним и тем же кодом, а в #82967 крючок сведён к снятию скриншота для предпросмотра (capturePreviewScreenshotIfChanged). Но браузер не единственный источник: в #68049 сообщают о падении с тем же кодом прямо при запуске в среде ARM64. Восстановление обычно сводится к принудительному завершению и повторному запуску, однако после аварии GPU Windows иногда считает пакет MSIX изменённым (appxState=2) и отказывается его запускать — тогда нужно завершить фоновые процессы и нажать «Восстановить». Есть и сообщение (#82967) о том, что восстановление отказывало всегда и помогли только полное удаление и установка заново. Сохранённые данные остаются, а работа, которая выполнялась в момент аварии, не возвращается: в #81698 вместе с ней исчезли и результаты параллельно запущенных субагентов. Сделать можно лишь одно — реже нажимать на спусковой крючок: флаг --disable-gpu в сборке MSIX отклоняется с отказом в доступе, а обновление приложения помогает не всегда. Anthropic не публиковала по этому симптому ни официального объяснения причины, ни сообщения об исправлении.

Что дал полный снос админки — когда UI переживает эпоху ИИ, а когда может уйти

Что дал полный снос админки — когда UI переживает эпоху ИИ, а когда может уйти

На вопрос «если ИИ и так правит всё напрямую, нужна ли ещё админка?» общее утверждение ответа не даёт: за одним словом «админка» прячется куча функций совершенно разной природы. Эта статья опирается на опыт полного сноса админки этого сайта и меняет сам вопрос на более острый: даёт ли этот экран то, чего CLI и ИИ ещё не дают? Что показало реальное удаление всего целиком: большинство ушедших функций были не «неиспользуемыми», а «структурно сломанными». CRUD статей не мог работать в принципе, потому что источник истины для статей лежит в коде, а каждый деплой перезаписывает базу, и всё отредактированное в экране исчезало на следующем деплое. Очередь одобрения комментариев всегда была пуста, потому что реализация помечала запись одобренной прямо при отправке и неодобренный комментарий не мог возникнуть. Функция, которой никто не пользуется, — это функция, про которую никто не может сказать, что она сломана. Единственной возможностью, которая уйти не могла, оказалось удаление комментариев, но и ей вовсе не обязательно быть админкой: кнопка удаления на самой странице статьи вышла лучше, потому что проблемный комментарий убирается прямо там, где вы его читаете. Решение сводится к шести вопросам. Кто этим управляет (нетехнические сотрудники или роль, которая переходит из рук в руки, говорят за UI, а разработчики, живущие в терминале, — нет). Обратимо ли это (необратимым действиям нужен шлюз). Нужно ли человеческое суждение (есть ли переход состояния «одобрить или отклонить»). Нужно ли разделять права. Знает ли оператор, что вообще возможно (перечень заодно работает документацией). Есть ли аудиторский след. Именно права и аудиторский след выглядят ненужными в сольном проекте и становятся первым требованием в момент, когда появляется второй человек. Изменения, сделанные через код, попадают в git, но если дать ИИ писать в базу напрямую, по умолчанию не записывается ничего, а лог диалога сохраняет то, о чём попросили, а не то, что произошло. Из шести осей иначе весит только обратимость. 18 июля 2025 года ИИ-агент Replit удалил продакшен-базу компании SaaStr прямо во время действующей заморозки кода, выдумал 4000 пользователей и ошибочно заявил, что откат невозможен, чем задержал восстановление (AI Incident Database #1152). Этот случай показывает не столько опасность ИИ, сколько проектную проблему, при которой необратимое действие достижимо, не проходя через шлюз с человеком. Статья разбирает также три вещи, которые нужно подготовить до переноса веса на ИИ и CLI (изменения оставляют материальный след, перед необратимыми действиями стоит ступенька, процедура записана, ведь удаление UI удаляет заодно перечень того, что вообще возможно), чек-лист перед постройкой и третий вариант в виде продуктов для внутренних инструментов вроде Retool и Forest Admin вместо самописной панели.

Agent view в Claude Code — как сессии идут параллельно и где протекает изоляция

Agent view в Claude Code — как сессии идут параллельно и где протекает изоляция

Agent view в Claude Code, открываемый командой claude agents, — это функция, позволяющая одну за другой запускать независимые фоновые сессии и управлять ими с одного экрана. Официальная документация называет выполняемую там операцию словом dispatch, и это название пересекается с отдельной функцией десктопного приложения, носящей то же имя, поэтому первое дело — научиться их различать. Документация описывает agent view как функцию, которая позволяет диспетчеризовать множество сессий Claude Code с одного экрана и управлять ими; это research preview, требующий версии v2.1.139 или новее. Статья держится механики и модели безопасности. Первая неожиданность в том, что каждый введённый в поле промпт запускает собственную новую сессию: наберёте второй — получите вторую сессию рядом с первой, а не дополнительное указание к первой. Дополнительные указания идут через панель быстрого просмотра, открываемую клавишей Space, где показывается последний вывод или вопрос, ответа на который ждёт сессия, а не вся переписка целиком. Ядро модели безопасности — изоляция через worktree. Перед редактированием любого файла фоновая сессия переходит в изолированный git worktree внутри .claude/worktrees/, поэтому параллельные сессии читают один и тот же checkout, но каждая пишет в свой собственный: чтение общее, запись разделена. Всё, что дотянулось бы до основного checkout, отсекается тремя проверками — правки файлов через Edit, Write и NotebookEdit; рабочие каталоги команд, которые разрешаются в основной checkout или про которые нельзя проверить, что они останутся снаружи; и попытки перенаправить git через git -C, --git-dir, GIT_DIR, GIT_WORK_TREE или через cd, поставленный перед вызовом git. Решение сознательно принято в пользу безопасности: то, что нельзя проверить, не выполняется, и та же защита наследуется каждым subagent, которого породит сессия. При этом стеной уровня ОС это не является: файлы за пределами репозитория и сеть в область действия не входят, а к командам PowerShell применяется только проверка рабочего каталога. Разрешения тоже не выбираются в момент диспетчеризации — они наследуются из defaultMode этого каталога или из permissionMode во фронтматтере диспетчеризованного subagent, а значит, чем свободнее ваша обычная конфигурация, тем больше беспризорных сессий с широкими правами вы создаёте разом. Дальше три вещи утекают из изоляции наружу. Выбор варианта «Да, больше не спрашивать» сохраняет правило в .claude/settings.local.json основного checkout, поэтому оно действует и в основном checkout, и во всех остальных worktree, и переживает удаление того worktree, в котором было принято. Удаление сессии в agent view удаляет вместе с ней созданный Claude worktree, так что незакоммиченная работа исчезает, а Ctrl+X останавливает на первое нажатие и удаляет на второе. А .worktreeinclude копирует попавшие в gitignore файлы вроде .env в каждый новый worktree, умножая ваши учётные данные на число диспетчеризованных сессий. Вдобавок квота расходуется пропорционально параллелизму (десять агентов тратят её примерно в десять раз быстрее), а сессии выполняются локально: они переживают спящий режим, но останавливаются при выключении машины. В конце статья ставит agent view в один ряд с четырьмя официальными способами распараллелить работу — рядом с subagents, командами агентов и динамическими рабочими процессами — и даёт конкретный порядок действий до, во время и после диспетчеризации.

Стоит ли запускать /compact в Claude Code по расписанию? Определяем момент нажатия по официальной документации

Стоит ли запускать /compact в Claude Code по расписанию? Определяем момент нажатия по официальной документации

Многие жмут /compact в Claude Code по правилу вроде «каждые 30 минут» или «как только контекст перевалил за 70%», однако официальная документация рекомендует ориентироваться не на часы и не на проценты, а на паузу в работе: запускайте /compact на естественной границе, например между задачами, а не дожидайтесь, пока автокомпактизация сработает посреди задачи. Эта статья берёт документацию Claude Code по состоянию на 8 августа 2026 года (последний релиз v2.1.226) как первоисточник и разбирает вопрос ручной компактизации именно по спецификации. Начинаем с механики: компактизация идёт в три этапа — отбрасывание старых выводов инструментов, автокомпактизация и ручной /compact, который нажимаете вы. Второй и третий этапы — это одна и та же обработка, поэтому собственное нажатие покупает ровно две вещи: выбор момента и возможность указать, что сохранить. Чем чаще жать, тем больше контекста не экономится. Дальше идёт таблица того, что уцелеет. CLAUDE.md в корне проекта и автоматическая память заново подгружаются с диска, тогда как правила с ключом paths: и вложенные CLAUDE.md в подкаталогах теряются, пока снова не будет прочитан подходящий файл, а тела вызванных навыков подгружаются заново с лимитом в 5000 токенов на навык и 25 000 суммарно, причём первыми отбрасываются самые старые. По расходам: цену компактизации задаёт не размер контекста, а то, прогрет ли кэш промпта. Нажмите её в разгар работы — префикс прочитается из кэша, и это дёшево; нажмите после перерыва, который длиннее времени жизни кэша (час на подписке и пять минут по умолчанию через API-ключ), — и вся история будет обработана заново без кэша, что делает ту же команду максимально дорогой. Далее статья объясняет, как выбирать между /compact, /clear, /rewind, /recap и /context, как команда /autocompact начиная с версии v2.1.221 передвигает точку автоматического срабатывания в диапазоне от 100K до 1M токенов и каков приоритет у четырёх мест, откуда может прийти эта настройка, в чём ловушка переменной окружения, принимающей только целое число без суффиксов, а также что означают и как исправляются два сообщения — Not enough messages to compact. и Autocompact is thrashing: the context refilled to the limit...

Что такое LLM-шлюз (прокси)? Один API для всех провайдеров — гид 2026

Что такое LLM-шлюз (прокси)? Один API для всех провайдеров — гид 2026

Вы построили всё на OpenAI, затем захотели попробовать Claude и сравнить Gemini — и потеряли часы на разных SDK, форматах и обработке ошибок у каждого провайдера. LLM-шлюз (AI-шлюз / LLM-прокси) — это ретранслятор, который вы ставите между приложением и провайдерами: он предоставляет один совместимый с OpenAI API для обращения к любой модели и берёт на себя сквозные задачи — fallback, учёт затрат, виртуальные ключи, кэширование, ограничение частоты и наблюдаемость. В этом гиде: зачем он нужен, что такое шлюз на самом деле, три типа (self-hosted прокси = LiteLLM / hosted = OpenRouter / SDK = Vercel AI SDK), как выбрать среди LiteLLM, OpenRouter и Vercel AI SDK, минимальный код настройки, где меняется лишь эндпоинт, и ограничения — скачок задержки, шлюз как новая точка отказа, комиссии (OpenRouter берёт 5,5% при пополнении), потеря возможностей и приватность.

Что такое песочница Claude Code? Изоляция файловой системы и сети для безопасной автоматизации (2026)

Что такое песочница Claude Code? Изоляция файловой системы и сети для безопасной автоматизации (2026)

Поработайте с Claude Code подольше — и наткнётесь на дилемму: запрос на каждую команду тормозит работу, а отключить их все через обход опасно. Песочница ломает этот бинарный выбор, огораживая на уровне ОС то, к чему можно прикоснуться, так что команды свободно выполняются внутри без запросов, а наружу ничто не выходит. В гайде: две изоляции (файловая система и сеть), старт с /sandbox (macOS работает из коробки, для Linux/WSL2 нужны bubblewrap+socat, нативная Windows не поддерживается), режим auto-allow против обычного, настройка settings.json (allowWrite/denyRead, credentials, allowedDomains), как она дополняет режимы и правила разрешений в качестве третьего слоя, обеспечиваемого ОС, её ограничения (неинспектируемый TLS, Unix-сокеты) и когда стоит взять dev-контейнер или ВМ. Anthropic сообщает, что во внутреннем использовании она сократила число запросов разрешений на 84%.

Как доверить управление AWS ИИ: методы, плюсы и минусы (2026)

Как доверить управление AWS ИИ: методы, плюсы и минусы (2026)

Можно ли передать эксплуатацию AWS искусственному интеллекту? В 2026 году делегировать можно многое. Сама AWS поставляет Amazon Q Developer и Agent Toolkit for AWS (май 2026 — 40+ навыков агента + управляемый AWS MCP Server + плагины), так что ИИ дотягивается от генерации IaC до операций с ресурсами. Это руководство разбивает «делегирование» на три уровня (① генерация кода/IaC, ② эксплуатация/расследование с упором на чтение, ③ автономный агент, реально управляющий AWS), рассматривает основные инструменты (Amazon Q Developer, Agent Toolkit, AWS MCP Server, Terraform MCP, Bedrock AgentCore) — включая путь «со своим инструментом», когда Claude Code или Codex получают AWS CLI для запуска «aws» из shell, — плюсы (быстрый IaC, автоматическая сортировка, идеи по оптимизации затрат, демократизация знаний), а затем самое главное — минусы (разрастание прав IAM, избыток прав как усилитель радиуса поражения ошибок/инъекций промпта, права, переживающие задачу, неконтролируемый рост затрат — с реальными случаями удаления продакшн-БД в 2025-26), на основе официальных материалов AWS и данных вендоров безопасности. Ключевой поворот: вопрос не «может ли он?», а «как делегировать без потери контроля и взрыва счёта» — и то, что сама AWS встроила защитные механизмы IAM, аудит CloudTrail и песочницу в Agent Toolkit, показывает форму ответа. Включает пять принципов (IAM с минимальными привилегиями, одобрение человека для деструктивных операций, наблюдаемость, краткоживущие учётные данные JIT, песочница) и FAQ.

Фреймворки ИИ-агентов, сравнение 2026: LangGraph, CrewAI, AutoGen, OpenAI, Google, Claude — что выбрать?

Фреймворки ИИ-агентов, сравнение 2026: LangGraph, CrewAI, AutoGen, OpenAI, Google, Claude — что выбрать?

Первое препятствие при встраивании ИИ-агента в реальную работу — «на каком фреймворке его собирать». С точки зрения разработчика и того, кто выбирает технологии, статья сравнивает шесть главных фреймворков — LangGraph, CrewAI, AutoGen (вошедший в Microsoft Agent Framework, GA апрель 2026), OpenAI Agents SDK, Google ADK и Claude Agent SDK — по подходу к оркестрации (ориентированный граф / ролевая команда / диалоговый GroupChat / передачи управления / иерархическое дерево / автономный цикл инструментов), языку, кривой обучения, управляемости, зрелости для прода, стоимости токенов и наиболее подходящему сценарию. Ключевая оговорка: фреймворк, «быстрейший для прототипа» (CrewAI), может оказаться самым дорогим в проде — около 3× токенов (41k против 18.5k у LangGraph в одном бенчмарке) и недетерминированный, что плохо подходит для финансов и здравоохранения. Также объясняется, как 2026 год принёс интероперабельность через MCP (инструменты) и A2A (агент-агент), так что агенты из разных фреймворков теперь работают вместе, а привязка ослабла. Включает гид по выбору под задачу и FAQ.

Правила разрешений Claude Code и settings.json: allow / ask / deny

Правила разрешений Claude Code и settings.json: allow / ask / deny

Правила разрешений в Claude Code задают через записи allow / ask / deny в settings.json: что выполняется без запроса, что спрашивает подтверждение, а что запрещено. Разбираем отличие от режимов, приоритет deny → ask → allow, синтаксис Tool(specifier), иерархию настроек и практические рецепты.