5.5 KiB
5.5 KiB
Интерфейс работы с пользователем
Цель интерфейса
Интерфейс должен быть не просто чатом.
Он должен позволять пользователю:
- поставить задачу;
- увидеть, как система поняла задачу;
- увидеть план/граф выполнения;
- выбрать режим доступа;
- подключить local worker;
- подтвердить действия;
- наблюдать прогресс;
- посмотреть логи;
- открыть артефакты;
- продолжить задачу после ошибки;
- повторить задачу с другой моделью.
Основные экраны
1. Chat / Task Console
Главный экран.
Слева:
- список диалогов;
- проекты;
- активные задачи;
- подключенные workers.
Центр:
- чат;
- сообщения пользователя;
- ответы assistant;
- карточки планов;
- карточки подтверждений;
- статусы выполнения.
Справа:
- execution graph;
- используемые tools;
- выбранные модели;
- стоимость;
- логи;
- артефакты.
2. Project Settings
Настройки проекта:
Project name
Default model slots
Available MCP servers
Available local workers
Policy modes
Cost limits
Log level
Storage paths
3. Model Settings
Пользователь может настроить:
weak model
strong model
vision model
embedding model
Пример:
weak: local/qwen-coder-7b
strong: local/qwen-coder-32b
vision: external/gpt-vision
Или полностью локально:
weak: local/qwen-coder-7b
strong: local/qwen-coder-32b
vision: local/qwen-vl
Или без strong:
weak: local/model
strong: disabled
vision: disabled
4. Access Modes
Важно: это не запреты в коде, а выбор пользователя.
Для каждого класса действий:
models.external
mcp.remote
filesystem
shell
sql
1c
browser
desktop
network
cost
режим:
full_auto
confirm
manual
disabled
Пример:
filesystem = confirm
shell = confirm
sql = full_auto
1c = confirm
external_models = manual
desktop = disabled
5. Local Worker Screen
Показывает:
Worker name
Machine name
OS
Status: online/offline
Capabilities
Allowed paths
Available commands
Last heartbeat
Current task
Version
Кнопки:
Connect worker
Disconnect
Edit capabilities
View logs
Run diagnostic
6. Task Plan Card
Когда пользователь отправляет сложную задачу, система показывает:
Я понял задачу так:
- найти файл
- прочитать код
- проверить запрос
- предложить исправление
- применить patch
- запустить проверку
Кнопки:
Run
Edit plan
Run step by step
Use strong model
Use local only
7. Confirmation Card
Если нужно подтверждение:
Система хочет выполнить действие:
Tool: file.write
Path: D:/Projects/1C/module.bsl
Risk: write
Preview:
- будет изменено 12 строк
- будет создан backup
Кнопки:
Approve once
Approve for this task
Approve always for this project
Reject
Edit policy
8. Progress View
Показывает выполнение:
[done] analyze request
[done] build plan
[running] search files
[pending] read file
[pending] apply patch
[pending] validate
Для каждого шага:
input
output
model used
tool used
duration
logs
errors
artifacts
9. Result View
Итог должен быть не только текстом.
Типы результата:
chat_answer
file_created
file_modified
patch_generated
sql_executed
report_created
task_failed
confirmation_required
manual_action_required
Пример:
Задача выполнена.
Изменен файл:
D:/Projects/1C/CommonModule/Exchange.bsl
Создан backup:
D:/Projects/1C/.backups/Exchange_2026-07-03.bsl
Проверка:
validate_sql: success
syntax_check: success
10. Error Recovery
Если задача упала:
Ошибка на шаге: validate_sql
Причина: поле Номенклатура.Артикул не найдено
Варианты:
- исправить автоматически
- запустить strong model
- показать подробный лог
- изменить запрос вручную
- остановить задачу
Интерфейс сообщения
Каждое сообщение assistant может содержать:
{
"type": "assistant_message",
"text": "...",
"task_id": "...",
"cards": [
"plan",
"confirmation",
"progress",
"artifact",
"error"
]
}
Принцип
Пользователь должен всегда понимать:
что система собирается делать
что она уже сделала
какие данные использовала
какая модель была вызвана
какой tool был вызван
что изменилось в системе
как откатить действие