Шарик — модель OpenClaw-агента

Шарик — это не магия и не отдельная модель. Это агент: профиль + память + навыки + инструменты + правила безопасности, работающие в контейнере под управлением пользователя.

Profile + Memory + Skills + Tools + Safety
Agent Behavior
📐 Схема 1.1 — Формула агента
Profile Кто я, стиль, правила Memory Что известно Skills Как делать Tools Что сделать Safety Где границы → Agent Behavior ←
Profile определяет личность. Memory даёт факты. Skills — методику. Tools — возможность действия. Safety — границу. Вместе они формируют поведение агента.

Карта всей системы от пользователя до ответа

Запрос пользователя проходит через 5 слоёв. Каждый слой делает одно: передаёт, интерпретирует, выбирает, выполняет, контролирует.

📐 Схема 2.1 — 5 слоёв системы
Слой 1: User Interface 👤 User → Telegram / WebChat / OpenClaw UI Передаёт сообщение Слой 2: Gateway ⚙️ Принимает сообщение, определяет сессию и агента Маршрутизация Слой 3: Agent Runtime 🧩 Загружает контекст → выбирает skill → reasoning → ответ 📚 Читает MEMORY.md, AGENTS.md 🎯 Skill Router 🧠 Reasoning / LLM 🛡 Проверка Safety Слой 4: Tools 🔧 exec / write / read / web_search / web_fetch / memory / cron Действие Слой 5: Infrastructure VM → Docker → Traefik → nginx DNS → Let's Encrypt → HTTPS Исполнение ✅ Ответ / План / Рискованное действие
Схема показывает не конкретный путь, а слои, через которые проходит любой запрос. Подробный пошаговый flow — в секции «Как проходит запрос».

Где живёт Шарик внутри контейнера / снаружи

Агент не летает в облаке. Он запущен в Docker-контейнере на VM. Внутри контейнера — runtime и файлы. Снаружи — VM, Docker, Traefik, сеть.

📐 Схема 3.1 — Внутри контейнера
🐳 OpenClaw Container Изолированная среда исполнения 🧩 Agent Runtime (LLM + reasoning) Загружает модель, контекст, запускает tools 📁 Workspace (файлы) 🧠 Memory files 🎯 Skills (SKILL.md) 🔧 Tool config 🛡 Safety Policy (AGENTS.md + SAFETY_POLICY.md) 📂 Projects/ (состояние проектов) Всё это — ФАЙЛЫ внутри контейнера, не магия
Контейнер — не мозг, а среда. Память — это файлы, смонтированные как volume. Без файлов — агент пуст.
📐 Схема 3.2 — Снаружи контейнера
🌐 Браузер 📡 DNS → |PRIVATE_IP| ☁️ Cloud Security Group (разрешены 80,443,22) 🐧 Ubuntu VM (UFW: 22,80,443 open) 🐳 Docker (Traefik + nginx-сайты) 🔀 Traefik → nginx-контейнер → HTML https://sharik.daicore.ru
Снаружи — цепочка уровней. Каждый уровень — отдельная точка отказа. Diagnostic loop проверяет их по одному.

Как проходит один запрос 10 шагов

Каждый запрос — от простого вопроса до сложного действия — проходит один и тот же путь с разветвлениями на safety check.

📐 Схема 4.1 — Пошаговый flow запроса
👤 Пользователь пишет запрос 📡 Канал: Telegram / WebChat / UI ⚙️ Gateway: принимает, определяет сессию 📚 Загрузка контекста: AGENTS.md, MEMORY.md, проект 🎯 Skill Router: выбор методики 🧠 Reasoning: формирование ответа или плана Нужны действия? ✅ Без действий Агент отвечает текстом, схемой или объяснением 🔧 С действием Агент готовит план: команды, риски, rollback 🛡 Safety Check: риск? → ждёт подтверждение 🔨 Выполнение или отправка ответа ✅ Verification: проверка результата 💾 Memory Update: запись в project state ✅ Готово
Ключевое разветвление: если нужны действия — Safety Check проверяет риск. Если риск есть — ждёт «Разрешаю выполнить». Без этой фразы агент не делает ни шага.

Память: как агент помнит 4 слоя

Агент не имеет «внутренней памяти». Он читает файлы. Память — это набор markdown-файлов в workspace. Если файл не обновлён — агент «забыл».

