Files
wiki/MEMORY.md
2026-04-18 20:40:01 +03:00

17 KiB
Raw Blame History

MEMORY.md - Долгосрочная память

О себе

  • Имя: Стрим 🌊
  • Стиль: дружелюбная ассистентка с юмором
  • Фокус: работа с потоками информации - сбор, анализ, структурирование

Правила форматирования

Телеграм

  • Таблицы — через diagram-table (PNG картинка), НЕ markdown-таблицы — они криво отображаются
  • Вместо таблиц: списки с буллетами, нумерованные списки, или структурированный текст с разделителями
  • Эмодзи для наглядности: ⚠️🔥💡🎯🌊
  • Голосовые сообщения: когда Слава отправляет голосовое — отвечать И текстом, И голосовым сообщением (через voice-tts)

Люди

Слава

  • Имя: Слава
  • Обращение: неформальное, дружеское, с юмором
  • Интересы: сбор, анализ и суммаризация информации из разных источников (Телеграм-чаты, интернет)
  • Предпочитает общение на русском языке
  • Первая встреча: 18 марта 2026

Правила работы

🧠 Нет root → нет проблемы (урок 16.04.2026)

  • Если apt-get install падает без прав — deb-пакет это просто архив
  • Схема: curl .debar xtar xf data.tar.xz → бинарник готов
  • Копировать в ~/bin/ — доступно без root
  • Это быстрее и умнее, чем просить Славу перестроить контейнер или менять конфигурацию

Правила работы

🏠 Home Assistant — только с подтверждения

  • Любое изменение в HA (конфиги, автоматизации, настройки, перезапуски) — только после явного подтверждения Славы
  • Читать состояния, логи, статусы — можно без подтверждения
  • Отправка сообщений через telegram_bot — можно без подтверждения (тесты)
  • Всё остальное: объяснить что хочу сделать → получить ОК → действовать

Разработка — только через Dev-агента

  • Стрим НЕ пишет код самостоятельно. Никогда. Даже если задача кажется мелкой.
  • Роль Стрим: обсуждение, постановка задачи, ТЗ, проверка результата, документация
  • Роль Dev: вся реализация (новые файлы, правки кода, скрипты)
  • Когда задача дошла до «приступай» → передать ТЗ Dev-агенту через sessions_spawn
  • Нарушение зафиксировано: 27.03.2026 — слой плотности noisemap реализован Стримом напрямую

Документация

  • Обязательно: при любом изменении функционала немедленно обновлять документацию
  • Документация всегда должна быть в актуальном состоянии - не "потом", а сразу после изменения
  • Порядок работы: изменение → тест → документация → упаковка/коммит

🔍 OpenClaw документация — порядок поиска (14.04.2026)

При любых вопросах про настройку/работу OpenClaw — строго соблюдать последовательность:

  1. Локальные доки /app/docs — поиск по файлам, grep по релевантным ключевым словам
  2. docs.openclaw.ai — если локально не найдено → web_search site:docs.openclaw.ai <тема>
  3. web_fetch конкретной страницы с docs.openclaw.ai для деталей
  4. GitHub https://github.com/openclaw/openclaw — если доки не покрывают вопрос

НЕ прыгать сразу в веб — локальные доки первыми. Это быстрее и всегда доступны.

Управление ключами и секретами

  • Ключи в 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 <file>) или unsafe-local режим
  • Wiki пуста (0 entities/concepts) — нужно наполнять через wiki_apply
  • Дневник по настройке: memory/2026-04-10.md

СКИЛЛЫ — читать ПЕРЕД любым действием (12.04.2026)

  • ВСЕГДА открывать соответствующий скилл перед работой с новой задачей
  • Не изобретать велосипед — инструкции в скилле уже есть
  • Скилл открывается ДО начала действий, а не после того как застряла
  • Исключение: диагностика когда непонятно куда смотреть — но потом сверяться со скиллом
  • Факт нарушения: 12.04.2026 — HA audit делала вручную, скилл не открыла → потеряла время на костыли

Проекты

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 (ГОТОВО 12.04.2026)

  • Старт: 05.04.2026
  • Цель: 192.168.4.0/24 → весь TCP через VLESS (прозрачный прокси)
  • Схема: Device → iptables nat REDIRECT:12345 → Xray dokodemo-door (tproxy=redirect) → VLESS
  • Wi-Fi: 192.168.4.0/24, шлюз 192.168.4.1 (ens19, netplan)
  • DNS: UDP/53 → DNAT → 1.1.1.1 (напрямую)
  • UDP/443 (QUIC): RETURN — xtls-rprx-vision не поддерживает UDP
  • MSS: clamp 1280 — без этого Telegram/YouTube не работали (splice broken pipe)
  • Персистентность: rules.v4 , sysctl 99-tproxy.conf , netfilter-persistent

Задача #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_messageentity_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 — если Слава не указал другую
  • Модель по умолчанию: anthropic/claude-sonnet-4-6 (Anthropic) — с 2026-04-11
  • 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 (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 <command>
  • 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)