feat: finalize matrix platform audit and docs
This commit is contained in:
parent
6422c7db58
commit
4524a6abc8
30 changed files with 3093 additions and 176 deletions
22
README.md
22
README.md
|
|
@ -68,7 +68,7 @@ surfaces-bot/
|
|||
- **Чаты** — `!new`, `!chats`, `!rename`, `!archive`, `!help`; новые комнаты регистрируются в локальном `ChatManager`
|
||||
- **Диалог** — сообщения, вложения, подтверждения `!yes` / `!no` и routing через `EventDispatcher`
|
||||
- **Стабильность** — перед `sync_forever()` бот делает bootstrap sync и стартует с `since`, чтобы не переигрывать старую timeline после рестарта
|
||||
- **Текущее ограничение** — encrypted DM пока не поддержан; ручное тестирование Matrix ведётся в незашифрованных комнатах и зависит от локального state-store бота
|
||||
- **Текущее ограничение** — encrypted DM официально не поддержан; ручное тестирование Matrix ведётся в незашифрованных комнатах и зависит от локального state-store бота
|
||||
- **Backend selection** — `MATRIX_PLATFORM_BACKEND=mock` остаётся значением по умолчанию; `MATRIX_PLATFORM_BACKEND=real` использует `platform-agent` из compose и WebSocket contract `/v1/agent_ws/{chat_id}/`
|
||||
- **Ограничения real backend** — локальный runtime использует shared `/workspace`, а файлы передаются как относительные пути в `attachments`
|
||||
|
||||
|
|
@ -125,6 +125,11 @@ MATRIX_PLATFORM_BACKEND=real
|
|||
AGENT_WS_URL=ws://platform-agent:8000/v1/agent_ws/
|
||||
AGENT_BASE_URL=http://platform-agent:8000
|
||||
SURFACES_WORKSPACE_DIR=/workspace
|
||||
|
||||
# platform-agent provider
|
||||
PROVIDER_MODEL=openai/gpt-4o-mini
|
||||
PROVIDER_URL=https://openrouter.ai/api/v1
|
||||
PROVIDER_API_KEY=...
|
||||
```
|
||||
|
||||
### 3. Compose runtime
|
||||
|
|
@ -141,7 +146,12 @@ Compose собирает `platform-agent` из актуального upstream `
|
|||
с правами для agent runtime.
|
||||
Matrix бот подключается к `platform-agent` по service name, а не к отдельно запущенному `localhost`.
|
||||
|
||||
### 4.1. Staged attachments в Matrix
|
||||
На `2026-04-21` локальный compose runtime использует vendored upstream-версии платформы без локальных патчей:
|
||||
|
||||
- `platform-agent`: `5e7c2df954cc3cd2f5bf8ae688e10a20038dde61`
|
||||
- `platform-agent_api`: `aa480bbec5bbf8e006284dd03aed1c2754e9bbee`
|
||||
|
||||
### 4. Staged attachments в Matrix
|
||||
|
||||
Если Matrix-клиент отправляет файлы отдельными media events, бот не вызывает агента сразу.
|
||||
Вместо этого он сохраняет файлы в shared `/workspace`, ставит их в очередь для конкретного чата и пользователя, и ждёт следующего обычного сообщения.
|
||||
|
|
@ -154,7 +164,7 @@ Matrix бот подключается к `platform-agent` по service name, а
|
|||
|
||||
Следующее обычное сообщение пользователя уходит агенту вместе со всеми staged файлами.
|
||||
|
||||
### 4. Запуск бота вручную
|
||||
### 5. Запуск бота вручную
|
||||
|
||||
```bash
|
||||
# Первый запуск или сброс состояния
|
||||
|
|
@ -163,9 +173,9 @@ rm -f lambda_matrix.db && rm -rf matrix_store
|
|||
PYTHONPATH=. uv run python -m adapter.matrix.bot
|
||||
```
|
||||
|
||||
### 5. Онбординг пользователя
|
||||
### 6. Онбординг пользователя
|
||||
|
||||
Напиши боту в **личные сообщения (DM)** на Matrix-сервере. Шифрование не требуется — бот работает в незашифрованных комнатах (на нашем сервере работает и в зашифрованных DM).
|
||||
Напиши боту в **личные сообщения (DM)** на Matrix-сервере. Для поддерживаемого dev-сценария используй незашифрованную комнату: E2EE сейчас не считается поддержанным режимом для Matrix-поверхности.
|
||||
|
||||
Бот автоматически:
|
||||
1. Создаст private Space `Lambda — {твоё имя}`
|
||||
|
|
@ -187,7 +197,7 @@ PYTHONPATH=. uv run python -m adapter.matrix.bot
|
|||
| Переименование | `!rename <название>` | |
|
||||
| Архивация | `!archive` | |
|
||||
| Диалог с агентом | *(любое сообщение)* | Стриминг ответа через WebSocket |
|
||||
| Изоляция контекста | *(автоматически)* | Каждая комната — отдельный thread_id агента |
|
||||
| Изоляция контекста | *(автоматически)* | Каждая комната получает отдельный `platform_chat_id` |
|
||||
| Сохранение контекста | `!save [имя]` | Агент сохраняет краткое резюме разговора |
|
||||
| Список сохранений | `!load` | Выбор по номеру |
|
||||
| Состояние контекста | `!context` | Текущая сессия и список сохранений |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue