Files
brain-template/profil/decisions/adr-033-embedding-language-strategy.md
Tetardtek 8c95b70314 feat(template): ADRs 018-035 — 14 décisions architecturales manquantes
Synchronise le template avec les décisions fondatrices 2025-2026 :
- 018 : migration Rust strangler fig toolkit
- 023 : Cortex/Cosmos product vision
- 025 : cortex composition operator
- 026 : IPC context packet access matrix
- 027 : ambient autonomy engine
- 028 : learning loop detect-iterate
- 029 : Cosmos frontend brain
- 030 : boot mode empirical validation
- 031 : distribution model
- 032 : execution mode vs workflow
- 033/033a : embedding language strategy + zone filter
- 034 : infra separation local/VPS/template
- 035 : session pilote mode (ADR-035)

Dépersonnalisation : keys/brain.<OWNER_DOMAIN>, deciders: [<owner>]
2026-03-18 22:38:36 +01:00

4.4 KiB

scope, id, title, status, date, deciders, tags
scope id title status date deciders tags
kernel ADR-033 Stratégie embedding — multilinguisme et distribution brain-template accepted 2026-03-18
human
coach
embedding
distribution
multilingual
brain-template

ADR-033 — Stratégie embedding : multilinguisme et distribution brain-template

Contexte

Le brain-engine embarque un pipeline d'embedding (chunks → vecteurs → UMAP → Cosmos). Tout le contenu actuel est en FR. Brain-template (ADR-031) sera distribué à des utilisateurs potentiellement non-FR.

Deux problèmes distincts ont émergé lors du brainstorm 2026-03-18 :

  1. Problème de distribution : un utilisateur EN installe brain-template → peut-il avoir un brain opérationnel dans sa langue ?

  2. Problème de collaboration : deux instances brain (FR + EN) veulent co-travailler sémantiquement → leurs espaces embedding sont-ils commensurables ?


Options explorées

Option Description Verdict
A — Modèle multilingue (multilingual-e5) Un espace commun FR+EN+… Upgrade path v2
B — Modèles séparés par langue Silos, pas de cross-lingual Éliminé
C — Kernel traduit EN+FR en parallèle Double maintenance garantie Éliminé
D — Template structurel, contenu souverain Chaque instance dans sa langue Retenu v1

Décision

V1 — Option D : template structurel, instances souveraines

brain-template distribue :

  • Schéma frontmatter (language-agnostic)
  • Scripts bash/Python (language-agnostic)
  • Workflow templates (structure)
  • Agents .md en FR (langue du kernel owner)

Chaque instance :

  • Forge ses agents dans sa langue dès le premier sprint
  • Embarque son propre pipeline embedding avec le modèle de son choix
  • Est sémantiquement souveraine — aucune dépendance au brain FR d'origine

Un utilisateur EN installe brain-template :

1. Clone le template (agents FR comme référence de structure)
2. Forge ses agents EN via recruiter (le FR est un exemple, pas une contrainte)
3. Son brain est 100% EN, embedding 100% EN, Cosmos 100% EN
4. Opérationnel — aucune rupture sémantique

Ce qui ne change pas pour le brain FR owner :

  • Le brain existant n'est pas re-embeddé
  • Le modèle embedding actuel reste en place
  • Aucune action requise à la distribution du template

V2 — Option A : upgrade multilingual (condition d'activation)

Condition de déclenchement :

Première instance non-FR qui veut co-travailler sémantiquement avec le brain FR. Pas avant.

Quand ce moment arrive :

1. Migrer brain-engine vers multilingual-e5-large (ou équivalent)
2. Re-embedder tous les chunks existants (~30 min, opération batch)
3. Les deux instances partagent désormais un espace embedding commun
4. Cross-lingual search actif : query EN trouve contenu FR et vice-versa

Ce que ça débloque :

  • Brain A (FR) et Brain B (EN) cherchent dans un espace commun
  • Cosmos multi-instance : deux nébuleuses dans le même espace UMAP
  • Collaboration sémantique sans perdre la souveraineté de chaque instance

Zone filter — découplé (ADR-033a, sujet séparé)

La question du zone filter (quels contenus sont indexés selon leur zone) est indépendante du choix de modèle. Elle sera traitée dans un brainstorm dédié.

Hypothèse de départ pour ADR-033a :

kernel   → toujours indexé (open-core, vocabulaire partagé)
project  → TTL basé sur l'activité du sprint
personal → jamais indexé (bact, collaboration, progression)
session  → sélectif (checkpoint utile, contenu brut non)

Conséquences

Immédiat (V1) :

  • Brain-template peut être distribué sans changer l'infrastructure embedding actuelle
  • Aucun re-embedding du brain FR owner requis
  • Les utilisateurs non-FR sont pleinement autonomes dans leur langue

Futur (V2) :

  • Migration multilingual-e5 planifiée — opération batch de ~30 min
  • Déclenchée sur signal concret (premier besoin de collaboration cross-lingual)
  • Pas d'over-engineering préventif

Philosophie retenue :

Chaque brain est souverain dans sa langue. La collaboration sémantique est une option d'upgrade, pas un prérequis à la distribution.


Références

  • ADR-031 — Distribution model (brain-template)
  • ADR-029 — Cosmos frontend brain
  • wiki/brain-engine.md — pipeline embedding actuel
  • wiki/cosmos.md — visualisation UMAP