惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
T
Tor Project blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Palo Alto Networks Blog
T
The Exploit Database - CXSecurity.com
P
Privacy International News Feed
C
Cybersecurity and Infrastructure Security Agency CISA
MyScale Blog
MyScale Blog
D
DataBreaches.Net
I
Intezer
GbyAI
GbyAI
Jina AI
Jina AI
The GitHub Blog
The GitHub Blog
S
Security @ Cisco Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
NISL@THU
NISL@THU
Project Zero
Project Zero
博客园_首页
Martin Fowler
Martin Fowler
A
About on SuperTechFans
J
Java Code Geeks
AI
AI
WordPress大学
WordPress大学
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
L
LINUX DO - 热门话题
云风的 BLOG
云风的 BLOG
腾讯CDC
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Cisco Blogs
L
LangChain Blog
Google Online Security Blog
Google Online Security Blog
AWS News Blog
AWS News Blog
Help Net Security
Help Net Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
D
Docker
N
Netflix TechBlog - Medium
Know Your Adversary
Know Your Adversary
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Secure Thoughts
H
Heimdal Security Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
O
OpenAI News
S
Security Affairs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
雷峰网
雷峰网
V
Visual Studio Blog
T
Threat Research - Cisco Blogs

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Spring Agent Toolkit: ультимативный набор для вашего AI-агента
Илья Кучмин · 2026-05-18 · via Все публикации подряд на Хабре

Простой

8 мин

9K

AI-агенты уже стали частью повседневной разработки. Сначала это выглядит как магия: формулируешь задачу, получаешь код, тесты, иногда даже готовый PR.

Но довольно быстро приходит осознание:

  • токены улетают слишком быстро;

  • задача выполняется дольше, чем ожидалось;

  • результат не всегда совпадает с тем, что было задумано.

В этой статье разберем, что с этим можно сделать на практике и почему для хорошего результата критически важен правильно подобранный набор инструментов.

Уровень 0. Чат в браузере

Так выглядело начало индустрии — и первый опыт AI для большинства из нас. Первый запрос, первый ответ, первые галлюцинации. Кажется, это было вчера, хотя прошло уже два-три года.

С тех пор чат в браузере прошел заметную эволюцию: модели поумнели, а сами интерфейсы получили полезный инструментарий — от веб-поиска до работы с открытыми источниками. На качестве ответов это сказалось напрямую: меньше фантазий, больше проверяемых фактов и уверенности в результате.

Попросите код для Spring Security с OAuth — в ответ вы получите полноценную конфигурацию для приложения. Вопрос — какого?

Того самого «среднего приложения с GitHub»: на смеси тысяч учебных работ, шаблонов вроде Spring Petclinic и других типовых примеров (вопрос качества пока оставим за скобками).

Возьмем другой пример: попросим чат создать JPA-сущность. И снова никаких проблем.

Класс, поля — всё на месте. И всё вроде нормально, но есть нюанс. Содержит ли код аннотации Lombok, а если содержит, то какие и с какими параметрами? Проставлены ли JPA-аннотации: @Column, @OneToMany, @ManyToMany и т. д.? Сгенерированный код вполне может быть корректным, однако совершенно не соответствовать соглашениям, закрепленным в вашем проекте и компании. И снова это связано с проблемой того самого «среднего приложения с GitHub».

Ситуацию можно улучшить, добавив в контекст чата нужные сведения: приложив к запросу шаблон сущности из проекта, указав ссылку на пример проекта, в котором учтены правила на GitHub. Одним словом: добро пожаловать в prompt engineering.

Однако довольно быстро становится ясно: такой prompt engineering нужен почти для каждого запроса, который вы отправляете в чат. И тут возникает практичный вопрос: если я как разработчик постоянно переключаюсь между IDE и браузером и каждый раз переношу правила, шаблоны кода и версии зависимостей, почему бы не встроить чат прямо в IDE?

Уровень 1. Интеграция чата в IDE

Самое время найти IDE-расширение с AI-функциями. Сегодня такие плагины обычно сразу дают и чат, и агентный режим (к нему вернемся позже). На практике вы получаете автодополнение в позиции курсора, генерацию кода по запросу и чат, где можно явно передавать контекст через ссылки на файл или его фрагмент — чаще всего через @.

Теперь, попросив в чате сгенерировать JPA-сущность и приложив в качестве примера уже существующую, вы с высокой вероятностью получите код, близкий к ожидаемому.

В этот момент легко почувствовать прилив сил: кажется, что продуктивность вышла на новый уровень.

Итак, каждый раз когда появляется новая задача, мы теперь определяем, какие объекты/файлы нужно модифицировать, какие команды выполнить (в терминале). Затем открываем чат и последовательно попросив AI сгенерировать нужный код/команды, добавляя в контекст примеры и референсы.