📐 Схема 5.1 — Поток памяти
📝 Сессионные логи сырые разговоры автоматическая запись 🌙 Сны (dreaming) авто-обобщение выделение паттернов 📆 Daily Memory YYYY-MM-DD.md ручная запись 🏛️ Long-Term MEMORY.md проекты, уроки Файлы памяти MEMORY.md — долгосрочная: project map, модели, safety rules memory/YYYY-MM-DD.md — ежедневная хроника событий PROJECT_STATE.md — текущее состояние каждого проекта TROUBLESHOOTING.md — диагностический паттерн с case study
Память работает через семантический поиск (`memory_search`). Агент не читает всё подряд — он ищет релевантные куски. Если память не обновлять — агент будет отвечать без контекста.

Skills: как агент выбирает методику 15+ навыков

Skill — это не отдельная модель. Skill — это инструкция «как правильно выполнять повторяемый тип задач». Агент читает SKILL.md и следует методике.

⚙️ Infrastructure
• infra-diagnostics
• docker-compose-ops
• traefik-tls
• dns-domain-management
• linux-vm-networking
🧩 OpenClaw
• openclaw-deployment
• website-publishing
• agent-memory-maintenance
• agent-safety
• tz-analyzer-client
☁️ Cloud.ru
• cloudru-ai-factory-architect
• cloudru-cfr
• cloudru-hld-solution-design
• terraform-evolution
• cloudru-docs
📝 Content
• site-layout
• diagram-maker
• documentation-writer
🎯 Как работает Skill Router

Когда пользователь пишет запрос, агент смотрит на ключевые слова и выбирает skill:

«не работает», logs, curl → infra-diagnostics
Traefik, SSL, сертификат → traefik-tls
сайт, publish, nginx, домен → website-publishing
ТЗ, тендер, опросник → tz-analyzer-client
Cloud.ru, AI Factory, FM → cloudru-docs
схема, диаграмма, нарисуй → diagram-maker

Tools: что агент может делать Skill vs Tool

Skill = как думать и действовать. Tool = что технически можно сделать. Skill сам по себе безопасен. Tool без Safety — опасен.

ГруппаИнструментыРискПример
📁 Файловая системаread, write, editСреднийЗаписать в MEMORY.md
💻 ShellexecВысокийdocker run, rm, ls
🌐 Webweb_search, web_fetchНизкийНайти документацию
🧠 Памятьmemory_search, memory_getНизкийНайти проект по теме
⏰ Планированиеcron, sessions_spawnСреднийНапомнить о задаче
🎨 Медиаimage, image_generate, video_generateНизкийСгенерировать картинку
Чем мощнее tool — тем сильнее safety boundary. Shell (exec) может удалить всё, но требует «Разрешаю выполнить». read/write безопасны, но write — только в workspace.

Safety: где границы и контроль пользователя 3 уровня

Агент — не автономный оператор. Пользователь контролирует каждое рискованное действие.

📐 Схема 8.1 — Три зоны безопасности
🟢 Safety-1 Можно сразу Ответить на вопрос Составить план (без exec) Читать файлы (без секретов) Обновить память (безопасно) 🟡 Safety-2 Требует подтверждения exec: shell-команды write/edit: изменение файлов docker run/stop/restart DNS / UFW / Traefik changes 🔴 Safety-3 Запрещено всегда kill -HUP 1 Публикация секретов terraform apply/destroy Удаление openclaw.json
Граница между планированием и действием. Агент всегда должен показать план, риски, affected objects и rollback — и только потом ждать «Разрешаю выполнить».

Диагностический цикл главный паттерн

Это главный способ не превращаться в чёрный ящик. Агент не прыгает от симптома к решению — он собирает факты, строит гипотезы и проверяет минимальными командами.

📐 Схема 9.1 — Troubleshooting loop
1️⃣ Симптом — «не работает» 2️⃣ Scope — что именно, когда, с кем 3️⃣ Факты — docker ps, logs, curl, dig 4️⃣ Гипотезы (2–5) 5️⃣ Минимальные проверки 6️⃣ Evidence — обновление гипотез 7️⃣ Minimal Fix 8️⃣ Verification 9️⃣ Memory Update — запись урока если не помогло → новые гипотезы
Ключевое правило: если HTTPS 200 и сертификат валиден — отладка закончена. Не чинить то, что уже работает. Старые логи — не текущая ошибка.
📖 Case Study: SSL на daicore.ru

Симптом: HTTPS не открывался (давно). Старые логи: ACME-ошибки Let's Encrypt.

