WILIX Logo

Wilpy — инструкция администратора

Yonote: этот документ — источник для раздела «Wilpy» в Инструкции администратора.

Канон: wilix-site/content/one/docs/admin/wilpy-env.md (этот файл).

Wilpy — тип агента one-platform (первый в списках). Оркестратор работает в кластере (отдельный pod dashboard-wilpy-worker, @wilpy/temporal), а не в sandbox. Публичное HTTP API — только через dashboard-agents (/api/wilpy/*, library-embed @wilpy/session).

@wilpy/* в образах dashboard резолвится из dashboard/vendor/wilpy ( bun workspaces ), без NPM_TOKEN. Обновить копию: ./scripts/vendor-wilpy.sh из корня репозитория, затем cd dashboard && bun install. Vite не требует соседний /workspace/wilpy.


Архитектура

КомпонентPodНазначение
dashboard-agents…-dashboard-agentsWilpy session API, gateway, sandbox lifecycle
dashboard-wilpy-worker…-dashboard-wilpy-workerTemporal worker (@wilpy/temporal), LLM + toolbox tools
Temporalвне chartSelf-hosted frontend (namespace wilpy). Temporal Cloud не поддерживается
Postgres wilpyplatform CNPGTranscript, turns, checkpoints (отдельная logical DB)
S3 / MinIOвне chartArtifact blobs (или WILPY_BLOB_BACKEND=fs только для dev)

Helm

1. Temporal (self-host)

Chart не деплоит Temporal. Production bootstrap: Deployment wilix-one-platform-production-temporal (temporalio/auto-setup:1.28.1) + Service …-temporal-frontend:7233, Postgres DBs temporal / temporal_visibility на platform CNPG, Temporal namespace wilpy.

temporal:
  address: "wilix-one-platform-production-temporal-frontend:7233"
  namespace: wilpy

Адреса *.tmprl.cloud / *.temporal.io и API keys отклоняются Wilpy. При деплое auto-setup: SKIP_DB_CREATE=true (БД уже provisioned), не задавать DYNAMIC_CONFIG_FILE_PATH (файла нет в образе).

2. Postgres для Wilpy

Logical database wilpy на platform CNPG (не wilix_one):

# scripts/cnpg-provision-db.sh — database=wilpy, role=wilpy

URL задаётся одним из способов:

  • WILPY_DATABASE_URL в dashboard.envSecret (secret-values-production.yaml, werf encrypt) — рекомендуется для production,
  • dashboard.wilpy.postgres.existingSecret + existingSecretKey (опциональный bootstrap Secret wilix-one-platform-production-wilpy-bootstrap), или
  • dashboard.wilpy.postgres.url в values (plaintext, только local/dev)

3. Включить worker

dashboard:
  wilpyWorker:
    enabled: true

Пока нет образа wilix/wilpy-worker, chart переиспользует образ dashboard-agents и запускает src/wilpy/worker-main.ts (platform resolve из каталога LLM).

4. LLM — каталог платформы (primary)

Модели для Wilpy настраиваются в Settings → Platform → LLM providers / models (см. LLM catalog spec).

ИсточникКогда используется
Каталог platformОсновной путь: worker и чат резолвят providerSlug/modelId через dashboard-api
WILPY_LLM_* envFallback только если в каталоге нет доступных enabled-моделей

Порядок резолва на turn: session.model (picker в чате) → recipe.modelRef → platform default → env fallback.

Worker (dashboard-wilpy-worker) вызывает internal API dashboard-api (DASHBOARD_API_INTERNAL_URL + AGENTS_INTERNAL_TOKEN):

  • POST /internal/platform-settings/llm/resolve — credentials для turn
  • POST /internal/platform-settings/llm/catalog — picker в embedded Wilpy chat

Identity: platform sessions.created_by + team ACL; lookup по wilpy_session_id.

5. Переменные dashboard-agents и worker

ПеременнаяГдеОбязательностьОписание
WILPY_DATABASE_URLenvSecret (werf) / existingSecret / dashboard.wilpy.postgres.urlда (для Wilpy)Postgres Wilpy store
WILPY_TEMPORAL_ADDRESStemporal.address (inject)даSelf-hosted Temporal frontend
WILPY_TEMPORAL_NAMESPACEtemporal.namespace (default wilpy)нетTemporal namespace
WILPY_LLM_BASE_URLdashboard.agents.envfallback onlyOpenAI-compatible LLM (bootstrap / empty catalog)
WILPY_LLM_MODELdashboard.agents.envfallback onlyИмя модели
WILPY_LLM_API_KEYdashboard.envSecretfallback onlyAPI key провайдера
WILPY_S3_ENDPOINTdashboard.agents.envс bucket + keysS3-compatible endpoint
WILPY_S3_BUCKETdashboard.agents.envс S3Bucket для артефактов
WILPY_S3_ACCESS_KEYdashboard.envSecretс S3Access key
WILPY_S3_SECRET_KEYdashboard.envSecretс S3Secret key
WILPY_S3_REGIONdashboard.agents.envнетDefault us-east-1
WILPY_S3_PATH_STYLEdashboard.agents.envнетtrue для MinIO
WILPY_BLOB_BACKENDdashboard.agents.envальтернатива S3Только fs (dev); с WILPY_BLOB_FS_ROOT
WILPY_TOOLBOX_WAIT_MSdashboard.agents.envнетPoll toolbox перед remote tools; default 120000, 0 = не ждать
PLATFORM_ORGANIZATION_IDdashboard.agents.envinterimUUID org для tenant mapping Wilpy
SF_IMAGE_WILPY_CLEANdashboard.agents.envstaging/prodDocker ref для imageKind=clean (default wilix/wilpy:clean)
SF_IMAGE_WILPY_PROJECTdashboard.agents.envstaging/prodDocker ref для project / agent (default wilix/wilpy:project)

Образ: dashboard/modules/agents/sandbox-images/wilpy/Dockerfile (git + CLI, без relay). Staging-приёмка: wilpy-e2e-checklist.md.

Worker получает DATABASE_URL = Wilpy Postgres, PLATFORM_DATABASE_URL = platform agents Postgres (lookup session/recipe), DASHBOARD_API_INTERNAL_URL для LLM resolve. LLM/S3 секреты — через общий dashboard.envSecret и dashboard.agents.env.


Проверка

  1. Логи dashboard-agents: [dashboard-agents] wilpy session API mounted at /api/wilpy/*
  2. Логи dashboard-wilpy-worker: Wilpy Temporal worker bootstrapped session: ses_…
  3. Создать сессию agentType=wilpy в UI → чат через embedded @wilpy/chat-ui

Troubleshooting

СимптомПричина
Wilpy API не монтируетсянет WILPY_DATABASE_URL
Worker CrashLoopнет Temporal / namespace wilpy / blob env
PLATFORM_ORGANIZATION_ID is requiredне задан interim org id
Remote tools toolbox_unavailablesandbox/toolbox down (ожидаемый degrade); MCP всё ещё работает

Связанные документы

WILIX Logo
© 2025 WILIX · С любовью к пользователям
ООО "ВИЛИКС" ИНН: 2308266448 ОГРН: 1192375046819