Размберемся на примере: добавим в приложение Spring Petclinic REST Endpoint возвращающий список домашних животных для по id владельца. Для этого нам потребуется:

  • добавить derived метод в PetRepository

  • создать сервис PetService и метод вызывающий репозиторий

  • создать маппер PetMapper и метод маппинга Pet -> PetDto

  • создать метод в PetRestController принимающий id и возвращающий List

Осталось только попросить AI в чате сгенерировать код для каждого компонента и реаализация завершена.

После нескольких итераций становится очевидно: основная рутина теперь не в написании кода, а в планировании шагов. Естественным образом рождается вопрос — может ли AI сам определить, какие файлы и объекты нужно модифицировать и как?

Как оказалось вполне.

Уровень 2. Агентное программирование

По сложившейся практике агентный режим чаще запускают из терминала, хотя в большинстве AI-плагинов для IDE он тоже уже есть. Чтобы не усложнять старт, установим Claude Code от Anthropic; для начала обычно достаточно базовой подписки за $20 в месяц.

После запуска агента в терминале можно повторить ту же задачу с API и сравнить подходы. В отличие от чат-сценария, здесь агент сам определяет, какие части проекта нужно изменить, и выполняет работу от начала до конца. На выходе часто получается код, сопоставимый с ручной реализацией. Кажется будущее уже наступило.

Значит, пора проверить агента на задаче посложнее. Попросим его добавить в Spring Petclinic учет рабочего расписания ветеринаров и валидацию при создании визита: расписание должно существовать, а время — не пересекаться с уже назначенными приемами. Спустя некоторое время и десятки потраченных токенов мы увидим...

К сожалению, сложно уверенно сказать, что именно мы получим на выходе. В одном случае агент действительно попадет в ожидания, но в другом — предложит решение, которое нас не устроит ни с точки зрения пользовательского сценария, ни по качеству реализации. И, что важно, второй вариант статистически вероятнее, поскольку пространство возможных решений значительно больше пространства тех, что устраивали бы именно вас.

Подробнее вопрос уровней агентного программирования мы разбирали на прямой трансляции Spring АйО и Amplicode:

Возникает вопрос: можно ли как-то помочь агенту?

Уровень 3. Skills

Самое время усилить нашего агента. Для этого у нас есть различные иснтрументы: MCP, Skills, CLAUDE.md/AGENTS.md, SubAgents. Попробуем собрать себе такой набор.

На агрегаторах SkillHub и SkillsMP можно найти более миллиона Skills, которые, кажется, покрывают почти любой сценарий. При таком объеме качество отдельных Skill-ов неизбежно колеблется: скорость выполнения, расход токенов и качество генерации не всегда соответствуют ожиданиям. Тем не менее базовую задачу, ради которой они создавались, большинство из них решает.

Но со временем почти каждый, кто собирает собственный набор, замечает: Skills начинают мешать друг другу. Это известная проблема: агент может подгружать много Skill-ов, и все они работают в общем контексте.

Выход, конечно, есть: можно писать Skills самостоятельно. Anthropic выложил в открытый доступ курс о том, как создавать Skills, а тексты уже подобранных Skill-ов доступны для редактирования. Этот путь не быстрый и включает множество трудностей, в том числе необходимость адаптировать и тестировать весь набор под разные модели.

В этот момент мы обычно приходим к развилке: либо продолжать «есть этот кактус» — вручную собирать набор, разбирать конфликты и поддерживать набор в рабочем состоянии, — либо откатиться к чистому агенту или к агенту с минимальным набором Skill-ов для элементарных операций.

Для тех, кто «давно тут сидит», ситуация может показаться до боли знакомой — именно такую мы могли наблюдать на заре ИТ-индустрии. Вспомните, как мы сначала любовно настраивали Vim и Emacs, а потом переходили на NetBeans и Eclipse с их extension pack на все случаи жизни. Теперь же, взяв новый компьютер, часто достаточно установить IntelliJ IDEA/OpenIDE — и можно сразу начать работать. Похоже, мы всё ещё в начале пути…

Конечно, сейчас никто не может сказать, что будет с IntelliJ IDEA в мире победившего AI, однако к эпохе Eclipse с extension pack всё уже готово. Именно этот переход мы и предлагаем вам совершить, установив Spring Agent Toolkit — набор Skill-ов, MCP и хуков, совместно протестированных и необходимых для разработки Spring-приложений с помощью агентов. Ну как, захотелось?

Spring Agent Toolkit: «костюм железного человека» для агента

Это комплексное решение, установив которое вы научите своего агента:

  • анализировать Spring-приложение с учётом архитектуры (в том числе DDD)

  • понимать Spring Data JPA: настройка модели, работа с репозиториями и транзакциями

  • работать с DTO и мапперами (MapStruct, ModelMapper)

  • конфигурировать Spring Security

  • создавать CRUD REST и настраивать Spring MVC

  • отлаживать приложение с помощью агента

  • и не только: возможности постоянно расширяются

