> For the complete documentation index, see [llms.txt](https://docs.onerpa.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.onerpa.ru/ai-platforma-oneapa/razrabotka-agentov/luchshie-praktiki.md).

# Лучшие практики

Рекомендации по разработке качественных агентов.

## Проектирование

### Один агент — одна область

```
✅ Хорошо:
- Кадровый агент (отпуска, командировки)
- Бухгалтерский агент (счета, оплаты)

❌ Плохо:
- Универсальный агент (всё сразу)
```

### Чёткие границы ответственности

```
Кадровый агент:
✅ Отпуска, командировки, справки
❌ Оплата счетов (это бухгалтерия)
❌ Техническая поддержка
```

## Промпты

### Структурируйте промпт

```
1. Роль (кто ты)
2. Задачи (что делаешь)
3. Правила (как делаешь)
4. Ограничения (чего не делаешь)
5. Формат (как отвечаешь)
```

### Используйте примеры

```
ПРИМЕР:
Пользователь: Сколько отпуска?
Ты: [вызываешь инструмент] У вас 14 дней.
```

### Обрабатывайте краевые случаи

```
ЕСЛИ ДАННЫХ НЕТ:
"К сожалению, не нашёл информацию по вашему запросу.
Уточните параметры или обратитесь к специалисту."
```

## Инструменты

### Атомарность

```
✅ Хорошо:
- Получить остаток отпуска
- Создать заявку на отпуск

❌ Плохо:
- Работа с отпусками (слишком общо)
```

### Понятные описания

```
✅ Хорошо:
"Возвращает остаток дней отпуска для сотрудника.
Используй, когда спрашивают об отпуске."

❌ Плохо:
"Отпуск"
```

### Обработка ошибок

```bsl
Попытка
    // Основной код
Исключение
    Возврат Новый Структура("Ошибка", ОписаниеОшибки());
КонецПопытки;
```

## Безопасность

### Подтверждение действий

```
Перед созданием документа:
1. Покажи параметры
2. Запроси подтверждение
3. Только потом создавай
```

### Ограничение доступа

* Добавляйте пользователей к агентам
* Ограничивайте доступность инструментов
* Логируйте все действия

### Валидация данных

```bsl
// Проверяйте входные параметры
Если ПустаяСтрока(Параметры.Сотрудник) Тогда
    Возврат Новый Структура("Ошибка", "Не указан сотрудник");
КонецЕсли;
```

## Производительность

### Оптимизируйте запросы

```bsl
// Используйте индексы
// Ограничивайте выборку
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 100 ...";
```

### Кэшируйте где возможно

```bsl
// Для редко меняющихся данных
Если ЗначениеЗаполнено(КэшированноеЗначение) Тогда
    Возврат КэшированноеЗначение;
КонецЕсли;
```

### Используйте подходящую модель

| Задача          | Модель      |
| --------------- | ----------- |
| Простые ответы  | GPT-4o-mini |
| Сложный анализ  | GPT-4o      |
| Конфиденциально | Ollama      |

## Тестирование

### Регрессионные тесты

```
Тест 1: Базовый запрос
Тест 2: Запрос с инструментом
Тест 3: Некорректный запрос
Тест 4: Граничные случаи
```

### Тестирование на пользователях

1. Запустите в тестовом режиме
2. Соберите обратную связь
3. Улучшите на основе фидбека

## Мониторинг

### Отслеживайте метрики

* Количество запросов
* Время ответа
* Частота ошибок
* Использование инструментов

### Анализируйте логи

* Неудачные запросы
* Частые ошибки
* Паттерны использования

## Далее

{% content-ref url="/pages/CJ9yzUSQRFkfvGB4Spfm" %}
[Broken mention](broken://pages/CJ9yzUSQRFkfvGB4Spfm)
{% endcontent-ref %}
