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

azure-ai-anomalydetector-java — скилл для Claude Code

Помогает реализовать поиск аномалий во временных рядах на Java с помощью Azure AI SDK. Пригодится при настройке мониторинга и пакетном анализе метрик.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add microsoft/skills --skill azure-ai-anomalydetector-java -a claude-code
Открыть на GitHub

Что делает azure-ai-anomalydetector-java

Скилл содержит готовые шаблоны кода для библиотеки com.azure:azure-ai-anomalydetector (версия 3.0.0-beta.6). Он помогает агенту инициализировать UnivariateClient и MultivariateClient, используя AzureKeyCredential либо DefaultAzureCredential.

В одновариантном режиме поддерживается пакетная обработка, потоковая проверка последней точки и фиксация смены тренда. Для пакетного анализа требуется минимум 12 точек данных, иначе вызов завершится ошибкой. Многомерный режим выявляет отклонения среди 300+ связанных сигналов через Graph Attention Network.

Обучение многомерной модели выполняется поэтапно: подготовка данных, запуск обучения и опрос статуса через SyncPoller. Входные файлы передаются архивом из Azure Blob Storage по ссылке с SAS-токеном.

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

  • сконфигурировать UnivariateClient и MultivariateClient на Java
  • найти аномалии во всей последовательности временного ряда пакетом
  • проверить последнее значение метрики в потоковом режиме
  • обучить многомерную модель аномалий на архиве из Azure Blob Storage
  • зафиксировать точки изменения тренда во временном ряду

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

  • Напиши код на Java для потоковой проверки аномалий в последней точке через UnivariateClient.
  • Создай класс для обучения многомерной модели Azure Anomaly Detector по архиву из Blob Storage.
  • Покажи пример пакетного анализа временного ряда с библиотекой com.azure:azure-ai-anomalydetector.

Как установить azure-ai-anomalydetector-java

1Через Skills CLI (Vercel)

npx skills add microsoft/skills --skill azure-ai-anomalydetector-java -a claude-code

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

~/.claude/skills/azure-ai-anomalydetector-java/SKILL.md

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

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

Вопросы о azure-ai-anomalydetector-java

Как установить azure-ai-anomalydetector-java в Claude Code?

Выполните команду npx skills add microsoft/skills --skill azure-ai-anomalydetector-java -a claude-code.

Что делает этот скилл?

Он передаёт ассистенту сценарии работы с Azure AI Anomaly Detector Java SDK. Агент генерирует код авторизации, потокового мониторинга и пакетной детекции.

Сколько точек данных нужно для одновариантного анализа?

Для пакетного анализа через UnivariateDetectionOptions требуется минимум 12 точек во временном ряду. При меньшем количестве сервис вернёт ошибку.

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

SKILL.md · MIT
---
name: azure-ai-anomalydetector-java
description: Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate/multivariate anomaly detection, time-series analysis, or AI-powered monitoring.
license: MIT
metadata:
  author: Microsoft
  version: "1.0.0"
  package: com.azure:azure-ai-anomalydetector
---

# Azure AI Anomaly Detector SDK for Java

Build anomaly detection applications using the Azure AI Anomaly Detector SDK for Java.

## Installation

```xml
<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-ai-anomalydetector</artifactId>
  <version>3.0.0-beta.6</version>
</dependency>
```

## Client Creation

### Sync and Async Clients

```java
import com.azure.ai.anomalydetector.AnomalyDetectorClientBuilder;
import com.azure.ai.anomalydetector.MultivariateClient;
import com.azure.ai.anomalydetector.UnivariateClient;
import com.azure.core.credential.AzureKeyCredential;

String endpoint = System.getenv("AZURE_ANOMALY_DETECTOR_ENDPOINT");
String key = System.getenv("AZURE_ANOMALY_DETECTOR_API_KEY");

// Multivariate client for multiple correlated signals
MultivariateClient multivariateClient = new AnomalyDetectorClientBuilder()
    .credential(new AzureKeyCredential(key))
    .endpoint(endpoint)
    .buildMultivariateClient();

// Univariate client for single variable analysis
UnivariateClient univariateClient = new AnomalyDetectorClientBuilder()
    .credential(new AzureKeyCredential(key))
    .endpoint(endpoint)
    .buildUnivariateClient();
```

### With DefaultAzureCredential

```java
import com.azure.core.credential.TokenCredential;
import com.azure.identity.AzureIdentityEnvVars;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.identity.ManagedIdentityCredentialBuilder;

TokenCredential credential = new DefaultAzureCredentialBuilder()
    .requireEnvVars(AzureIdentityEnvVars.AZURE_TOKEN_CREDENTIALS)
    .build();
// Or use a specific credential directly in production:
// See https://learn.microsoft.com/java/api/overview/azure/identity-readme?view=azure-java-stable#credential-classes
// TokenCredential credential = new ManagedIdentityCredentialBuilder().build();

MultivariateClient client = new AnomalyDetectorClientBuilder()
    .credential(credential)
    .endpoint(endpoint)
    .buildMultivariateClient();
```