И всё это устанавливается практически одной кнопкой (ну хорошо, двумя).

Spring Agent Toolkit: как установить

Если коротко:

  1. Устанавливаем плагин Amplicode в IDE (страница загрузки).

  2. После перезапуска IDE на Welcome screen нажимаем кнопку «Настроить Spring Agent».

Полную инструкцию по установке смотрите в документации Spring Agent.

Рекомендую сейчас остановиться, поставить себе Toolkit и дать агенту задачу на реализацию — а пока агент её выполняет, можно дочитать и статью.

А теперь — немного подробнее о том, что входит в состав Spring Agent Toolkit.

Spring MCP

Данный сервер поставляется вместе с плагином Amplicode, который вы устанавливаете в IDEA. Он решает две задачи.

  1. Первая — дать агенту возможность анализировать приложение и взаимодействовать с ним в парадигме Spring-фреймворка. Например, с помощью этого MCP агент сможет посмотреть структуру приложения, связи бина с другими компонентами и получить доменную модель.

  2. Вторая — дать авторам и разработчикам Skill-ов (в том числе нам самим — команде Spring Agent Toolkit) доступ к заранее структурированной и консолидированной информации о вашем приложении. Это значит, что если, например, разработчику в рамках Skill-а нужно построить дерево зависимостей сущности, то сделать это можно за несколько последовательных вызовов MCP. С помощью Spring MCP авторы Skill-ов могут запускать и отлаживать приложение, а также запускать тесты и скрипты Connekt.

Ниже — лишь малая часть доступных функций:

  • list_spring_beans_tool, list_all_domain_entities, list_project_endpoints — список бинов, сущностей и эндпоинтов, в том числе в библиотеках и стартерах

  • get_bean_injection_info, get_entity_details, get_endpoint_info — доступ к структурированной информации о связях бина и структуре сущностей

  • create_migration_script — генерация миграционных скриптов

  • read_class_file — доступ к содержимому файлов в зависимостях

Полный список можно посмотреть после подключения MCP к агенту.

Spring Skills

Над этим набором работала команда, которая не только более десяти лет разрабатывает на Spring, но и последние пять лет создаёт инструменты в IntelliJ IDEA для разработчиков по всему миру (Amplicode, JPA Buddy). Skills в наборе вобрали в себя накопленную за годы экспертизу и обратную связь. Однако мало собрать Skills, в которых сведены подряд все лучшие практики: важно, чтобы они применялись уместно и не мешали разработке именно вашего приложения.

Большое спасибо экспертам из Spring АйО за то, что помогали собирать фидбек по использованию Spring Skills и делились своими мыслями касаемо того, какие из частей работы со Spring-экосистемой хотелось бы сильнее всего видеть в формате Skills.

В будущем открытый репозиторий будет пополняться скиллами от экспертов Spring АйО и разработчиков Amplicode.

Поэтому Skills из набора часто сначала смотрят на текущие паттерны применения технологии в вашем проекте и только потом добавляют своё экспертное видение. В результате получается не всегда «идеальный», зато подходящий вашему приложению код. Однако если результат генерации содержит явные проблемы, Skill подскажет агенту, что стоит указать на них разработчику и предложить возможные исправления.

Кроме того, все Skills тестируются на совместную работу: это значит, что в них нет взаимных противоречий и что они подключаются только там, где действительно нужны. Если же агент загрузил несколько Skill-ов сразу, проверяется, что их совместная работа не мешает достижению того результата, который закладывался при разработке этих Skill-ов.

Вот только некоторые из них:

  • Spring Planning — создаёт структурированный план реализации с интерактивным сбором контекста, выбором архитектуры и декомпозицией задач

  • Spring Explore — исследует приложение Spring Boot и формирует контекст проекта: технологический стек, структуру модулей, доменные сущности, REST-эндпоинты

  • Spring Data JPA — правила и рекомендации по работе со Spring Data JPA: создание и изменение сущностей, репозиториев, проекций и транзакционного кода

  • CRUD REST Controller — создаёт Spring REST-контроллер с CRUD-эндпоинтами

  • Java Debug — отладка приложений через отладчик IntelliJ IDEA: брейкпоинты, debug-сессии, пошаговое выполнение, вычисление выражений, инспекция состояния во время выполнения

Полный список Skill-ов — в репозитории на GitHub; состав набора постоянно пополняется.

Заключение

И это ещё не всё: в нашем бэклоге — огромное число задач, как связанных с написанием новых Skill-ов, так и с улучшением существующих. Мы ценим обратную связь и поощряем активных участников бесплатными лицензиями, мерч-боксами и другими подарками.

Пробуйте Spring Agent Toolkit, присылайте обратную связь и рассказывайте о своём опыте использования в социальных сетях. А больше про разработку на Java с AI-агентами читайте в нашем ТГК-канале.