- Удалены API routes, rewrites и ссылки на knowledge/reglaments - knowledge/ удалена из git-истории (6 ГБ PDF не относящихся к проекту) - Нормативная база обслуживается через модуль legal (routes/legal/) Co-authored-by: Cursor <cursoragent@cursor.com>
9.0 KiB
9.0 KiB
Autonomous Agent Architecture
Обзор
Система эволюционирует от CRUD → Copilot → Autonomous Agent:
- CRUD: Традиционные операции создания, чтения, обновления, удаления
- Copilot: Ассистирование пользователю через естественный язык
- Autonomous Agent: Автономное выполнение задач на основе reasoning
Архитектура
┌─────────────────────────────────────────────────────────┐
│ Natural Language Interface │
│ (Пользователь запрашивает "смыслом") │
└──────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ LLM Reasoning Engine │
│ (Рассуждения на основе Knowledge Graph) │
└──────────────────────┬────────────────────────────────────┘
│
┌──────────────┼──────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Knowledge │ │ Planning │ │ Execution │
│ Graph │ │ (Plan) │ │ (Actions) │
└──────────────┘ └──────────────┘ └──────────────┘
Компоненты
1. Knowledge Graph
Назначение: Преобразование данных в граф знаний
Структура:
- Узлы: Сущности (воздушные суда, аудиты, риски, операторы)
- Рёбра: Связи между сущностями
- Embeddings: Векторные представления для семантического поиска
Пример: Модуль нормативной базы (knowledge) вынесен в отдельный сервис; граф знаний доступен через внешний API.
2. LLM Reasoning
Назначение: Рассуждения на основе Knowledge Graph
Возможности:
- Chain of Thought reasoning
- Анализ связей в графе
- Логические выводы
- Предложение действий
Пример:
import { reasonWithKnowledgeGraph } from '@/lib/ai/llm-reasoning';
const reasoning = await reasonWithKnowledgeGraph(
'Какие воздушные суда требуют внимания?'
);
// reasoning.answer - ответ
// reasoning.reasoning - шаги рассуждения
// reasoning.suggestedActions - предложенные действия
3. Natural Language Interface
Назначение: Интерфейс для взаимодействия через естественный язык
Режимы:
- Copilot: Ассистирование, предложение действий
- Autonomous: Автономное выполнение задач
Пример:
import { processNaturalLanguageQuery } from '@/lib/ai/natural-language-interface';
// Copilot режим
const response = await processNaturalLanguageQuery({
query: 'Покажи все активные воздушные суда оператора Аэрофлот',
mode: 'copilot',
});
// Autonomous режим
const response = await processNaturalLanguageQuery({
query: 'Создай новое воздушное судно RA-12345 типа Boeing 737',
mode: 'autonomous',
});
4. Autonomous Agent
Назначение: Автономное выполнение задач
Возможности:
- Планирование действий
- Выполнение плана
- Анализ результатов
- Рекомендации
Пример:
import { createAutonomousAgent } from '@/lib/ai/autonomous-agent';
const agent = createAutonomousAgent();
// Планирование
const plan = await agent.plan('Обнови статус всех воздушных судов');
// Выполнение
const result = await agent.execute(plan);
Использование
API Endpoints
POST /api/ai/agent
Обработка естественного языка запроса.
Request:
{
"query": "Покажи все активные воздушные суда",
"mode": "copilot",
"context": {}
}
Response:
{
"answer": "Найдено 15 активных воздушных судов...",
"reasoning": ["Шаг 1: Поиск в базе данных...", "Шаг 2: Фильтрация по статусу..."],
"actions": [
{
"type": "suggested",
"description": "Показать детали каждого ВС",
"executed": false
}
],
"confidence": 0.9,
"mode": "copilot",
"intent": {
"intent": "query",
"confidence": 0.95
}
}
Модуль knowledge
Модуль нормативной базы (knowledge) вынесен в отдельный сервис. Эндпоинт GET /api/knowledge/graph в данном репозитории не реализован.
Query Parameters (внешний сервис):
query- поисковый запрос (опционально)format- формат ответа:jsonилиvisualization
Response:
{
"nodes": [
{
"id": "aircraft-1",
"type": "aircraft",
"label": "RA-12345",
"properties": {...}
}
],
"edges": [
{
"id": "edge-1",
"source": "aircraft-1",
"target": "operator-Aeroflot",
"type": "operated_by",
"weight": 1.0
}
]
}
Примеры запросов
Copilot режим
"Покажи все воздушные суда, которые требуют технического обслуживания"
"Какие риски связаны с воздушным судном RA-12345?"
"Дай рекомендации по улучшению безопасности"
Autonomous режим
"Создай новое воздушное судно RA-12345 типа Boeing 737 для оператора Аэрофлот"
"Обнови статус всех воздушных судов оператора Аэрофлот на 'Активен'"
"Проанализируй все риски и создай отчёт"
Эволюция системы
CRUD (Текущее состояние)
- Пользователь кликает по кнопкам
- Выполняются стандартные операции
- Результат отображается в UI
Copilot (Реализовано)
- Пользователь задаёт вопросы на естественном языке
- Система понимает намерение
- Предлагает действия
- Пользователь подтверждает выполнение
Autonomous Agent (Реализовано)
- Пользователь описывает задачу
- Система планирует действия
- Автономно выполняет план
- Отчитывается о результатах
Преимущества
- Естественное взаимодействие - пользователь не кликает, а "запрашивает смыслом"
- Интеллектуальные рассуждения - система понимает контекст и связи
- Автономность - система может выполнять задачи самостоятельно
- Масштабируемость - легко добавлять новые возможности через reasoning
Безопасность
- Все действия логируются
- Пользователь может отменить выполнение
- Валидация перед выполнением критических операций
- Аудит всех действий агента
Дополнительная информация
См. также:
docs/AI_KNOWLEDGE_SYSTEM.md- Система знанийdocs/STREAMING_ARCHITECTURE.md- Streaming архитектура