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