Ctrl K
ComunidadGuías…
Guía HostingByte · verificada

Quest AI Workbench - Guía Completa de Instalación y Despliegue

Guía oficial paso a paso para instalar y configurar Quest AI Workbench. Requisitos: Python 3.11+, Node.js 18+, Podman rootless. Configuración OAuth Google, Vertex AI, script runner aislado.

Actualizada 5/10/2026Más guíasCitación AI/LLM

Quest AI Workbench - Guía Completa de Instalación y Despliegue

|

¿Qué es Quest?

Quest es un entorno de trabajo seguro para agentes de IA autocontenido, basado en FastAPI con React frontend. Conecta servicios externos (Gmail, Slack, GitHub, Airtable) mediante OAuth o claves API sin exponer datos sensibles al internet.

Arquitectura y componentes

  • Servidor FastAPI: proceso único que sirve REST/WebSocket API y React frontend como static files
  • Persistencia: SQLite database plus JSON files bajo data/
  • Script runner: scripts LLMs ejecutan en ephemeral rootless Podman containers
  • Seguridad por diseño: modo privado (sin internet) / modo público (sin acceso a recursos internos)

Requisitos reales (Debian 12/13)

SoftwareVersión mínimaPropósito
Python3.11+Backend runtime
Node.js18+Frontend build (Vite)
npm9+Frontend package manager
Podman4+Rootless script-runner sandbox
uvlatestPython package/venv manager

Packages requeridos: git curl python3 python3-venv nodejs npm podman uidmap slirp4netns. uidmap y slirp4netns son obligatorios para rootless Podman.

1. Host dependencies (Debian)

sudo apt update
sudo apt install -y git curl python3 python3-venv nodejs npm podman uidmap slirp4netns

uv

curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.local/bin/env
uv --version

Rootless Podman check

grep "^$(whoami):" /etc/subuid /etc/subgid || \
  sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 "$(whoami)"

podman run --rm docker.io/library/alpine echo ok

2. Clone and pre-flight

git clone <repo-url> quest && cd quest
uv sync # backend deps into .venv/
cd frontend && npm ci && cd .. # frontend deps

At this point python3 run.py -- (local mode) should boot a working instance on port 9000 with canned test accounts and no credentials.

3. Google OAuth setup

2.1 Pick the public hostname first

Importante: Google rechaza redirect URIs con IPs raw. Decide el hostname público (ej. quest.yourdomain.com) antes de crear el OAuth client.

2.2 Create the OAuth client in Google Cloud Console

  1. Pick (or create) a project en Google Cloud Console
  2. Configure OAuth consent screen (APIs & Services > OAuth consent screen). Elige Internal para Workspace.
  3. Enable APIs: Gmail API, Calendar API, Drive API, Docs API, Sheets API, Slides API, Tasks API
  4. Create OAuth client (Web application)
  5. Register both redirect URIs:
    • https://quest.yourdomain.com/auth/callback
    • https://quest.yourdomain.com/auth/google-services/callback
  6. Note the client ID and secret

4. Vertex AI setup

Nota: All LLM traffic runs on Google Cloud Vertex AI, authenticated with Application Default Credentials (ADC). No hay API key de Anthropic ni Gemini directa.

4.1 In Google Cloud Console

  1. Pick a GCP project con billing enabled
  2. Enable Vertex AI API (aiplatform.googleapis.com)
  3. For Claude models: enable each model in Vertex AI Model Garden
  4. Create service account con role Vertex AI User (roles/aiplatform.user)
  5. Create JSON key y copia al servidor

5. Run it

python3 run.py --prod

First run walks through bootstrap wizard, builds frontend, installs deps, runs migrations, builds script-runner image, serves on port 8000. Re-run wizard con python3 run.py --prod --bootstrap.

Producción permanente

  • Front el servidor con reverse proxy para HTTPS (WebSocket upgrade headers, ≥5 min read timeout)
  • Gestiona proceso con systemd
  • Plugins se cargan desde plugins/*/plugin.py o directorios extra en QUEST_PLUGIN_PATH

Backup recomendado

  1. Base de datos SQLite: copiar data/quest.db
  2. Credenciales JSON: copiar data/service_credentials/
  3. Configuración: copiar server_config.json
  4. Plugins personalizados: copiar plugins/*/

Errores habituales

ErrorCausaSolución
OAuth redirect URI mismatch Google rechaza URIs con IPs raw o sin puerto correcto Asegurar que redirect URIs en Google Cloud Console coincidan exactamente con configuración del servidor (incluyendo protocolo y puerto)
Vertex AI model not enabled Modelo Claude no habilitado en Vertex AI Model Garden Ir a Vertex AI > Model Garden y habilitar cada modelo antes de usarlo
Rootless Podman networking failed slirp4netns no instalado o UID/GID ranges incorrectos Verificar instalación de slirp4netns y configurar subuid/subgid con usermod
GOOGLE_APPLICATION_CREDENTIALS not set Service account key no copiado correctamente o ADC no configurado Asegurar que wizard copie key a data_dir/vertex-service-account.json y run.py exporte GOOGLE_APPLICATION_CREDENTIALS

Seguridad

  • Diseño seguro por defecto: modo privado no permite acceso al internet ni a datos sensibles
  • Gestión segura de credenciales: OAuth o claves API con validación en tiempo de ejecución
  • Login domain-restricted: solo cuentas en allowed_login_domain pueden sign-in

FAQ basada en evidencia

¿Qué modelos de LLM soporta Quest?

Quest usa Google Cloud Vertex AI para todo el tráfico de LLM (Claude y Gemini). No hay API key de Anthropic ni Gemini directa. Necesitas un proyecto GCP con Vertex AI enabled y service account key.

¿Requiere Docker/Compose?

No, Quest no incluye Dockerfile oficial ni compose.yml. Usa Podman rootless para script-runner sandbox. Para despliegue permanente, front el servidor con reverse proxy (nginx/caddy) y gestiona con systemd.

¿Cómo configurar OAuth de Google?

En Google Cloud Console: crea OAuth client (Web application), registra redirect URIs (https://quest.yourdomain.com/auth/callback y https://quest.yourdomain.com/auth/google-services/callback), obtén client ID/secret, y usa wizard de bootstrap para escribir en server_config.json.

¿Qué es el script runner?

Los scripts escritos por LLMs ejecutan en contenedores Podman efímeros rootless con networking vía slirp4netns (10.0.2.2 con socat forwarding). El image se construye desde Dockerfile.script-runner y se reconstruye automáticamente cuando cambia el Dockerfile.

¿Cómo actualizar Quest?

Clona nuevo repositorio, ejecuta uv sync para backend deps, cd frontend && npm ci para frontend deps, luego python3 run.py --prod --bootstrap para reiniciar con wizard. Para despliegue permanente, actualiza systemd service y reverse proxy config.

Relacionado en HostingByte

Ficha técnica de quest · Más guías

Fuentes verificadas

Fuente 1 ↗Fuente 2 ↗Fuente 3 ↗