OpenClaw Install

OpenClaw + Яндекс: поиск, диск, GPT

OpenClaw + Яндекс: поиск, диск, GPT
Из этой статьи:
  • Как настроить AI-агента для поиска информации на русском рынке через интеграцию с Яндексом за 3 шага: получить API-ключи, создать скиллы поиска и диска
  • Почему использовать Яндекс вместо других поисковиков: второй по популярности в России с глубоким пониманием русского языка и контекста для аналитики конкурентов
  • Что делать если нужно автоматизировать поиск, обработку документов и написание отчётов: использовать OpenClaw с интегрированными скиллами Яндекс поиска, диска и GPT
  • Как получить доступ к сервисам Яндекса: зарегистрироваться на yandex.ru/dev/search для поиска и создать сервисный аккаунт на cloud.yandex.com для диска и нейросети
  • Создайте OpenClaw-агента с интеграцией Яндекса, сохраните API-ключи в .env файл и используйте готовые скиллы для полноценной аналитики русскоязычного интернета и автоматизации рабочих процессов

OpenClaw позволяет создавать AI-агентов, которые работают не в вакууме, а с реальными инструментами. Интеграция с экосистемой Яндекса открывает доступ к поиску, облачному хранилищу и нейросети. В этом гайде покажу, как настроить эти интеграции на примере практических задач.

Почему интеграция с Яндексом имеет смысл

Яндекс — второй по популярности поисковик в России с глубоким пониманием русского языка и контекста. Для российского бизнеса это значит:

  • Поиск: актуальная информация о конкурентах, цены, новости в контексте русского рынка
  • Диск: хранение документов, интеграция с рабочими процессами компании
  • GPT: мощная нейросеть для обработки текста, близкая к ChatGPT по возможностям
Агент на базе OpenClaw с этими скиллами становится полноценным помощником для аналитики, подготовки отчётов и поиска информации в русскоязычном интернете.

Подготовка: получение API-ключей Яндекса

Прежде чем настраивать скиллы в OpenClaw, нужно получить доступ к API Яндекса.