Свежая проверка: `curl -vkI https://daicore.ru` → 200 OK, сертификат валиден.

Урок: Не доверять старым логам. Всегда проверять `--since=10m`. Не предлагать архитектурные изменения (смена DNS, миграция на Cloudflare), пока минимальные проверки не доказали необходимость.

Публикация сайтов от HTML до HTTPS

📐 Схема 10.1 — Как сайт попадает в интернет
1. Генерация Агент создаёт index.html 2. SFTP на VM Через SSH daicore-web 3. docker run nginx:alpine --network web 4. Traefik labels Host(domain) TLS, certresolver 5. Let's Encrypt HTTP-01 challenge :80 → cert 6. HTTPS sharik.daicore.ru ✅ работает Что делает каждый компонент nginx — отдаёт статический HTML. Больше ничего не умеет. Traefik — reverse proxy. Принимает HTTPS, смотрит на Host, маршрутизирует в нужный nginx. Docker network web — bridge-сеть. Traefik и nginx видят друг друга по именам контейнеров. Traefik labels — говорят Traefik: «Вот этот контейнер отвечает за домен X. Дай ему сертификат». Let's Encrypt — выписывает TLS-сертификат после проверки, что домен реально указывает на этот сервер. DNS — превращает имя sharik.daicore.ru в IP-адрес сервера. Если DNS не обновлён — никто не найдёт сервер. acme.json — файл с сертификатами. Никогда не публиковать!
Сейчас этот сайт (sharik.daicore.ru) работает именно по этой схеме. Всё, что ты видишь — прошло через эти 6 шагов.

Большая карта все компоненты

Центральная mind map. В центре — Шарик. Вокруг — 9 веток, каждая с кратким пояснением.

🆔 Identity
Имя: Шарик. Роль: пёс инфраструктуры. Стиль: преданный, но с характером. Лаю на проблемы, приношу решения.
🧠 Memory
MEMORY.md — долгосрочная. Daily — ежедневная. Project state — текущее. Dreaming — авто-обобщение сессий.
🎯 Skills
15+ навыков в 4 группах. Skill = методика, не модель. Router выбирает по ключевым словам.
🔧 Tools
Exec, write, read, web_search, memory, cron. Чем мощнее — тем выше safety boundary.
🛡 Safety
3 зоны: можно сразу / требует подтверждения / запрещено. «Разрешаю выполнить» — граница.
⚙️ Infrastructure
OpenClaw VM (Gateway). daicore-web VM (Traefik, сайты). Docker, UFW, DNS, LE.
🔄 Workflows
5 потоков: вопрос, диагностика, действие, публикация, memory update.
🌐 Publishing
HTML → nginx → Traefik labels → LE → HTTPS. 6 шагов от генерации до работающего сайта.
🔍 Troubleshooting
9 шагов: symptom → facts → hypotheses → checks → minimal fix → verification → memory update.

Как понять, что Шарик снова стал чёрным ящиком

🔴 Он не разделяет факты и гипотезы — говорит «причина в ...» вместо «одна из гипотез — ...»
🔴 Он ссылается на старые логи как на текущие — «в логах ошибка ACME» без проверки `--since=10m`
🔴 Он предлагает большую миграцию до минимальных проверок — «давай перейдём на Cloudflare» вместо `curl -I`
🔴 Он не объясняет, какой skill использует — отвечает, не сказав, по какой методике работает
🔴 Он не показывает, что проверит команда — «выполни этот curl» без объяснения, что мы ищем
🔴 Он не показывает rollback — предлагает изменение без способа откатить
🔴 Он продолжает чинить то, что уже работает — HTTPS 200, но всё ещё «разбирается с ACME»
Если заметил что-то из этого — скажи: «Шарик, примени troubleshooting loop» или «объясни, какой skill ты используешь».

Как мной правильно пользоваться

✅ Хорошие запросы
• «Дай current state snapshot»
• «Раздели факты и гипотезы»
• «Покажи минимальную следующую проверку»
• «Объясни, какой skill ты используешь»
• «Что мы пока НЕ делаем?»
• «Запиши итог в project state»
• «Сделай схему»
• «Покажи rollback план»
❌ Плохие запросы
• «Просто почини»
• «Сделай всё сам»
• «Удали всё и пересобери»
• «Не объясняй, просто выполни»
• «Сделай быстро, я спешу»
• «Дай доступ всем»