Funk-lab/admin/ia/openalice.md
alkatrazz 8a75019566 chore(openalice): suspend le déploiement (replicas 0), conserve tout
Projet mis en pause : Kraken via « CCXT Custom » non supporté (fetchBalance
avorte) + pas d'automatisation actions. Pod éteint, mais Deployment + PVC
openalice-data (config, clés scellées, données) conservés. Relance = replicas 1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 18:04:52 +02:00

4.1 KiB

OpenAlice — agent IA financier

⏸️ SUSPENDU (2026-06-28) — projet mis en pause. Déploiement conservé (replicas: 0), PVC openalice-data intact (config + clés scellées + données). Pour relancer : repasser replicas à 1 dans k8s/apps/openalice/deployment.yaml. Pourquoi : Kraken passe par la voie « CCXT Custom » non supportée d'OpenAlice — les commandes utilisant fetchBalance (account info / account portfolio) avortent (AbortError, code UNKNOWN), tandis que les endpoints d'ordres fonctionnent ; et pas d'automatisation actions sans IBKR/Alpaca. Le réseau/auth/ordres étaient OK ; seul le solde live coinçait. Restes à nettoyer côté user : révoquer la clé API Kraken (inutilisée), retirer les 50 € de Kraken, régénérer la clé FMP (exposée).

Quoi : TraderAlice/OpenAlice (AGPL-3.0), agent autonome de recherche financière multi-actifs (actions, crypto, commodités, forex, macro). Déployé in-cluster comme back-end financier d'Asa.

: namespace ai, openalice.lab.local, manifests k8s/apps/openalice/, app ArgoCD k8s/apps-of-apps/apps/openalice.yaml. Image rebuild par CI depuis le Dockerfile amont (.github/workflows/build-openalice.yml, ref épinglée OPENALICE_REF) → ghcr.io/alkatrazz24/funk-openalice.

Mode d'usage : lecture/recherche uniquement — aucun broker (UTA) connecté, donc pas de trading réel. Données via TraderHub (hébergé, sans clé) + clé FMP gratuite optionnelle pour les cours live (les K-lines/quotes ne sont pas sur le hub).

Architecture

  • Process Alice : runtime agent + Web UI (:47331) + serveur MCP interne + connecteur MCP Ask (:3003).
  • MCP Ask : entrée pour agents externes — askWithSession(message, sessionId) → Alice répond (elle reste autonome, pas un simple fournisseur d'outils). C'est ce qu'Asa consomme via http://openalice:3003 in-cluster (outil ask_alice).
  • Cerveau : pointé sur LiteLLM storage-01:4000 → Qwen3-8B (OpenAI-compatible, gratuit) ; Claude ajoutable en credential pour basculer (hybride). OpenAlice supporte aussi l'override ANTHROPIC_BASE_URL.

Particularités

  • Credentials scellés : OpenAlice chiffre ses credentials au repos dans /data (sealing.js). → impossible de seeder une clé en clair via ConfigMap. La config IA + clés vendor + activation MCP Ask se font au premier boot via la Web UI (persisté/scellé dans le PVC).
  • Token admin (256 bits) généré au 1er boot : kubectl -n ai logs deploy/openalice | grep -i token.
  • PodSecurity restricted (ns ai) : uid 1000 + fsGroup: 1000 pour que le NFS soit inscriptible. Sondes TCP (la Web UI 401 derrière le gate admin).
  • Ressources : req 512Mi / lim 1.5Gi (nœuds 8 Go, OOM actif) — runtime Node + CLIs agent embarqués (claude-code, codex) ; surveiller la conso réelle après déploiement.

Correctifs locaux (patch image)

  • Shims CLI manquants (-p1) : le Dockerfile amont v0.60.0-beta.1 copie src/workspaces/templates dans l'image runtime mais oublie src/workspaces/cli, alors que cliBinPath() = /app/src/workspaces/cli/bin est requis au runtime pour poser les shims alice / alice-uta (trading) / traderhub sur le PATH des agents. Sans eux, l'agent (Claude/codex) répond « alice-uta introuvable sur mon PATH » et ne peut pas joindre le moteur de trading / le broker. Corrigé dans la CI (build-openalice.yml, étape « Patch Dockerfile ») qui ajoute la copie manquante ; tag image suffixé -p1 (IMAGE_PATCH). À signaler en amont / retirer si corrigé.

Onboarding (premier boot)

Voir checklist détaillée dans k8s/apps/openalice/README.md :

  1. Secret ghcr-pull dans ai (si absent).
  2. Web UI → AI Provider (LiteLLM OpenAI-compat + Claude option), Market Data (FMP), Connectors → activer MCP Ask :3003.

Liens

  • Présentation/MCP Ask : docs/ du dépôt amont (mcp-ask-connector.md).
  • Intégration Asa : admin/ia/stt.md (outil ask_alice), k8s/apps/stt/.