К основному содержанию
скилл CX Codex

langchain4j-ai-services-patterns — скилл для Claude Code: AI Services

Скилл показывает, как собирать декларативные AI Services на LangChain4j: интерфейсы, аннотации, память и вызов инструментов.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add giuseppe-trisciuoglio/developer-kit --skill langchain4j-ai-services-patterns -a claude-code
Открыть на GitHub

Что делает langchain4j-ai-services-patterns

Скилл ведёт агента по шагам: сначала интерфейс с методами для общения с моделью, потом аннотации @SystemMessage и @UserMessage для промптов, затем создание сервиса через AiServices.create или билдер. Дальше — память для многоходовых диалогов через @MemoryId и chatMemoryProvider, и регистрация инструментов с @Tool для function calling. Внутри есть готовые примеры кода на Java и справочник по API в references.md и examples.md.

Ставить есть смысл, если вы пишете Java-приложение с LLM и не хотите вручную склеивать строки промптов. Интерфейсный подход даёт типизацию: сервис может вернуть enum, POJO или список, а не просто строку. Для этого нужны зависимости dev.langchain4j:langchain4j и dev.langchain4j:langchain4j-open-ai версии 1.8.0 в Maven или Gradle.

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

Какие задачи решает

  • описать AI-сервис интерфейсом вместо склейки строк промпта
  • добавить память в многоходовый диалог с разделением по пользователям
  • подключить function calling через аннотацию @Tool
  • получить от модели структурированный ответ — enum, POJO или список
  • собрать RAG-сценарий декларативно, без ручного управления контекстом

Примеры запросов агенту

  • создай AI Service на LangChain4j: интерфейс с методом chat и аннотацией @SystemMessage
  • добавь в этот сервис память через @MemoryId и chatMemoryProvider для нескольких пользователей
  • зарегистрируй Calculator как инструмент через @Tool и вызови его из сервиса

Как установить langchain4j-ai-services-patterns

1Через Skills CLI (Vercel)

npx skills add giuseppe-trisciuoglio/developer-kit --skill langchain4j-ai-services-patterns -a claude-code

2Вручную: положить файлы

~/.claude/skills/langchain4j-ai-services-patterns/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/langchain4j-ai-services-patterns/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о langchain4j-ai-services-patterns

Как установить langchain4j-ai-services-patterns в Claude?

Выполните npx skills add giuseppe-trisciuoglio/developer-kit --skill langchain4j-ai-services-patterns -a claude-code. После этого файл скилла лежит в ~/.claude/skills/langchain4j-ai-services-patterns/SKILL.md.

Что делает langchain4j-ai-services-patterns?

Даёт паттерны для декларативных AI Services на LangChain4j: интерфейсы с аннотациями, управление памятью, вызов инструментов и структурированный вывод. Агент применяет их, когда вы пишете Java-код с LLM.

Что нужно для работы скилла?

Зависимости dev.langchain4j:langchain4j и dev.langchain4j:langchain4j-open-ai версии 1.8.0 — в Maven или Gradle. Плюс доступ к чат-модели, потому что AI Services работают поверх неё.

Исходный текст

SKILL.md · MIT
---
name: langchain4j-ai-services-patterns
description: Provides patterns to build declarative AI Services with LangChain4j for LLM integration, chatbot development, AI agent implementation, and conversational AI in Java. Generates type-safe AI services using interface-based patterns, annotations, memory management, and tools integration. Use when creating AI-powered Java applications with minimal boilerplate, implementing conversational AI with memory, or building AI agents with function calling.
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
---

# LangChain4j AI Services Patterns

This skill provides guidance for building declarative AI Services with LangChain4j using interface-based patterns, annotations for system and user messages, memory management, tools integration, and advanced AI application patterns that abstract away low-level LLM interactions.

## Overview

LangChain4j AI Services define AI functionality using Java interfaces with annotations, providing type-safe, declarative AI with minimal boilerplate.

## When to Use

