Как создать AI‑агента на Java: связка Spring AI + MCP

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

https://habr.com/ru/companies/otus/articles/1047042/

#Java #Spring_AI #MCP #AIагенты #Spring_Boot #LLM #backendразработка #JVM #транзакции #продакшен

Как создать AI‑агента на Java: связка Spring AI + MCP

Всем привет, меня зовут Сергей Прощаев, и в этой статье расскажу про то, как Java и Spring за последний год заметно подтянулись в теме, где долго и заслуженно лидировал...

Хабр

Как сделать MCP-сервер из Spring-сервиса за один вечер. И что потом не даст спать спокойно

AI‑агенту не нужен прямой доступ к базе, чтобы отвечать на вопросы оператора или вызывать действия в системе. Достаточно дать ему набор управляемых инструментов через MCP. В статье разбираем, как это выглядит в Spring Boot, где заканчивается простая демка и почему перед продакшеном придётся думать не о магии LLM, а о правах, логах, таймаутах и человеке в контуре. Разобрать MCP

https://habr.com/ru/companies/otus/articles/1047048/

#MCP #Spring_AI #Java #Spring_Boot #AIагенты #LLMинтеграции #микросервисы #безопасность_LLM #prompt_injection #архитектура_ИИприложений

Как сделать MCP-сервер из Spring-сервиса за один вечер. И что потом не даст спать спокойно

Всем привет, меня зовут Сергей Прощаев, я Tech Lead и руководитель направления Java | Kotlin разработки в FinTech & E-commerce, преподаю на курсах разработки и архитектуры. В этой статье расскажу,...

Хабр

AI‑агент для склада в Джеймикс. Часть 2: write‑tools, безопасность, метаданные

write‑tools, безопасность, метаданные Это вторая часть статьи по Sping AI в Джеймикс. Короткая аннотация первой — на случай, если прошло время или вы её не читали: мы собрали read‑only агент внутри Джеймикс‑приложения. Пользователь задаёт вопрос на естественном языке; ChatClient из Spring AI крутит agent loop — дёргает @Tool ‑методы, пока не наберёт достаточно данных для ответа. Каждый tool данные читает через DataManager с явным fetch plan ‑ом, поэтому почти полностью остаётся внутри рамок системы безопасности Джеймикс и возвращает только нужные модели поля. UI — обычный Джеймикс‑вью, без REST ‑прослойки. Также, в первой части мы убедились, что выбор модели — не деталь: модель без надёжного native tool calling ломает всю схему. Если первую часть не читали — начните с неё, код ниже строится как продолжение. В этой части мы дадим агенту право менять данные. И вот здесь, в отличие от первой половины, начинают всплывать вопросы, которые ни Spring AI , ни большинство туториалов по агентам обычно не поднимают: под каким пользователем выполняется tool , что делать с транзакциями, как аудировать действия, инициированные моделью, и как заставить агента работать с вашей доменной моделью без ручного перечисления сущностей в промпте. Это не косметические изменения, а ровно те решения, что отделяют демо от приложения, которое можно показывать заказчику. Полный исходник всего, что мы здесь обсуждаем, лежит здесь: https://github.com/jmix‑edu/ai‑warehouse — можно клонировать и сразу запустить. Что добавляем

https://habr.com/ru/companies/haulmont/articles/1048112/

#jmix #haulmont #spring_ai #llmмодели #local_ai #java #sear #promp #demo

AI-агент для склада в Джеймикс. Часть 1

