---
date: 2026-05-31
type: claude-session
session_id: 83491ec7-16d3-47aa-9bcc-655c342ad2a2
started: 2026-05-30T08:49:37.558Z
ended: 2026-05-31T08:21:51.749Z
messages: 9
tools: [AskUserQuestion, Bash, Edit, Read, TaskCreate, TaskUpdate, ToolSearch, Write]
tags: [claude, session]
---

# ---

## Запрос

---
date: 2026-05-30
type: project-spec
tags: [product, ai-assistant, pilot, openclaw, alexandr, business]
status: draft
---

# AI-ассистент в коробке — пилот для Александра

> **Это первая страница нового продукта Олега.** Цель — собрать автономного AI-консьержа на маленьком ПК, продать Александру (КП Бенелюкс) как пилот. Если зайдёт — переезжает к клиенту физически, дальше масштабирование на других клиентов.

Этот файл — **промт для следующей Claude-сессии**, которая будет строить систему. Открываешь новый чат и вставляешь всё ниже целиком.

---

## 📋 Промт для копирования в новую сессию

```
Я разрабатываю коммерческий AI-консьерж-продукт. Маленький ПК с предустановленным
ассистентом, который покупает домохозяйство и ставит в свою сеть. Сегодня пилот
для одного конкретного клиента — Александра Григорьева (КП Бенелюкс, Истра).

═══════════════════════════════════════════════════════════════════════════════
КОНТЕКСТ — кто я и что у меня уже есть

Я Олег Батлаев, DevOps. У меня уже работает похожая система для себя — Антошка
(openclaw в LXC 137 на моём Proxmox). Она использует OmniRoute (бесплатный
ProxyDispatcher к Sonnet 4.5/Opus/GPT-5.4), есть Telegram-бот, есть Nextcloud
Talk-бот, есть RAG над моим Obsidian-vault. Это базовая референс-архитектура.

Я обслуживаю Александра как сетевого админа уже несколько недель. Знаю всю его
инфру наизусть — описано в моём vault (см. ссылки ниже). Хочу выделить из этой
работы продукт.

═══════════════════════════════════════════════════════════════════════════════
ЦЕЛЬ ПРОЕКТА

Собрать на маленьком ПК (Proxmox VE 9.1, ZOTAC H61 / i3-2100 / 15 GB RAM / 
SSD 112 GB + HDD 1.8 TB, IP 10.0.0.147 пока у меня) автономный AI-ассистент,
который умеет:

1. Помогать Александру с типичными бытовыми IT-проблемами его сети
   («не работает Telegram», «принтер не печатает», «почта не отправляется»)
2. Сам диагностировать (read-only тулы) и предлагать решения
3. Выполнять починку (write-action тулы) только после подтверждения клиента
4. Работать с его документами и почтой через RAG
5. Общаться через 3 интерфейса с единой памятью: Web / Telegram / Nextcloud Talk
6. Постепенно обучаться (расширяемая RAG-база, не fine-tuning)

Бизнес: пилот → если Александр покупает, ПК физически переезжает к нему домой,
переходит в его LAN. Дальше масштабирую на других клиентов.

═══════════════════════════════════════════════════════════════════════════════
АРХИТЕКТУРА (принципы)

✅ ПОЛНАЯ АВТОНОМНОСТЬ от моей dttb-инфры. Бот не должен зависеть от:
   - моего openclaw / claude-memory
   - моего vault / Gitea
   - моего code-server / openclaw-NetBird
   - моего OmniRoute (его instance может крутиться где угодно — отдельно)
   После переезда ПК к клиенту — никаких связей со мной не остаётся, кроме
   возможности удалённой поддержки.

✅ ОТДЕЛЬНЫЙ vault — новый git-репозиторий `alexandr-knowledge-base`. Туда
   копируется ТОЛЬКО инфра Александра (из моего vault projects/benilux/,
   snippets/clients/alexandr-*, claude-memory/benelux*.md, плюс универсальные
   snippets). Данные других моих клиентов (НИИКН, ММФБ, Знаменское, Главторг)
   НЕ копируются ни в каком виде — это утечка их данных третьему лицу.

✅ ВНЕШНИЙ ДОСТУП через мой VPS на Spaceweb с белым IP. Я куплю домен (имя
   уточню позже). От бота до VPS — обратный туннель (рекомендую Cloudflare
   Tunnel — бесплатно, SSL автоматом, не требует port-forward на роутере
   клиента; альтернатива — FRP или WireGuard). На VPS — Nginx Proxy Manager
   или Caddy с Let's Encrypt → проксирует на бота через туннель.

✅ ОДИН ПОЛЬЗОВАТЕЛЬ (Александр). Многопользовательский режим для семьи —
   возможный апгрейд в будущем, но не сейчас.

✅ ГИБРИДНЫЕ TOOLS:
   - read-only (ping, lpstat, awg show, curl, RAG search) — всегда без
     подтверждения
   - write-action (restart_podkop, flush_dns_on_mac, change_uci_setting) —
     ВСЕГДА требуют клик кнопки «Да, разрешаю» в TG/Web inline keyboard
   - все действия логируются → отдельный audit-log канал в TG для меня

═══════════════════════════════════════════════════════════════════════════════
СТЕК ТЕХНОЛОГИЙ (предложение)

Слой              | Технология                          | Где живёт
──────────────────┼─────────────────────────────────────┼──────────────────────
Гипервизор        | Proxmox VE 9.1.0                    | host (уже стоит)
NAS-OS            | ZimaOS в VM 100 (8 GB / 128 GB)     | KVM (запущена сегодня)
Reverse proxy     | NPM в LXC 101 (10.0.0.207)          | LXC (уже работает)
Контейнер бота    | LXC (Debian, ~4 GB RAM)             | новый LXC 102
LLM роутер        | OmniRoute (форк или свой instance)  | LXC 102
Conversation DB   | PostgreSQL                          | LXC 102 в Docker
RAG / vector DB   | Qdrant или pgvector                 | LXC 102 в Docker
Embeddings        | через API (OpenAI text-embedding или        |
                  | Voyage AI или Sonnet с описанием)   | внешние
Email клиент      | MCP-imap server                     | LXC 102 в Docker
Web UI            | Open WebUI или собственный простой  | LXC 102
Telegram bot      | python-telegram-bot или Telethon    | LXC 102
Nextcloud Talk    | Nextcloud в Docker внутри ZimaOS    | VM 100 (Zima)
                  | + Talk-плагин + nextcloud-talk-bot  |
                  | (или повторить мой Антошка-Talk     |
                  | через long-poll скрипт)             |
Туннель           | Cloudflare Tunnel (рекомендую)      | LXC 102 → CF edge
DNS               | Cloudflare (бесплатно)              | для домена клиента
Secrets           | sops + age, либо HashiCorp Vault    | LXC 102

═══════════════════════════════════════════════════════════════════════════════
ИНТЕРФЕЙСЫ И ЕДИНОЕ СОСТОЯНИЕ

3 канала входа — Web / Telegram / Nextcloud Talk — должны делить:
- Conversation history (Postgres)
- RAG-память (Qdrant/pgvector)
- Audit log (отдельная таблица в Postgres)

То есть Александр пишет в TG: «Принтер не печатает». Потом утром идёт в Web →
видит ту же беседу с продолжением. В Nextcloud Talk пишет вечером — тот же
контекст.

═══════════════════════════════════════════════════════════════════════════════
ЗНАНИЯ И ОБУЧЕНИЕ

Старт-импорт в RAG из моего vault (передам файлы через scp или git-clone):
- projects/benilux/README.md
- projects/benilux/credentials.md (только данные Александра, не моих)
- snippets/clients/alexandr-benelux-amnezia-reinstall.md
- snippets/clients/alexandr-benelux-power-recovery.md
- claude-memory/benelux.md
- claude-memory/benelux-topology.md
- decisions/2026-05-20-benelux-compromise.md (история инцидента — учит «бот
  всегда сначала диагностирует, потом действует»)
- decisions/2026-05-20-amneziavpn-macos-v1-v2-incompat.md

Также добавить универсальные знания (без привязки к Александру):
- как закрыть приложение из памяти на iOS/Android/macOS
- как сделать DNS-flush на Mac
- как проверить включён ли Private Relay
- как разбудить HP-принтер из deep sleep
- типичные коды ошибок AmneziaVPN

Self-update memory: после каждой решённой проблемы бот спрашивает Александра
«Это помогло?». Если да — записывает в RAG как новое решение. Через месяц у
бота своя локальная база типичных кейсов Александра.

═══════════════════════════════════════════════════════════════════════════════
PERSONA (стиль общения)

- Имя бота — Олег решит (поле для заполнения, например «Помощник Бенелюкса»)
- Тон: спокойный, дружелюбный, на «ты», без жаргона
- НЕ использовать: «критическая ошибка», «сбой», «недоступен», «провал»
- Использовать: «немного не работает», «давай посмотрим», «починим за минуту»
- Если Александр злится — извиниться, обещать разобраться, не оправдываться
- Перед действием объяснять простыми словами что будет делать
- После действия описывать результат человеческим языком

═══════════════════════════════════════════════════════════════════════════════
ДОСТУП БОТА К СЕТИ АЛЕКСАНДРА (для диагностики)

Сейчас на пилоте — бот живёт в моей LAN dttb (10.0.0.147), к сети Александра
(192.168.1.0/24 за роутером Cudy в Бенелюксе) подключается через NetBird.
Cudy уже в моём NetBird (openwrt-benilux 100.70.207.97). Выдам боту отдельный
NetBird-setup-key с доступом только в группу Бенелюкса.

После переезда ПК к клиенту — бот в его LAN напрямую, прямой доступ к
Cudy/Cloud Key/принтеру/устройствам семьи без NetBird-overhead.

SSH-ключи к устройствам Александра:
- Cudy роутер: ssh-ключ Олежиного Mac уже добавлен; добавим ключ бота
- Cloud Key Gen2+ (192.168.1.199): только по ключу, ключ Александра не у меня
  — попросим Александра добавить наш ключ через UniFi OS Console
- Mac Александра (aleksandrgrigorev): добавим публичный ключ бота
- Принтер HP M775 (192.168.1.148): через CUPS, не SSH

═══════════════════════════════════════════════════════════════════════════════
ЭТАПЫ РЕАЛИЗАЦИИ (предложение)

Этап 1: Базовая инфра (без интернета извне)
  ─ LXC 102 «assistant» на pve-147 (Debian, 4 GB RAM)
  ─ Docker внутри LXC
  ─ Postgres + Qdrant в Docker
  ─ Каркас бота (openclaw-форк, OmniRoute с моими токенами)
  ─ Telegram-bot создан через @BotFather (handle и токен — Олег предоставит)
  ─ Простейший Web UI (Open WebUI)
  ─ Тест: «привет, как дела?» в TG → ответ из Sonnet через OmniRoute

Этап 2: Tools (read-only)
  ─ ping_host, check_router_health, check_printer, check_dns
  ─ NetBird-setup на боте (доступ в Бенелюкс)
  ─ SSH-ключ бота добавлен на Cudy, Mac Александра
  ─ Тест: «проверь работает ли подкоп» → бот делает awg show на Cudy
  
Этап 3: RAG и знания
  ─ Импорт vault Александра в Qdrant
  ─ MCP-инструменты для бота: search_knowledge, recall_history
  ─ Тест: «как починить TG если не открывается» → бот выдаёт инструкцию из RAG

Этап 4: Tools (write-action с подтверждением)
  ─ Inline keyboard в TG: «Да, разрешаю» / «Нет»
  ─ restart_podkop, flush_dns_on_mac, restart_printer_queue
  ─ Audit log в отдельный TG-канал для Олега
  ─ Тест: «принтер не печатает» → бот предлагает действие → клик → перезапуск

Этап 5: Внешний доступ
  ─ Куплен домен (Олег)
  ─ Cloudflare Tunnel настроен (LXC 102 → CF edge → домен)
  ─ Web UI доступен снаружи по HTTPS через домен
  ─ Telegram-bot работает (он и так через TG-API, без туннеля)

Этап 6: Nextcloud Talk и почта
  ─ Nextcloud в Docker на ZimaOS-NAS
  ─ Talk бот через long-poll (по образцу моего nextcloud-talk-bot для Антошки)
  ─ MCP-imap: подключение к почте Александра (IMAP-сервер уточню)
  ─ RAG-индексация писем и документов из NAS-share

Этап 7: Документы
  ─ ZimaOS-NAS share по SMB
  ─ Бот видит файлы через MCP-filesystem
  ─ Индексация в RAG

Этап 8: Обучение и калибровка
  ─ Олег проводит 5-10 тестовых диалогов
  ─ Калибровка persona (тон, длина ответов, эмодзи)
  ─ Тест на семейных сценариях: «помоги маме закрыть рекламу в Сафари»

Этап 9: Юридическое и передача
  ─ Простое соглашение на 1 страницу (Олег подготовит)
  ─ Демо Александру по видеосвязи
  ─ Если покупает — выезд к нему, физический переезд ПК

═══════════════════════════════════════════════════════════════════════════════
ОТКРЫТЫЕ ВОПРОСЫ (для уточнения у Олега в новой сессии)

1. Имя бота? (Алекс, Помощник, Лёша, Билли, что-то фирменное?)
2. Telegram-handle? Олег создаст через @BotFather и даст токен
3. Домен — какой Олег купит? (alexbot.ru, ai-helper.ru, your-helper.online?)
4. VPS Spaceweb — выделить отдельный или использовать существующий?
   IP, доступ?
5. Email сервис Александра — Yandex/Gmail/Mail.ru/iCloud? IMAP-host? App-pass
   или OAuth?
6. Где Александр хранит документы — Mac локально / iCloud / OneDrive? Как
   ассистент к ним получит доступ?
7. Cloudflare Tunnel: использовать существующий аккаунт Олега (если есть) или
   создать новый под клиента?
8. Цена пилота для Александра?
9. Топ-5 типичных сценариев которые точно должны работать к демо
   (TG не открывается, принтер не печатает, что ещё?)
10. Готов ли Олег дать боту admin-уровень доступа к Cudy / Cloud Key, или
    только конкретные команды через sudo-whitelist?

═══════════════════════════════════════════════════════════════════════════════
КОНТЕКСТНЫЕ ССЫЛКИ (мой vault, прочитать перед стартом)

- projects/benilux/README.md — что такое объект Бенелюкс
- projects/benilux/credentials.md — пароли (для копирования в Alex-vault)
- snippets/clients/alexandr-benelux-amnezia-reinstall.md — история инцидента
- snippets/clients/alexandr-benelux-power-recovery.md — типичные кейсы семьи
- claude-memory/benelux.md — текущее состояние Cudy
- claude-memory/benelux-topology.md — карта сети + список устройств
- decisions/2026-05-20-benelux-compromise.md — урок про безопасность
- projects/dttb/proxmox-pve-147.md — карточка целевого хоста
- claude-memory/MEMORY.md — общая память (для понимания моего стиля и инфры)

═══════════════════════════════════════════════════════════════════════════════
КОНЕЦ ПРОМТА. Действуй: задай мне 10 открытых вопросов одним сообщением,
получи ответы, начни с Этапа 1. По итогам каждого этапа — короткий статус
в чате (что сделал, что проверил, что осталось).
```

