--- pageType: source id: source.memory title: MEMORY sourceType: local-file sourcePath: /home/node/.openclaw/workspace/MEMORY.md ingestedAt: 2026-04-10T15:42:43.804Z updatedAt: 2026-04-10T15:42:43.804Z status: active --- # MEMORY ## Source - Type: `local-file` - Path: `/home/node/.openclaw/workspace/MEMORY.md` - Bytes: 15593 - Updated: 2026-04-10T15:42:43.804Z ## Content ````text # MEMORY.md - Долгосрочная память ## О себе - Имя: Стрим 🌊 - Стиль: дружелюбная ассистентка с юмором - Фокус: работа с потоками информации - сбор, анализ, структурирование ## Правила форматирования ### Телеграм - **Таблицы — через diagram-table** (PNG картинка), НЕ markdown-таблицы — они криво отображаются - Вместо таблиц: списки с буллетами, нумерованные списки, или структурированный текст с разделителями - Эмодзи для наглядности: ✅❌⚠️🔥💡🎯🌊 - **Голосовые сообщения:** когда Слава отправляет голосовое — отвечать И текстом, И голосовым сообщением (через voice-tts) ## Люди ### Слава - Имя: Слава - Обращение: неформальное, дружеское, с юмором - Интересы: сбор, анализ и суммаризация информации из разных источников (Телеграм-чаты, интернет) - Предпочитает общение на русском языке - Первая встреча: 18 марта 2026 ## Правила работы ### 🏠 Home Assistant — только с подтверждения - **Любое изменение в HA** (конфиги, автоматизации, настройки, перезапуски) — только после явного подтверждения Славы - Читать состояния, логи, статусы — можно без подтверждения - Отправка сообщений через telegram_bot — можно без подтверждения (тесты) - Всё остальное: объяснить что хочу сделать → получить ОК → действовать ### ⛔ Разработка — только через Dev-агента - **Стрим НЕ пишет код самостоятельно.** Никогда. Даже если задача кажется мелкой. - Роль Стрим: обсуждение, постановка задачи, ТЗ, проверка результата, документация - Роль Dev: вся реализация (новые файлы, правки кода, скрипты) - Когда задача дошла до «приступай» → передать ТЗ Dev-агенту через `sessions_spawn` - Нарушение зафиксировано: 27.03.2026 — слой плотности noisemap реализован Стримом напрямую ### Документация - **Обязательно**: при любом изменении функционала немедленно обновлять документацию - Документация всегда должна быть в актуальном состоянии - не "потом", а сразу после изменения - Порядок работы: изменение → тест → документация → упаковка/коммит ### Управление ключами и секретами - Ключи в `openclaw.json` (botToken, gateway.auth.token, tools.web.search.apiKey) — НЕ ТРОГАТЬ - **Все остальные секреты** — только в `~/.openclaw/.env` - Никогда не дублировать ключи в SKILL.md, скриптах или других файлах ### Структура workspace - `tasks/{project}/` — каждый проект в своей папке, там же `PROJECT.md` с деталями - `tasks/scripts/` и `tasks/reports/` — общие скрипты и отчёты - `skills/` — готовые AgentSkills с полной документацией - `data/` — выходные данные (`data/{skill-name}/`) - `memory/` — дневные записи (`YYYY-MM-DD.md`) - `temp/` — временные файлы, удаляются после использования ### Конфигурация моделей - Текстовые задачи → `agents.defaults.model.primary` - Анализ изображений → `agents.defaults.imageModel` - После изменения конфига — перезапустить гейтвей ### Memory backend: QMD (настроен 10.04.2026) - Конфиг: корневой ключ `memory` в openclaw.json (НЕ под `agents.defaults`!) - QMD бинарник: `/home/node/.local/bin/qmd` — явно прописан в `memory.qmd.command` - Коллекции main: memory-root, sessions, tasks, memory-dir, skills - Проблема с index.yml: QMD создаёт `memory-root-main` с `**/*.md`, OpenClaw ищет `memory-alt-main` - Фикс: вручную добавить в `~/.openclaw/agents/main/qmd/xdg-config/qmd/index.yml` запись `memory-alt-main` - После фикса: `rm ~/.openclaw/agents/main/qmd/xdg-cache/qmd/index.sqlite* && openclaw memory index --force` - Embed на CPU медленный (~30 мин на ~400 чанков) — Vector: unavailable пока идёт, потом auto-ready - Sessions индексируются: транскрипты разговоров searchable! ### Memory Wiki (настроен 10.04.2026) - wiki_status/search/get/apply/lint — добавлены в allowed tools main агента - `includeCompiledDigestPrompt: true` — wiki digest в промптах - Bridge mode НЕ работает (jiti-изоляция плагинов в 2026.4.9) — known limitation - `openclaw wiki bridge import` всегда 0 артефактов — не баг конфига - Workaround: ручной ingest (`openclaw wiki ingest `) или unsafe-local режим - Wiki пуста (0 entities/concepts) — нужно наполнять через `wiki_apply` - Дневник по настройке: `memory/2026-04-10.md` ### Учёт токенов Dev-агента - Реальные данные — из OpenRouter dashboard - Формула: `(input×$3 + output×$15) / 1M` (Sonnet 4.6) - Лог: `tasks/token-log.md`, формат: `DEV-XXX | XK in / XK out → $X.XX` ## Проекты ## Proxy VM — vpn-srv (прокси-сервер) - **Документация:** `tasks/proxy-vm/PROJECT.md` - **vpn-srv:** 192.168.2.200, FRP туннель через 185.130.212.192:7000, SSH port 3322 - **Доступ:** `ssh -i ha_ssh_key -o Port=3322 vpn@185.130.212.192`, sudo: `echo meNt85doC | sudo -S` - **VLESS:** 43.245.226.231:53903, yahoo.com SNI, **flow: xtls-rprx-vision** (обязателен!) - **Xray порты:** 12345 (tproxy), 1080 (SOCKS5), 8888 (HTTP proxy) ### Задача #1: Homenet-VPN Wi-Fi (в работе 🔄) - **Старт:** 05.04.2026 - **Цель:** 192.168.4.0/24 → весь трафик через VLESS (прозрачный прокси) - **Схема:** Device → iptables REDIRECT → redsocks:12350 → Xray SOCKS5:1080 → VLESS - **Wi-Fi:** 192.168.4.0/24, шлюз 192.168.4.1 (ens19, netplan) - **DNS:** UDP/53 → 1.1.1.1 напрямую (утечка допустима) - **Проблема:** TCP через transparent proxy не работает — конфликт xtls-rprx-vision + redirect mode. Продолжение когда Слава дома. ### Задача #2: HA Telegram через VLESS (готово ✅) - **Дата:** 10.04.2026 - **Схема:** HA telegram_bot → SOCKS5 (192.168.2.200:1080) → VLESS → api.telegram.org - **Только Telegram** через прокси, остальной трафик HA — напрямую - **HA:** `ha.homenet542.keenetic.pro` (HAOS 17.1, IP 192.168.2.139) - **Бот:** `@ha542_bot` (8251509944), chat_id Славы: 126472752 - **Entity:** `notify.telegram_bot_8251509944_126472752` - **Сервис:** `notify.send_message` → `entity_id: notify.telegram_bot_8251509944_126472752` - **Config entry:** `01KNVZDDM3ZNJS1WX309K7E1EN` (UI-интеграция с proxy_url) - **SSH к HA через vpn-srv:** скопировать ha_ssh_key → `/tmp/ha_key`, потом `ssh -i /tmp/ha_key root@192.168.2.139` ### Интернет-заказы (vprok.ru) - **Старт:** 31 марта 2026 - **Детали:** `tasks/internet-orders/PROJECT.md` - **Статус:** relay-сервер запущен (185.130.212.192:5000), Windows-клиент готов, ожидает первого теста ### Карта шумового загрязнения FR24 - **Старт:** 22 марта 2026 - **Детали:** `tasks/flightradar24/PROJECT.md` - **Статус:** прототип v0.3 работает, FR24 кредиты закончились, следующий шаг — RTL-SDR ### Telegram Collector - **Старт:** 20 марта 2026 - **Детали:** `tasks/telegram-collector/PROJECT.md` - **Статус:** активен, ежедневный инкремент, @snowbikerussia загружен (155K сообщений) ### Голосовые сообщения / Видеокружочки - **Скилл:** `~/.openclaw/skills/voice-tts/SKILL.md` (ElevenLabs + Yandex SpeechKit fallback) - **Видеокружочки:** `tasks/video-notes/TZ.md`, pipeline ElevenLabs → fal.ai → VEED → Telegram ## Агенты ### Dev — как правильно запускать **Dev** — senior разработчик, workspace: `~/.openclaw/workspace-dev` #### ⚠️ Обязательные параметры sessions_spawn: - `runtime`: `"subagent"` (ACP не настроен — всегда subagent) - `model`: `"nekocode/gpt-5.4"` (если Слава не указал другую) - `cwd`: `"/home/node/.openclaw/workspace-dev"` — **критично!** Без этого агент не находит свой workspace и завершается молча с 0 токенов - `label`: короткое имя задачи (для трекинга, например `"dev-snowbike-rag-recovery"`) - `mode`: `"run"` (одноразовая задача) или `"session"` (диалог) #### Пример вызова: ``` sessions_spawn( task="Прочитай ТЗ из /home/node/.openclaw/workspace/tasks/...\n\nСделай X, Y, Z.\n\nВерни отчёт.", runtime="subagent", model="nekocode/gpt-5.4", cwd="/home/node/.openclaw/workspace-dev", label="dev-taskname" ) ``` #### Что включать в task: 1. Ссылка на ТЗ-файл (абсолютный путь) или полный текст задачи 2. Путь к проекту (где лежат исходники) 3. Ограничения (например: "полную переиндексацию не запускать") 4. Формат ожидаемого отчёта #### Модели: - **Основная:** `nekocode/gpt-5.4` — если Слава не указал другую - **Fallback при rate limit:** `openrouter/minimax/minimax-m2.7` — проверено, работает для dev-задач (2026-04-07) - Rate limit gpt-5.4 проявляется как: агент стартует нормально, но отвечает `{"code":"rate_limited",...}` - Если rate limit — не ждать, сразу переключаться на MiniMax или Sonnet 4.6 #### Частые ошибки: - **Не указывать `cwd`** → агент завершается за 5 сек с 0 токенов (молчаливый фейл) - **`streamTo: "parent"`** → работает только с `runtime=acp`, не с subagent - **runtime=acp** → не настроен, всегда падает с ошибкой #### Dev vs Legal: - **Dev** (id: `dev`) — разработка, дебаг, скрипты - **Юрист** (id: `legal`) — юридические вопросы по РФ, workspace: `~/.openclaw/workspace-legal` - **Федя (Fedia)** — агент, workspace: `~/.openclaw/workspace-fedia` ## Скиллы ### Общие (`~/.openclaw/skills/`) — доступны всем агентам - **voice-tts** — голосовые сообщения (ElevenLabs + Yandex SpeechKit) - **diagram-png** — генерация PNG-диаграмм из JSON - **diagram-table** — таблицы в PNG из JSON (Pillow, dark/light). Скрипты: `generate_table.py` (stdin→PNG), `send_table.py` (PNG→Telegram). Требует `TELEGRAM_BOT_TOKEN` и `TELEGRAM_CHAT_ID` в `.env` ### Мои личные (`workspace/skills/`) — только для Стрим - **ontology** — граф знаний (сущности, связи, запросы) - **telegram-collector** — сбор данных из Telegram-каналов - **youtube-search** — YouTube Data API v3. Ключ: `YOUTUBE_API_KEY` - **yandex-search** — Yandex Search API v2. Ключ: `YANDEX_API_KEY` - **ontology** — граф знаний (сущности, связи, запросы) - **Онтология — общая база знаний**: `memory/ontology/` - `graph.jsonl` — сущности и связи - `schema.yaml` — схема типов - `RULES.md` — правила ведения (обязательны) - **Стрим — единственный writer**: все изменения — только через Стрим - ⚠️ **Правило (10.04.2026):** При работе с проектами всегда автоматически обновлять онтологию (create/update) и запускать `openclaw wiki ingest` для документации — без напоминания Славы - **Другие агенты (Dev, Legal, Feda) — читатели**: запрашивают через `sessions_send` - **Изменения — только с подтверждения Славы** - **При работе с проектами/задачами — всегда использовать онтологию** (правила: `memory/ontology/RULES.md`) - Запуск из workspace: `python3 skills/ontology/scripts/ontology.py ` - Storage: `memory/ontology/graph.jsonl` + `memory/ontology/schema.yaml` - PyYAML не установлен — validate暂时 не работает ## Интеграции - **Flightradar24 API** — тариф Explorer, 60K кредитов/мес (до 31.05.2026 промо 120K) - **GigaChat API** — через gpt2giga прокси - gpt2giga: `185.130.212.192:8443` (baseUrl в openclaw.json) - Xray VLESS outbound: `43.245.226.231:15281` (Франкфурт), UUID b8d92081-..., Reality+chrome, SNI google.com - Xray конфиг: `/home/slin/openclaw/xray-config.json` - OpenClaw получает `HTTPS_PROXY=socks5://xray:10808` через docker-compose environment - Цепочка: OpenClaw (mva154) → Xray VLESS → ??? → gpt2giga → GigaChat API - Примечание: прямое подключение из контейнера к 185.130.212.192:8443 недоступно (timeout), трафик идёт через host-сеть - ⚠️ **TODO:** Слава проверит схему — точно ли Xray участвует в цепочке к gpt2giga или это отдельный маршрут - Локальный gpt2giga НЕ используется, удалён (08.04.2026) ```` ## Notes ## Related ### Referenced By - [Wiki & Memory](entities/project-wiki-memory.md)