Initial wiki push - 2026-04-10
This commit is contained in:
250
sources/memory.md
Normal file
250
sources/memory.md
Normal file
@@ -0,0 +1,250 @@
|
||||
---
|
||||
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 <file>`) или 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 <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)
|
||||
|
||||
````
|
||||
|
||||
## Notes
|
||||
<!-- openclaw:human:start -->
|
||||
<!-- openclaw:human:end -->
|
||||
|
||||
## Related
|
||||
<!-- openclaw:wiki:related:start -->
|
||||
### Referenced By
|
||||
|
||||
- [Wiki & Memory](entities/project-wiki-memory.md)
|
||||
<!-- openclaw:wiki:related:end -->
|
||||
Reference in New Issue
Block a user