diff --git a/.planning/phases/05-mvp-deployment/05-CONTEXT.md b/.planning/phases/05-mvp-deployment/05-CONTEXT.md index 9c35e97..87fb498 100644 --- a/.planning/phases/05-mvp-deployment/05-CONTEXT.md +++ b/.planning/phases/05-mvp-deployment/05-CONTEXT.md @@ -7,25 +7,41 @@ ## Phase Boundary Подготовить Matrix-бот к реальному деплою на lambda.coredump.ru: -1. Расширить config/matrix-agents.yaml — добавить user_agents (Matrix user_id → agent_id) и per-agent base_url/workspace_path -2. Обновить AgentRegistry и _build_platform_from_env для per-agent URL routing -3. Реализовать file transfer через shared volume /agents/: входящие файлы → incoming/{filename} в workspace агента, исходящие — читать из workspace и отправлять в Matrix -4. Написать docker-compose.prod.yml только для Matrix-бота (агентские контейнеры — зона платформы) -5. Удалить команду !agent (legacy от динамического роутинга) +1. Перейти на single-chat архитектуру (chat_id=0, один контекст на пользователя) +2. Упростить онбординг: DM-first без Space/rooms provisioning, welcome-сообщение при invite +3. Расширить config/matrix-agents.yaml — добавить user_agents (Matrix user_id → agent_id) и per-agent base_url/workspace_path +4. Обновить AgentRegistry и _build_platform_from_env для per-agent URL routing +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-адаптер - E2EE - platform-master интеграция +- !save / !load (ненадёжны без persistent memory в агенте) ## 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 команда -- **D-01:** Удалить полностью. Маппинг user→agent теперь статический из config. Пользователь не может менять агента. +- **D-07:** Удалить полностью. Маппинг user→agent теперь статический из config. Пользователь не может менять агента. ### Конфиг агентов (config/matrix-agents.yaml) - **D-02:** Расширить текущий matrix-agents.yaml — добавить user_agents dict и поля base_url/workspace_path к каждому агенту. Один файл, один парсер. Формат по docs/deploy-architecture.md: