День 1 – Установка и первый диалог
Установка AI-агента на VPS, подключение к ДуровГрам, знакомство, первый разговор. 90 минут.
Скопируй всю страницу и отправь своему Claude Code или ChatGPT – они помогут пройти этот день
Содержание
Внимание: технические сложности на эфире
На эфире возникли технические сложности при подключении к VPS через терминал. Примерно с 55 минуты контент уже неактуален – смотрите видео-инструкцию ниже, там весь процесс показан без ошибок.
Таймкоды
Урок: как с нуля поставить первого агента
Таймкоды
1. Вступление и архитектура – 10 мин
Что такое AI-агент
AI-агент – это не чат. Это программа, которая сама выполняет действия: пишет код, запускает команды, создаёт файлы, помнит контекст между сессиями.
Обычный ChatGPT – это собеседник. Claude Code – это исполнитель. Ты говоришь «сделай» – он делает.
Agent-Native подход: вы не набираете команды сами
Прошлый сценарий был «терминал + пара длинных команд». Новый – вы разговариваете с Claude через Cursor, и он сам запускает команды на VPS. Команду curl edgelab.su/install | sudo bash тоже будет вводить не вы, а агент.
Это тренировка: к концу Дня 1 вы привыкнете поручать агенту, а не печатать вручную.
Три Claude Code на одном VPS
К концу урока на VPS будет работать три независимых Claude Code. Одна подписка Anthropic Max, три отдельных OAuth-токена в трёх ~/.claude/ папках – это разрешено Anthropic.
┌─────────────────────────────────────────────────────────┐ │ VPS (Ubuntu 22/24) │ │ │ │ user=root user=edgelab │ │ ┌────────────────────┐ ┌─────────────────────┐ │ │ │ Claude Code #1 │ │ Claude Code #2 │ │ │ │ (временный) │ │ JARVIS │ │ │ │ │ │ ├─ Bot Jarvis │ │ │ │ только для блока 4 │ │ ├─ ~/.claude-lab/ │ │ │ │ – ставит инсталлер │ │ └─ systemd: gateway │ │ │ │ и уходит в тень │ │ (основной агент) │ │ │ │ │ └─────────────────────┘ │ │ │ │ ┌─────────────────────┐ │ │ │ │ │ Claude Code #3 │ │ │ │ │ │ RICHARD │ │ │ │ │ │ ├─ Bot Richard │ │ │ │ │ │ ├─ /opt/richard/ │ │ │ │ │ │ └─ systemd: richard │ │ │ │ │ │ (молчит, оживляет │ │ │ │ │ │ Jarvis когда он │ │ │ │ │ │ падает) │ │ │ └────────────────────┘ └─────────────────────┘ │ │ │ │ Anthropic Max – одна подписка на все три │ └─────────────────────────────────────────────────────────┘
Зачем два Telegram-бота
- Jarvis (бот №1) – с ним вы общаетесь каждый день. Голос, текст, напоминания, скиллы, онбординг. Имеет
bypassPermissions– может менять файлы и запускать команды без подтверждения. Это «ваш Джарвис». - Richard (бот №2) – молчит 99% времени. Нужен только когда падает gateway у Jarvis и тот перестаёт отвечать. Тогда вы пишете Richard'у: «Jarvis молчит, посмотри логи и подними». Richard живёт в отдельном процессе, у него свой мост к Telegram, поэтому падение Jarvis на него не влияет. У него тоже все права – он подстраховка, а не песочница.
Почему не один бот с двумя ролями: если Jarvis упадёт, через его же бот написать «почини себя» нельзя – бот не отвечает. Нужен отдельный канал связи, которым в этот момент можно воспользоваться.
Что получим к концу дня
- VPS с работающим Jarvis – голос, текст, 10 скиллов + Superpowers
- Richard – страховка на соседнем процессе
- Два бота в Telegram, оба отвечают
- Jarvis знает, кто вы (прошёл
/onboarding) и как с вами общаться - Cursor на ноутбуке, подключённый к VPS – так вы будете работать дальше
Проверка готовности
- VPS с Ubuntu 22 или 24 (из Дня 0), root-пароль или SSH-ключ
- Cursor (или VSCode) на ноутбуке – оба бесплатны для нашего сценария
- Обходыч с европейским IP – для OAuth Anthropic
- Аккаунт Gmail для входа в Anthropic
- Подписка Anthropic Max или Pro – оформляется на тот же Gmail
- Telegram на телефоне – чтобы создавать ботов через @BotFather и получать ID
Какой Gmail использовать
- Уже есть Anthropic-аккаунт (вы раньше пользовались Claude) → используйте его.
- Анthropic-аккаунта нет, но есть основной Gmail → регистрируйте Claude на него.
- Gmail нет → заведите отдельный (можно купить готовый) и регистрируйте Claude на него.
Важно: оформите Anthropic Max или Pro ДО начала воркшопа. Без подписки Claude Code работать не будет, и вы застрянете на шаге OAuth.
2. Cursor + Remote-SSH как root – 15 мин
Цель блока: установить Cursor, подключиться к VPS как root прямо из Cursor. После этого вся работа идёт в одном окне – терминал, файлы, Claude.
Шаг 1. Установите Cursor (или VSCode)
Cursor – это форк VSCode с встроенным AI-режимом. В нашем сценарии мы будем использовать его как обычный редактор + терминал + Remote-SSH. AI-функции Cursor на VPS нам не нужны – там работает Claude Code, а не встроенный Cursor-AI.
- Cursor: cursor.com – бесплатно для нашего сценария
- VSCode: code.visualstudio.com – тоже бесплатно, можно использовать его
Дальше команды описаны для Cursor, в VSCode всё делается ровно так же – интерфейс общий.
Шаг 2. Установите расширение Remote-SSH
Откройте Cursor → боковая панель «Extensions» (Ctrl/Cmd+Shift+X) → найдите «Remote - SSH» (автор Microsoft) → Install.
Шаг 3. Сгенерируйте SSH-ключ (если его нет)
?Что такое SSH-ключ и зачем он
SSH-ключ – пара из двух файлов: приватный (секрет, лежит у вас) и публичный (кладётся на VPS). Сервер пускает по совпадению пары – без пароля и надёжнее.
Приватный (id_ed25519) – никому не показывайте. Публичный (id_ed25519.pub) – открытый, его копируют на сервер.
Откройте встроенный терминал Cursor (Ctrl/Cmd+`) и выполните на своём ноутбуке:
ssh-keygen -t ed25519 -C "your_email@example.com"
Нажимайте Enter на все вопросы. Ключ появится в ~/.ssh/id_ed25519 и ~/.ssh/id_ed25519.pub. На Windows – PowerShell, та же команда.
Посмотреть публичный ключ:
# macOS / Linux cat ~/.ssh/id_ed25519.pub # Windows PowerShell Get-Content $HOME\.ssh\id_ed25519.pub
Шаг 4. Положите публичный ключ на VPS
Два способа – выберите удобный.
Способ A (рекомендуется): через панель хостинга. В Timeweb / VDSina / Hetzner / DigitalOcean при создании VPS есть поле «SSH-ключ» – вставьте туда содержимое id_ed25519.pub целиком. После установки VPS ключ уже на месте.
Способ B: на уже созданный VPS через пароль.
ssh-copy-id root@IP_ВАШЕГО_VPS
Замените IP_ВАШЕГО_VPS на реальный IP. Команда попросит пароль root один раз – после этого ключ уже на сервере.
Шаг 5. Подключитесь к VPS через Cursor Remote-SSH
- В Cursor нажмите F1 (или Ctrl/Cmd+Shift+P) – откроется command palette
- Введите «Remote-SSH: Connect to Host...» и выберите
- Выберите «+ Add New SSH Host...»
- Введите строку:
ssh root@IP_ВАШЕГО_VPS - Выберите файл конфига (обычно
~/.ssh/config) - Снова F1 → «Remote-SSH: Connect to Host...» → выберите свой сервер
- Откроется новое окно Cursor, внизу слева синий индикатор «SSH: root@...»
Откройте встроенный терминал в этом окне (Ctrl/Cmd+`) – вы уже на VPS под root. Проверьте:
whoami # должно быть: root hostname # должно показать имя VPS echo $HOME # должно быть: /root
С этого момента всё, что вы делаете в терминале Cursor – делается на VPS под root. Это ваш рабочий кабинет до конца Дня 1.
Не получается подключиться? Скопируй и вставь в свой Claude
Если SSH не подключается, скопируй промпт ниже и отправь его в Claude Code или ChatGPT – он поможет разобраться.
Помоги мне подключиться к VPS по SSH через Cursor (Remote-SSH). Мои данные: - IP VPS: [ВСТАВЬ IP СВОЕГО VPS] - ОС VPS: Ubuntu (22.04 или 24.04) - Мой компьютер: [macOS / Windows / Linux] - Подключаюсь как: root Что я уже сделал: 1. Установил Cursor (или VSCode) 2. Установил расширение Remote-SSH 3. [Опиши, что сделал и на чём застрял] Ошибка: [Вставь текст ошибки, если есть] Помоги пошагово: 1. Проверь, есть ли у меня SSH-ключ (~/.ssh/id_ed25519 или id_rsa) 2. Если нет – помоги сгенерировать 3. Помоги скопировать ключ на VPS 4. Проверь, что подключение работает (ssh root@IP) 5. Помоги настроить Remote-SSH в Cursor – config файл, подключение 6. Если ошибка – объясни причину и как починить
Тест: подключение работает
Проверьте все три условия в терминале Cursor:
whoami && hostname && cat /etc/os-release | grep PRETTY_NAME
Ожидаемый результат: root, имя VPS, Ubuntu 22.04 или 24.04.
3. Claude Code под root – временный – 10 мин
Этот Claude Code живёт только один день. Мы ставим его под root, чтобы он сам запустил инсталлер в блоке 4. После инсталлера он нам больше не нужен – всё важное будет под пользователем edgelab. Не настраивайте его глубоко, не грузите скиллы – он служебный.
Шаг 1. Установите Claude Code
В терминале Cursor (вы под root, проверили в блоке 2):
curl -fsSL https://claude.ai/install.sh | bash export PATH="$HOME/.local/bin:$PATH" echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc claude --version
claude --version должен показать номер версии (например 2.1.114). Это подтверждение, что бинарь установлен в /root/.local/bin/claude.
Шаг 2. OAuth №1 – claude login под root
claude login
5 шагов OAuth
- Меню из 3 опций – выберите первую: «Subscription (Claude Max, Pro)». НЕ выбирайте «Console» или «3rd-party».
- Терминал напечатает длинный URL и строку
Paste code here if prompted >. Скопируйте URL, откройте в браузере через обходыч, войдите своим Gmail (тем, на котором Max-подписка). Браузер покажет код авторизации. - Скопируйте код из браузера и вставьте обратно в терминал Cursor. Нажмите Enter.
- Security notes – терминал напечатает правила безопасности, нажмите Enter для подтверждения.
- Вы окажетесь внутри чата Claude Code (появится приглашение
❯). Авторизация прошла. Чтобы выйти обратно в shell – введите/exitили нажмите Ctrl+C.
Токен лёг в /root/.claude/.credentials.json – это OAuth №1. Он обслуживает только root-Claude.
Типичная ошибка: ученики пишут
loginили/loginпрямо внутри чата Claude – это НЕ нужно, вы уже авторизованы. Просто введите/exit.
Шаг 3. Проверьте, что root-Claude работает
В терминале (не внутри чата, а в обычном shell):
claude --version && ls -la /root/.claude/.credentials.json
Версия должна быть видна, файл .credentials.json – существовать с правами 600.
Тест: root-Claude готов к работе
Запустите claude ещё раз и спросите его самого:
Под каким пользователем ты запущен? Выполни whoami и echo $HOME. Это должен быть root – иначе я ошибся, предупреди меня.
Ожидаемый ответ: агент показывает root и /root. Если нет – вернитесь в блок 2, проверьте Remote-SSH-сессию.
4. root-Claude запускает инсталлер – 20 мин
Самое интересное. Вы не вводите ни одной длинной команды – вы поручаете root-Claude, он ставит инсталлер, отвечает на его вопросы, проверяет результат.
Шаг 1. Запустите root-Claude в режиме bypass
Под root обычный --dangerously-skip-permissions не работает (он намеренно заблокирован Anthropic). Но Claude Code всё равно может выполнять команды – просто будет спрашивать подтверждение. Для нашего сценария этого достаточно: вы принимаете одним-двумя Enter.
Запустите:
cd /root && claude
Шаг 2. Дайте агенту задание – инсталлятор EdgeLab
Отправьте в чат Claude сообщение (скопируйте блок целиком):
Скопируй и вставь в свой Claude
Ты – root-Claude, временный агент на этом VPS. Задача одна: запусти официальный инсталлер EdgeLab и проконтролируй, что он отработал до конца. Команда: curl -fsSL https://edgelab.su/install | sudo bash Инсталлер – идемпотентный, можешь перезапускать без страха. По ходу он спросит: - имя агента – скажу тебе ниже - роль агента – скажу тебе ниже - моё имя (как ко мне обращаться) - таймзона в IANA (например Europe/Moscow) - язык общения (русский) - Telegram bot token для Jarvis – Enter (добавим в следующем блоке) - Мой Telegram user id – Enter - Groq API key (для голоса) – Enter Проверь в конце: 1. Создан пользователь edgelab: id edgelab 2. Стоят Node 22 и Python 3.12+ 3. Установлен Jarvis gateway (claude-gateway.service): systemctl status claude-gateway 4. Установлен Richard bridge (claude-richard.service): systemctl status claude-richard 5. Создан workspace: ls /home/edgelab/.claude-lab/ 6. Есть sudoers-файл: ls /etc/sudoers.d/edgelab-agents 7. Под edgelab Claude НЕ залогинен пока – это нормально, логинимся дальше 8. Покажи финальный баннер инсталлера. Имя агента: Jarvis Роль: персональный AI-ассистент Моё имя: [СКАЖИТЕ ЗДЕСЬ, КАК ВАС ЗОВУТ] Таймзона: [НАПРИМЕР Europe/Moscow] Язык: русский Если увидишь ошибку – покажи её и скажи, как чинить.
Если команда виснет на «Connection timed out»
У некоторых российских провайдеров заблокирован IP сервера, на котором лежит редирект edgelab.su/install. В этом случае попроси root-Claude использовать прямой адрес GitHub – инсталлер тот же:
curl -fsSL https://raw.githubusercontent.com/qwwiwi/edgelab-install/main/install.sh | sudo bash
Если и этот URL не отвечает – включи VPN и повтори.
Клод выполнит curl ... | sudo bash, инсталлер начнёт работать. Клод будет подтверждать шаги – иногда он остановится и спросит «разрешить?» – отвечайте y или «да». Это нормальная защита Claude Code под root.
Что именно сделает инсталлер (то, что вам не нужно запоминать)
- Обновит систему, установит базовые пакеты
- Создаст системного пользователя
edgelabс домашней/home/edgelab - Поставит Node.js 22 и Python 3.12+ глобально
- Установит
claudeв/home/edgelab/.local/bin/claude(это Claude Code для Jarvis и Richard) - Развернёт workspace Jarvis:
/home/edgelab/.claude-lab/jarvis/(CLAUDE.md, USER.md, скиллы, память) - Поставит Jarvis Telegram gateway из
qwwiwi/jarvis-telegram-gateway - Поставит Richard bridge из
RichardAtCT/claude-code-telegramв/opt/richard/ - Создаст два systemd-сервиса:
claude-gateway(Jarvis) иclaude-richard(Richard) - Пропишет passwordless
sudoдля обоих агентов в/etc/sudoers.d/edgelab-agents– узкий набор:systemctl,journalctl,aptдля нужных сервисов - Настроит 10 базовых скиллов + плагин Superpowers
- Покажет финальный баннер с двумя задачами на следующий блок: создать бот Jarvis, создать бот Richard, передать токены агенту
Семантическая память (OpenViking / Cognee) настраивается на Дне 2. Сегодня – только Jarvis и Richard.
Что если инсталлер упал
Скорее всего root-Claude сам покажет ошибку и предложит перезапустить. Если он молчит – напишите ему:
Покажи последние 50 строк journalctl -u claude-gateway и journalctl -u claude-richard. Если инсталлер оборвался – перезапусти curl -fsSL https://edgelab.su/install | sudo bash и продолжи с места падения.
Тест: инсталлер отработал
Спросите root-Claude:
Проверь всё, что должен был сделать инсталлер. Формат – таблица: [Проверка | Команда | Ожидаемо | Факт | OK/FAIL] 1. Пользователь edgelab существует – id edgelab – uid>=1000 2. Node.js 22+ – node -v – v22.x 3. Python 3.12+ – python3 --version – 3.12 или выше 4. claude для edgelab – sudo -u edgelab bash -lc 'which claude' – /home/edgelab/.local/bin/claude 5. Workspace Jarvis – ls /home/edgelab/.claude-lab/jarvis/.claude/ – CLAUDE.md, USER.md, skills/ 6. Сервис Jarvis – systemctl is-active claude-gateway – active 7. Сервис Richard – systemctl is-active claude-richard – active 8. Sudoers – ls -la /etc/sudoers.d/edgelab-agents – файл есть, права 0440 9. Скиллы – ls /home/edgelab/.claude-lab/jarvis/.claude/skills/ | wc -l – 10 10. Superpowers – ls /home/edgelab/.claude/plugins/superpowers/skills/ | wc -l – около 15 Если где-то FAIL – скажи, что конкретно сломалось и как починить.
Ожидаемый результат: все 10 пунктов OK. Боты пока не запустились (нет токенов) – это нормально, исправим в следующем блоке.
5. Два ДуровГрам-бота + OAuth для Jarvis – 15 мин
Инсталлер уже поставил два сервиса, но они не стартуют – нет токенов и не залогинен Claude под edgelab. Чиним.
Шаг 1. Создайте двух ботов в @BotFather
Откройте Telegram → найдите @BotFather → и создайте двух разных ботов, по одному на каждого агента.
Бот №1 – Jarvis (ваш основной):
- Отправьте
/newbot - Имя бота (отображаемое): например «Jarvis» или «Мой AI Агент»
- Username: должен заканчиваться на
bot, напримерmy_jarvis_agent_bot - Скопируйте токен Jarvis – строка вида
7123456789:AAHx...
Бот №2 – Richard (страховка):
- Снова
/newbot - Имя: например «Richard» или «Мой Server Doctor»
- Username: например
my_richard_doctor_bot - Скопируйте токен Richard
Шаг 2. Узнайте свой Telegram user_id
- Найдите @userinfobot в Telegram
- Отправьте ему любое сообщение
- Он ответит вашим ID – число вроде
164795011
Шаг 3. Дайте root-Claude три значения и пусть настроит обоих
Вернитесь в Cursor → в тот же чат с root-Claude (или запустите claude заново) → отправьте:
Скопируй и вставь в свой Claude
Настрой обоих Telegram-ботов: Jarvis (основной) и Richard (страховка). Jarvis bot token: [ВСТАВЬТЕ ТОКЕН JARVIS] Richard bot token: [ВСТАВЬТЕ ТОКЕН RICHARD] Мой Telegram user_id: [ВСТАВЬТЕ ID] Что надо сделать: 1. Jarvis gateway: - Пропиши bot_token и allowed_user_ids=[id] в /home/edgelab/claude-gateway/config.json - Поменяй владельца файла на edgelab:edgelab - Перезапусти: systemctl restart claude-gateway - Покажи journalctl -u claude-gateway -n 30 – убедись что нет ошибок 2. Richard bridge: - Пропиши TELEGRAM_BOT_TOKEN и ALLOWED_USERS=id в /opt/richard/.env - Поменяй владельца на edgelab:edgelab - Перезапусти: systemctl restart claude-richard - Покажи journalctl -u claude-richard -n 30 3. Проверь токены через Telegram API (не светя их мне обратно, только первые 10 символов): curl -s https://api.telegram.org/botTOKEN/getMe | jq .result.username – для обоих После всего напиши итог: оба сервиса active, оба getMe вернули username.
root-Claude внесёт токены в конфиги. Файлы владеют edgelab:edgelab – это важно, иначе сервисы не прочитают.
Шаг 4. OAuth №2 – claude login под edgelab
Теперь – вход в Claude Code под пользователем edgelab. Это обслуживает Jarvis и Richard (они оба работают под edgelab, делят один OAuth-токен в /home/edgelab/.claude/). Команда открывает интерактивный чат, поэтому запустите её в отдельном терминале Cursor – не через root-Claude:
sudo -u edgelab -i bash -lc 'claude login'
Пройдите OAuth так же, как в блоке 3 (меню → URL → код → security notes → /exit). Та же Max-подписка, но отдельный токен для пользователя edgelab.
После выхода из чата – перезапустите оба сервиса, чтобы они подхватили токен:
systemctl restart claude-gateway claude-richard systemctl status claude-gateway claude-richard --no-pager
Шаг 5. Проверка: оба бота пишут «я на связи»
Откройте в Telegram бот Jarvis, отправьте любое сообщение, например «Привет». Он должен ответить. Затем откройте бот Richard, отправьте «/start» или «проверка связи» – он тоже должен ответить.
Если кто-то молчит – вернитесь в Cursor и попросите root-Claude:
Jarvis [или Richard] не отвечает в Telegram. Покажи journalctl -u claude-gateway -n 50 [или -u claude-richard], найди ошибку, почини и перезапусти. Проверь токен через api.telegram.org/getMe.
Тест: оба агента онлайн
Спросите root-Claude:
Финальная проверка обоих агентов. Формат – таблица [Компонент | Статус | Детали]: 1. Сервис Jarvis активен – systemctl is-active claude-gateway 2. Сервис Richard активен – systemctl is-active claude-richard 3. Токен Jarvis работает – curl getMe username 4. Токен Richard работает – curl getMe username 5. OAuth под edgelab – sudo -u edgelab test -f /home/edgelab/.claude/.credentials.json 6. Passwordless sudo для edgelab – sudo -u edgelab sudo -n systemctl is-active claude-gateway (должно работать без пароля) 7. Права файла Jarvis config – stat -c '%U:%G %a' /home/edgelab/claude-gateway/config.json (edgelab:edgelab, 600) 8. Права файла Richard .env – stat -c '%U:%G %a' /opt/richard/.env (edgelab:edgelab, 600) В конце – вердикт: ГОТОВ / НЕ ГОТОВ.
Ожидаемо: все 8 пунктов OK. Оба бота отвечают в Telegram.
6. Первый диалог с Jarvis – 15 мин
С этого момента Cursor и root-Claude вам не нужны. Общайтесь с Jarvis через его Telegram-бот – голосом или текстом. Cursor оставьте открытым на всякий случай.
Шаг 1. Представьтесь
Откройте бот Jarvis в Telegram и отправьте голосовое сообщение:
Скопируй и отправь Jarvis
Привет, меня зовут [ваше имя], я [кем работаете / чем занимаетесь]. Хочу, чтобы ты помогал мне с [чем именно]. Запусти онбординг.
Что произойдёт
- Jarvis запустит скилл onboarding – задаст уточняющие вопросы
- Вы отвечаете голосом, скилл self-compiler работает фоново и обновляет
USER.mdиCLAUDE.md - Jarvis запомнит ваше имя, стиль общения, цели
Поговорите с ним 5–10 минут. Расскажите, чем занимаетесь, какие задачи решаете, как хотите чтобы он общался (на ты / на вы, коротко / развёрнуто, с эмодзи / без).
Шаг 2. Попросите показать, что он уже умеет
Отправьте (текстом или голосом):
Перечисли, какие скиллы у тебя есть из коробки. Для каждого – одна строка: что делает и когда сработает.
Jarvis прочитает свои SKILL.md и покажет список. Из коробки установлены:
| Скилл | Что делает | Когда сработает |
|---|---|---|
| onboarding | Пошаговый мастер знакомства | Первый разговор |
| self-compiler | Учится на разговорах, обновляет CLAUDE.md | Фоново, всегда |
| groq-voice | Расшифровка голосовых | При войсе |
| present | Красивые HTML-документы | По команде «сделай презентацию» |
| markdown-new | Извлечение web-страниц в Markdown | При ссылке на статью |
| quick-reminders | Напоминания до 48 часов | «Напомни через 2 часа» |
| perplexity-research | Веб-ресёрч в реальном времени | «Загугли», «найди» |
| datawrapper | Графики и таблицы | Визуализация данных |
| excalidraw | Диаграммы и схемы | Рисование схем |
| youtube-transcript | Транскрипция видео | Ссылка на YouTube |
Плюс автоматически работает плагин Superpowers – 15 навыков над этими скиллами (task-tracking, TDD, subagents, brainstorming). Включается сам, ничего делать не надо.
Шаг 3. Напоминание – быстрый тест скилла
Напомни через 1 минуту проверить Jarvis
Через минуту придёт сообщение «проверить Jarvis». Это работает через cron – без расхода токенов.
Шаг 4. Внешний скилл – skill-finder
Попросите Jarvis установить публичный скилл – это базовый навык, понадобится всю неделю:
Установи скилл skill-finder из https://github.com/qwwiwi/skill-finder в мою директорию скиллов. Потом найди мне скилл для Google Docs.
skills.sh – сайт-каталог на 100 000+ скиллов, которым skill-finder пользуется как источником. На Дне 2 будете ставить скиллы под свои задачи.
Тест: Jarvis знает вас и что умеет
Отправьте Jarvis:
Короткий отчёт по итогам онбординга: 1. Покажи мой профиль из USER.md (имя, чем занимаюсь, цели) 2. Какой стиль общения я попросил – на ты/на вы, коротко/развёрнуто, эмодзи да/нет 3. Перечисли скиллы, которые у тебя установлены (сколько штук) 4. Назови, какой плагин работает поверх них Если USER.md пустой, стиль не зафиксирован или скиллов меньше 10 – скажи, что конкретно нужно доделать.
Ожидаемый результат: USER.md заполнен, стиль определён, 10 базовых скиллов + Superpowers.
7. Когда звать Richard + итоги – 5 мин
Richard – ваша страховка
В обычный день вы не пишете Richard'у. Он живёт, ест токены только когда вы ему пишете. Пишете вы ему в двух случаях:
- Jarvis молчит / не отвечает в Telegram. Это значит, что упал gateway Jarvis (или OAuth протух, или токен Telegram отозвали). Jarvis физически не может ответить «почини себя» – сам бот мёртв. Тогда вы пишете Richard'у.
- Jarvis отвечает ерунду после апдейта или правки конфига. Richard – тот же Claude Code, тот же доступ, но в отдельном процессе. Он может диагностировать Jarvis, не будучи им.
Типичные запросы Richard'у
Jarvis молчит. Покажи последние 50 строк journalctl -u claude-gateway. Если видишь явную ошибку – почини и перезапусти сервис.
Проверь /home/edgelab/.claude/.credentials.json – жив ли OAuth-токен. Если срок истёк – подскажи мне, как перелогинить Jarvis.
У Jarvis кончилось место на диске. Покажи df -h, du -sh в ~/.cache и ~/.claude-lab/jarvis/logs/, предложи, что почистить.
Richard может делать всё, что может Jarvis: читать файлы, править конфиги, запускать systemctl, journalctl, apt через passwordless sudo из /etc/sudoers.d/edgelab-agents. Права у них одинаковые – отличается только процесс и Telegram-бот.
Чеклист Дня 1
- Cursor подключается к VPS как root через Remote-SSH
- root-Claude установлен и авторизован (OAuth №1)
- Инсталлер EdgeLab отработал – создан пользователь
edgelab, поставлены оба агента - Jarvis gateway активен, Jarvis Telegram-бот отвечает
- Richard bridge активен, Richard Telegram-бот отвечает
- Claude под edgelab авторизован (OAuth №2)
- Passwordless sudo настроен для обоих агентов
- Jarvis знает, кто вы (
USER.mdзаполнен через/onboarding) - 10 базовых скиллов + Superpowers на месте
- skill-finder установлен
Финальная самодиагностика
Попросите Jarvis (основного агента, в его Telegram-боте):
Скопируй и отправь Jarvis
Полная самодиагностика Дня 1. Формат – таблица [Компонент | Статус | Детали]: 1. Я (Jarvis) запущен от edgelab – whoami должно быть edgelab 2. Richard жив – systemctl is-active claude-richard 3. Я (gateway) жив – systemctl is-active claude-gateway 4. OAuth edgelab – ls /home/edgelab/.claude/.credentials.json 5. CLAUDE.md и USER.md в ~/.claude-lab/jarvis/.claude/ 6. 10 базовых скиллов + 1 skill-finder = 11 в skills/ 7. Superpowers – ls ~/.claude/plugins/superpowers/skills/ | wc -l – около 15 8. Passwordless sudo работает – sudo -n systemctl is-active claude-gateway без пароля 9. Cron ротации памяти – crontab -u edgelab -l 10. Telegram API доступен – curl -s api.telegram.org | head -c 50 11. Проверка CLAUDE.md – скачай эталоны из https://github.com/qwwiwi/edgelab-claude-md (templates/global-claude.md и templates/workspace-claude.md), сравни со своим ~/.claude/CLAUDE.md и ~/.claude-lab/jarvis/.claude/CLAUDE.md. Покажи расхождения. 12. Проверка архитектуры – скачай эталон из https://github.com/qwwiwi/public-architecture-claude-code, сравни структуру папок ~/.claude-lab/jarvis/ с эталонной. Покажи, каких файлов/папок не хватает. 13. Проверка Jarvis gateway – скачай https://github.com/qwwiwi/jarvis-telegram-gateway, сравни с ~/claude-gateway/. Проверь: config.json заполнен (bot_token, user_id не пустые), gateway.py актуален, systemd unit claude-gateway активен. Покажи расхождения. В конце – общий вердикт: ГОТОВ К ДНЮ 2 / НЕ ГОТОВ. Если не готов – список того, что починить.
Скопируй и отправь Richard
Скопируй промпт ниже и отправь его Richard'у в его Telegram-бот. Richard работает под пользователем edgelab и имеет passwordless sudo для системных команд – он починит. Альтернатива – отправить этот же промпт в Claude Code в терминале Cursor.
Richard, у меня в самодиагностике нашлись ошибки. Нужна твоя помощь.
Результат диагностики:
[сюда вставь таблицу, которую прислал агент]
Источники истины (скачай и сравни с тем, что у меня на 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) Установи скилл skill-finder, чтобы я мог искать готовые решения на skills.sh:
mkdir -p ~/.claude/skills/skill-finder
curl -fsSL https://raw.githubusercontent.com/qwwiwi/skill-finder/main/SKILL.md \
-o ~/.claude/skills/skill-finder/SKILL.md
2) Скачай все три репозитория выше и сравни с тем, что у меня на VPS:
CLAUDE.md:
- Сравни ~/.claude/CLAUDE.md с шаблоном GLOBAL.md из edgelab-claude-md
- Сравни ~/.claude-lab/<имя-агента>/.claude/CLAUDE.md с шаблоном WORKSPACE.md
Архитектура:
- Сравни settings.json, хуки (PreToolUse, PostToolUse, SessionStart)
- Сравни скиллы в ~/.claude-lab/<имя-агента>/.claude/skills/
- Проверь FILES-REFERENCE.md и HOOKS.md из public-architecture-claude-code
Gateway:
- Сравни ~/claude-gateway/ с jarvis-telegram-gateway
- Проверь config.json, systemd-юнит, gateway.py
3) Расхождения, из-за которых возникли ошибки из моей диагностики – почини.
Не трогай то, что работает корректно.
4) После починки прогони самодиагностику заново и пришли мне результат.
Объясняй по ходу, что и почему исправляешь. Если что-то не можешь починить – опиши проблему и предложи, что мне сделать вручную.
Домашка
- Поговорить с Jarvis 15 минут – попросить сделать что-то полезное для вашей работы (найти информацию, составить список, построить график).
- Через skill-finder найти и установить 2–3 скилла под свои задачи.
- Открыть
CLAUDE.md(Jarvis покажет) и поправить вручную, если стиль ответа не совсем ваш. - Один раз намеренно остановить Jarvis –
sudo systemctl stop claude-gateway– и попросить Richard'а его поднять. Это тренировка сценария «Jarvis упал».
К вечеру: два AI-агента на VPS, Jarvis знает вас и готов к работе, Richard – страховка на соседнем процессе. Cursor остаётся окном к серверу.
Анонс Дня 2: авторский метод настройки Jarvis – роль, правила, контекст. Заполняем
CLAUDE.mdиUSER.mdпод свои задачи, добавляем семантическую память.