## Key Concepts

### Univariate Anomaly Detection
- **Batch Detection**: Analyze entire time series at once
- **Streaming Detection**: Real-time detection on latest data point
- **Change Point Detection**: Detect trend changes in time series

### Multivariate Anomaly Detection
- Detect anomalies across 300+ correlated signals
- Uses Graph Attention Network for inter-correlations
- Three-step process: Train → Inference → Results

## Core Patterns

### Univariate Batch Detection

```java
import com.azure.ai.anomalydetector.models.*;
import java.time.OffsetDateTime;
import java.util.List;

List<TimeSeriesPoint> series = List.of(
    new TimeSeriesPoint(OffsetDateTime.parse("2023-01-01T00:00:00Z"), 1.0),
    new TimeSeriesPoint(OffsetDateTime.parse("2023-01-02T00:00:00Z"), 2.5),
    // ... more data points (minimum 12 points required)
);

UnivariateDetectionOptions options = new UnivariateDetectionOptions(series)
    .setGranularity(TimeGranularity.DAILY)
    .setSensitivity(95);

UnivariateEntireDetectionResult result = univariateClient.detectUnivariateEntireSeries(options);

// Check for anomalies
for (int i = 0; i < result.getIsAnomaly().size(); i++) {
    if (result.getIsAnomaly().get(i)) {
        System.out.printf("Anomaly detected at index %d with value %.2f%n",
            i, series.get(i).getValue());
    }
}
```

### Univariate Last Point Detection (Streaming)

```java
UnivariateLastDetectionResult lastResult = univariateClient.detectUnivariateLastPoint(options);

if (lastResult.isAnomaly()) {
    System.out.println("Latest point is an anomaly!");
    System.out.printf("Expected: %.2f, Upper: %.2f, Lower: %.2f%n",
        lastResult.getExpectedValue(),
        lastResult.getUpperMargin(),
        lastResult.getLowerMargin());
}
```

### Change Point Detection

```java
UnivariateChangePointDetectionOptions changeOptions = 
    new UnivariateChangePointDetectionOptions(series, TimeGranularity.DAILY);

UnivariateChangePointDetectionResult changeResult = 
    univariateClient.detectUnivariateChangePoint(changeOptions);

for (int i = 0; i < changeResult.getIsChangePoint().size(); i++) {
    if (changeResult.getIsChangePoint().get(i)) {
        System.out.printf("Change point at index %d with confidence %.2f%n",
            i, changeResult.getConfidenceScores().get(i));
    }
}
```

### Multivariate Model Training

```java
import com.azure.ai.anomalydetector.models.*;
import com.azure.core.util.polling.SyncPoller;

// Prepare training request with blob storage data
ModelInfo modelInfo = new ModelInfo()
    .setDataSource("https://storage.blob.core.windows.net/container/data.zip?sasToken")
    .setStartTime(OffsetDateTime.parse("2023-01-01T00:00:00Z"))
    .setEndTime(OffsetDateTime.parse("2023-06-01T00:00:00Z"))
    .setSlidingWindow(200)
    .setDisplayName("MyMultivariateModel");

// Train model (long-running operation)
AnomalyDetectionModel trainedModel = multivariateClient.trainMultivariateModel(modelInfo);

String modelId = trainedModel.getModelId();
System.out.println("Model ID: " + modelId);

// Check training status
AnomalyDetectionModel model = multivariateClient.getMultivariateModel(modelId);
System.out.println("Status: " + model.getModelInfo().getStatus());
```

### Multivariate Batch Inference

```java
MultivariateBatchDetectionOptions detectionOptions = new MultivariateBatchDetectionOptions()
    .setDataSource("https://storage.blob.core.windows.net/container/inference-data.zip?sasToken")
    .setStartTime(OffsetDateTime.parse("2023-07-01T00:00:00Z"))
    .setEndTime(OffsetDateTime.parse("2023-07-31T00:00:00Z"))
    .setTopContributorCount(10);

MultivariateDetectionResult detectionResult = 
    multivariateClient.detectMultivariateBatchAnomaly(modelId, detectionOptions);

String resultId = detectionResult.getResultId();

// Poll for results
MultivariateDetectionResult result = multivariateClient.getBatchDetectionResult(resultId);
for (AnomalyState state : result.getResults()) {
    if (state.getValue().isAnomaly()) {
        System.out.printf("Anomaly at %s, severity: %.2f%n",
            state.getTimestamp(),
            state.getValue().getSeverity());
    }
}
```

### Multivariate Last Point Detection

```java
MultivariateLastDetectionOptions lastOptions = new MultivariateLastDetectionOptions()
    .setVariables(List.of(
        new VariableValues("variable1", List.of("timestamp1"), List.of(1.0f)),
        new VariableValues("variable2", List.of("timestamp1"), List.of(2.5f))
    ))
    .setTopContributorCount(5);

MultivariateLastDetectionResult lastResult = 
    multivariateClient.detectMultivariateLastAnomaly(modelId, lastOptions);

if (lastResult.getValue().isAnomaly()) {
    System.out.println("Anomaly detected!");
    // Check contributing variables
    for (AnomalyContributor contributor : lastResult.getValue().getInterpretation()) {
        System.out.printf("Variable: %s, Contribution: %.2f%n",
            contributor.getVariable(),
            contributor.getContributionScore());
    }
}
```

