День 2 – Авторский метод настройки агента
Как Даши заполняет папки Claude Code, какие файлы создаёт и как работает его агент
Скопируй всю страницу и отправь своему Claude Code или ChatGPT – они помогут пройти этот день
Таймкоды
CLAUDE.md – фундамент твоего агента
Без этих файлов агент не знает кто ты, на каком языке отвечать и по каким правилам работать. Это первое, что он читает при старте КАЖДОЙ сессии. Правильно заполненный CLAUDE.md = агент работает так, как тебе нужно, с первой секунды.
- Память живёт в файлах, не в чате. Чат стирается при /compact или новой сессии – CLAUDE.md остаётся и загружается автоматически.
- Глобальный – фундамент, проектный – специализация. Два уровня разделяют общие правила и роль конкретного агента. У тебя на VPS два агента (Jarvis чат + Richard server-doctor) и глобальный CLAUDE.md работает на оба.
- Без CLAUDE.md агент – чистый лист. Не знает имя владельца, язык, таймзону, ограничения. Каждую сессию начинает с нуля.
Скопируй промпт целиком, отправь Jarvis-у в ДуровГрам. Агент выполнит все проверки, сравнит твою настройку с эталонным шаблоном из инсталлера и выдаст отчёт PASS/FAIL по каждому пункту. Никаких ручных bash-команд – всё делает сам.
Проведи самодиагностику архитектуры памяти CLAUDE.md. Выполни все 5 проверок, приложи источники, выдай итоговую таблицу PASS/FAIL. Источники истины (скачай и сравни с тем, что у меня на VPS): - CLAUDE.md (глобальный + агента): https://github.com/qwwiwi/edgelab-claude-md - Архитектура (папки, хуки, settings.json): https://github.com/qwwiwi/public-architecture-claude-code - Gateway (Jarvis Telegram-бот): https://github.com/qwwiwi/jarvis-telegram-gateway 1. Глобальный CLAUDE.md Выполни: ls -la ~/.claude/CLAUDE.md Если файл есть – прочитай его через Read. Извлеки: имя владельца, язык, таймзону, количество строк. Скачай эталон: https://raw.githubusercontent.com/qwwiwi/edgelab-claude-md/main/GLOBAL.md Сравни по разделам: Identity, Owner, Core principles, Security, Language policy. Плейсхолдеры в эталоне должны быть заполнены в моём файле. Если файла нет – зафиксируй FAIL. 2. Проектный CLAUDE.md (Jarvis) Выполни: ls -la ~/.claude-lab/jarvis/.claude/CLAUDE.md Если файл есть – прочитай, перескажи роль агента одним предложением. Скачай эталон: https://raw.githubusercontent.com/qwwiwi/edgelab-claude-md/main/WORKSPACE.md Сравни структуру и ключевые секции. 3. Каскад загрузки Перечисли ВСЕ CLAUDE.md-файлы, которые ты сейчас видишь в контексте этой сессии, с полными путями. Должно быть минимум 2: глобальный + проектный. Если видишь только один – каскад сломан. 4. Архитектура памяти Скачай: https://github.com/qwwiwi/public-architecture-claude-code Сравни у меня на VPS: - ~/.claude-lab/jarvis/.claude/settings.json – хуки, пермишены - Скиллы в ~/.claude-lab/jarvis/.claude/skills/ - Структуру папок по FILES-REFERENCE.md и HOOKS.md из репо 5. Jarvis gateway Скачай: https://github.com/qwwiwi/jarvis-telegram-gateway Сравни с ~/claude-gateway/: - config.json – формат, обязательные поля - gateway.py – версия - systemd: systemctl status claude-gateway В конце выдай: а) таблицу: | Проверка | Статус | Что нашёл | б) если где-то FAIL – предложи конкретный фикс (одной командой или правкой) в) список источников, откуда ты брал эталон и правила архитектуры. Источники для справки: - qwwiwi/edgelab-claude-md – эталонные шаблоны CLAUDE.md (GLOBAL.md + WORKSPACE.md) - qwwiwi/public-architecture-claude-code – референс архитектуры памяти, хуков, скиллов - qwwiwi/jarvis-telegram-gateway – эталон gateway (config.json, gateway.py, systemd) - docs.claude.com/en/docs/claude-code/memory – официальные доки Anthropic
- github.com/qwwiwi/edgelab-claude-md – эталонные шаблоны CLAUDE.md: GLOBAL.md (глобальный) и WORKSPACE.md (проектный). Источник истины для настройки идентичности агента.
- github.com/qwwiwi/public-architecture-claude-code – референсная архитектура памяти Claude Code: папки, хуки, каскад загрузки, settings.json.
- github.com/qwwiwi/jarvis-telegram-gateway – эталон Jarvis gateway: config.json, gateway.py, systemd-юнит. Для проверки что бот настроен правильно.
- github.com/qwwiwi/edgelab-install – публичный инсталлер EdgeLab, install.sh v3.0.3. Генерирует оба CLAUDE.md при установке VPS.
- docs.claude.com/claude-code/memory – официальная документация Anthropic по системе памяти Claude Code.
Теория – как работает память AI-агента
Полный разбор: 4 слоя памяти, хуки, оптимизация токенов, самообучение. То, что отличает болванку Claude от агента с памятью.
- 01Зачем нужна система памяти
- 02Структура папок
- 034 слоя памяти
- 04Что грузится при старте сессии
- 05HOT-память: журнал разговоров
- 06Крон-скрипты: автоматическая ротация
- 07Хуки: автоматизация без участия агента
- 08Оптимизация токенов
- 09Стратегия моделей
- 10Семантический поиск (L4)
- 11Learnings v2: самообучение
- 12Три сценария загрузки
- 13Репозитории и тесты
- 14Промпт для самоаудита
01Зачем нужна система памяти
Базовое контекстное окно Claude Code – 1 000 000 токенов (1М). Но есть проблема:
- Качество агента деградирует после ~50% заполнения
- На 800K+ агент начинает игнорировать инструкции
- Без управления памятью HOT-файл растёт до 80KB+ за день
Мы устанавливаем CLAUDE_CODE_AUTO_COMPACT_WINDOW=400000 – единственная настройка, которую нужно менять. Автокомпакция срабатывает на 400К вместо дефолтных 800К. Рекомендация Бориса Черни (руководитель Claude Code в Anthropic). Все расчёты ниже – относительно 400К рабочего окна, не 1М.
Без системы памяти ваш агент – goldfish с амнезией. Каждая новая сессия – как первый день на работе.
02Структура папок
Каждая папка в .claude/ отвечает за свой слой:
.claude/ ├── CLAUDE.md # SOUL – личность, роль, стиль, границы ├── settings.json # Настройки: env, хуки, permissions ├── core/ │ ├── USER.md # Профиль владельца │ ├── rules.md # Операционные правила и границы │ ├── AGENTS.md # Справочник агентов (on-demand) │ ├── MEMORY.md # Холодная память, индекс уроков │ ├── LEARNINGS.md # Архив уроков из ошибок │ ├── warm/ │ │ └── decisions.md # Ключевые решения (14 дней) │ └── hot/ │ ├── handoff.md # Последние 10 записей (в контексте) │ ├── recent.md # Полный журнал (НЕ грузится в сессию) │ └── archive/ # Старые журналы по датам ├── tools/ │ └── TOOLS.md # Справочник инструментов (on-demand) ├── skills/ # Скиллы – переиспользуемые навыки ├── hooks/ # Shell-скрипты для автоматизации └── scripts/ # Крон-скрипты для ротации памяти
В контекст при старте попадают только 4 файла через @include: USER.md, rules.md, decisions.md, handoff.md. Всё остальное (AGENTS.md, TOOLS.md, MEMORY.md, скиллы) – агент читает по запросу через Read tool. Это экономит ~18K токенов на каждой сессии.
034 слоя памяти
Каждый слой загружается по-разному:
- IDENTITY + WARM + HOT – автоматически при старте через
@include - COLD – агент читает через Read tool, когда нужен старый контекст
- L4 – агент ищет через curl, когда нужна информация старше 24 часов
04Что грузится при старте сессии
| Файл | Отвечает за | Токены |
|---|---|---|
| ~/.claude/CLAUDE.md | Глобальные правила для всех проектов | ~3 200 |
| ~/.claude/rules/*.md | Правила по языкам (python, typescript, bash) | ~430 |
| CLAUDE.md (SOUL) | Личность агента, стиль, роль, границы | ~3 500 |
| core/USER.md | Профиль владельца: каналы, продукт, стиль | ~765 |
| core/rules.md | Операционные правила: безопасность, границы | ~1 935 |
| core/warm/decisions.md | Ключевые решения за последние 14 дней | ~1 400 |
| core/hot/handoff.md | Последние 10 записей из журнала | 450–1 800 |
| ИТОГО | ~11–13K |
11–13K токенов из 400К рабочего окна – это ~3% контекста. Остальные 97% – для работы. Полный журнал (recent.md) в сессию НЕ загружается – только handoff.md (последние 10 записей). AGENTS.md и TOOLS.md тоже НЕ грузятся при старте – агент читает их через Read tool по запросу. Экономия ~18K токенов.
05HOT-память: журнал разговоров
Gateway автоматически записывает каждое взаимодействие в recent.md:
### 2026-04-14 15:03 [own_voice] Принц: (транскрипция голосового, 200 символов) Агент: (сжатый ответ, 200 символов)
Теги источников:
| Тег | Источник |
|---|---|
| own_text | Текстовое сообщение |
| own_voice | Голосовое (транскрибация через Groq Whisper) |
| forwarded | Пересланное сообщение |
| external_media | Внешние медиа |
recent.md – это полный журнал. Он растёт до 80KB+ за день без сжатия. В контекст сессии попадает только handoff.md – последние 10 записей (~1–4 KB). Stop-хук извлекает их из recent.md при завершении сессии. Следующая сессия получает только сжатый handoff, не весь журнал.
06Крон-скрипты: автоматическая ротация
| Время | Скрипт | Что делает |
|---|---|---|
| 04:30 | rotate-warm.sh | WARM старше 14 дней → COLD |
| 05:00 | trim-hot.sh | HOT старше 24ч → Sonnet сжимает → WARM |
| 06:00 | compress-warm.sh | WARM больше 10KB → Sonnet пересжимает |
| 06:30 | ov-session-sync.sh | HOT + WARM → OpenViking (семантика) |
| 21:00 | memory-rotate.sh | COLD больше 5KB → archive/YYYY-MM.md |
Сначала ротация WARM, потом сжатие HOT, потом пересжатие WARM, потом синхронизация в OpenViking. Sonnet используется для сжатия (не Opus) – экономия в 4 раза при том же качестве суммаризации.
07Хуки: автоматизация без участия агента
Хуки – это shell-команды на события жизненного цикла Claude Code. CLAUDE.md – рекомендация (~80% compliance). Хуки – принуждение (100%).
Базовые хуки (для любого агента):
- block-dangerous.sh (PreToolUse → Bash) – блокирует rm -rf, git push --force, DROP TABLE, curl | bash. Exit 2 = операция отменена.
- protect-files.sh (PreToolUse → Edit|Write) – защищает .env, .pem, .key, secrets/*, package-lock.json от случайного изменения.
- log-commands.sh (PostToolUse → Bash) – логирует каждую команду в command-log.txt. Аудит.
Продвинутые хуки (мультиагентная система):
- session-bootstrap.sh (SessionStart) – загружает топ-5 уроков из episodes.jsonl, проверяет inbox, ставит heartbeat online.
- auto-recall.mjs (UserPromptSubmit) – отправляет промпт в OpenViking, возвращает релевантные воспоминания.
- correction-detector.sh (UserPromptSubmit) – ловит фразы типа «не надо», «неправильно» – и триггерит запись урока.
- review-reminder.sh (PostToolUse) – после 10+ правок напоминает запустить code review перед коммитом.
- flush-to-openviking.sh (PreCompact) – перед компакцией сохраняет HOT+WARM в OpenViking. Ничего не теряется.
- write-handoff.sh (Stop) – генерирует handoff.md. Следующая сессия начинается там, где закончилась предыдущая.
Конфигурация в settings.json:
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": ".claude/hooks/block-dangerous.sh"
}]
}]
}
}
08Оптимизация токенов
В settings.json нужна только одна env-переменная:
{
"env": {
"CLAUDE_CODE_AUTO_COMPACT_WINDOW": "400000"
}
}
Никаких других env-переменных менять не нужно. Не ставьте MAX_THINKING_TOKENS, SUBAGENT_MODEL, AUTOCOMPACT_PCT – оставьте дефолты. Модели управляются через стратегию, а не через env.
Terse Mode: экономия на выводе. Output-токены стоят в 5 раз дороже input (Opus: $15 vs $75 за 1М токенов). При рабочем окне 400К каждый лишний токен на счету. Добавьте в rules.md:
## Output style Drop: articles (a/an/the), filler, pleasantries, hedging. Fragments OK. Short synonyms. Pattern: [thing] [action] [reason]. [next step].
До: «Sure! I'd be happy to help you with that. The issue is likely caused by a problem in the auth middleware.»
После: «Bug in auth middleware. Token expiry check uses < not <=. Fix:»
Экономия: ~75%. Агент пишет полный код и точные ошибки – сжимается только проза.
09Стратегия моделей
Opus для кода и решений, Sonnet для субагентов. Без полумер – качество кода требует лучшую модель. Субагенты берут объём.
| Модель | Роль | Для чего |
|---|---|---|
| Opus 4.7 | Primary | Код, ревью, планирование, координация |
| Sonnet 4.6 | Subagents | Ресерч, поиск, анализ, сжатие памяти |
| Codex GPT-5.5 | Optional | Double review (второе мнение рядом с Opus) |
| Sonar | Optional | Веб-ресерч, проверка фактов |
| Модель | Input | Output | Относительно |
|---|---|---|---|
| Sonnet 4.6 | $3/M | $15/M | 1x (базовая) |
| Opus 4.7 | $15/M | $75/M | ~5x (окупается качеством) |
На подписке Max ($100–200/мес) все модели включены. Стоимость = расход rate limit, не деньги. Sonnet для субагентов = быстрее ответ + меньше контекста.
Opus через OpenRouter – НИКОГДА. Только нативный Anthropic API или Anthropic Max подписка.
10Семантический поиск (L4)
L4 – это локальная семантическая база для долгосрочной памяти. Агент ищет по смыслу, не по ключевым словам.
Как работает:
- Stop hook или cron (06:30 UTC) загружает HOT + WARM в OpenViking
- OpenViking создаёт эмбеддинги автоматически
- При следующей сессии auto-recall.mjs ищет релевантную информацию
# Поиск
curl -X POST "http://localhost:1933/api/v1/search/find" \
-H "X-API-Key: $KEY" \
-d '{"query": "что решили по API", "limit": 10}'
Каждый агент пишет в свой namespace, но ищет по всем. Кросс-агентный поиск «из коробки».
11Learnings v2: самообучение
Агент записывает уроки из ошибок. Не просто «запомнить», а системно менять себя, чтобы ошибка не повторилась.
Как работает detection. Хук correction-detector.sh (UserPromptSubmit) сканирует каждое сообщение пользователя на триггерные слова:
| Категория | Слова |
|---|---|
| Прямые коррекции | «не надо», «неправильно», «не так», «перестань» |
| Обвинительные вопросы | «почему ты», «зачем ты», «ты забыла», «ты опять» |
| Сломанное состояние | «сломал», «сломано», «не работает» |
| Повторные инструкции | «я же говорил», «сколько раз» |
При совпадении хук инжектирует напоминание: «КОРРЕКЦИЯ ОБНАРУЖЕНА. Запиши learning через learnings-engine.mjs capture».
Pipeline: от ошибки к системному изменению:
Коррекция от пользователя → correction-detector.sh (ловит триггер) → learnings-engine.mjs capture (записывает в episodes.jsonl) → learnings-engine.mjs score (вычисляет рейтинг) → learnings-engine.mjs lint (находит HOT/STALE/PROMOTE) → learnings-engine.mjs promote (меняет систему)
Формат записи (episodes.jsonl):
{
"id": "EP-20260414-001",
"ts": "2026-04-14T15:03:00Z",
"type": "correction",
"source": "prince",
"context": "что произошло",
"error": "что было не так",
"rule": "правило на будущее",
"impact": "high",
"tags": ["workflow", "git"],
"freq": 1,
"status": "active"
}
Скоринг. Каждый эпизод получает композитный score (0–1):
| Фактор | Вес | Как считается |
|---|---|---|
| Recency (свежесть) | 40% | Линейное затухание за 30 дней |
| Frequency (частота) | 30% | Сколько раз повторилось (cap: 3) |
| Impact (критичность) | 30% | critical=1.0, high=0.7, medium=0.4, low=0.1 |
- Score > 0.8 или freq ≥ 3 → PROMOTE (изменение системы)
- Score < 0.15 → STALE (архивировать, урок неактуален)
- freq ≥ 3 → HOT (правило не работает, нужно менять систему)
Пирамида надёжности:
Чем критичнее ошибка – тем выше по пирамиде она промоутится. Продакшн-баг → сразу в хук/скрипт.
Куда промоутится по тегам:
| Теги эпизода | Целевой файл | OK владельца? |
|---|---|---|
| stack, models, tools | TOOLS.md | нет |
| workflow, communication | CLAUDE.md / SKILL.md | нет |
| security, git | rules.md | да |
| config, scp | rules.md | да |
Зелёная зона (TOOLS.md, SKILL.md) – агент меняет автономно. Красная зона (rules.md, CLAUDE.md) – только с разрешения владельца.
12Три сценария загрузки
| Сценарий | Токены | % от 400К |
|---|---|---|
| После крона | ~27K | ~7% |
| Конец дня (до крона) | ~60K | ~15% |
| Крон сломан неделю | ~114K | ~29% |
При рабочем окне 400К: после крона память занимает 7%, без крона – 15%. Если крон сломан неделю – 29%, что уже ощутимо. Сжатие существует для чистоты контекста и сохранения качества агента.
13Репозитории и тесты
1. public-architecture-claude-code – архитектура, шаблоны, скрипты, install.sh. github.com/qwwiwi/public-architecture-claude-code
2. jarvis-telegram-gateway – Gateway: Telegram → Claude Code. github.com/qwwiwi/jarvis-telegram-gateway
3. architecture-brain-tests – 800 тестов, проверяющих всё вышеописанное. github.com/qwwiwi/architecture-brain-tests
Категории тестов:
- T20: безопасность (нет секретов в шаблонах, .gitignore)
- T26: модели (правильные ID, запреты, double review)
- T27: COMPACT_WINDOW (400K, 1М контекст)
- T28: Learnings v2 (движок, скоринг, пирамида)
- И ещё 25+ категорий
14Промпт для самоаудита
Скопируйте и отправьте своему агенту. Он проверит себя по всем правилам:
Memory:
- Есть ли CLAUDE.md? Сколько строк? (цель: до 200)
- Есть ли @include для USER.md, rules.md, decisions.md?
- Есть ли core/hot/recent.md? Какой размер?
- Есть ли core/warm/decisions.md?
- Настроены ли крон-скрипты для ротации памяти?
Settings:
- CLAUDE_CODE_AUTO_COMPACT_WINDOW установлен? (цель: 400000)
Models:
- Opus используется для кода и ревью?
- Sonnet используется для субагентов?
- Double review настроен (Opus + Codex GPT-5.5)?
Hooks:
- Есть ли PreToolUse хук для блокировки опасных команд?
- Есть ли PostToolUse хук для логирования?
- Есть ли Stop хук для записи handoff?
Security:
- .env, .key, .pem файлы в .gitignore?
- Секреты хранятся в secrets/ или shared/secrets/?
- Нет ли хардкоженных токенов/ключей в файлах?
Token optimization:
- CLAUDE.md меньше 200 строк?
- AGENTS.md и TOOLS.md грузятся on-demand, а не @include?
- Используется /compact между задачами?
Формат результата: Пройдено: X/18, Не пройдено: [список с рекомендациями].
Архитектура открыта. install.sh ставит всё за 2 минуты. 800 тестов проверяют, что ничего не сломано. Берите, адаптируйте, улучшайте. Базовое окно 1М, рабочее – 400К (CLAUDE_CODE_AUTO_COMPACT_WINDOW=400000). Остальное – архитектура памяти, хуки и дисциплина.
К вечеру: агент настроен по авторскому методу – знает контекст и задачи участника.
Подключи семантическую память – OpenViking + OpenAI
CLAUDE.md даёт агенту идентичность – имя, роль, правила. Но факты из разговоров (что ты решил, кого упомянул, какую цифру назвал) в CLAUDE.md руками записывать не будешь. Нужна долгосрочная семантическая память: агент сам складывает факты в хранилище и достаёт их по смыслу, а не по ключевым словам.
OpenViking – open-source «context database for AI agents» от volcengine (22K ★ на GitHub, Apache 2.0). На нём сейчас работает моя собственная долгосрочная память. Есть официальный Claude Code plugin: tools memory_recall, memory_store, memory_forget, memory_health плюс hooks (auto-recall на каждый запрос, auto-capture при остановке сессии).
OpenViking бесплатный и open-source, но для извлечения смысла обращается к моделям OpenAI (можно Ollama локально, но для учебного воркшопа OpenAI проще и быстрее). Нужен OpenAI API key и $5 на балансе – хватит на месяцы при нашей нагрузке.
- API key – твой личный пароль к OpenAI. Создаётся в кабинете за 1 клик, начинается с
sk-.... Оплата по факту: копейки за embeddings, рубли за LLM. $5 на балансе – буфер на месяцы. - Embeddings – модель превращает текст в вектор (набор 1536 чисел). «Владелец – Даши» становится точкой в 1536-мерном пространстве. Через месяц ты спросишь «кто мой хозяин?» – OpenViking считает вектор запроса и ищет ближайшие точки. Так работает поиск по смыслу, а не по ключам. Модель:
text-embedding-3-small– $0.02 за 1M токенов, почти бесплатно. - VLM / LLM – читает большие тексты (100 KB статья, час диалога) и сжимает в два уровня: L0 (~100 токенов – абстракт одной строкой), L1 (~2000 токенов – подробный пересказ). Агент в 95% случаев читает L1/L0, не оригинал – экономит контекст. Модель:
gpt-4o-mini– в ~10 раз дешевле дефолтногоgpt-5.5из docs, для воркшопа более чем достаточно.
- Открой platform.openai.com/api-keys, залогинься или зарегистрируйся.
- Нажми «Create new secret key» → имя «
openviking-edgelab» → «Create» → скопируй ключ (начинается сsk-..., показывают ОДИН раз – не закрывай окно пока не сохранил). - Открой billing → «Add payment method» → пополни баланс на $5.
- Агент попросит ключ в диалоге – ты просто вставишь
sk-...следующим сообщением. Сам ключ он запишет в файл~/.openviking/ov.confна твоём VPS с правами 600 (никто кроме тебя не прочитает).
ov.conf – для справкиАгент сам создаст этот файл и подставит ключ. Блок приведён чтобы ты видел что именно записывается. Кнопка «Копировать» справа вверху – если хочешь сделать конфиг руками.
{
"embedding": {
"dense": {
"api_base": "https://api.openai.com/v1",
"api_key": "sk-ВСТАВЬ_СВОЙ_КЛЮЧ",
"provider": "openai",
"dimension": 1536,
"model": "text-embedding-3-small"
}
},
"vlm": {
"api_base": "https://api.openai.com/v1",
"api_key": "sk-ВСТАВЬ_СВОЙ_КЛЮЧ",
"provider": "openai",
"model": "gpt-4o-mini"
}
}
Агент выполнит все команды сам: поставит Docker, создаст ov.conf, поднимет OpenViking, подключит к Claude Code через официальный plugin, сделает smoke-проверку. Ты только подставишь свой sk-... ключ когда агент попросит. Кнопка «Копировать» – в правом верхнем углу блока.
Установи OpenViking как мою долгосрочную семантическую память с провайдером OpenAI. Действуй строго по шагам, на каждом покажи вывод команды.
0. СПРОСИ У МЕНЯ OpenAI API key (начинается с sk-...). Я вставлю его следующим сообщением. Напомни что нужен баланс минимум $5 на platform.openai.com/settings/organization/billing.
БЕЗОПАСНОСТЬ: мой ключ – секрет. Никогда не показывай его в ответах, логах, коммитах. После того как я его дал – не цитируй. Проверь что ~/.openviking/ не попадёт в Git.
1. Проверь Docker. Выполни: docker --version && docker compose version
Если Docker не установлен – поставь: sudo apt-get update && sudo apt-get install -y docker.io docker-compose-plugin
Затем: sudo systemctl enable --now docker
Если упало – STOP, покажи полную ошибку.
2. Создай рабочую директорию и скачай официальный docker-compose.yml:
mkdir -p ~/.openviking/data && cd ~/.openviking
curl -fsSL https://raw.githubusercontent.com/volcengine/OpenViking/main/docker-compose.yml -o docker-compose.yml
3. Создай файл ~/.openviking/ov.conf со следующим JSON (подставь мой API key в ОБА поля api_key):
{
"embedding": {
"dense": {
"api_base": "https://api.openai.com/v1",
"api_key": "МОЙ_КЛЮЧ",
"provider": "openai",
"dimension": 1536,
"model": "text-embedding-3-small"
}
},
"vlm": {
"api_base": "https://api.openai.com/v1",
"api_key": "МОЙ_КЛЮЧ",
"provider": "openai",
"model": "gpt-4o-mini"
}
}
Модели выбраны бюджетно: text-embedding-3-small ($0.02 за 1M токенов) + gpt-4o-mini (в ~10 раз дешевле дефолтного gpt-5.5 из docs). Для учебного воркшопа $5 хватит надолго.
После создания обязательно: chmod 600 ~/.openviking/ov.conf (ключ – секрет, файл только для владельца).
4. Подними сервер в фоне: cd ~/.openviking && docker compose up -d
Дождись пока контейнер станет healthy: docker compose ps (колонка STATUS должна быть Up / healthy).
5. Проверь что API живой: curl -sS http://localhost:1933/health
Ожидаю {"status":"ok"}. Если нет – docker compose logs, разбери ошибку, предложи фикс. Если OpenAI ключ невалиден – health упадёт с явной ошибкой авторизации, тогда попроси меня выдать новый ключ.
6. Когда /health отвечает ok – выведи мне РОВНО такой блок (я скопирую в Claude Code, это slash-команды, ты сам их выполнить не можешь):
/plugin marketplace add Castor6/openviking-plugins
/plugin install claude-code-memory-plugin@openviking-plugin
Одной строкой поясни: это официальный Claude Code plugin от OpenViking, добавит tools memory_recall / memory_store / memory_forget / memory_health плюс hooks для auto-recall и auto-capture.
7. Когда я скажу что plugin установлен – сделай три проверки:
а) вызови tool memory_health – если ok, память подключена;
б) сохрани первую запись через memory_store: «Владелец {{моё_имя}}, таймзона {{моя_таймзона}}, воркшоп EdgeLab day-2 закрыт {{сегодняшняя_дата}}»;
в) сделай memory_recall по запросу «владелец» – должен вернуть то что только что сохранил.
8. В конце выдай отчёт:
– Docker: версия, статус сервиса
– OpenViking: порт, health, uptime контейнера
– ov.conf: существует, chmod 600, модели embedding и vlm
– OpenAI ключ: присутствует в конфиге (НЕ показывай сам ключ, только факт наличия)
– Plugin: установлен / не установлен, список доступных tools
– Первая запись: сохранена, найдена через recall
Если любой шаг упадёт – STOP, полный вывод ошибки, не угадывай, не переходи к следующему шагу.
- github.com/volcengine/OpenViking – официальный репозиторий (volcengine, Apache 2.0, 22K ★). docker-compose.yml, docs, integration examples.
- openviking.ai – официальный сайт проекта.
-
docs/en/guides/01-configuration.md – конфигурация
ov.conf: секция «OpenAI Models» со всеми полями embedding и vlm. - docs/en/getting-started/03-quickstart-server.md – quickstart сервера: установка, запуск, подготовка конфига.
- examples/claude-code-memory-plugin – официальный Claude Code plugin (MCP tools memory_* + hooks auto-recall/capture).
- platform.openai.com/api-keys – создание OpenAI API ключа.
- platform.openai.com/docs/guides/embeddings – официальная документация OpenAI про эмбеддинги (что это, как работают, ограничения).
- qwwiwi/public-architecture-claude-code – моя референсная архитектура Claude Code, где OpenViking описан как L4 semantic layer.