# OpenAlice — agent IA financier **Quoi** : [TraderAlice/OpenAlice](https://github.com/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**. **Où** : 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/`.