### Model Management

```java
// List all models
PagedIterable<AnomalyDetectionModel> models = multivariateClient.listMultivariateModels();
for (AnomalyDetectionModel m : models) {
    System.out.printf("Model: %s, Status: %s%n",
        m.getModelId(),
        m.getModelInfo().getStatus());
}

// Delete a model
multivariateClient.deleteMultivariateModel(modelId);
```

## Error Handling

```java
import com.azure.core.exception.HttpResponseException;

try {
    univariateClient.detectUnivariateEntireSeries(options);
} catch (HttpResponseException e) {
    System.out.println("Status code: " + e.getResponse().getStatusCode());
    System.out.println("Error: " + e.getMessage());
}
```

## Environment Variables

```bash
AZURE_ANOMALY_DETECTOR_ENDPOINT=https://<resource>.cognitiveservices.azure.com/ # Required for all auth methods
AZURE_ANOMALY_DETECTOR_API_KEY=<your-api-key> # Only required for AzureKeyCredential auth
AZURE_TOKEN_CREDENTIALS=prod  # Required only if DefaultAzureCredential is used in production
```

## Best Practices

1. **Minimum Data Points**: Univariate requires at least 12 points; more data improves accuracy
2. **Granularity Alignment**: Match `TimeGranularity` to your actual data frequency
3. **Sensitivity Tuning**: Higher values (0-99) detect more anomalies
4. **Multivariate Training**: Use 200-1000 sliding window based on pattern complexity
5. **Error Handling**: Always handle `HttpResponseException` for API errors

## Trigger Phrases

- "anomaly detection Java"
- "detect anomalies time series"
- "multivariate anomaly Java"
- "univariate anomaly detection"
- "streaming anomaly detection"
- "change point detection"
- "Azure AI Anomaly Detector"

© Microsoft · MIT · microsoft/skills

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

Все скиллы по теме «ИИ и ML» →
skill-creator официальный anthropics Помогает создать новый скилл, доработать существующий и проверить результат через тестовые промпты и оценки. 414 180установок writing-for-agents Matt Pocock Помогает писать скиллы и документы с инструкциями для агентов. Пригодится при правках AGENTS.md, CLAUDE.md и связанных справочных файлов. 466 719установок media-use heygen-com Находит и генерирует ассеты для видео в HyperFrames — музыку, дикторский голос, аватары и эффекты. Сохраняет всё локально в assets. CX Codex +1 1 100 000установок mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. 130 949установок subagent-driven-development Jesse Vincent Скилл выполняет план через отдельных субагентов для каждой задачи и проверяет результат после каждого шага. Подходит для независимых задач в одной сессии. CX Codex 237 746установок orchestration stablyai Координирует воркеров Orca через DAG задач, циклы супервизора и цепочки сообщений. Пригодится для распределения сложной работы между агентами. CX Codex +1 350 300установок

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

Весь набор →
azure-ai-voicelive-java Скилл помогает подключать Azure AI VoiceLive SDK к Java-проекту для двусторонних голосовых диалогов по WebSocket. Пригодится, если вы настраиваете потоковое аудио и обработку событий сессии. ★ 3 149звёзд репо azure-ai-vision-imageanalysis-java Скилл по Azure AI Vision SDK для Java: подсказывает агенту, как писать код для подписей к картинкам, OCR, детекции объектов и умной обрезки. ★ 3 149звёзд репо azure-ai-formrecognizer-java Скилл помогает писать Java-код с Azure AI Document Intelligence: извлекать текст и таблицы, разбирать счета и чеки, создавать модели документов. ★ 3 149звёзд репо azure-ai-contentsafety-java Скилл для работы с Azure AI Content Safety SDK на Java: анализ текста и картинок, блоклисты, поиск вредного контента. ★ 3 149звёзд репо azure-ai-agents-persistent-java Скилл помогает работать с Azure AI Agents Persistent SDK в Java: создавать агентов, потоки сообщений и запуски. Пригодится для проектов с постоянными агентами Azure. ★ 3 149звёзд репо azure-resource-manager-redis-dotnet Скилл для работы с Azure Cache for Redis через Azure Resource Manager в .NET: создание кэшей, правила файрвола, ключи доступа, георепликация. ★ 3 149звёзд репо azure-resource-manager-playwright-dotnet Скилл помогает управлять рабочими областями Microsoft Playwright Testing через Azure Resource Manager. Он нужен для операций с ресурсами, а не для запуска тестов. ★ 3 149звёзд репо azure-resource-manager-durabletask-dotnet Учит агента создавать и настраивать Azure Durable Task Scheduler, Task Hubs и политики хранения через .NET SDK для Resource Manager. Пригодится при развёртывании инфраструктуры. ★ 3 149звёзд репо

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

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