Template DATA_DIR pour une instance d'agent conversationnel basée sur distant-agent.
Le code applicatif (FastAPI + Claude Agent SDK) est séparé des données (persona, knowledge, branding, config). Ce repo ne contient que les données d'une instance — fork/use-template pour créer une nouvelle instance.
- "Use this template" → créer ton repo
<projet>-data(privé recommandé : contient persona = IP). - Remplir les fichiers ci-dessous selon ton agent.
- Demander à l'admin du serveur (ou self-deploy) de cloner ton repo dans
/mnt/data/<projet>-agent-dataet brancher dessus une instance du code. - Update :
git pushsur ce repo, puisgit pull && systemctl restart <projet>-agentcôté serveur.
.
├── README.md
├── persona.md # System prompt admin (/admin)
├── persona-public.md # System prompt chat public (/) — peut être identique à persona.md
├── style.md # Style de communication
├── config.md # Config non-secrète (MODEL, PUBLIC_CHAT_ENABLED, rate limits, …)
├── branding/
│ ├── identity.md # YAML : name, favicon_url, og_image_url, placeholder, noindex
│ ├── header.html # Fragment HTML zone <header>
│ ├── footer.html # Fragment HTML zone <footer>
│ ├── init.js # JS chargé après chat.js (greeting, comportements custom)
│ ├── styles.css # CSS overrides (optionnel)
│ ├── avatar.png # Avatar agent (optionnel)
│ └── favicon.svg # Favicon (optionnel)
├── knowledge/ # Base de connaissances (lue par l'agent via outil Read)
│ └── *.md
└── system/ # Prompts sous-agents (guardian, fiche)
├── guardrails.md
└── update-fiche.md
| Fichier | Rôle | Obligatoire |
|---|---|---|
persona.md |
Qui est l'agent, comment il pense, ses limites | ✅ |
persona-public.md |
Persona pour le chat public anonyme. Peut être identique à persona.md |
✅ si PUBLIC_CHAT_ENABLED=true |
branding/identity.md |
Métadonnées web (name, favicon, og, placeholder) | ✅ |
branding/header.html |
Logo / nom dans le header de la page web | recommandé |
branding/footer.html |
Mention légale dans le footer | recommandé |
branding/init.js |
Greeting d'accueil (premier message affiché) | recommandé |
style.md |
Style de communication | recommandé |
config.md |
Config (MODEL, rate limits, etc.) | recommandé (sinon defaults code) |
knowledge/*.md |
Base de connaissances | recommandé |
system/*.md |
Prompts sous-agents (guardian, fiche) | déjà fournis, ajuster si besoin |
- Secrets (
.env) :ANTHROPIC_API_KEY,ADMIN_PASSWORD,JWT_SECRET,TWILIO_*, etc. → vivent dans/opt/<projet>-agent/.envcôté serveur, pas dans ce repo. - Runtime data :
users/,contacts.json,budget.json,*.jsonl→ généré par l'agent au fil de l'eau, gitignored.
- L'agent principal (Claude SDK) reçoit
persona.md+style.md+ la liste desknowledge/*.mddans son system prompt. Quand un sujet matche un fichier, il le lit via l'outilRead. - Les sous-agents (Haiku, max 1 turn, sans outils) utilisent
system/*.mdcomme prompts. - L'UI web (
/) affiche le branding défini dansbranding/. - Le chat.js générique expose
window.appendMessage(role, text)quebranding/init.jspeut appeler pour le greeting. config.md(YAML frontmatter) fournit les defaults pour les env vars non-secrètes (MODEL, PUBLIC_CHAT_ENABLED, …). Le.envcôté serveur override en cas de besoin.
Un fichier markdown par concept/méthode/outil. Voir knowledge/_example.md pour le format suggéré. L'agent lit avec l'outil Read, donc tout *.md clair, structuré, avec des exemples concrets fonctionne.