41 lines
3.4 KiB
Markdown
41 lines
3.4 KiB
Markdown
# Вариант 4 — Настройки: агенты
|
|
|
|
## Суть
|
|
Модальное окно, где заводятся агенты: имя, адрес сервера, цвет. Список уже
|
|
добавленных и форма нового — два состояния одного окна.
|
|
|
|
## Ключевые решения
|
|
- **Окно, а не отдельная страница.** Настройки агентов открываются поверх чата —
|
|
не теряешь, где был.
|
|
- **Состояние агента видно сразу:** «на связи» зелёным, «не отвечает» серым.
|
|
В списке, а не спрятано в глубине.
|
|
- **Проверка связи до сохранения.** Кнопка «Проверить связь» спрашивает агента
|
|
и показывает, что ответил: ответ на запрос, адрес, сколько у него диалогов.
|
|
Три состояния: спрашиваю (крутится) → отвечает (зелёное) → не отвечает (красное).
|
|
- **Цвет — для различения.** Пять вариантов. Тот же цвет потом работает в списке
|
|
диалогов: полоска у строки и точка у группы.
|
|
- **Пояснения под полями** — простым языком, зачем это поле и что писать.
|
|
|
|
## Проверка связи — на чём основана
|
|
У сервера агента есть ответ на `GET /agentik/health` (отдаёт «ok») и список
|
|
диалогов. Оба запроса безопасные: ничего не меняют. Если агент лежит —
|
|
«не отвечает», и это видно до добавления, а не после.
|
|
|
|
⚠️ **Живого агента сейчас не поднято** — на порту 8080 отвечает чужой сервер (404).
|
|
Поэтому в макете проверка показана в трёх состояниях, но на живом агенте она
|
|
ещё не проверялась. Это не выдумка: адреса запросов взяты из исходников.
|
|
|
|
## Второе состояние: список диалогов с двумя агентами
|
|
Показано, как различать агентов, когда их несколько:
|
|
- **Заголовок группы** с цветной точкой и числом диалогов;
|
|
- **Цветная полоска** слева у каждого диалога;
|
|
- **Цвет аватара** совпадает с цветом агента.
|
|
|
|
Это позволяет не путать, кто из агентов что сказал, даже в длинном списке.
|
|
|
|
## Что слабо / открытые вопросы
|
|
- Одного цвета для различения может оказаться мало — возможно, понадобится
|
|
подпись агента прямо в строке диалога.
|
|
- Где хранится список агентов (в файле на диске или на сервере) — не решено.
|
|
- Нужен ли пароль/ключ доступа к агенту — у библиотеки такого поля нет.
|