ZeptoClaw + YandexGPT

Runbook: запуск и остановка. Подробное описание — 251006_zeptoclaw+yGPT.md.

Состав

Компонент

Где

Прокси YandexGPT → OpenAI (y2o)

/home/a/YandexGPT_to_OpenAI, порт 8520

Данные и конфиг ZeptoClaw

/home/a/zeptoclaw-data

Образы

ghcr.io/qhkm/zeptoclaw:latest, yandexgpt_to_openai-y2o:latest

Контейнеры

y2o, zeptoclaw-agent-a (gateway)

Порты gateway

3000, 8080, 9090

Запуск

Порядок: сначала прокси, затем агент.

# 1. Прокси cd ~/YandexGPT_to_OpenAI docker compose up -d # или: docker start y2o # 2. Агент (существующий контейнер) docker start zeptoclaw-agent-a

Если контейнера агента нет (первый запуск или пересоздание):

docker rm -f zeptoclaw-agent-a docker run -d --name zeptoclaw-agent-a \ -e HOME=/data \ -v ~/zeptoclaw-data:/data/.zeptoclaw \ -p 3000:3000 -p 8080:8080 -p 9090:9090 \ --add-host=host.docker.internal:host-gateway \ ghcr.io/qhkm/zeptoclaw:latest \ zeptoclaw gateway

Проверка

docker ps --filter name=zeptoclaw-agent-a docker logs --tail 20 zeptoclaw-agent-a docker exec -e HOME=/data zeptoclaw-agent-a zeptoclaw doctor docker exec -e HOME=/data zeptoclaw-agent-a zeptoclaw agent -m "Привет!"

Проверка прокси:

cd ~/YandexGPT_to_OpenAI tok=$(jq -r '.. | .token? // empty' data/tokens.json | head -1) curl -s http://127.0.0.1:8520/v1/models -H "Authorization: Bearer $tok" | jq .

Ожидаемо: doctor — 6 ok, 2 warning (No channels configured, coding tools); агент отвечает текстом.

Одобрения инструментов

По умолчанию гейт одобрений включён: shell, write_file, edit_file, google требуют подтверждения. В режиме -m подтвердить некому — агент печатает вопрос и завершается. Простой запрос без вызова инструментов работает.

Интерактивно (подтверждать по ходу):

docker exec -it -e HOME=/data zeptoclaw-agent-a zeptoclaw agent

Одноразовые запуски с инструментами — отключить гейт в ~/zeptoclaw-data/config.json:

"approval": { "enabled": false }

Флаг --mode autonomous гейт не отключает.

Остановка

docker stop zeptoclaw-agent-a # данные сохраняются docker stop y2o # прокси; можно оставить запущенным

Конфиг

~/zeptoclaw-data/config.json, ключевые поля:

{ "providers": { "openai": { "api_key": "<токен из data/tokens.json>", "api_base": "http://host.docker.internal:8520/v1", "model": "yandexgpt/latest" } }, "agents": { "defaults": { "model": "yandexgpt/latest" } } }
  • Оба model — без префикса openai/; иначе Yandex вернёт invalid model_uri.

  • api_key — токен прокси, не ключ Yandex Cloud.

  • После пересоздания data/tokens.json обновить api_key.

Замечания

  • Контейнер возвращает владельца /home/a/zeptoclaw-data на свои UID. Правка с хоста: docker exec -u 0 -i zeptoclaw-agent-a sh -c 'cat > /data/.zeptoclaw/config.json' < файл либо docker stop zeptoclaw-agent-a, sudo chown -R a:a ~/zeptoclaw-data, правка, docker start.

  • Секреты: ключ Yandex — в рабочем ~/YandexGPT_to_OpenAI/docker-compose.yml (не коммитить), токены прокси — в ~/YandexGPT_to_OpenAI/data/tokens.json.

  • Режим MCP (zeptoclaw mcp-server) требует пересоздания контейнера с -i; см. конспект, раздел «mcp (встроенный)».