Use this skill when:
- Building declarative AI services with minimal boilerplate using Java interfaces
- Creating type-safe conversational AI with memory management
- Implementing AI agents with function/tool calling capabilities
- Designing AI services returning structured data (enums, POJOs, lists)
- Integrating RAG patterns declaratively

## Instructions

Follow these steps to create declarative AI Services with LangChain4j:

### 1. Define AI Service Interface

Create a Java interface with method signatures for AI interactions:

```java
interface Assistant {
    String chat(String userMessage);
}
```

### 2. Add Annotations for System and User Messages

Use `@SystemMessage` and `@UserMessage` annotations to define prompts:

```java
interface CustomerSupportBot {
    @SystemMessage("You are a helpful customer support agent for TechCorp")
    String handleInquiry(String customerMessage);

    @UserMessage("Analyze sentiment: {{it}}")
    Sentiment analyzeSentiment(String feedback);
}
```

### 3. Create AI Service Instance

Use `AiServices` builder or create to instantiate the service:

```java
// Simple creation
Assistant assistant = AiServices.create(Assistant.class, chatModel);

// Or with builder for advanced configuration
Assistant assistant = AiServices.builder(Assistant.class)
    .chatModel(chatModel)
    .build();
```

### 4. Configure Memory for Multi-turn Conversations

Add memory management using `@MemoryId` for multi-user scenarios:

```java
interface MultiUserAssistant {
    String chat(@MemoryId String userId, String userMessage);
}

Assistant assistant = AiServices.builder(MultiUserAssistant.class)
    .chatModel(model)
    .chatMemoryProvider(userId -> MessageWindowChatMemory.withMaxMessages(10))
    .build();
```

### 5. Integrate Tools for Function Calling

Register tools using `@Tool` annotation to enable AI function execution:

```java
class Calculator {
    @Tool("Add two numbers") double add(double a, double b) { return a + b; }
}

interface MathGenius {
    String ask(String question);
}

MathGenius mathGenius = AiServices.builder(MathGenius.class)
    .chatModel(model)
    .tools(new Calculator())
    .build();
```

### 6. Validate and Test

Test AI services with concrete validation patterns:

```java
// 1. Test with sample inputs
String response = assistant.chat("Hello, how are you?");
assert response != null && !response.isEmpty();

// 2. Validate structured outputs with assertions
Sentiment result = bot.analyzeSentiment("Great product!");
assert result == Sentiment.POSITIVE;

// 3. Log tool calls with side effects for audit
MathGenius math = AiServices.builder(MathGenius.class)
    .chatModel(model)
    .tools(new Calculator())
    .build();

// 4. Test memory isolation between users
String userA = assistant.chat("User A message", "session-a");
String userB = assistant.chat("User B message", "session-b");
assert !userA.equals(userB); // Verify memory isolation
```

## Examples

See [examples.md](references/examples.md) for comprehensive practical examples including:
- Basic chat interfaces
- Stateful assistants with memory
- Multi-user scenarios
- Structured output extraction
- Tool calling and function execution
- Streaming responses
- Error handling
- RAG integration
- Production patterns

## API Reference

Complete API documentation, annotations, interfaces, and configuration patterns are available in [references.md](references/references.md).

## Best Practices

1. **Use type-safe interfaces** instead of string-based prompts
2. **Implement proper memory management** with appropriate limits
3. **Design clear tool descriptions** with parameter documentation
4. **Handle errors gracefully** with custom error handlers
5. **Use structured output** for predictable responses
6. **Implement validation** for user inputs
7. **Monitor performance** for production deployments

## Dependencies

```xml
<!-- Maven -->
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j</artifactId>
    <version>1.8.0</version>
</dependency>
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-open-ai</artifactId>
    <version>1.8.0</version>
</dependency>
```

```gradle
// Gradle
implementation 'dev.langchain4j:langchain4j:1.8.0'
implementation 'dev.langchain4j:langchain4j-open-ai:1.8.0'
```

## References

