53 lines
3.7 KiB
Markdown
53 lines
3.7 KiB
Markdown
# agentik-desktop — дизайн десктопного клиента
|
|
|
|
Десктопный клиент агента **agentik** (Jetpack Compose Desktop). UI общается с агентом
|
|
через опубликованную библиотеку `pw.binom.agentik:client` — она даёт готовые
|
|
`Agent` / `Conversation`, живой поток событий и `interrupt()` для кнопки «Стоп».
|
|
|
|
Это пока **только дизайн**, не код приложения. Три варианта лежат рядом, чтобы
|
|
сравнить и выбрать один; после выбора лишние удаляются.
|
|
|
|
## Как смотреть
|
|
|
|
Открыть в браузере любой из трёх файлов — каждый самодостаточный, без сборки:
|
|
|
|
```
|
|
sketches/001-sidebar-utility/index.html # привычный мессенджер
|
|
sketches/002-rail-voice-first/index.html # голос — главное действие
|
|
sketches/003-three-pane-command/index.html # три панели + состояние агента
|
|
```
|
|
|
|
Кнопка микрофона работает: клик — запись, идёт волна и живая расшифровка,
|
|
«Остановить и отправить» кладёт текст в поле. Так видно, как это будет ощущаться.
|
|
|
|
## Чем отличаются
|
|
|
|
| | 1. Sidebar | 2. Voice-first | 3. Command center |
|
|
|---|---|---|---|
|
|
| Экран | список + чат | рейка + список + чат | три панели |
|
|
| Голос | круглая кнопка у поля | большая кнопка, живая расшифровка | компактная, строка записи снизу |
|
|
| Работа агента | видна в переписке | в переписке | отдельные сворачиваемые шаги |
|
|
| Кому | просто чат | кто диктует | кто следит за расходом |
|
|
|
|
## Общее для всех (решено и не обсуждается)
|
|
|
|
- Стиль — тёмный, из уже принятой темы клиента assistent: фон `#121218`,
|
|
панели `#17212B`, акцент `#6AB2F2`, текст `#EBEBEB`.
|
|
- Слева — список диалогов; выбран один; открывается конкретный чат.
|
|
- Внизу — поле ввода, кнопка «Отправить» и отдельная кнопка записи микрофона.
|
|
- Голос расшифровывается в текст **до** отправки — ошибку видно сразу.
|
|
- Для агента важны прерывание ответа («Стоп») и показ хода работы.
|
|
|
|
## Что предстоит решить
|
|
|
|
1. **Какой вариант берём** — 1, 2 или 3 (или собрать гибрид).
|
|
2. **Запись на удержание** (говоришь, пока держишь) или **по нажатию** (нажал —
|
|
говоришь — нажал). В варианте 2 работает удержание пробела.
|
|
3. **Нужны ли папки** для диалогов, как в мобильном клиенте, или хватит поиска.
|
|
|
|
## Что сознательно не решается здесь
|
|
|
|
- **Откуда берётся распознавание речи.** Это отдельная тема и к интерфейсу не
|
|
относится: в дизайне показано только место кнопки и что происходит на экране
|
|
во время записи. Кто именно превращает голос в текст — решается потом.
|