---
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

🏥 Здоровый агент - продуктивный агент!