- [LangChain4j Documentation](https://langchain4j.com/docs/)
- [LangChain4j AI Services - API References](references/references.md)
- [LangChain4j AI Services - Practical Examples](references/examples.md)

## Constraints and Warnings

- AI Services rely on LLM responses which are non-deterministic; tests should account for variability.
- Memory providers store conversation history; ensure proper cleanup for multi-user scenarios.
- Tool execution can be expensive; implement rate limiting and timeout handling.
- Never pass sensitive data (API keys, passwords) in system or user messages.
- Large context windows can lead to high token costs; implement message pruning strategies.
- Streaming responses require proper error handling for partial failures.
- AI-generated outputs should be validated before use in production systems.
- Be cautious with tools that have side effects; AI models may call them unexpectedly.
- Token limits vary by model; ensure prompts and context fit within model constraints.

© giuseppe-trisciuoglio · MIT · giuseppe-trisciuoglio/developer-kit

Похожие скиллы

Всё по теме «ИИ и ML» →
qwencloud-text QwenCloud Скилл для работы с текстовыми моделями QwenCloud: генерация текста, диалоги, код и вызов функций. Пригодится, если нужно обращаться к Qwen или сторонним моделям прямо из агента. CX Codex +1 1 600установок check-crewai-api crewAIInc Скилл сверяет код crewai с версией 1.15.x вместо устаревшего 0.x, который помнят ассистенты. Пригодится, когда импорт или параметр молча не работают. CX Codex +1 650установок prompt-engineer Seth Hobson Субагент помогает проектировать и проверять промпты для LLM, систем агентов и AI-функций. Подойдёт для задач, где важны структура, безопасность и оценка ответов. CX Codex 16 078установок openai-api-development Mindrally Скилл для разработки на OpenAI API: подсказывает, как писать вызовы GPT, function calling, эмбеддинги и Assistants API на Python. CX Codex +1 864установок multi-agent-patterns guanyang Архитектурный скилл для проектирования систем из нескольких агентов. Помогает изолировать контекст, выбрать схему оркестрации и оценить расход токенов. CX Codex +1 305установок prompt-engineering-patterns Seth Hobson Скилл помогает проектировать, проверять и улучшать промпты для LLM. Подойдёт для шаблонов, few-shot-сценариев и структурированных ответов. CX Codex 23 418установок

Из того же набора93

langchain4j-vector-stores-configuration Скилл подсказывает, как собрать векторное хранилище для RAG на LangChain4J: подключение, размерность эмбеддингов, фильтры по метаданным. CX Codex +1 3 700установок unit-test-application-events Паттерны юнит-тестов для событий Spring: проверка публикации через ApplicationEventPublisher и работа @EventListener без поднятия контекста. CX Codex +1 3 700установок unit-test-config-properties Скилл добавляет шаблоны модульного тестирования классов @ConfigurationProperties через ApplicationContextRunner в Spring Boot без запуска тяжёлого контекста. CX Codex +1 3 700установок unit-test-caching Паттерны юнит-тестов для аннотаций Spring Cache: проверка попаданий в кэш, вытеснения и ключей SpEL без поднятия полного контекста Spring. CX Codex +1 3 700установок qdrant Скилл даёт шаблоны интеграции векторной базы Qdrant в Java и Spring Boot через LangChain4j. Помогает настроить семантический поиск и хранилище эмбеддингов для RAG. CX Codex +1 3 700установок unit-test-mapper-converter Скилл для юнит-тестов MapStruct-мапперов и конвертеров: проверяет маппинг полей, null, вложенные объекты и обратное преобразование. CX Codex +1 3 700установок unit-test-exception-handler Паттерны юнит-тестов для @ExceptionHandler и @ControllerAdvice в Spring Boot: проверка кодов ответа, JSON и ошибок валидации по полям. CX Codex +1 3 700установок rag Скилл помогает развернуть пайплайн Retrieval-Augmented Generation: от нарезки документов и расчёта эмбеддингов до поиска в векторной базе и передачи контекста модели. CX Codex +1 3 700установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой