docs(05): single-chat arch + DM-first onboarding + !clear

This commit is contained in:
Mikhail Putilovskij 2026-04-27 22:25:24 +03:00
parent e20634902e
commit daa780c0b8

View file

@ -7,25 +7,41 @@
## Phase Boundary ## Phase Boundary
Подготовить Matrix-бот к реальному деплою на lambda.coredump.ru: Подготовить Matrix-бот к реальному деплою на lambda.coredump.ru:
1. Расширить config/matrix-agents.yaml — добавить user_agents (Matrix user_id → agent_id) и per-agent base_url/workspace_path 1. Перейти на single-chat архитектуру (chat_id=0, один контекст на пользователя)
2. Обновить AgentRegistry и _build_platform_from_env для per-agent URL routing 2. Упростить онбординг: DM-first без Space/rooms provisioning, welcome-сообщение при invite
3. Реализовать file transfer через shared volume /agents/: входящие файлы → incoming/{filename} в workspace агента, исходящие — читать из workspace и отправлять в Matrix 3. Расширить config/matrix-agents.yaml — добавить user_agents (Matrix user_id → agent_id) и per-agent base_url/workspace_path
4. Написать docker-compose.prod.yml только для Matrix-бота (агентские контейнеры — зона платформы) 4. Обновить AgentRegistry и _build_platform_from_env для per-agent URL routing
5. Удалить команду !agent (legacy от динамического роутинга) 5. Реализовать file transfer через shared volume /agents/: входящие → incoming/{filename}, исходящие через MsgEventSendFile
6. Добавить !clear (сброс контекста через переподключение AgentApi)
7. Написать docker-compose.prod.yml с полным стеком (matrix-bot + placeholder agent + named volume agents)
8. Удалить legacy: !agent, !new, !archive, !rename, !save, !load, Space-creation, C1/C2/C3 room provisioning
НЕ входит: НЕ входит:
- Конфигурация агентских контейнеров (платформа) - Конфигурация агентских контейнеров (платформа)
- Telegram-адаптер - Telegram-адаптер
- E2EE - E2EE
- platform-master интеграция - platform-master интеграция
- !save / !load (ненадёжны без persistent memory в агенте)
</domain> </domain>
<decisions> <decisions>
## Implementation Decisions ## Implementation Decisions
### Single-chat архитектура
- **D-01:** chat_id=0 для всех сообщений. Один контекст агента на пользователя. Изоляции между разными разговорами нет — вместо этого `!clear` сбрасывает контекст.
- **D-02:** Удалить всю multi-room инфраструктуру: C1/C2/C3, `!new`, `!archive`, `!rename`, Space-creation, room provisioning. Matrix-бот работает только в DM-комнате (личка с ботом).
- **D-03:** Удалить `!save` и `!load` — ненадёжны без persistent memory в агенте (MemorySaver сбрасывается на рестарте).
### Онбординг (DM-first)
- **D-04:** При получении invite в DM-комнату — принять, отправить welcome-сообщение: "Привет! Я Lambda AI-агент. Просто напиши — и я отвечу. `!clear` чтобы начать новый разговор, `!context` чтобы посмотреть статус."
- **D-05:** Никакого Space, никаких дочерних комнат. Вся переписка в одной DM-комнате.
### !clear (новая команда)
- **D-06:** Сбросить контекст агента — закрыть текущий AgentApi connection и создать новый (`await agent.close()` + `await agent.connect()`). Это сбрасывает MemorySaver. Подтвердить пользователю: "Контекст сброшен. Начнём с чистого листа."
### !agent команда ### !agent команда
- **D-01:** Удалить полностью. Маппинг user→agent теперь статический из config. Пользователь не может менять агента. - **D-07:** Удалить полностью. Маппинг user→agent теперь статический из config. Пользователь не может менять агента.
### Конфиг агентов (config/matrix-agents.yaml) ### Конфиг агентов (config/matrix-agents.yaml)
- **D-02:** Расширить текущий matrix-agents.yaml — добавить user_agents dict и поля base_url/workspace_path к каждому агенту. Один файл, один парсер. Формат по docs/deploy-architecture.md: - **D-02:** Расширить текущий matrix-agents.yaml — добавить user_agents dict и поля base_url/workspace_path к каждому агенту. Один файл, один парсер. Формат по docs/deploy-architecture.md: