From bd7181b8dbf1459852ede9c2fbb9ad2efbf76619 Mon Sep 17 00:00:00 2001 From: alkatrazz Date: Wed, 13 May 2026 16:43:53 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20mise=20=C3=A0=20jour=20README=20princip?= =?UTF-8?q?al=20=E2=80=94=20=C3=A9tat=20cluster=20+=20stack=20IA=20compl?= =?UTF-8?q?=C3=A8te?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Stack IA : diagramme multi-agents (funk-ai/system/monitor/brain), tableau profils Hermes, ask-agent délégation inter-agents - Organisation repo : hermes_user, hermes-skills/, talos/, k8s/ - Gestion cluster : funk-start/stop --k8s, lien admin/cluster.md - Roadmap : cluster k8s ✅, MetalLB+Traefik ✅, ask-agent ✅, hermes_user ✅, WOL et ArgoCD restants Co-Authored-By: Claude Sonnet 4.6 --- README.md | 72 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 54 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 3517ce9..5e08990 100644 --- a/README.md +++ b/README.md @@ -48,20 +48,43 @@ L'ensemble est géré en Infrastructure-as-Code : **Ansible** pour les hôtes Al ## Stack IA ``` -Hermes Agent → LiteLLM :4000 → Qwen3-8B (local, gpu-01) - → Claude Sonnet / Opus (API Anthropic) - -Hermes ←→ Qdrant :6333 (mémoire vectorielle sémantique) + ┌─────────────────────────────────────┐ + │ Hermes Agent (storage-01) │ + │ │ + │ profil funk-ai (Qwen3-8B GPU) │ + │ │ ask-agent system/monitor │ + │ ▼ │ + │ profil system (Qwen3-1.7B CPU) │ + │ profil monitor (Qwen3-1.7B CPU) │ + │ profil brain (Claude Sonnet API) │ + └──────────────┬──────────────────────┘ + │ + LiteLLM Proxy :4000 + │ + ┌────────────────────┼────────────────────┐ + │ │ │ + qwen3-8b GPU qwen3-1.7b CPU Claude API + gpu-01 :1234 :1236 system / :1237 monitor Anthropic ``` | Composant | Rôle | Hôte | |---|---|---| -| **llama-server** | Inférence LLM + embeddings (ROCm 7.x) | gpu-01 | -| **LiteLLM** | Proxy API — switch local/cloud transparent | storage-01 | -| **Hermes Agent** | Agent IA autonome avec mémoire vectorielle | storage-01 | +| **llama-server** (×3) | Inférence GPU + 2× CPU isolés (ROCm 7.x) | gpu-01 | +| **LiteLLM** | Proxy API — routing local/cloud transparent | storage-01 | +| **Hermes Agent** | Agent IA multi-profils avec mémoire vectorielle | storage-01 | +| **ask-agent** | Délégation inter-agents (system / monitor / brain) | storage-01 | | **Qdrant** | Base vectorielle pour la mémoire sémantique | storage-01 | | **PostgreSQL 16** | Persistance Hermes + LiteLLM | storage-01 | +### Profils Hermes + +| Profil | Modèle | Usage | +|---|---|---| +| `funk-ai` | Qwen3-8B GPU (~35 tok/s) | Agent principal — par défaut | +| `system` | Qwen3-1.7B CPU (~21 tok/s) | Calculs rapides, formatage, résumés | +| `monitor` | Qwen3-1.7B CPU (~21 tok/s) | Analyse logs, métriques, santé système | +| `brain` | Claude Sonnet 4.6 (API) | Raisonnement complexe, architecture | + --- ## Infrastructure @@ -101,12 +124,18 @@ Hermes ←→ Qdrant :6333 (mémoire vectorielle sémantique) │ ├── nfs_client # Montages NFS sur gpu-01 │ ├── rocm # Stack GPU AMD (ROCm 7.x) │ ├── llama_server # Inférence LLM + embeddings -│ ├── litellm # Proxy LLM multi-modèles +│ ├── litellm # Proxy LLM + script ask-agent │ ├── hermes_agent # Agent IA autonome +│ ├── hermes_user # User hermes + SSH partagé entre hosts │ ├── postgresql # Base de données │ └── qdrant # Base vectorielle -├── talos/ # Cluster Kubernetes (talhelper) [à venir] -└── k8s/ # Workloads ArgoCD [à venir] +├── hermes-skills/ # Skills Hermes versionnés +│ └── funk/ +│ └── agent-delegation/ # Délégation ask-agent (system/monitor/brain) +├── talos/ # Cluster Kubernetes (talhelper) +└── k8s/ # Workloads ArgoCD + ├── infra/ # MetalLB, Traefik, cert-manager + └── apps/ # Open WebUI, n8n, monitoring ``` --- @@ -143,11 +172,15 @@ ansible-playbook -i inventory.yml playbooks/gpu-01.yml --tags llama_server ### Gestion du cluster ```bash -funk-start # Allume gpu-01 (WOL) + démarre tous les services -funk-stop # Arrêt propre -funk-status # État de tous les services (13 checks) +funk-start # Allume gpu-01 (WOL) + démarre tous les services +funk-start --k8s # Idem + démarre les nœuds k8s +funk-stop # Arrêt propre +funk-stop --k8s # Arrêt propre + éteint k8s avant +funk-status # État de tous les services (13 checks) ``` +> Détail complet des procédures : [admin/cluster.md](admin/cluster.md) + --- ## Secrets @@ -181,10 +214,13 @@ Elle est gérée automatiquement par le rôle Ansible `llama_server`. ## Roadmap - [x] Ansible — storage-01 (gateway, NFS, PostgreSQL, Qdrant, LiteLLM, Hermes) -- [x] Ansible — gpu-01 (ROCm, llama-server, embeddings) -- [x] Stack IA opérationnelle (Hermes + Qwen3-8B + mémoire vectorielle) +- [x] Ansible — gpu-01 (ROCm, llama-server ×3 — GPU + 2× CPU) +- [x] Stack IA opérationnelle (Hermes multi-profils + Qwen3 + Claude API) +- [x] Délégation inter-agents (`ask-agent` + skill `agent-delegation`) +- [x] User `hermes` avec SSH partagé entre storage-01 et gpu-01 +- [x] Cluster Kubernetes opérationnel (Talos + talhelper) +- [x] MetalLB + Traefik + wildcard DNS `lab.local` +- [ ] WOL compute nodes (configuration BIOS) - [ ] Route statique Freebox -- [ ] Bootstrap cluster Kubernetes (Talos + talhelper) -- [ ] ArgoCD + MetalLB + Traefik -- [ ] Workloads IA en k8s (Open WebUI, n8n, monitoring) +- [ ] ArgoCD bootstrap + workloads IA (Open WebUI, n8n, monitoring) - [ ] Rôle MinIO