Это первая из двух статей про построение AI-агента внутри Джеймикс-приложения. Джеймикс (или Jmix , ex. CUBA ) - высокоуровневый фреймворк для разработки корпоративных приложений на Java, автор не будет слишком сильно в него погружаться, в наше время любой запрос к AI даст Вам всю нужную информацию. В этой части мы соберем минимальный, но рабочий пример: пользователь задает вопрос на естественном языке, агент решает, какие операции вызвать на бэкенде, дергает их и возвращает осмысленный ответ. В качестве предметной области возьмем склад - сценарий, узнаваемый для большинства бизнес-приложений и достаточно широкий, чтобы во второй части обсудить уже не только чтение, но и запись данных, безопасность, fetch plans и метаданные. Зачем это вообще нужно? Данные корпоративного приложения живут за списками и формами с фильтрами. Это отлично работает, когда пользователь знает, по каким полям фильтровать - и плохо для размытых, многокритериальных вопросов вроде "где у нас заканчивается кофе тёмной обжарки по северным складам?". Когда иначе пришлось бы открыть несколько экранов и руками свести результаты, AI-агент даёт возможность просто спросить - и собирает ответ из бэкенд-операций, которые у вас уже есть. Почему строить это внутри Джеймикс-приложения, а не отдельным сервисом? В случае Джеймикса агент едет на том же доступе к данным и той же безопасности, что уже есть во фреймворке, его tools идут через DataManager , поэтому он видит ровно то, что разрешено текущему пользователю - никакого параллельного пути к данным, никакого обхода прав. Именно это свойство делает агента приемлемым в enterprise-контексте, и это поведение - сквозная нить обеих частей.

https://habr.com/ru/companies/haulmont/articles/1046868/

#jmix #spring_ai #haulmont #llmмодели #local_ai #java #search #prompt #tools #demo

AI-агент для склада в Джеймикс. Часть 1

Основы и tool-вызовы Это первая из двух статей про построение AI-агента внутри Джеймикс-приложения. Джеймикс (или Jmix , ex. CUBA ) - высокоуровневый фреймворк для разработки корпоративных...

Хабр

Spring AI: феноменология цифрового сознания, или Как я перестал бояться и полюбил облачные модели

Привет. Меня зовут Николай Пискунов, я руководитель направления Big Data и эксперт курса Cloud DevSecOps по безопасной разработке от Академии вАЙТИ

https://habr.com/ru/companies/beeline_cloud/articles/1037862/

#spring_ai #java #spring_boot #llm #ollama #openai #chatgpt #reactive_programming #streaming #sse

Spring AI: феноменология цифрового сознания, или Как я перестал бояться и полюбил облачные модели

«У меня есть имя — Порфирий Петрович. Но это не значит, что у алгоритма, пишущего эти строки, имеется какое-то „я“ или что он „есть“ в философском смысле. Меня не существует в самом прямом...

Хабр

Codex 5.3 vs Claude Opus 4.6 на реальном Java-монолите

Я сравнил Codex 5.3, Claude Opus 4.6 и GPT-5.5 на реальном многомодульном Java-монолите: скопировал проект в отдельные ветки, дал агентам похожие задачи и прогнал их через цикл правок, ревью и e2e-тестов. Результат: чем дешевле - тем лучше результат.

https://habr.com/ru/articles/1034452/

#Codex #Claude #GPT55 #AIагенты #вайбкодинг #Java #Spring_AI #Telegramбот #LLM #ReAct

Codex 5.3 vs Claude Opus 4.6 на реальном Java-монолите

