An AI-powered next-generation open source real-time observability system.
# AI SOP 引擎
AI SOP(标准操作流程)引擎支持通过 YAML 配置定义和执行自动化工作流。
## 功能特性
- **YAML 声明式定义**:通过配置文件定义工作流
- **多步骤类型**:`tool`(调用 HertzBeat 工具)、`llm`(AI 推理)
- **统一输出**:使用 `SopResult` 统一结果结构
- **国际化支持**:多语言输出(中文/英文)
- **多种 API**:流式(SSE)、同步(JSON)、AI 友好(纯文本)
## 快速开始
### 1. 定义技能
创建 `skills/my_skill.yml`:
```yaml
name: my_skill
description: "我的自定义技能"
version: "1.0"
output:
type: report # report/simple/data/action
format: markdown
language: zh # zh/en
steps:
- id: get_data
type: tool
tool: query_monitors
args:
status: 9
- id: analyze
type: llm
prompt: |
分析以下数据: ${get_data}
```
### 2. 执行
```bash
# 流式输出(SSE)
POST /api/ai/sop/execute/{skillName}
# 同步返回(JSON)
POST /api/ai/sop/execute/{skillName}/sync
# AI 格式(纯文本)
POST /api/ai/sop/execute/{skillName}/ai
```
## 输出类型
| 类型 | 使用场景 |
|------|---------|
| `report` | 日常巡检、故障分析 |
| `simple` | 重启服务、清理缓存 |
| `data` | 查询资源、统计信息 |
| `action` | 需要人工确认的操作 |
## 架构
```
YAML 定义 → SkillRegistry → SopEngine → Executors → SopResult
↓ ↓
SopToolCallback ToolExecutor / LlmExecutor
↓
ToolRegistry(自动发现 @Tool 方法)
```
所有执行入口都由 `SopEngine` 统一补齐默认参数并校验必填参数。技能注册为 Spring AI
工具时,`SopToolCallback` 会根据参数定义生成 JSON Schema、解析模型传入的 JSON 对象,
同步执行 SOP 并返回 `SopResult`;调用方不应在控制器或工具外层重复实现参数校验。
## 添加新工具
只需添加 `@Tool` 注解,无需修改其他代码:
```java
@Tool(name = "myNewTool", description = "...")
public String myNewTool(@ToolParam(...) Long param) {
// 实现逻辑
}
```
ToolRegistry 会在运行时自动发现所有 `@Tool` 方法。
## 配置说明
### output 配置
| 字段 | 说明 | 可选值 |
|-----|------|-------|
| type | 输出类型 | report/simple/data/action |
| format | 格式 | markdown/json/text |
| language | 语言 | zh(中文)/en(英文) |
| contentStep | 内容步骤 | 步骤 ID |