AI для Разработки — Claude | Cursor | Copilot
前往频道在 Telegram
100+ AI-источников → лучшие инструменты для разработчиков. Cursor, Copilot, Claude API — обзоры, туториалы, новинки. Вопросы: @aiskladadmin
显示更多942
订阅者
+424 小时
+187 天
+830 天
帖子存档
Сделали SEO-блог на 84 страницы через Claude API. За 3 дня.
Запускали SAT-платформу для школьников СНГ — нужно было SEO сразу на трёх языках (RU/KK/EN). Двух копирайтеров + переводчика в штат — это убить бюджет до запуска. Так что пошли в автоматизацию.
Результат: 28 статей × 3 локали = 84 файла, всё через Claude API. От первой строки до индексации в Google и Яндексе — 3 дня.
Главный плот-твист — статьи не в Markdown. Каждая лежит как
.ts файл с типизированным объектом. Забыл readingTime или опечатался в locale — IDE подсветит, до билда дело не дойдёт. С Markdown frontmatter такое ловится уже в проде.
AI пишет 70%, остальные 30% — человек: вычитка фактов, локализация идиом, финальные правки. Без этой части статьи уходят в low-quality индекс почти гарантированно.
Этический поворот: в robots.txt запрещены GPTBot и компания. Сами через AI генерим — другим не отдаём, такие дела.
Разбор на Хабре
🔥 — забираю стек
👀 — а Google не забанит
@ai_for_devLangGraph interrupt: технический разбор HITL для AI-агентов
Кейс: AI-ассистент для торговли на T-Invest API, где цена ошибки LLM = реальные деньги. Автор реализует GuardRails через Human-In-The-Loop.
Почему не Chain-пайплайн: линейная цепочка не позволяет корректно прервать выполнение и вернуться в ту же точку. LangGraph даёт ориентированные графы с циклами, явное управление состоянием и встроенный механизм паузы.
Как работает interrupt:
— LangGraph вставляет хук в граф
— при достижении узла выполнение прерывается
— состояние сериализуется в Checkpointer
— управление уходит во внешний канал (Chainlit / Telegram / CLI)
— после подтверждения граф возобновляется с того же state
Реализация в ноде tool_node:
from langgraph.types import interrupt
async def tool_node(state: MessagesState):
tool_call = state['messages'][-1].tool_calls[0]
name = tool_call['name']
arg_ = tool_call['args']
if name in ('buy', 'sale'):
# маппинг figi → ticker для UI
# вызов interrupt с payload подтверждения
Подтверждение выводится в Chainlit, пользователь принимает решение, граф продолжает исполнение.
Полный код и пояснения
⚡ — interrupt + Checkpointer = база
🤔 — а где здесь race condition
@ai_for_devСоло-дев на AI за 700 ₽ в месяц — без Copilot и без облака
Чувак собрал стек, который реально работает на домашнем ПК:
🔧 Ollama — крутишь LLM локально, бесплатно
🔧 Open WebUI — свой чат с RAG и загрузкой файлов
🔧 OpenHands — агент, который сам пишет код, сам тестирует, сам коммитит
Минималка — 8 ГБ RAM и процессор средней руки. Даже на GTX 1060 тянет. Qwen 2.5 Coder 7B и DeepSeek Coder 6.7B — бесплатные модели, которые закрывают 70–80% задач по качеству.
Для деплоя MVP — VPS за 500 ₽, Docker, GitHub Actions. Код никуда не утекает, от санкций не зависишь.
Главный посыл: проблема не в деньгах, а в том, что лень поднять это за вечер.
Статья с пошаговой инструкцией
🔥 — OpenHands надо затестить
🤷 — на 7B далеко не уедешь
@ai_for_dev
microGPT в железо: 50K токенов/сек на FPGA
Ребята взяли microGPT от Карпатого и зашили его прямо в ПЛИС. Никакого PyTorch, никакой видеокарты — просто плата DE1-SoC и SystemVerilog.
Самый сок — как они уложили трансформер в железо:
• Q4.12 fixed-point вместо float (16 бит, веса в ROM через
$readmemh)
• Один MatVec-блок на 16 каналов прокручивают по очереди для Q/K/V, MLP и LM-головы — экономия места
• Attention превратился в FSM-расписание: посчитал dot-product, нашёл max, аппроксимировал exp, поделил, смешал V
И да, 50 000+ токенов в секунду — это не опечатка.
В репе всё для повторения: RTL, ModelSim-тестбенчи, экспорт весов, JTAG-инференс. Можно прошить плату и реально пообщаться с моделью через свитчи и LED-индикаторы.
GitHub
🤩 — безумцы в хорошем смысле
👀 — где бы плату найти
@ai_for_devRuStore натравили AI на рутину безопасников — и вот что вышло
Ребята из RuStore устали от того, что ИБ-инженеры тратят кучу времени на одно и то же: разбор задач, проверка MR на типовые дыры, прогон DAST. И сделали три AI-инструмента:
🔹 AI-сортировщик задач — разбирает входящий поток security check-задач, отсеивает то, что не требует глубокого анализа
🔹 AI Code Review — сидит в пайплайне и ловит типовые уязвимости в merge request. Не заменяет ревьюера, но экономит время на очевидном
🔹 AI DAST — мультиагентный «робот-пентестер» уровня джуна. Автоматом прогоняет динамическое тестирование
Главное — AI нигде не решает сам. Он делает черновую работу, а инженер разбирает только то, что реально требует мозгов.
Статья на Хабре
🔥 — хочу такое в свой CI
😐 — джун-пентестер из AI — смело
@ai_for_dev
Пакеты SAP npm заражены инфостилером
Неприятная новость для всех, кто работает с SAP CAP: в официальных пакетах SAP на npm нашли вредоносный код, который выгребает у разработчиков всё подряд.
Под ударом конкретные версии:
-
@cap-js/sqlite 2.2.2
- @cap-js/postgres 2.2.2
- @cap-js/db-service 2.10.1
- mbt 1.2.48
Хук preinstall запускает скрипт, который собирает токены npm и GitHub, SSH-ключи, креды AWS/Azure/GCP, kubeconfig и даже читает память CI-раннеров через встроенный Python. Всё шифруется (RSA-OAEP-4096 + AES-256-GCM) и заливается в публичные репозитории GitHub под учёткой самой жертвы — изящный обход типового мониторинга исходящего трафика.
Самое неприятное — самораспространение: украденными токенами малварь модифицирует другие пакеты и репы, к которым у жертвы есть доступ записи.
Нашли исследователи из Aikido и Socket. Атрибуция — группа TeamPCP, известная по атакам на Trivy, Checkmarx, Bitwarden и LiteLLM.
Если в lock-файле эти версии — стоит срочно ротировать секреты в окружении сборки.
😐 — пошёл ротировать токены
👀 — проверю package-lock
@ai_for_devКонтекст для агента в одну команду — SocratiCode
Если Cursor или Claude Code иногда теряются в большом проекте и генерят странное «потому что не видят всю кодовую базу» — есть лекарство.
npx -y socraticodeИ всё. Никакой установки, никакой возни с конфигом. Движок индексирует проект и кормит агенту структурированный контекст всего репо. Открытый исходник под AGPL-3.0. Из коробки заводится в Cursor, VS Code, Claude Code — кнопки установки прямо в README. Автор обещает работу «в 30 раз лучше». Цифру оставим на его совести, но идея здравая: давать LLM весь репозиторий, а не пять открытых вкладок и надежду. 🎉 — npx и поехали 👀 — попробую на пет-проекте @ai_for_dev
Сепаратор для логов: убираем INFO-шум перед отправкой в Claude
Знакомая боль: сервис упал, открываешь лог — 48k строк, среди них 5000 одинаковых
GET /status 200 OK и одна критичная ошибка где-то посередине. Модель тонет в шуме, ты платишь за пустые токены, баг ищется хуже.
Чувак на Хабре выкатил logzip — берёт повторяющиеся куски, выносит в легенду наверху, в самом логе оставляет короткие маркеры. На выходе текст, который остаётся человекочитаемым, но весит в разы меньше.
Почему не grep/gzip:
- gzip = бинарь, Claude такое не ест
- grep режет контекст до и после ошибки — модель не видит, что было за минуту до фейла
- logzip держит смысл аномалий и сохраняет таймлайн
Сжатие до 80% на типичных логах. Идея вдохновлена этой статьёй, пост автора библиотеки.
🔥 — пойду прикручивать к пайплайну
👀 — а мне grep + sed хватает
@ai_for_devАгенты — это всё тот же софт, просто бизнес-логика теперь галлюцинирует
Отличная статья о том, почему ваш AI-агент разваливается в проде. Спойлер: потому что вы забыли про всё, кроме самого агента.
Автор раскладывает агентный софт на 5 слоёв:
🔹 Логика агента — модель, промпты, инструменты, наблюдаемость
🔹 Данные — «память» агента это просто данные, проектируйте как данные
🔹 Безопасность — read-only это не промпт-инструкция, а конфиг инструмента. А утечка контекста между юзерами — не баг, а data breach
🔹 Интерфейсы — Slack-юзер ≠ юзер продукта ≠ другой агент через MCP
🔹 Инфраструктура — как запускать и масштабировать всё это
Мысль, которую стоит запомнить: код-агенты снизили порог входа в код, но не снизили требования к продакшну. Системная инженерия не отменяется тем, что у вас теперь LLM вместо if-else.
Читать целиком
🔥 — в закладки и команде скинуть
🤷 — капитан очевидность, но ок
@ai_for_dev
Харнес закрытый — память чужая
Все сейчас строят агентов через agent harness'ы — Claude Code, Codex, OpenCode и прочие. И вот в чём подвох: память агента живёт внутри харнеса. Это не отдельный сервис, который можно подключить сбоку.
Контекст сообщений, результаты вызова инструментов, файлы настроек типа CLAUDE.md, межсессионная память — всем этим рулит харнес. Как метко сказала Сара Вудерс: просить «встроить память в харнес» — всё равно что просить «встроить вождение в автомобиль». Это и есть его работа.
А теперь вопрос: если ваш харнес закрытый и за проприетарным API — кто владеет памятью вашего агента? Правильно, не вы. И это колоссальный vendor lock-in.
Кстати, модели не заменят оркестрацию. Claude Code — 512 тысяч строк кода. Даже Anthropic не верит, что модель сама справится без обвязки. Web search в API — это тоже харнес, просто лёгкий.
Мораль: хотите владеть агентом — владейте харнесом. Открытым.
🔥 — open source или смерть
🤷 — да ладно, всё равно всё на Claude Code
@ai_for_dev
PR вроде ок, а ревью буксует — знакомо?
Команда ушла в AI-first, и в продукт полетели PR от людей с разной глубиной контекста: часть из соседних команд, часть написана в обнимку с Claude/Copilot. Код читается, синтаксис чистый, а вопрос всё равно висит — это вообще нормальное изменение для нашей кодовой базы?
Классика жанра:
- if (!user.hasScope('payments:write')) return deny();
+ if (!user.isAuthenticated) return deny();
Формально код не сломан. По смыслу — кто-то тихонько переписал политику доступа к платежам. Без контекста продукта не отличишь рефакторинг от дыры.
Автор собрал PRShield — MVP, который не «ищет всё плохое» и не пишет summary по diff. Он отвечает на один вопрос: что команда должна сделать с этим PR прямо сейчас. Мержить, звать эксперта зоны или блокировать.
Подробности — в статье на Хабре.
🔥 — внедрю в команду
🤡 — у нас ревью = rubber stamp
@ai_for_devTechnology Radar Vol. 34: важна обвязка, а не модель
Thoughtworks в 34-м выпуске радара формулирует то, что уже видно по инцидентам в проде: критерии оценки агентных инструментов размываются быстрее, чем сами инструменты созревают. Один и тот же подход называют то разработкой по спецификации, то оркестрацией агентов, то композицией навыков — суть теряется в терминологии.
Четыре сигнала выпуска:
- оценивать технологии в мире агентов стало сложнее;
- возврат к базовым инженерным принципам;
- permission-hungry agents — широкие IAM-права у coding agents = новая поверхность атаки;
- необходимость ограничивать coding agents через песочницы и политики.
Мартин Фаулер дополняет картину harness engineering: Agent = Model + Harness. Обвязка делится на:
- guides (упреждающий контроль) — системный промпт, retrieval, политики;
- sensors (обратная связь) — линтеры, тесты, LLM-as-judge.
И на два типа исполнения: детерминированный (CPU, дёшево, надёжно) vs инференсный (GPU, дороже, недетерминирован).
Разбор на Хабре.
⚡ — пора строить guards
👀 — у нас sensors слабые
@ai_for_dev
Как писать Agents.md, чтобы агент его реально читал
Augment погоняли свой бенчмарк и поделились что зашло, а что нет. Если ты тимлид и пишешь стандарты для AI-агентов — забирай:
🔥 Структурируй как скилл: общее наверху, детали в отдельных файлах. Длинная простыня хуже 100-150 строк с прогрессивным раскрытием.
🔥 Нумерованные шаги для сложных воркфлоу — банально, но работает лучше всего.
🔥 Decision tables когда в коде несколько способов решить одну задачу — таблица с вопросами и весами.
🔥 Сниппеты из реального кода заставляют агента переиспользовать паттерны, а не сочинять с нуля.
🔥 К каждому don't обязательно do — иначе агент не понимает альтернативы.
🔥 Архитектуру детально расписывать не надо, даже во вложенных файлах.
🔥 Секции dos/donts длиннее 15 пунктов превращаются в шум.
В общем, Agents.md — это новый CONTRIBUTING.md, и его качество напрямую влияет на скорость команды.
👏 — мой Agents.md разбух
😁 — 100 строк, сейчас будет
@ai_for_dev
SSC: Markdown-спека как исходный язык компилятора
Устойчивый разрыв между описанием намерения системы (требования, бизнес-правила, примеры поведения) и исполняемым кодом. Два классических ответа:
1. Формальные методы — TLA+, FOL, LTL. Дают строгую проверяемость, но требуют переписывания знаний в формальный язык — высокий порог входа.
2. LLM-генерация — модель пишет код по описанию на естественном языке. Проблема: переход «спецификация → код» нестрогий, невоспроизводимый и не объяснимый как последовательность правил.
Подход Semantic Spec Compilation берёт классическую теорию трансляторов и применяет её к Markdown. Спецификация трактуется как исходный язык с лексикой, грамматикой и семантикой; компилятор обеспечивает воспроизводимый переход к целевому коду.
Релевантная литература: Doc2Spec (2026) — мультиагентная индукция грамматики из текстовых правил; Formal Specs from NL (2022) — дообучение языковых моделей на regex/FOL/LTL. Практическая аналогия — Gherkin/Cucumber для BDD.
⚡ — формальные методы возвращаются
🤔 — где готовый инструмент?
@ai_for_dev
Сбер бросает форк LangChain — GigaChain переезжает на совместимость
Свежее интервью на Хабре с техлидом GigaChain Константином Крестниковым. Если кратко:
— Форкнули LangChain, потому что нужен был SDK под GigaChat. Дальше upstream переехал на модульную архитектуру с отдельным хранилищем промптов, крупные вендоры стали лепить свои пакеты совместимости. Жить с форком — стрелять себе в ногу при каждом релизе.
— Старые LangChain-проекты теперь мигрируют на GigaChat почти без правок — поменял зависимости и поехали.
— Прикольный момент: поддержку GigaChat в LlamaIndex добавил случайный энтузиаст. Опенсорс в чистом виде.
Мораль для тех, кто пилит SDK: не воюй с теми, кто пишет совместимый код, и комьюнити сделает половину работы за тебя.
🔥 — здравая стратегия
😎 — PR от прохожего
@ai_for_dev
LLM-платформа: новые векторы vs старая боль — Docker daemon на 2375
Аудит RAG-сервиса показал занятное: эзотерические векторы (SSRF через user-controlled model host, prompt injection, HTTP smuggling, CVE десериализации) не дали результата за две недели. Точка входа — Docker API на порту 2375 без TLS и аутентификации. Один
curl /containers/json → ENV всех контейнеров → ключи Anthropic с биллингом $100k+.
Архитектура утечки:
Пользователь → API → Прокси → Evaluate (ключи) → Worker → api.anthropic.com
↕
PostgreSQL (пул ключей plain text)
Специфика LLM-платформ:
JWT forgery — дефолтный секрет в продакшене
SSRF через LLM-провайдер — выбор хоста модели = URL под управлением пользователя
Canary injection — подмена ответов worker-узла
Пул ключей в PG plain text — извлекается, передаётся между сервисами, оседает в RSS процесса
Чеклист самопроверки: Docker API за mutual TLS, секреты через Vault/Secrets Manager (не ENV), сегментация между proxy/evaluate/worker, ротация JWT-секрета. Полный разбор на Habr.
✍️ — добавил в чеклист
😐 — открыли netstat
@ai_for_dev72% разрабов больше не пишут код руками
Такие цифры приводит Дмитрий Иванов из SourceCraft — полная статья на «Компьютерре». Мы теперь скорее операторы системы: ставим задачи, настраиваем агентов, ловим их за руку.
Что по факту:
• Рутину (бойлерплейт, рефакторинг) скидываем агенту и не паримся
• В архитектуре и хитрых багах человек всё ещё рулит — агенты тонут
• Один агент = слабо. Связка из нескольких с разными ролями = вот это уже работает
• Всё решают нюансы промптов и выбор инструмента под задачу
Короче, тренд понятен: учимся не писать код, а дирижировать.
🤔 — пора учиться дирижировать
😎 — давно так живу
@ai_for_dev
Когда AI-ассистент переписывает половину функции вместо одной строки
Знакомо? Просишь Cursor или Copilot поправить off-by-one, а получаешь diff на 200 строк: новые helper-функции, переименованные переменные, добавленная валидация ввода и заодно сигнатура поменялась. Тесты проходят, но код выглядит как чужой.
Автор статьи называет это проблемой избыточной редактуры — модель функционально решает задачу, но структурно переписывает то, что трогать не просили.
Пример из поста: GPT-5.4 на задаче поменять
range(len(x) - 1) на range(len(x)) накрутил проверки на None, np.asarray, маскирование и переписал логику графиков. Одна строка превратилась в простыню.
Главная боль не в коде, а в ревью. Ревьюер должен понять, что и зачем поменялось. Когда модель переписывает функцию целиком — даже корректно — ревью становится в разы сложнее.
Разбор на Habr + код на GitHub.
🔥 — каждый день вижу
👀 — пойду читать
@ai_for_devИИ добрался до Ubuntu
Искусственный интеллект докатился и до Linux — тред на официальном форуме был настолько жарким, что модераторам пришлось включать медленный режим. Canonical решил, что нейросетям пора жить в дистрибутиве.
Что будут пилить:
— Распознавание речи и TTS через локальные модели поверх PulseAudio/PipeWire, с поддержкой GPU/NPU. Запускается по запросу, в памяти постоянно не висит.
— Агенты в системе. Прикинь: сломалось что-то — агент сам идёт в
journalctl, ищет аномалии, смотрит netplan и systemd, и выдаёт готовую команду на фикс. Или собирает отчёт по нагрузке за неделю одной кнопкой.
В теории звучит как мечта DevOps-а: слой автоматизации, который раньше требовал кучу bash-скриптов, теперь собирается на лету. Главное чтобы агент не решил, что лучшая оптимизация системы — это rm -rf /.
🤡 — agent сделал rm -rf
🤔 — а что с приватностью
@ai_for_devPyPy догоняет CPython там, где раньше сливал
Вышел PyPy 7.3.22 — и в нём наконец-то закрыли пару болезненных мест, из-за которых приходилось откатываться обратно на CPython.
Что под капотом:
— пофиксили старый баг в JIT, который вылезал на оптимизациях инстансов
— меньше странных расхождений со stdlib CPython
— новый
_pickle на RPython, который реально летает
А теперь самое вкусное:
— pickle: раньше был в 5.7 раза медленнее CPython, теперь только в 1.6 раза
— json: был медленнее, теперь быстрее CPython (~0.7x)
Бонусом — ForkingPickler в multiprocessing тоже подтянули, так что обмен объектами между процессами PyPy стал заметно бодрее.
Кому стоит присмотреться:
— у тебя много чистого Python без C-расширений
— CPU-bound задачи
— сервисы, которые крутятся часами и дают JIT разогнаться
🔥 — пойду гонять бенчмарки
👀 — а у меня всё на C-расширениях
@ai_for_dev