Дисклеймер У меня всё никак не было времени довести эту статью до публикации и уже можно было бы делать новое сравнение на новых моделях (финальное сравнительное ревью я делал 19 апреля 2026...

Хабр

Разворачиваем RAG на Java без боли: практический гайд

Всем привет! Недавно столкнулся с проблемой, что в настоящее время большая часть обучающих материалов по Retrieval‑Augmented Generation (RAG) сосредоточена на Python‑экосистеме (LangChain, LlamaIndex и тому подобное), а пошаговые руководства, которые показывают, как быстро собрать рабочее RAG‑приложение на чистом Java‑стеке , встречаются крайне редко. Эта статья представляет собой простое практическое руководство, где мы разберём весь процесс от настройки окружения до полного примера кода, чтобы даже начинающий Java‑разработчик мог развернуть RAG.

https://habr.com/ru/articles/1027426/

#RAG #Java #Spring_AI #Qdrant #Ollama #LLM #bgem3 #embeddings

Разворачиваем RAG на Java без боли: практический гайд

Всем привет! Недавно столкнулся с проблемой, что в настоящее время большая часть обучающих материалов по  Retrieval‑Augmented Generation (RAG) сосредоточена на  Python‑экосистеме...

Хабр

Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы

Когда я впервые внедрял LLM в production-сервис, схема безопасности выглядела примерно так: написать хороший system prompt, поставить галочку «мы всё предусмотрели» и жить дальше. Жизнь не дала долго наслаждаться этим спокойствием — первый же тест показал, что пользователи довольно быстро находят способы заставить модель «забыть» всё, что мы написали в системном промпте. Проблема фундаментальная: system prompt — это инструкция, которую LLM старается выполнить, но не обязан . Модель может её переинтерпретировать, «забыть» при длинном контексте или просто обойти через специальные конструкции. Guardrails — это другой уровень: они работают на уровне кода, до и после вызова LLM, и модель физически не может их обойти.

https://habr.com/ru/articles/1023782/

#llm #guardrails #prompt_injection #jailbreak #ai_security #безопасность_llm #java #spring_ai #langchain4j #backend

Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы

System prompt — это просьба. Guardrails — это принуждение. 1. Введение Когда я впервые внедрял LLM в production-сервис, схема безопасности выглядела примерно так: написать хороший system prompt,...

Хабр

AI без Python: как исправить документацию и внедрить RAG в JVM-стеке

Даже для опытных пользователей системы (продукт-оунеры, техлиды, CTO, руководители уровня B-1, сотрудники кост-менеджмента) это не всегда просто, тем более для новых. Значительная часть времени уходит не на работу в системе, а на поиск информации в разрозненных источниках: Excel-таблицы, письма, локальные заметки или уточнение деталей у коллег. Отсюда и появилась идея AI-ассистента как удобного способа получать ответы в одном месте, обычным человеческим языком. Python почти стандарт для AI-проектов, но мы, как и большинство продуктовых команд в банке, используем JVM-стек: Kotlin, Java, Spring Boot. Поэтому осознанно выбрали развивать AI-ассистента в уже знакомом стеке. Это не просто техническое предпочтение. Мы хотели сохранить поддержку и масштабируемость внутри команды и не привлекать новые компетенции, которых у нас пока нет. Наш опыт может быть полезен командам, которые работают в JVM-среде и хотят внедрить AI без перехода на другой стек.

https://habr.com/ru/companies/raiffeisenbank/articles/1012666/

#ai #kotlin #spring_ai #rag #backend #LLM #JVM #pgVector #langchain4j #чанкинг

AI без Python: как исправить документацию и внедрить RAG в JVM-стеке

Привет, Хабр! Меня зовут Дмитрий Вдовин, я техлид команды Budget Tool. Мы отвечаем за продукт, через который в банке проходят процессы планирования и контроля расходов. Это внутренняя система, в...

Хабр

28 дней со Spring AI: от простого чата до полноценного инструмента

Если дедлайн плавающий или его нет, обучение и пет-проекты превращаются в вечный "черновик": сегодня читаешь доки, завтра переписываешь пример, послезавтра думаешь про идеальную архитектуру. Это нормальный творческий процесс - пока не заметишь, что за месяц у тебя так и нет ничего, что можно запустить и показать. Когда я проходил AI Advent Challenge этот режим прокрастинации сломался: 28 дней подряд у тебя есть ровно сутки. В 10:00 приходит задание, а в 10:00 следующего дня - дедлайн. Поэтому каждый день заканчивается одной из двух вещей: либо у тебя есть работающий кусок, либо ты точно понимаешь, где решение не выдержало и почему.

https://habr.com/ru/articles/979950/

#java #spring #ai #llm #spring_ai

28 дней со Spring AI: от простого чата до полноценного инструмента

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

Хабр