AI Vibe Craft
← Назад к AI Vibe News

Редакция 18 июня 2026 г.

Разборы

Spring AI для enterprise Java: честный разбор RAG, MCP и tool calling

Spring AI для enterprise Java: честный разбор RAG, MCP и tool calling.

разбор Spring AI Spring AI — официальный Spring-проект, который подключает корпоративный Java к LLM через переносимые абстракции, RAG, MCP и tool calling. Sayed Ali Alkamel, senior-разработчик и менеджер платформ в Oman Housing Bank, разобрал, что фреймворк реально даёт командам на Spring Boot — и когда проще не писать сырые HTTP-вызовы к моделям.

ChatClient и Advisors: как RAG встраивается в Spring-сервис

Главная точка входа в Spring AI — ChatClient: fluent-builder, задуманный как «родственник» WebClient и RestClient. В типовом RAG-сценарии контроллер инжектит ChatClient.Builder и VectorStore, в конструкторе собирает клиент с QuestionAnswerAdvisor, а в эндпоинте /ask вызывает цепочку prompt().user(question).call().content().

@RestController
public class DocumentChatController {
    private final ChatClient chatClient;

    public DocumentChatController(ChatClient.Builder builder, VectorStore vectorStore) {
        this.chatClient = builder
            .defaultAdvisors(new QuestionAnswerAdvisor(vectorStore))
            .build();
    }

    @GetMapping("/ask")
    public String ask(@RequestParam String question) {
        return chatClient.prompt().user(question).call().content();
    }
}

QuestionAnswerAdvisor автоматически достаёт релевантные документы из vector store и подмешивает их в промпт. VectorStore — абстракция поверх бэкендов: PostgreSQL/PGVector, Chroma, Pinecone, Weaviate, Milvus, Redis, MongoDB Atlas и ещё около дюжины хранилищ — единый API на 12+ бэкендов. Смена Pinecone на PGVector не требует переписывать контроллер: меняется конфигурация, не бизнес-код.

Advisors API сравнивают с Spring AOP для cross-cutting AI-задач: retrieval перед промптом и chat memory между запросами регистрируются один раз и прозрачно применяются к каждому вызову ChatClient. Для внутренних copilot-сценариев над knowledge base это самый практичный путь без Python sidecar.

MCP и tool calling: агентный слой поверх Spring beans

В Spring AI 1.1 Model Context Protocol (MCP) получил first-class поддержку — в материале это названо стратегически важной частью для agentic systems. MCP описан как emerging standard interoperability между агентами и внешними tools; фреймворк берёт на себя protocol compliance, регистрацию tools и multi-protocol version negotiation.

Существующую бизнес-логику можно зарегистрировать как AI-callable function через Spring bean с @Description. Пример из статьи: Function<BalanceRequest, AccountBalance> в @Configuration BankingTools — фреймворк подхватывает bean и отдаёт модели через function calling, сохраняя type safety без переписывания underlying service.

Параллельно можно потреблять MCP-compliant tool servers и экспонировать собственные Spring beans как MCP servers. В цикл 1.1 в roadmap входят OAuth2-secured MCP connections. Jonathan Schneider в 2025-м проводит аналогию: function calling к RAG — как IoC к Java-разработке: меняет дизайн компонентов, а не только убирает boilerplate.

Рекомендация для первого спринта — не смешивать RAG, MCP, tool calling и observability сразу: начать с ChatClient и одного провайдера, добавлять VectorStore при реальном document retrieval use case.

Смена провайдеров и локальный Ollama без рефакторинга

Переносимость провайдеров — центральный тезис материала. OpenAI и Anthropic переключаются блоками в application.yml; контроллеры и сервисы не трогаются:

spring:
  ai:
    openai:
      api-key: ${OPENAI_API_KEY}
      chat:
        options:
          model: gpt-4o
spring:
  ai:
    anthropic:
      api-key: ${ANTHROPIC_API_KEY}
      chat:
        options:
          model: claude-sonnet-4-20250514

Ollama — first-class provider с тем же паттерном конфигурации, что и у cloud: локальная разработка и прод в облаке без смены кода. Josh Long на DevOps UK 2025 формулирует шире: building AI apps — «в основном просто вызовы моделей с HTTP API»; навыки Spring Boot переносятся.