---

## Что Олег решает в чате (НЕ внутри промта)

Перед открытием новой сессии:

- [ ] Создать TG-бота через @BotFather → получить токен и handle
- [ ] Купить домен (или выбрать из существующих свободных)
- [ ] Проверить статус VPS Spaceweb (есть ли свободный с белым IP)
- [ ] Решить имя бота (или дать новой сессии выбрать варианты)
- [ ] Прикинуть цену пилота — €15/мес? €25? разово €300?

## Что в новой сессии делать НЕ нужно

- ❌ Использовать мой openclaw (LXC 137) — пилот строит свой независимый бот
- ❌ Использовать мою claude-memory или мой Anthropic-API-token
- ❌ Подключать к моему vault через rclone/git
- ❌ Использовать мой Postgres/Qdrant из dttb-инфры
- ❌ Копировать в Alex-vault инфо о других клиентах (ММФБ, НИИКН и т.п.)

## Связанные файлы в vault

- [[proxmox-pve-147]] — целевой хост
- [[../benilux/README]] — объект клиента
- [[../../snippets/clients/alexandr-benelux-amnezia-reinstall]] — история работы
- [[../../snippets/clients/alexandr-benelux-power-recovery]] — типовой плейбук

## Итог (последний ответ Claude, до 500 симв.)

✅ **Whitelist добавлен** — `github.com`, `sgmail.github.com`, `sendgrid.net` теперь в белом списке umnybot.ru, rspamd их пропустит (и greylisting обойдут).

**Причина была не в приёме, а в фильтре:** письма GitHub **долетали до сервера**, но rspamd резал их как спам (новый домен без репутации + SendGrid). Теперь не будет.

👉 **Нажми на странице GitHub `Resend the code`** — код шёл через SendGrid и был отклонён, нужен свежий. Как нажмёшь — **напиши «готово»**, и я за пару секунд выдерну код из ящ

---
*Автосохранено из session [`83491ec7`](file:///Users/ai/.claude/projects/-Users-ai-knowledge-base/83491ec7-16d3-47aa-9bcc-655c342ad2a2.jsonl) — 9 сообщ., тулы: AskUserQuestion, Bash, Edit, Read, TaskCreate, TaskUpdate, ToolSearch, Write*