Yandex Search API

  • Перейдите на yandex.ru/dev/search
  • Зарегистрируйте приложение или войдите в личный кабинет
  • Получите ключ API (обычно требует активный аккаунт на Яндексе)
  • Сохраните ключ в безопасном месте
  • Yandex Cloud API (для Диска и GPT)

  • Создайте аккаунт на cloud.yandex.com
  • Перейдите в IAM и создайте сервисный аккаунт
  • Сгенерируйте API-ключ для сервисного аккаунта
  • Включите API для Object Storage (Диск) и YandexGPT
  • Для локального тестирования сохраните ключи в файл .env:

    bash
    YANDEX_SEARCH_KEY=your_search_api_key
    YANDEX_CLOUD_API_KEY=your_cloud_api_key
    YANDEX_FOLDER_ID=your_folder_id

    Создание скилла поиска через Яндекс

    Скилл — это модуль OpenClaw, который выполняет конкретную задачу. Поиск через Яндекс — базовый скилл для информационного агента.

    Структура скилла

    Создайте файл yandex_search_skill.py:

    bash
    mkdir -p skills/yandex
    touch skills/yandex/search_skill.py

    Содержимое скилла:

    python
    import os
    import requests
    from typing import Optional, List
    

    class YandexSearchSkill: def __init__(self): self.api_key = os.getenv('YANDEX_SEARCH_KEY') self.base_url = "https://yandex.ru/search/xml" def search(self, query: str, top_results: int = 5) -> List[dict]: """ Поиск информации через Яндекс Args: query: поисковый запрос top_results: количество результатов (по умолчанию 5) Returns: Список результатов поиска """ params = { 'text': query, 'apikey': self.api_key, 'lr': 213, # регион (213 = Россия) 'num': top_results } try: response = requests.get(self.base_url, params=params, timeout=10) response.raise_for_status() results = [] # Парсинг XML результатов # Структура зависит от формата ответа API for doc in response.xml.findall('.//doc'): results.append({ 'title': doc.find('title').text, 'url': doc.find('url').text, 'snippet': doc.find('snippet').text, 'domain': doc.find('domain').text }) return results except requests.RequestException as e: return {'error': f'Ошибка поиска: {str(e)}'}

    Регистрация скилла в OpenClaw

    В конфиге агента (config.yaml или config.json) добавьте:

    yaml
    skills:
      - name: yandex_search
        type: search
        enabled: true
        config:
          api_key: ${YANDEX_SEARCH_KEY}
          max_results: 5
          language: ru

    Проверьте работу через CLI:

    bash
    openclaw skill test yandex_search \
      --query "лучшие CRM для малого бизнеса 2024"

    Интеграция Яндекс Диска для хранения результатов

    Агент может сохранять результаты работы прямо в облако — удобно для документов, отчётов, аналитики.

    Скилл для работы с Диском

    Создайте disk_skill.py:

    python
    import os
    import requests
    from io import BytesIO
    from typing import Optional
    

    class YandexDiskSkill: def __init__(self): self.api_key = os.getenv('YANDEX_CLOUD_API_KEY') self.base_url = "https://cloud-api.yandex.net/v1/disk" self.headers = { 'Authorization': f'OAuth {self.api_key}' } def upload_file(self, local_path: str, remote_path: str) -> dict: """ Загрузить файл на Яндекс Диск Args: local_path: путь к локальному файлу remote_path: путь на диске (/документы/отчёт.pdf) Returns: Статус загрузки """ try: # Получить ссылку для загрузки params = {'path': remote_path, 'overwrite': True} resp = requests.get( f"{self.base_url}/resources/upload", params=params, headers=self.headers ) resp.raise_for_status() upload_url = resp.json()['href'] # Загрузить файл with open(local_path, 'rb') as f: file_resp = requests.put(upload_url, data=f) file_resp.raise_for_status() return { 'status': 'success', 'path': remote_path, 'message': 'Файл успешно загружен' } except requests.RequestException as e: return {'status': 'error', 'message': str(e)} def create_report(self, content: str, filename: str) -> dict: """ Создать текстовый отчёт на диске """ try: # Временно сохраняем в памяти file_obj = BytesIO(content.encode('utf-8')) params = {'path': f'/Отчёты/{filename}'} resp = requests.get( f"{self.base_url}/resources/upload", params=params, headers=self.headers ) upload_url = resp.json()['href'] requests.put(upload_url, data=file_obj) return { 'status': 'success', 'path': f'/Отчёты/{filename}' } except Exception as e: return {'status': 'error', 'message': str(e)}

    Практический пример: автоматический отчёт

    Настройте агента на создание еженедельного отчёта:

    yaml
    workflows:
      - name: weekly_market_report
        trigger: schedule
        schedule: "0 9   MON"  # Каждый понедельник в 9 утра
        steps:
          - skill: yandex_search
            params:
              query: "тренды рынка маркетинга 2024"
              top_results: 10
          - skill: gpt_analyze
            input: "${previous_step.results}"
            params:
              prompt: "Составь сводку на основе найденных результатов"
          - skill: disk_upload
            input: "${previous_step.analysis}"
            params:
              filename: "market_report_${date}.txt"

    Использование YandexGPT в цепочке обработки

    YandexGPT — это нейросеть Яндекса, которая хорошо работает с русским языком и может быть дешевле альтернатив при большом объёме запросов.

    Скилл для YandexGPT

    python
    import os
    import requests
    import json
    

    class YandexGPTSkill: def __init__(self): self.api_key = os.getenv('YANDEX_CLOUD_API_KEY') self.folder_id = os.getenv('YANDEX_FOLDER_ID') self.base_url = "https://llm.api.cloud.yandex.net/foundationModels/v1/completion" def generate( self, prompt: str, model: str = "yandexgpt-3", temperature: float = 0.7, max_tokens: int = 2000 ) -> dict: """ Генерация текста через YandexGPT """ headers = { 'Authorization': f'Api-Key {self.api_key}', 'Content-Type': 'application/json' } payload = { 'modelUri': f'gpt://{self.folder_id}/{model}/latest', 'completionOptions': { 'stream': False, 'temperature': temperature, 'maxTokens': max_tokens }, 'messages': [ { 'role': 'user', 'text': prompt } ] } try: response = requests.post( self.base_url, headers=headers, json=payload, timeout=30 ) response.raise_for_status() result = response.json() return { 'status': 'success', 'text': result['result']['alternatives'][0]['message']['text'], 'tokens': result['result']['usage'] } except requests.RequestException as e: return {'status': 'error', 'message': str(e)} def summarize(self, text: str, max_length: int = 500) -> dict: """ Краткая сводка текста """ prompt = f"""Сделай краткую сводку следующего текста не более {max_length} символов. Текст: {text}

    Сводка:""" return self.generate(prompt, max_tokens=max_length // 3)

    Сравнение AI-моделей для русского языка

    МодельСкоростьКачествоЦенаРусскийКонтекст
    YandexGPT 3СредняяХорошее$$Отличный8K токенов
    Claude 3.5БыстраяОтличное$$$Хорошо200K токенов
    DeepSeekБыстраяХорошее$Хорошо64K токенов
    GPT-4 TurboСредняяОтличное$$$$Хорошо128K токенов
    Для российского контекста и работы с локальными данными YandexGPT часто предпочтительнее.

    Сценарии использования: примеры для бизнеса

    Сценарий 1: Мониторинг конкурентов

    Агент ежедневно ищет упоминания конкурентов, анализирует цены и стратегии:

    yaml
    workflow: competitor_monitoring
      trigger: schedule
      schedule: "0 10   *"  # Каждый день в 10 утра
      
      steps:
        - id: search
          skill: yandex_search
          params:
            query: "купить эквадор кофе цена 2024"
            top_results: 20
        
        - id: filter
          skill: gpt_analyze
          input: "${search.results}"
          params:
            prompt: "Найди и выдели только ценовые предложения конкурентов. Укажи компанию и цену."
        
        - id: report
          skill: disk_upload
          input: "${filter.analysis}"
          params:
            filename: "competitor_prices_${date}.md"
        
        - id: notify
          skill: telegram_send
          input: "${filter.analysis}"
          params:
            message: "Обновление по ценам конкурентов"

    Сценарий 2: Автоматический рефакторинг контента

    Найти контент на конкурентских сайтах и переработать для своего блога:

    yaml
    workflow: content_reuse
      trigger: manual
      
      steps:
        - id: search
          skill: yandex_search
          params:
            query: "как выбрать CRM для малого бизнеса"
            top_results: 5
        
        - id: extract
          skill: web_scrape
          input: "${search.results[0].url}"
        
        - id: rewrite
          skill: yandex_gpt
          input: "${extract.text}"
          params:
            prompt: "Переработай текст оригинальным стилем, добавь примеры для русского рынка"
        
        - id: save
          skill: disk_upload
          input: "${rewrite.output}"
          params:
            filename: "rewritten_content_${date}.md"

    Сценарий 3: Анализ тренда для маркетинга

    Собрать данные о тренде, проанализировать и создать план:

    bash
    openclaw run workflow trend_analysis \
      --param trend="нейросети в маркетинге" \
      --param industry="digital_marketing" \
      --output-format json

    Настройка и тестирование

    Проверка подключения к API

    Перед запуском полного агента протестируйте каждый скилл отдельно:

    ```bash

    Тест поиска

    openclaw skill test yandex_search \ --query "название запро

    Дмитрий Мочалов

    Основатель OpenClaw Install. Помогаем настроить AI-ассистентов для бизнеса и личных задач.

    @openclawinstallru_bot

    Читайте также