Spring AI позиционируется как «Spring Data, but for AI models»: POJO как building blocks, portability и modular design. Поддерживаются chat completion, embeddings, text-to-image, audio transcription, text-to-speech, moderation; agentic-слой — tool calling, RAG pipelines, MCP client/server, chat memory, structured outputs. В каталоге — 20+ model providers.

Честные ограничения: Spring-only, документация, волатильность API

«Honest Take» в заголовке — не маркетинг. Spring AI, по оценке автора, правильный инструмент, если вы уже в экосистеме Spring: абстракции сидят на Spring Boot auto-configuration. Для Quarkus, Micronaut или bare Vert.x first-class integration story не про них.

Документация Advisors API местами действительно скудная: при разборе chained advisors (RAG + conversation memory) пришлось читать integration tests больше, чем reference guide. На онбординг RAG-пайплайна стоит закладывать дополнительное время.

API surface движется: команды на Spring AI 1.0 столкнулись с изменениями adapter interfaces в 1.1; апгрейд 1.x → 2.0 потребует внимания из‑за Jakarta EE 11 baseline и сдвига на Spring Boot 4. Minor versions отслеживать активнее, чем у Spring Data или Spring Security.

По производительности в материале приводится анализ Java-экосистемы начала 2026 года: сетевая латентность LLM на два–три порядка больше оверхеда Java-фреймворка. Spring AI не добавляет заметной задержки к операции в сотни миллисекунд и выше — узкое место остаётся в модели и сети, не в DI-слое.

Spring AI 1.1 и LangChain4j: когда какой JVM-стек AI

Оба фреймворка вышли в GA в мае 2025 года и production-ready, но целевая аудитория разная. Сравнительная таблица из материала:

Измерение Spring AI 1.1 LangChain4j 1.x
Целевая аудитория Spring Boot teams Any JVM stack
AI-провайдеры 20+ 30+
Vector stores 12+ 30+
MCP First-class Supported
RAG Advisors API, ETL pipeline Mature, granular pipeline control
Quarkus / Micronaut Minimal Native extensions
Observability Spring Boot Actuator native Requires separate setup
Tool calling Spring beans as functions Explicit @Tool annotation

Правило выбора: Spring Boot + observability/Security → Spring AI как путь наименьшего сопротивления; non-Spring stack или нужен более широкий каталог провайдеров → LangChain4j. Переключение через полгода проекта дорого — это архитектурное решение на старте.

Прямые HTTP-вызовы LLM уступают Spring AI по переносимости: vendor lock-in, нет встроенного RAG/tool calling/chat memory, код не стыкуется с Spring observability и testing. Для Spring Boot microservices альтернатива Python sidecar закрывает gap между «using AI» и «building with AI» — в статье приводится BellSoft Java Survey 2024: 74% Java-разработчиков ежедневно используют AI tools, 34% — AI framework для AI-powered apps.

Версии 1.0–2.0: что закладывать в roadmap

Веха Когда Суть
Spring AI 1.0 GA май 2025 Первый production-ready релиз (анонс Mark Pollack, Christian Tzolov, Josh Long)
Spring AI 1.1 ноябрь 2025 850+ improvements: 354 enhancements, 241 bug fixes, 100 documentation improvements; full MCP, structured Advisors API
Spring AI 2.0 milestone mid-2026 Spring Boot 4.0, Spring Framework 7.0, Jakarta EE 11, Java 21 minimum
2.0.0-M4 март 2026 Milestone
2.0.0-RC1 июнь 2026 Release candidate; GA «близко», migration 1.x documented

Экосистема расширяется: Spring AI Community GitHub organization анонсирован на Spring I/O Barcelona 2025. Для команд, которые оценивают copilot и internal tooling над knowledge base — как в кейсе автора на OHB — связка Advisors API и chat memory выглядит наиболее полезной без выноса inference в отдельный runtime.

Итоговый TL;DR из материала: для Spring Boot-команд «no good reason to write raw HTTP calls to an LLM anymore» — при условии, что вы принимаете привязку к Spring и следите за minor releases на пути к 2.0.

Источники

  • Sayed Ali Alkamel — Spring AI: The Senior Dev's Honest Take on Java's AI Moment (Dev.to, доступ 2026-06-17)
  • Spring AI — обзор проекта (доступ 2026-06-17)
  • Core concepts (доступ 2026-06-17)
  • Advisors API (доступ 2026-06-17)
  • Spring AI 1.0 GA (доступ 2026-06-17)
  • Spring AI 1.1 GA (доступ 2026-06-17)