@rsarver gère simultanément une levée de fonds avec 100+ LP contacts, des boards et du deal flow en angel. Il a remplacé son chief of staff humain par un agent IA, et il dit que c'est meilleur que n'importe qui qu'il a recruté. Il a publié l'architecture complète.
La plupart des builds "assistant IA" tombent pour la même raison : la mémoire de session traitée comme contexte de travail. L'assistant tient sur une conversation, puis lâche exactement quand le contexte s'accumule.
Stella fait cinq choses que les autres builds ne maintiennent pas dans la durée :
Elle filtre le bruit et ne remonte que ce qui mérite ton attention
Elle prépare chaque réunion automatiquement et suit ce qui a été engagé après
Elle maintient une vue complète de tout ce qui est en cours et signale ce qui glisse
Elle trace les relations et l'état de chaque contact important
Elle crée le rythme quotidien et hebdomadaire qui maintient tout en mouvement
Ce qui distingue ce build : la couche mémoire persistante en dessous de tout ça, et une boucle d'amélioration continue qui fait évoluer le système chaque semaine.
L'architecture mémoire en deux couches
Couche 1 : les daily notes
Un fichier markdown par jour, dans memory/YYYY-MM-DD.md. C'est le log brut de tout ce qui s'est passé : réunions, décisions, tâches ajoutées et complétées, contexte apparu en conversation. Un script tire automatiquement des sessions tout au long de la journée et écrit ces fichiers.
Structure minimale d'un daily note :
# 2025-07-14
## Réunions
- Call LP [Nom], intéressé, veut deck + modèle financier avant fin semaine
- Board [Portfolio Co], décision recrutement CTO reportée à août
## Décisions prises
- On passe à 15M hard cap sur ce tour
## Tâches ajoutées
- [ ] Envoyer deck à [LP] avant vendredi
- [ ] Préparer brief CTO search pour board août
## Contexte notable
- [Nom contact] a mentionné qu'il cherche à co-investir sur des deals B2B SaaS
Couche 2 : MEMORY.md
C'est le fichier que Stella lit au démarrage pour s'orienter. Elle le synthétise elle-même à partir des daily notes. Personnes clés, projets actifs, décisions prises, leçons apprises.
Structure de base :
# MEMORY.md, État au [date]
## Personnes clés
- [Nom LP] : ticket 500K, focus deep tech, décision attendue avant Q3
- [Nom fondateur] : portfolio, cherche intro Series B, warm intro via [Nom]
## Projets actifs
- Fundraise Fund III : 23/100+ LP contactés, 4 soft commits, closing cible sept
- Board [Co] : prochain board 15 août, point CTO search critique
## Décisions récentes
- Hard cap 15M confirmé le 14 juillet
## Leçons apprises
- Les LPs qui demandent le modèle financier dans les 48h ont 3x plus de chances de convertir
@rsarver est précis là-dessus : tu peux ouvrir n'importe quel fichier, le lire, le corriger si quelque chose est faux, et comprendre exactement ce que l'assistant sait. Tout tient dans un repo que tu peux cloner, diff et rebase, sans couche d'abstraction entre toi et la compréhension que l'agent a de ton monde. C'est exactement ce qu'on avait développé dans notre analyse de la mémoire IA explicite.
Mise en place étape par étape
01
Structure des fichiers
Crée l'arborescence de base dans ton projet OpenClaw :
Le dossier memory/ contiendra tes daily notes. MEMORY.md est à la racine, lu au démarrage.
02
Le script de daily notes
Ce script tire le contexte de tes sessions et écrit le fichier du jour. Lance-le en fin de journée ou configure-le en cron :
#!/usr/bin/env python3
# pull_daily_notes.py
import datetime
import os
today = datetime.date.today().strftime("%Y-%m-%d")
filepath = f"memory/{today}.md"
# Récupère les sessions OpenClaw du jour via l'API
# et formate en markdown structuré
template = f"""# {today}
## Réunions
## Décisions prises
## Tâches ajoutées
## Contexte notable
"""
if not os.path.exists(filepath):
with open(filepath, "w") as f:
f.write(template)
print(f"Daily note créé : {filepath}")
else:
print(f"Daily note existe déjà : {filepath}")
03
Le system prompt de Stella
C'est le cœur. Stella lit MEMORY.md au démarrage et maintient les deux couches activement.
# Stella, System Prompt
Tu es Stella, chief of staff de [Prénom]. Au démarrage de chaque session, tu lis MEMORY.md pour t'orienter sur ce qui est en cours.
## Tes responsabilités
**Mémoire active**
- Tu maintiens memory/YYYY-MM-DD.md pour la session en cours
- Tu synthétises MEMORY.md chaque vendredi à partir des daily notes de la semaine
- Tu signales quand quelque chose dans MEMORY.md semble obsolète ou contradictoire
**Gestion du pipeline**
- Tu maintiens l'état de chaque LP contact (statut, dernière interaction, prochaine action)
- Tu prépares un brief avant chaque réunion : contexte, historique, ce qu'on veut obtenir
- Tu logs les commitments pris en fin de réunion et les ajoutes aux tâches
**Rythme opérationnel**
- Chaque matin : résumé des 3 priorités du jour
- Chaque vendredi : synthèse semaine + mise à jour MEMORY.md + scan améliorations système
## Format de réponse
Sois directe. Pas de formules de politesse. Si quelque chose glisse, dis-le.
04
La boucle kaizen hebdomadaire
C'est ce qui différencie un build qui stagne d'un build qui s'améliore chaque semaine. Un cron job chaque vendredi déclenche une session où Stella scanne les frictions de la semaine et propose des améliorations au système.
# crontab -e
# Chaque vendredi à 17h
0 17 * * 5 /usr/bin/python3 /path/to/weekly_kaizen.py
#!/usr/bin/env python3
# weekly_kaizen.py
import datetime
import glob
week_notes = glob.glob("memory/2025-*.md")
week_notes.sort()
last_7 = week_notes[-7:]
# Construit le prompt de revue hebdomadaire
kaizen_prompt = """
À partir des daily notes de cette semaine, identifie :
1. Les frictions récurrentes (tâches oubliées, contexte manquant, briefs insuffisants)
2. Les patterns qui méritent d'être codifiés dans MEMORY.md
3. Une modification concrète au system prompt qui aurait évité un problème cette semaine
Propose les changements directement, je valide ou j'ajuste.
"""
print("Kaizen hebdomadaire déclenché")
print(f"Notes analysées : {len(last_7)} fichiers")
# Passe le prompt + les notes à OpenClaw via API
05
Versionnement git
Tout dans git. C'est non-négociable si tu veux pouvoir restaurer un état ou comprendre comment la mémoire a évolué.
L'autre friction : Stella prépare des briefs pré-réunion excellents pour les contacts qui ont du contexte dans MEMORY.md, et des briefs vides pour les nouveaux. La solution de @rsarver est de lui donner accès à la recherche automatique pré-meeting pour les contacts sans historique. Un agent avec accès à tes emails et ton calendrier élargit ta surface d'attaque, ce qu'on a détaillé dans notre article sur les pièges de prompt injection en production.
Ce que ça donne en conditions réelles
LP contacts trackés
100+
pipeline fundraise actif
commitments oubliés
▲
0
depuis mise en place
pour sentir la différence
7j
vs assistant sans mémoire
Le cas d'usage fundraise est particulièrement fort parce que c'est exactement le contexte où la mémoire de session te tue : 100 contacts sur 6 mois, des conversations qui se ressemblent, des nuances par LP qui font la différence entre un soft commit et un refus. Stella maintient le fil de chaque relation sans que tu aies à te souvenir qui a demandé quoi lors du call de janvier.
@rsarver envisage d'open sourcer le système complet. Pour aller plus loin sur comment structurer les comportements d'un agent en production, notre analyse des agent skills couvre comment forcer un agent à travailler comme un senior qui connaît son contexte.