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-agents | Wilpy session API, gateway, sandbox lifecycle |
| dashboard-wilpy-worker | …-dashboard-wilpy-worker | Temporal worker (@wilpy/temporal), LLM + toolbox tools |
| Temporal | вне chart | Self-hosted frontend (namespace wilpy). Temporal Cloud не поддерживается |
Postgres wilpy | platform CNPG | Transcript, turns, checkpoints (отдельная logical DB) |
| S3 / MinIO | вне chart | Artifact 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 Secretwilix-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_* env | Fallback только если в каталоге нет доступных 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 для turnPOST /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_URL | envSecret (werf) / existingSecret / dashboard.wilpy.postgres.url | да (для Wilpy) | Postgres Wilpy store |
WILPY_TEMPORAL_ADDRESS | temporal.address (inject) | да | Self-hosted Temporal frontend |
WILPY_TEMPORAL_NAMESPACE | temporal.namespace (default wilpy) | нет | Temporal namespace |
WILPY_LLM_BASE_URL | dashboard.agents.env | fallback only | OpenAI-compatible LLM (bootstrap / empty catalog) |
WILPY_LLM_MODEL | dashboard.agents.env | fallback only | Имя модели |
WILPY_LLM_API_KEY | dashboard.envSecret | fallback only | API key провайдера |
WILPY_S3_ENDPOINT | dashboard.agents.env | с bucket + keys | S3-compatible endpoint |
WILPY_S3_BUCKET | dashboard.agents.env | с S3 | Bucket для артефактов |
WILPY_S3_ACCESS_KEY | dashboard.envSecret | с S3 | Access key |
WILPY_S3_SECRET_KEY | dashboard.envSecret | с S3 | Secret key |
WILPY_S3_REGION | dashboard.agents.env | нет | Default us-east-1 |
WILPY_S3_PATH_STYLE | dashboard.agents.env | нет | true для MinIO |
WILPY_BLOB_BACKEND | dashboard.agents.env | альтернатива S3 | Только fs (dev); с WILPY_BLOB_FS_ROOT |
WILPY_TOOLBOX_WAIT_MS | dashboard.agents.env | нет | Poll toolbox перед remote tools; default 120000, 0 = не ждать |
PLATFORM_ORGANIZATION_ID | dashboard.agents.env | interim | UUID org для tenant mapping Wilpy |
SF_IMAGE_WILPY_CLEAN | dashboard.agents.env | staging/prod | Docker ref для imageKind=clean (default wilix/wilpy:clean) |
SF_IMAGE_WILPY_PROJECT | dashboard.agents.env | staging/prod | Docker 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.
Проверка
- Логи dashboard-agents:
[dashboard-agents] wilpy session API mounted at /api/wilpy/* - Логи dashboard-wilpy-worker:
Wilpy Temporal worker bootstrapped session: ses_… - Создать сессию 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_unavailable | sandbox/toolbox down (ожидаемый degrade); MCP всё ещё работает |
Связанные документы
- Staging E2E: wilpy-e2e-checklist.md
- Helm:
.helm/values.yaml(temporal,dashboard.wilpyWorker,dashboard.wilpy) - Wilpy env canon:
wilpy/CLOUD.md,wilpy/packages/temporal/README.md - Design: https://wilix.yonote.ru/doc/wilpy-one-platform-design-spec-p0-27aca0d3-4d6f