agent-doctor · git:20260324.83f37a8 · 2026-03-24 · sha256 cfd5ea8026a12275
agent-doctor git:20260324.83f37a8B
Immutable. This exact content is served forever at /api/v1/blob/cfd5ea8026a12275.
---
name: agent-doctor
description: "Самодиагностика и автолечение OpenClaw. Проверка gateway, WAL, памяти, кронов, токенов. Автоматическое исправление типичных проблем."
---
# 🏥 Agent Doctor - Самодиагностика OpenClaw
**Версия:** 1.0.0 (Public Release)
**Создано:** 2026-03-06
**Лицензия:** MIT
## Описание
Комплексная диагностика всех систем OpenClaw агента. Проверяет память, кроны, конфиг, файлы, gateway, систему и безопасность. Выявляет проблемы и предлагает конкретные решения.
**ВАЖНО:** Скилл ТОЛЬКО диагностирует. Изменения применяются ТОЛЬКО после вашего явного подтверждения.
## Установка
1. Скопируйте этот файл в `skills/agent-doctor/SKILL.md`
2. Агент автоматически подхватит скилл при следующем запуске
## Триггеры
Когда говорить агенту для запуска:
- "продиагностируй себя"
- "самодиагностика"
- "проверь систему"
- "что с тобой не так"
- "диагностика агента"
- "self-check"
- "health check"
## Как работает
### Алгоритм
1. Агент запускает проверку всех систем
2. Собирает результаты по 7 категориям
3. Формирует отчет с найденными проблемами
4. Предлагает конкретные решения
5. Применяет фиксы ТОЛЬКО после вашего "ок"
### Что проверяется
#### 🧠 Память
1. **SQLite база данных**
- Существует ли ~/.openclaw/memory/*.sqlite?
- Размер базы адекватный?
2. **WAL mode** (критично!)
- Проверка: `sqlite3 ~/.openclaw/memory/main.sqlite "PRAGMA journal_mode;"`
- Должно быть: `wal` (НЕ `delete`!)
- Почему важно: без WAL агент видит устаревшие данные
3. **Количество записей**
- Сколько чанков в базе?
- Есть ли записи из файлов (memory) и сессий (sessions)?
4. **Конфиг memorySearch**
- enabled = true?
- embeddingProvider настроен?
- similarityThreshold указан?
5. **Embedding провайдер**
- OpenAI / Gemini / Anthropic
- API ключ настроен?
6. **Тестовый поиск**
- memory_search возвращает результаты?
- Нет ошибок при запросе?
7. **Файлы памяти**
- MEMORY.md существует и не пустой?
- Структура папок: core/, decisions/, projects/
- Последний daily note (memory/YYYY-MM-DD.md) свежий?
#### ⏰ Кроны
1. **Список всех кронов**
- Команда: `openclaw cron list`
2. **Статус кронов**
- Есть ли отключенные (enabled: false)?
- Когда последний запуск?
3. **Ошибки**
- Падают ли кроны при запуске?
- Количество провалов (failureCount)
#### ⚙️ Конфиг
1. **Валидность openclaw.json**
- Проверка: `jq empty ~/.openclaw/openclaw.json`
- JSON корректный?
2. **Модель**
- defaultModel настроена?
- Провайдер доступен?
3. **Каналы**
- Telegram или Discord подключены?
4. **Секция memorySearch**
- Все нужные поля присутствуют?
5. **Плагины**
- memory-core включен?
- Критично: после обновления OpenClaw этот плагин может отключиться!
6. **Auth profiles**
- Какие провайдеры настроены?
- API ключи на месте?
#### 📁 Файлы агента
1. **Основные файлы**
- SOUL.md / IDENTITY.md - существуют?
- AGENTS.md - есть?
- HEARTBEAT.md - есть?
- USER.md - есть?
2. **Skills**
- Сколько скиллов установлено?
- Все ли SKILL.md читаются?
#### 🔧 Gateway
1. **Статус**
- Команда: `openclaw status`
- Gateway запущен?
2. **Аптайм**
- Как давно работает без перезагрузки?
3. **Ошибки в логах**
- Последние 5 ошибок из ~/.openclaw/logs/gateway.log
4. **Порт**
- Порт свободен или занят другим процессом?
- По умолчанию: 3000
#### 💾 Система
1. **ОС**
- macOS / Linux / Windows?
- Архитектура: x86_64 / arm64?
2. **Node.js**
- Версия >= 20.0.0?
- Команда: `node --version`
3. **Python**
- Версия >= 3.11?
- Команда: `python3 --version`
4. **Свободное место**
- Минимум 1GB рекомендуется
- Команда: `df -h ~`
5. **Версия OpenClaw**
- Актуальная ли?
- Команда: `openclaw --version`
#### 🛡️ Безопасность
1. **Gateway bind**
- Значение: localhost / 127.0.0.1 (хорошо)
- Значение: 0.0.0.0 (опасно! доступ из интернета)
2. **Auth mode**
- token или stronger?
- Защита настроена?
3. **API ключи**
- Не лежат ли в открытом виде в файлах памяти?
- Проверка: `grep -r "sk-" memory/`
### Формат отчета
После проверки вы получите отчет в формате:
```
🏥 ДИАГНОСТИКА АГЕНТА - 2026-03-06 14:30
🧠 Память: ✅ OK / ⚠️ 2 проблемы / ❌ Не работает
⏰ Кроны: ✅ OK / ⚠️ 1 отключен
⚙️ Конфиг: ✅ OK / ⚠️ Неполный
📁 Файлы: ✅ OK / ❌ Нет SOUL.md
🔧 Gateway: ✅ OK / ⚠️ Ошибки в логах
💾 Система: ✅ OK / ⚠️ Мало места
🛡️ Безопасность: ✅ OK / ❌ Публичный доступ
━━━━━━━━━━━━━━━━━━━
📋 ДЕТАЛИ ПРОБЛЕМ:
1. ❌ WAL mode отключен
📝 Что не так: SQLite использует journal_mode=delete
💡 Решение: sqlite3 ~/.openclaw/memory/main.sqlite "PRAGMA journal_mode=WAL;"
⚡ Риск: низкий
2. ⚠️ Embedding провайдер не настроен
📝 Что не так: нет API ключа для embeddings
💡 Решение: openclaw auth add openai
⚡ Риск: низкий
━━━━━━━━━━━━━━━━━━━
Исправить проблемы? (да/нет)
```
### Применение фиксов
Если агент нашел проблемы:
1. Он спросит: "Исправить? (да/нет)"
2. Вы можете сказать "да" (все фиксы) или указать номера: "1, 3"
3. Агент объяснит что будет делать
4. Предупредит о рисках
5. Применит фикс ТОЛЬКО после вашего подтверждения
6. Проверит результат
7. Отчитается
## Типовые проблемы и решения
### ❌ WAL mode отключен
**Почему важно:**
SQLite в режиме `delete` показывает устаревшие данные. Агент не видит новые записи в памяти.
**Симптомы:**
- "Не помню что мы обсуждали 5 минут назад"
- memory_search не находит свежие записи
**Решение:**
```bash
sqlite3 ~/.openclaw/memory/main.sqlite "PRAGMA journal_mode=WAL;"
```
**Риск:** Низкий. Это безопасная операция.
**После:** Перезапустить gateway
---
### ⚠️ memorySearch отключен
**Симптомы:**
- memory_search не работает
- Агент не использует долгосрочную память
**Решение:**
```bash
jq '.memorySearch.enabled = true' ~/.openclaw/openclaw.json > /tmp/config.json && mv /tmp/config.json ~/.openclaw/openclaw.json
```
**Риск:** Средний. Проверьте конфиг после изменения.
**После:** Перезапустить gateway
---
### ❌ Нет embedding провайдера
**Симптомы:**
- memorySearch включен, но не работает
- Ошибки "no embedding provider"
**Решение:**
OpenAI (рекомендуется):
```bash
openclaw auth add openai
```
Gemini:
```bash
openclaw auth add gemini
```
**Риск:** Низкий.
---
### ❌ memory-core плагин отключен
**Почему возникает:**
После обновления OpenClaw плагин может отключиться автоматически.
**Симптомы:**
- Память перестала работать после обновления
**Решение:**
```bash
jq '.plugins = [.plugins[] | if .name == "memory-core" then .enabled = true else . end]' ~/.openclaw/openclaw.json > /tmp/config.json && mv /tmp/config.json ~/.openclaw/openclaw.json
```
**Риск:** Средний. Проверьте конфиг.
**После:** Перезапустить gateway
---
### ⚠️ Старая версия Node.js
**Требование:** Node.js >= 20.0.0
**Симптомы:**
- Gateway не запускается
- Ошибки зависимостей
**Решение:**
macOS (Homebrew):
```bash
brew upgrade node
```
Linux (nvm):
```bash
nvm install 20
nvm use 20
```
Windows (nvm-windows):
```
nvm install 20
nvm use 20
```
**Риск:** Средний. Может потребовать переустановку OpenClaw.
---
### ⚠️ Диск заполнен
**Симптомы:**
- Ошибки записи
- Кроны не работают
- База данных не растет
**Решение:**
Очистить старые логи:
```bash
rm -rf ~/.openclaw/logs/*.log.old
```
Очистить кеш:
```bash
rm -rf ~/.openclaw/cache/*
```
**Риск:** Низкий. Логи и кеш можно удалять безопасно.
---
### ❌ Gateway доступен из интернета
**Почему опасно:**
Если bind = 0.0.0.0, ваш агент доступен из интернета. Любой может подключиться.
**Решение:**
```bash
jq '.gateway.bind = "127.0.0.1"' ~/.openclaw/openclaw.json > /tmp/config.json && mv /tmp/config.json ~/.openclaw/openclaw.json
```
**Риск:** Низкий. После изменения gateway будет доступен только с вашего компьютера.
**После:** Перезапустить gateway
---
### ⚠️ Кроны падают
**Симптомы:**
- failureCount > 0
- lastError не пустой
**Что проверить:**
1. Модель для крона настроена? (должна быть full path, например `anthropic/claude-sonnet-4-6`)
2. API ключ провайдера на месте?
3. Нет ли ошибок в логах крона?
**Решение:**
```bash
openclaw cron list
openclaw cron logs <cron-name>
```
Изучить ошибки и исправить причину.
---
## Когда запускать диагностику
Рекомендуется:
- ✅ После обновления OpenClaw (обязательно!)
- ✅ При странном поведении агента
- ✅ Раз в неделю для профилактики
- ✅ После изменения конфига
- ✅ Если агент "забывает" недавние разговоры
- ✅ Перед важной работой (чтобы убедиться что все в порядке)
## Важные команды
### Перезапуск Gateway
**НЕ делайте так из сессии агента:**
```bash
openclaw gateway restart # Убьет вашу сессию!
```
**Правильно:**
macOS (launchd):
```bash
launchctl kickstart -k gui/$(id -u)/com.openclaw.gateway
```
Linux (systemd):
```bash
systemctl --user restart openclaw-gateway
```
Или вручную:
```bash
openclaw gateway stop
openclaw gateway start
```
### Проверка конфига
```bash
# Валидность JSON
jq empty ~/.openclaw/openclaw.json
# Посмотреть секцию
jq '.memorySearch' ~/.openclaw/openclaw.json
# Изменить значение
jq '.memorySearch.enabled = true' ~/.openclaw/openclaw.json > /tmp/config.json && mv /tmp/config.json ~/.openclaw/openclaw.json
```
### Проверка базы данных
```bash
# Размер
ls -lh ~/.openclaw/memory/*.sqlite
# WAL mode
sqlite3 ~/.openclaw/memory/main.sqlite "PRAGMA journal_mode;"
# Количество записей
sqlite3 ~/.openclaw/memory/main.sqlite "SELECT COUNT(*) FROM memory_chunks;"
# По источникам
sqlite3 ~/.openclaw/memory/main.sqlite "SELECT source, COUNT(*) FROM memory_chunks GROUP BY source;"
```
## Финальный чеклист
После диагностики убедитесь:
- [ ] WAL mode = `wal` (НЕ `delete`!)
- [ ] memorySearch.enabled = true
- [ ] Embedding provider настроен (OpenAI/Gemini)
- [ ] API ключ провайдера на месте
- [ ] memory-core plugin включен
- [ ] Основные файлы существуют (SOUL.md, IDENTITY.md и т.д.)
- [ ] Gateway работает (openclaw status)
- [ ] Кроны не падают (failureCount = 0)
- [ ] Gateway bind НЕ 0.0.0.0
- [ ] Node.js >= 20
- [ ] Свободное место > 1GB
## FAQ
**Q: Можно ли запускать диагностику автоматически?**
A: Да! Создайте крон который запускается раз в день:
```bash
openclaw cron add daily-health-check \
--schedule "0 8 * * *" \
--model "anthropic/claude-sonnet-4-6" \
--payload '{"kind":"agentTurn","message":"Запусти диагностику agent-doctor и отправь краткий отчет"}'
```
**Q: Какие проблемы самые критичные?**
A:
1. WAL mode отключен - агент не видит новые записи
2. memory-core отключен - память не работает вообще
3. Gateway bind = 0.0.0.0 - опасность из интернета
**Q: Агент может сломать систему при автофиксе?**
A: Нет. Скилл применяет ТОЛЬКО безопасные операции и только после вашего подтверждения. Никаких rm -rf, никаких изменений без проверки.
**Q: Как часто бывают проблемы после обновления?**
A: Часто! Особенно с memory-core плагином (отключается) и WAL mode (сбрасывается). ВСЕГДА запускайте диагностику после обновления.
**Q: Можно ли добавить свои проверки?**
A: Да! Просто допишите в SKILL.md свои блоки проверок. Агент умный, поймет структуру.
## Благодарности
Этот скилл создан на основе реальных проблем пользователей OpenClaw из:
- GitHub Issues
- Reddit /r/OpenClaw
- Discord сообщества
## Лицензия
MIT License - свободно используйте, модифицируйте, распространяйте.
## Поддержка
Если скилл помог - поделитесь в сообществе!
Если нашли баг или есть идея - откройте issue на GitHub.
---
**Версия:** 1.0.0
**Дата:** 2026-03-06
🏥 Здоровый агент - продуктивный агент!