« L’indexation GraphRAG sur Apple Silicon exige une passerelle OpenClaw qui impose une liste blanche d’outils, des fusibles de lot pour la détection de communautés et des résumés d’échec rejouables sur un Mac distant par vos revues de pull request. »

Sur cette page : Frictions · Environnement M4 · Matrice · OpenClaw onboard · Timeouts · CI et PR · FAQ embedding · Repères · Suite

Après la matrice RAG local, ce runbook ajoute communautés GraphRAG, egress OpenClaw et disjoncteurs alignés sur LiteLLM Mac distant pour une surface d’audit unique index et requête.

Frictions lorsque GraphRAG contourne la passerelle

1. Prolifération d’outils pendant l’extraction. Les pipelines d’index activent silencieusement shell, navigateur ou écriture, contournant la conformité RAG et dupliquant l’egress entre locataires.

2. Lots communautés sans fusible. Le clustering de type Leiden fait monter la RAM quand les lignes de lot grossissent ; le portable swappe, l’hôte distant paraît sain jusqu’à l’effondrement mémoire unifiée au merge parquet.

3. Échec d’index silencieux. Les jobs longs terminent avec un graphe partiel tandis que la CI ne voit qu’un code de sortie non nul : impossible de savoir si embeddings, synthèse ou export graphe a cassé en premier.

GraphRAG sur M4 : environnement et seuils de lot communautés

Traitez la mémoire unifiée du Mac mini M4 comme budget dur partagé entre workers embedding, processus Python GraphRAG et RSS Node de la passerelle OpenClaw.

  • Runtime Python : figer 3.11 ou 3.12 dans un virtualenv verrouillé ; installer GraphRAG depuis une release taguée.
  • Working set : conserver les parquet d’entrée sur SSD local rapide ; éviter montages réseau pendant détection de communautés.
  • Lignes de lot communautés : démarrer à 512 entités par lot sur hôtes 16 Go, 1024 seulement après soak prouvant vingt pour cent de marge mémoire.
  • Parallélisme : exécuter extract et summarize séquentiellement au premier soak distant ; chevaucher uniquement si p95 stage est stable deux heures.

Versionnez batchSize, peakRssMb et stageWallClockSeconds dans un YAML à côté de la politique OpenClaw.

Matrice décision : profil d’index, fusible de lot, acceptation distante

Choisissez une colonne en revue d’architecture avant de promouvoir un pipeline GraphRAG du portable vers matériel loué.

Contrôle Prudent Équilibré Agressif
Lignes lot détection communautés 256 lignes, worker unique 512 lignes, deux workers max 1024 après soak thermique et accord finance
Taille liste blanche outils quatre outils : lecture, export parquet, HTTP embed, santé six outils dont route summarize huit outils avec scopes OAuth par outil
Budget jetons embedding horaire cent cinquante mille jetons trois cent mille jetons cinq cent mille avec plafond prépayé
Acceptation Mac distant p95 index dans vingt-cinq pour cent du portable idem plus moins de deux déclenchements fusible par jour idem plus résumés d’échec sur chaque build PR en échec

openclaw onboard, jetons passerelle et liste blanche domaines sortants

Installez Node LTS, suivez le bundle Getting Started officiel, puis lancez openclaw doctor et openclaw onboard sur le Mac distant avant le premier job d’index GraphRAG.

  • Séparation jetons : réserver une clé API sonde santé qui n’exécute jamais de charges d’index.
  • JSON liste blanche outils : nommer explicitement les outils autorisés ; refus par défaut pour shell, navigateur et HTTP arbitraire.
  • Domaines sortants : n’autoriser que hôtes fournisseur embedding, magasin vecteurs et buckets artefacts internes.
  • CI : exécuter openclaw config validate pour échouer avant déploiement SSH si secrets placeholder.

Pointer clients chat et embedding GraphRAG vers l’URL loopback passerelle afin que l’application de la liste blanche d’outils précède la planification Python des communautés.

Fusibles timeout index et requête avec gabarit de retry

Empiler des plafonds HTTP imbriqués pour que les rafales embedding à l’index ne affament pas le trafic requête interactif sur le même hôte.

index : connect 250ms | premier_octet 4s | total 120s | retries 2 (GET idempotent seulement) requête : connect 250ms | premier_octet 2s | total 45s | retries 1 fusible : déclenchement après 3 timeouts consécutifs par stage en 10 minutes

Diviser par deux les lignes de lot communautés après le premier déclenchement ; exiger accusé humain avant retour au profil équilibré.

  1. Cartographier les stages GraphRAG vers routes passerelle.
  2. Monter le YAML politique en lecture seule versionné à côté du binaire.
  3. Enregistrer la liste blanche et refuser le reste.
  4. Attacher timeouts par stage avec plafonds requête plus courts que index.
  5. Activer compteurs fusible de lot avec fuseReason et correlationId.
  6. Soak corpus doré via SSH sur Mac mini M4 loué.
  7. Comparer coût horaire aux tarifs publiés.

Reprise de résumés d’échec vers pull requests et CI

Sérialiser un JSON compact que GitHub Actions comprend déjà : stage, httpStatus, fuseReason, batchSize, correlationId, retryAfterSeconds. Jamais de texte document brut ni de secrets API.

Publiez l’enveloppe en check summary et commentaire PR : embeddings, synthèse ou export graphe, sans journaux complets sur le Mac distant.

FAQ : saturation mémoire embedding sur Apple Silicon

Pourquoi l’OOM n’apparaît-il que sur l’hôte distant ? Le portable swappe souvent en silence. Mesurer le RSS pic pendant l’encodage, réduire le micro-lot, streamer les shards et suspendre les clients requête jusqu’à la fin des stages d’index.

Dois-je contourner OpenClaw pour embeddings mlx locaux ? Non : garder le trafic sur la passerelle pour que liste blanche d’outils et enveloppes d’échec restent identiques ; router workers mlx ou compatibles OpenAI derrière le même écouteur loopback qu’en production.

Repères citables pour revue d’architecture

  • Conserver vingt pour cent de marge mémoire unifiée après chargement du plus gros modèle embedding plus RSS GraphRAG.
  • Démarrer les lots communautés à 512 lignes sur hôtes M4 16 Go sauf soak contraire.
  • Déclencher fusibles de lot après trois fautes consécutives en dix minutes pour le même stage.
  • Exiger résumés d’échec sur chaque PR d’index en échec avant promotion du profil équilibré.

Suite opérationnelle

Prototyper localement, puis rejouer le dépôt GraphRAG identique sur un Mac mini M4 loué avec le même bundle OpenClaw. Revenir à l’accueil, lire la matrice RAG local, comparer les forfaits Mac mini M4 et la documentation routage LiteLLM avant d’acheter des heures de nœud Mac LLM distant.