1. Введение
Обзор
В этой лабораторной работе вы развернете полностью постоянный, безопасный экземпляр OpenClaw — фреймворка для создания агентов искусственного интеллекта с открытым исходным кодом — в Cloud Run Instances . Вы будете взаимодействовать со своим агентом ИИ напрямую, используя встроенный веб-интерфейс OpenClaw (с возможностью подключения каналов обмена сообщениями, таких как Telegram или WhatsApp ), создавать резервные копии его рабочего пространства в Google Cloud Storage и безопасно управлять учетными данными API с помощью Google Cloud Secret Manager .
Прежде чем начать, вы можете ознакомиться с документацией OpenClaw , чтобы понять архитектуру OpenClaw, используемые инструменты и рабочие процессы агентов.
Что вы будете делать
- Включите необходимые API Google Cloud и создайте выделенную учетную запись службы с необходимыми разрешениями IAM.
- Надежно храните ключи API и пароли шлюзов в Secret Manager.
- Подготовьте конфигурационный файл
openclaw.jsonс настройками модели Gemini и включенным пользовательским интерфейсом шлюза. - Подготовьте хранилище Cloud Storage для сохранения состояния контейнера.
- Разверните OpenClaw, используя
gcloud beta run instances deploy. - Взаимодействуйте напрямую с вашим агентом OpenClaw AI, используя его встроенный веб-интерфейс.
- (Необязательно) Настройте канал обмена сообщениями ( Telegram или WhatsApp ).
- (Необязательно) Расширьте возможности своего агента, добавив пользовательские навыки в облачное хранилище.
Что вы узнаете
- Как развернуть OpenClaw на облачных экземплярах с помощью встроенного веб-интерфейса управления.
- Как подключить хранилища Cloud Storage к экземплярам Cloud Run.
- Как безопасно внедрить секреты Secret Manager в качестве переменных среды в Cloud Run.
- Как запускать длительные, постоянно выполняющиеся рабочие нагрузки агентов на экземплярах Cloud Run.
- Как настроить и загрузить пользовательские навыки агента в облачное хранилище.
2. Настройка и требования
Настройка проекта GCP
- Войдите в консоль Google Cloud .
- Создайте или выберите проект Google Cloud.
- Убедитесь, что для вашего проекта в Google Cloud включена функция выставления счетов.
Открытая облачная оболочка
Активируйте Google Cloud Shell с верхней панели инструментов Cloud Console.
Настройте проект и установите бета-версию gcloud.
Сначала задайте свой проект и регион в качестве переменных среды.
export PROJECT_ID=<YOUR_PROJECT_ID>
export REGION=<YOUR_REGION>
Теперь настройте свой проект и подтвердите.
gcloud config set project $PROJECT_ID
gcloud config get project
Убедитесь, что для gcloud beta run instances установлен компонент beta :
gcloud components install beta --quiet
И убедитесь, что ваша версия gcloud обновлена.
gcloud components update
Включите необходимые API Google Cloud.
В Cloud Shell включите API Cloud Run, Secret Manager, Cloud Storage и Gemini:
gcloud services enable \
run.googleapis.com \
secretmanager.googleapis.com \
storage.googleapis.com \
generativelanguage.googleapis.com \
compute.googleapis.com
3. (Необязательно) Настройте интеграцию с мессенджерами (Telegram или WhatsApp)
Вы можете подключить OpenClaw к Telegram или WhatsApp . Выберите вариант A или вариант B ниже.
Вариант А: Настройка Telegram-бота
- Откройте Telegram и найдите
@BotFather. - Отправьте команду
/newbotи следуйте подсказкам, чтобы указать имя бота и имя пользователя. - Скопируйте сгенерированный HTTP API-токен (например,
123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ). - Найдите
@userinfobotв Telegram, отправьте/startи скопируйте свой числовой идентификатор пользователя (например,8035936176).
Вариант B: Настройка WhatsApp
- Получите свой личный номер телефона WhatsApp в международном формате без пробелов и символов (например,
+15551234567). - OpenClaw подключается через политику разрешенных каналов WhatsApp.
4. Создайте выделенный сервисный аккаунт.
Чтобы соблюсти принцип минимальных привилегий, создайте выделенную учетную запись службы IAM для OpenClaw:
export SERVICE_ACCOUNT_NAME="openclaw-sa"
gcloud iam service-accounts create ${SERVICE_ACCOUNT_NAME} \
--display-name="OpenClaw Service Account"
export SERVICE_ACCOUNT="${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
5. Сохраните учетные данные в Secret Manager.
Мы будем хранить конфиденциальные учетные данные API в Google Cloud Secret Manager, чтобы Cloud Run мог безопасно внедрять их в контейнер при загрузке.
1. Получите и сохраните ключ API Gemini.
- Зайдите в Google AI Studio и войдите в систему, используя свою учетную запись Google.
- Нажмите «Создать ключ API» и выберите свой проект Google Cloud (
${PROJECT_ID}). - Скопируйте сгенерированный ключ API.
Сохраните ключ API в Secret Manager и предоставьте учетной записи службы доступ:
echo -n "YOUR_GEMINI_API_KEY" | gcloud secrets create gemini-api-key \
--data-file=- \
--replication-policy="automatic"
gcloud secrets add-iam-policy-binding gemini-api-key \
--member="serviceAccount:${SERVICE_ACCOUNT}" \
--role="roles/secretmanager.secretAccessor"
2. Сгенерируйте и сохраните пароль шлюза.
Для защиты общедоступного экземпляра OpenClaw сгенерируйте надежный случайный пароль и сохраните его в Secret Manager:
export OPENCLAW_GATEWAY_PASSWORD=$(openssl rand -hex 16)
echo "Generated Gateway Password: ${OPENCLAW_GATEWAY_PASSWORD}"
echo -n "${OPENCLAW_GATEWAY_PASSWORD}" | gcloud secrets create openclaw-gateway-password \
--data-file=- \
--replication-policy="automatic"
gcloud secrets add-iam-policy-binding openclaw-gateway-password \
--member="serviceAccount:${SERVICE_ACCOUNT}" \
--role="roles/secretmanager.secretAccessor"
3. (Необязательно) Создайте секретный канал (в Telegram или WhatsApp)
- Для Telegram :
echo -n "YOUR_TELEGRAM_BOT_TOKEN" | gcloud secrets create telegram-bot-token \ --data-file=- \ --replication-policy="automatic" gcloud secrets add-iam-policy-binding telegram-bot-token \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role="roles/secretmanager.secretAccessor" - Для WhatsApp :
echo -n "YOUR_WHATSAPP_TOKEN_OR_KEY" | gcloud secrets create whatsapp-token \ --data-file=- \ --replication-policy="automatic" gcloud secrets add-iam-policy-binding whatsapp-token \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role="roles/secretmanager.secretAccessor"
6. Подготовка хранилища Cloud Storage и конфигурации openclaw.json.
Для работы OpenClaw требуется конфигурационный файл openclaw.json , расположенный по адресу /home/node/.openclaw/openclaw.json .
- Создайте сегмент облачного хранилища и предоставьте к нему доступ :
export BUCKET_NAME="openclaw-state-${PROJECT_ID}" gcloud storage buckets create gs://${BUCKET_NAME} --location=${REGION} gcloud storage buckets add-iam-policy-binding gs://${BUCKET_NAME} \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role="roles/storage.objectUser" - Создайте
openclaw.json: Создайте файл с именемopenclaw.jsonв Cloud Shell. Обновите разделchannelsв соответствии с выбранным вами каналом (Telegram или WhatsApp):{ "gateway": { "mode": "local", "port": 18789, "trustedProxies": ["0.0.0.0/0"], "bind": "lan", "auth": { "password": "${OPENCLAW_GATEWAY_PASSWORD}" }, "controlUi": { "dangerouslyDisableDeviceAuth": true, "allowedOrigins": ["*"], "enabled": true } }, "agents": { "defaults": { "model": { "primary": "google/gemini-3.1-pro-preview" }, "sandbox": { "mode": "off" } } }, "channels": { "telegram": { "enabled": true, "defaultAccount": "default", "accounts": { "default": { "enabled": true, "dmPolicy": "allowlist", "allowFrom": [ "YOUR_TELEGRAM_USER_ID" ] } } }, "whatsapp": { "enabled": false, "defaultAccount": "default", "accounts": { "default": { "enabled": false, "dmPolicy": "allowlist", "allowFrom": [ "+15551234567" ] } } } }, "plugins": { "entries": { "google": { "enabled": true }, "telegram": { "enabled": true }, "whatsapp": { "enabled": false } } } } - Загрузите файл
openclaw.jsonв корневой каталог облачного хранилища : Проверьте структуру сегментов облачного хранилища : убедитесь, что в корневой папке вашего сегмента находитсяgcloud storage cp openclaw.json gs://${BUCKET_NAME}/openclaw.jsonopenclaw.json:gs://${BUCKET_NAME}/ └── openclaw.json
7. Разверните OpenClaw на облачных экземплярах.
Развертывание OpenClaw с использованием gcloud beta run instances deploy :
gcloud beta run instances deploy openclaw-instance \
--image ghcr.io/openclaw/openclaw:2026.7.1 \
--service-account ${SERVICE_ACCOUNT} \
--port 18789 \
--cpu 4 \
--memory 4Gi \
--public \
--add-volume mount-path=/home/node/.openclaw,type=cloud-storage,mount-options="uid=1000;gid=1000;file-mode=0700;dir-mode=0700",bucket=${BUCKET_NAME} \
--set-secrets GEMINI_API_KEY=gemini-api-key:latest,OPENCLAW_GATEWAY_PASSWORD=openclaw-gateway-password:latest \
--region ${REGION}
Разбивка по ключевым параметрам:
-
--image ghcr.io/openclaw/openclaw:2026.7.1: Образ контейнера OpenClaw (закреплен на2026.7.1, последней стабильной версии 1.x). -
--service-account ...: Подключает выделенную учетную запись службыopenclaw-sa. -
--add-volume ...: Монтирует хранилище Cloud Storage непосредственно в/home/node/.openclaw. Использованиеfile-mode=0700;dir-mode=0700обеспечивает правильные права доступа для OpenClaw. -
--set-secrets ...: Внедряет учетные данные непосредственно из Secret Manager в переменные среды. (Необязательно: если вы настроили Telegram на дополнительных шагах, добавьте,TELEGRAM_BOT_TOKEN=telegram-bot-token:latestк--set-secrets.) -
--public: Предоставляет публичный доступ к URL-адресу.
8. Взаимодействуйте напрямую через веб-интерфейс OpenClaw.
В OpenClaw встроен веб-интерфейс управления, позволяющий управлять вашим ИИ-агентом и общаться с ним непосредственно из браузера:
- Получите URL-адрес вашего экземпляра Cloud Run : В Cloud Shell выполните следующую команду:
gcloud beta run instances describe openclaw-instance \ --region ${REGION} \ --format="value(status.urls[0])" - Получите доступ к пользовательскому интерфейсу управления OpenClaw :
- Откройте URL-адрес результата в своем веб-браузере.
- При запросе аутентификации в пользовательском интерфейсе OpenClaw Control:
- Введите сгенерированный пароль шлюза (
${OPENCLAW_GATEWAY_PASSWORD}) из Secret Manager. - Если во всплывающем окне входа отображаются отдельные поля «Имя пользователя» и «Пароль» , оставьте поле «Имя пользователя» пустым (или введите
admin) и укажите${OPENCLAW_GATEWAY_PASSWORD}в поле «Пароль».
- Введите сгенерированный пароль шлюза (
- Направьте своего агента (примеры на практике) :
- После аутентификации вы увидите панель управления OpenClaw.
- Проверьте работу своего агента OpenClaw, отправив сообщение в чате, например, "Здравствуйте".
- Чтобы проверить жизненный цикл экземпляра Cloud Run в длительном режиме, вы можете поручить агенту OpenClaw выполнить более сложную, долгосрочную задачу. Например, он может отслеживать новостную ленту или фондовый рынок и генерировать отчеты:
Track the USD-to-EUR exchange rate every 15 minutes for the next 24 hours, while also checking for any recent news updates in the US or the EU that may have an impact on the exchange rate. Generate an end-of-day report for me in this chat that tells me what you expect tomorrow's exchange rate will be. - Затем агент должен выполнить это задание в течение следующих 24 часов.
9. (Необязательно) Проверьте интеграцию каналов обмена сообщениями.
Если вы настроили Telegram или WhatsApp на дополнительных этапах настройки, описанных выше, вы можете проверить доставку сообщений:
- Проверьте журналы экземпляра в Cloud Shell:
gcloud run instances logs read openclaw-instance --region ${REGION} --limit 20 - Откройте Telegram (или WhatsApp) и отправьте сообщение (например
/startилиHello OpenClaw!). - Бот проверит ваш идентификатор пользователя по списку разрешенных пользователей в файле
openclaw.jsonи ответит, используя Gemini!
10. Мониторинг и проверка журналов экземпляра.
Cloud Run Instances перехватывает стандартный вывод и стандартную ошибку из вашего контейнера и передает их напрямую в Google Cloud Logging. Вы можете использовать Cloud Shell или Cloud Console для мониторинга трафика шлюза и проверки работы инструментов агента в режиме реального времени.
1. Прочитайте журналы последних запущенных экземпляров.
Чтобы получить последние записи журналов из экземпляра в Cloud Shell:
gcloud beta run instances logs read openclaw-instance \
--region ${REGION} \
--limit 50
2. Ключевые сигнатуры журнала событий, за которыми следует наблюдать.
При наблюдении за работой агента обратите внимание на следующие ключевые события в журнале выполнения:
-
[gateway] ready: Подтверждает, что шлюз OpenClaw HTTP и WebSocket инициализирован и прослушивает порт 18789. -
[gateway] agent model: ...: Отображает активную модель Gemini (например,google/gemini-3.1-pro-previewилиgoogle/gemini-3.5-flash). -
[agents/tool-policy]: Отображает инструменты, разрешенные или запрещенные в соответствии с вашей политикой. -
[agent/embedded]: Отслеживает выполнение и вызов инструментов агентом.
3. Проверьте журналы в консоли Google Cloud.
Вы также можете просматривать и фильтровать журналы с помощью обозревателя журналов в Cloud Console :
resource.type="cloud_run_instance"
resource.labels.instance_name="openclaw-instance"
11. (Необязательно) Расширьте возможности своего агента, добавив новые навыки.
OpenClaw поддерживает Skills — модульные пакеты возможностей, которые обучают вашего агента конкретным рабочим процессам, специализированным инструментам командной строки и инструкциям, специфичным для данной области.
Как работают навыки
Каждый навык представляет собой каталог, содержащий файл SKILL.md . Он начинается с метаданных в формате YAML ( name и description ), за которыми следуют инструкции в формате Markdown:
---
name: summarize-logs
description: Summarize Cloud Run error logs into actionable bullet points.
---
# Log Summarizer Skill
When asked to analyze or summarize logs:
1. Parse error stack traces and group similar errors by frequency.
2. Identify root causes such as memory limits, timeouts, or permission errors.
3. Propose concrete remediation steps.
name: Идентификатор навыка (также может быть вызван напрямую как команда со слэшем, например/summarize-logs).-
description: Указывает модели OpenClaw , когда следует автоматически активировать этот навык в естественном разговоре.
Добавьте пользовательский навык в свой облачный накопитель.
Поскольку ваш сегмент Cloud Storage монтируется непосредственно в /home/node/.openclaw , навыки, размещенные по адресу gs://${BUCKET_NAME}/skills/ автоматически загружаются при загрузке и сохраняются после перезапуска экземпляра:
- Создайте локальный каталог навыков :
mkdir -p my-skill cat << 'EOF' > my-skill/SKILL.md --- name: summarize-logs description: Summarize Cloud Run error logs into actionable bullet points. --- # Log Summarizer Skill When asked to analyze or summarize logs, group errors by frequency and suggest actionable fixes. EOF - Загрузите навык в облачное хранилище :
gcloud storage cp -r my-skill gs://${BUCKET_NAME}/skills/ - Используйте навык в чате :
- Вернуться в веб-интерфейс управления OpenClaw.
- Теперь вы можете управлять своим агентом с помощью команды
/summarize-logsили задавать вопросы на естественном языке, соответствующие описанию навыка!
12. Уборка
Чтобы избежать списания средств с вашего аккаунта Google Cloud за ресурсы, использованные в этом практическом задании:
- Удалите экземпляр Cloud Run :
gcloud beta run instances delete openclaw-instance --region ${REGION} --quiet - Удалить секреты менеджера секретов :
gcloud secrets delete gemini-api-key --quiet gcloud secrets delete telegram-bot-token --quiet gcloud secrets delete openclaw-gateway-password --quiet - Удалить корзину облачного хранилища :
gcloud storage rm -r gs://${BUCKET_NAME} - Удалить выделенный сервисный аккаунт :
gcloud iam service-accounts delete ${SERVICE_ACCOUNT} --quiet
13. Заключение
Поздравляем! Вы успешно развернули защищенный, полностью постоянный экземпляр OpenClaw на Cloud Run Instances, использующий Cloud Storage, Secret Manager и предпочитаемый вами канал обмена сообщениями!