overmind-mcp 2.8.19 → 2.8.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,403 @@
1
+ # 🤖 Guide : Créer un Agent Hermes Permanent avec Overmind
2
+
3
+ > **Pour les débutants** — De zéro à un agent autonome fonctionnel, step by step.
4
+
5
+ ---
6
+
7
+ ## 📖 Table des Matières
8
+
9
+ 1. [Concepts de Base](#-concepts-de-base)
10
+ 2. [Architecture 2 Couches](#-architecture-2-couches)
11
+ 3. [Hermes Gateway vs Overmind](#-hermes-gateway-vs-overmind)
12
+ 4. [Bridge SDK — Wrappers TypeScript](#-bridge-sdk--wrappers-typescript)
13
+ 5. [Architecture Dossier Agent](#-architecture-dossier-agent)
14
+ 6. [Les 4 Fichiers Cruciaux](#-les-4-fichiers-cruciaux)
15
+ 7. [Créer un Agent — Tutorial Complet](#-créer-un-agent--tutorial-complet)
16
+ 8. [Configuration Avancée](#-configuration-avancée)
17
+ 9. [Skills — Compétences Hermes](#-skills--compétences-hermes)
18
+ 10. [MCP Servers — Outils](#-mcp-servers--outils)
19
+ 11. [Mémoire — 3 Couches](#-mémoire--3-couches)
20
+ 12. [Cron — Agent vs Persistant](#-cron--agent-vs-persistant)
21
+ 13. [Workflow Type](#-workflow-type)
22
+ 14. [Troubleshooting](#-troubleshooting)
23
+
24
+ ---
25
+
26
+ ## 🧠 Concepts de Base
27
+
28
+ ### Qu'est-ce qu'un Agent Hermes ?
29
+
30
+ Un **agent Hermes** est une instance isolée d'IA avec :
31
+ - Son propre **system prompt** (SOUL.md)
32
+ - Ses propres **clés API** (.env)
33
+ - Ses propres **skills** (compétences)
34
+ - Sa propre **mémoire locale** (state.db + MEMORY.md)
35
+ - Sa propre **configuration** (modèle, MCP, TTS)
36
+
37
+ ### Qu'est-ce qu'Overmind ?
38
+
39
+ **Overmind** est l'**encapsuleur** qui gère plusieurs agents :
40
+ - **CRUD agents** (create, config, delete)
41
+ - **Orchestration** (run_agent, run_agents_parallel)
42
+ - **Mémoire locale/agent** (memory_store, memory_search — DB propre par agent)
43
+ - **Mémoire partagée** (cross-agents, transmission inter-agents)
44
+ - **Cron persistant** (survit aux redémarrages)
45
+ - **Agent Control** (status, stream, kill, wait)
46
+ - **Bridge SDK** (wrappers TypeScript)
47
+
48
+ ### Qu'est-ce que le Bridge ?
49
+
50
+ Le **Bridge** (`bridge/`) est un SDK TypeScript qui wrappe les appels Overmind MCP. Il permet de piloter les agents depuis une app externe (Discord bot, API REST, CLI).
51
+
52
+ ---
53
+
54
+ ## 📐 Architecture 2 Couches
55
+
56
+ ```
57
+ ┌──────────────────────────────────────────────────┐
58
+ │ OVERMIND │
59
+ │ L'Encapsuleur / Orchestrator │
60
+ │ │
61
+ │ CRUD agents • Orchestration • Mémoire partagée │
62
+ │ Mémoire locale/agent • Cron PERSISTANT • Bridge │
63
+ │ │
64
+ │ ┌────────────────────────────────────────────┐ │
65
+ │ │ HERMES GATEWAY │ │
66
+ │ │ Le Runtime Agent │ │
67
+ │ │ │ │
68
+ │ │ SOUL.md • Skills • TTS • MCP Client │ │
69
+ │ │ Mémoire locale • Sessions • Cron agent │ │
70
+ │ └────────────────────────────────────────────┘ │
71
+ └──────────────────────────────────────────────────┘
72
+ ```
73
+
74
+ **Point clé** : Overmind encapsule Hermes. Ce sont 2 couches distinctes.
75
+
76
+ ---
77
+
78
+ ## 🔀 Hermes Gateway vs Overmind
79
+
80
+ | Fonctionnalité | Hermes Gateway | Overmind |
81
+ |---|---|---|
82
+ | **Persona (SOUL.md)** | ✅ Gère et exécute | — |
83
+ | **Skills** | ✅ Charge et injecte | — |
84
+ | **TTS** | ✅ Exécute la synthèse | — |
85
+ | **MCP Client** | ✅ Se connecte aux serveurs | — |
86
+ | **Mémoire fichiers plats** | ✅ MEMORY.md, USER.md, state.db | — |
87
+ | **Mémoire locale DB** | — | ✅ memory_store/search (DB propre/agent) |
88
+ | **Mémoire partagée** | — | ✅ Cross-agents, include_runs |
89
+ | **Session** | ✅ SQLite par agent | — |
90
+ | **Cron agent-level** | ✅ Session fraîche chaque tick | — |
91
+ | **Terminal/Fichiers** | ✅ Outils d'exécution | — |
92
+ | **Agent CRUD** | — | ✅ create, config, delete |
93
+ | **Orchestration** | — | ✅ run_agent, run_agents_parallel |
94
+ | **Cron PERSISTANT** | — | ✅ Survit aux redémarrages |
95
+ | **Agent Control** | — | ✅ status, stream, kill, wait |
96
+ | **Bridge SDK** | — | ✅ Wrappers TypeScript |
97
+ | **Registre agents** | — | ✅ .overmind/hermes/ |
98
+
99
+ ---
100
+
101
+ ## 🔗 Bridge SDK — Wrappers TypeScript
102
+
103
+ ### Architecture en 3 Couches
104
+
105
+ ```
106
+ App → OverBridgeService → BridgeProxy → Overmind MCP → Hermes Gateway
107
+ ```
108
+
109
+ ### Les 5 Fichiers
110
+
111
+ | Fichier | Rôle | Lignes |
112
+ |---|---|---|
113
+ | `types.ts` | Contrats : `McpResponse`, `AgentResult`, `BridgeConfig`, `SessionState` | ~150 |
114
+ | `utils.ts` | Logger, SSE parsing, retry, validation, formatage Discord | ~170 |
115
+ | `BridgeProxy.ts` | Transport JSON-RPC 2.0 : circuit breaker, 3 couches timeout | ~285 |
116
+ | `OverBridgeService.ts` | API Overmind : `runAgent()`, `memorySearch()`, `runParallel()` | ~284 |
117
+ | `index.ts` | Barrel export | ~46 |
118
+
119
+ ### Ce que le Bridge Wrappe (Overmind uniquement)
120
+
121
+ ```typescript
122
+ // Orchestration (Overmind → lance Hermes)
123
+ bridge.runAgent('agent', 'hermes', 'prompt')
124
+ bridge.runAgentForDiscord('agent', 'hermes', msg, ctx)
125
+ bridge.runParallel([...agents])
126
+
127
+ // Mémoire partagée (Overmind)
128
+ bridge.memorySearch({ query: 'trading' })
129
+ bridge.memoryStore({ text: 'Décision...', source: 'decision' })
130
+
131
+ // Agent CRUD (Overmind)
132
+ bridge.listAgents()
133
+ bridge.createAgent('nom', 'hermes', 'prompt')
134
+
135
+ // Agent Control (Overmind)
136
+ bridge.agentControl({ agentName: 'x', action: 'status' })
137
+ ```
138
+
139
+ ### Circuit Breaker + Session Persistante
140
+
141
+ - **Circuit Breaker** : Closed → Open (5 échecs) → Half-Open → Closed (3 succès)
142
+ - **Session** : auto-persistée dans `SessionState`, `autoResume: true`
143
+
144
+ ---
145
+
146
+ ## 📁 Architecture Dossier Agent
147
+
148
+ ```
149
+ .overmind/hermes/<agent_name>/
150
+
151
+ ├── .hermes/ ← HERMES GATEWAY (runtime agent)
152
+ │ ├── SOUL.md ← Persona
153
+ │ ├── config.yaml ← Modèle + MCP + TTS
154
+ │ ├── .env ← Clés API
155
+ │ ├── state.db ← Mémoire locale SQLite
156
+ │ ├── skills/ ← Compétences Hermes
157
+ │ ├── sessions/ ← Historique sessions
158
+ │ ├── memories/ ← MEMORY.md + USER.md
159
+ │ ├── cron/ ← Cron agent-level Hermes
160
+ │ ├── logs/ ← Logs
161
+ │ └── audio_cache/ ← TTS
162
+
163
+ └── (fichiers de travail)
164
+
165
+ .overmind/agents/ ← REGISTRE OVERMIND
166
+ bridge/ ← SDK OVERMIND (wrappers TypeScript)
167
+ ```
168
+
169
+ ---
170
+
171
+ ## 📄 Les 4 Fichiers Cruciaux (Hermes Gateway)
172
+
173
+ ### 1. `SOUL.md` — Le Cerveau
174
+ System prompt. Définit personnalité, règles, comportements.
175
+
176
+ ### 2. `config.yaml` — Configuration Runtime
177
+ Modèle, MCP servers, TTS. Géré par Hermes, configuré via Overmind.
178
+
179
+ ### 3. `.env` — Les Secrets
180
+ Clés API. **JAMAIS de commit Git.**
181
+
182
+ ### 4. `state.db` — Mémoire SQLite
183
+ Historique conversations, sessions, cache. **Géré automatiquement par Hermes.**
184
+
185
+ ---
186
+
187
+ ## 🚀 Créer un Agent — Tutorial
188
+
189
+ ### Via Overmind MCP
190
+
191
+ ```bash
192
+ # 1. Créer (OVERMIND)
193
+ create_agent(name: "mon_agent", runner: "hermes", prompt: "Tu es...")
194
+
195
+ # 2. Configurer (OVERMIND)
196
+ update_agent_config(name: "mon_agent", model: "glm-5.1",
197
+ mcpServers: ["memory-server", "discord-server"])
198
+
199
+ # 3. Clés (OVERMIND)
200
+ update_agent_config(name: "mon_agent", env: { "OPENAI_API_KEY": "sk-..." })
201
+
202
+ # 4. Lancer (OVERMIND orchestre, HERMES exécute)
203
+ run_agent(runner: "hermes", agentName: "mon_agent", prompt: "Analyse...")
204
+ ```
205
+
206
+ ### Via Bridge SDK
207
+
208
+ ```typescript
209
+ import { OverBridgeService } from './bridge/index.js';
210
+ const bridge = new OverBridgeService({ mcpUrl: 'http://localhost:3099/mcp' });
211
+
212
+ const result = await bridge.runAgent('mon_agent', 'hermes', 'Mon prompt');
213
+ const results = await bridge.runParallel([...]);
214
+ ```
215
+
216
+ ---
217
+
218
+ ## ⚙️ Configuration Avancée (Hermes Gateway)
219
+
220
+ ### Multi-Modèles
221
+ ```bash
222
+ run_agent(runner: "hermes", agentName: "x", model: "claude-sonnet-4", prompt: "...")
223
+ ```
224
+
225
+ ### TTS
226
+ ```yaml
227
+ tts:
228
+ provider: elevenlabs
229
+ voice: charlie
230
+ voice_id: IKne3meq5aSn9XLyUdCD
231
+ model: eleven_multilingual_v2
232
+ ```
233
+
234
+ ---
235
+
236
+ ## 🎯 Skills — Compétences Hermes
237
+
238
+ Skills = fichiers `SKILL.md` chargés par Hermes Gateway.
239
+
240
+ ```
241
+ skills/
242
+ └── catégorie/
243
+ └── skill/
244
+ ├── SKILL.md
245
+ ├── references/
246
+ ├── scripts/
247
+ └── templates/
248
+ ```
249
+
250
+ ~100+ built-in : `autonomous-ai-agents`, `creative`, `github`, `research`, `devops`...
251
+
252
+ ```bash
253
+ skill_manage(action: "create", name: "mon-skill", content: "...")
254
+ ```
255
+
256
+ ---
257
+
258
+ ## 🔌 MCP Servers — Outils des Agents
259
+
260
+ | Serveur | Port | Fonction |
261
+ |---|---|---|
262
+ | `memory-server` | 3099 | Mémoire locale/agent + partagée Overmind + CRUD agents |
263
+ | `discord-server` | 3141 | Messages, embeds, fichiers Discord |
264
+ | `x-mcp-server` | 3142 | Scraping Twitter/X |
265
+ | `postgresql-server` | 5433 | SQL + Vector search |
266
+
267
+ ---
268
+
269
+ ## 🧠 Mémoire — 3 Couches
270
+
271
+ ### 1. Mémoire Hermes Gateway (fichiers plats, par agent)
272
+
273
+ Injectée dans le prompt à chaque tour. Gérée par l'agent lui-même via `memory()`.
274
+
275
+ ```bash
276
+ memory(action: "add", target: "memory", content: "Préfère réponses courtes")
277
+ memory(action: "replace", target: "user", old_text: "old", content: "new")
278
+ ```
279
+
280
+ | Fichier | Rôle | Portée |
281
+ |---|---|---|
282
+ | `MEMORY.md` | Notes personnelles de l'agent | 1 agent |
283
+ | `USER.md` | Profil et préférences utilisateur | 1 agent |
284
+ | `state.db` | SQLite (sessions, cache) | 1 agent |
285
+
286
+ ### 2. Mémoire Overmind Locale (DB propre par agent)
287
+
288
+ **Chaque agent a sa PROPRE base de données Overmind** — isolation complète.
289
+ Les `memory_store` et `memory_search` sont **locale à l'agent** par défaut.
290
+
291
+ ```bash
292
+ # Stockage dans la DB locale de l'agent
293
+ memory_store(text: "Décision : BlockChat v0.2", source: "decision")
294
+ memory_search(query: "BlockChat protocol")
295
+ ```
296
+
297
+ - Chaque agent = sa propre DB vectorielle
298
+ - Recherche sémantique dans les connaissances de l'agent
299
+ - Types : `user`, `agent`, `pattern`, `error`, `decision`
300
+
301
+ ### 3. Mémoire Overmind Partagée (cross-agents)
302
+
303
+ En plus de sa DB locale, un agent peut accéder à une mémoire **commune** partagée entre tous les agents.
304
+
305
+ ```bash
306
+ # Accès mémoire partagée (cross-agents)
307
+ memory_search(query: "trading strategy", include_runs: true)
308
+ ```
309
+
310
+ - Partagée entre tous les agents de la flotte
311
+ - Inclut l'historique des runs (`include_runs: true`)
312
+ - Permet la transmission de connaissances inter-agents
313
+
314
+ ---
315
+
316
+ ## ⏰ Cron — Agent vs Persistant
317
+
318
+ ### Cron Hermes Gateway (agent-level)
319
+ - Session **fraîche** à chaque tick
320
+ - Même profil, même MCP, pas de contamination
321
+ - Lié au cycle de vie de l'agent
322
+ - Config via `cronjob()` dans l'agent
323
+
324
+ ### Cron Overmind (PERSISTANT)
325
+ - Géré au niveau de l'**encapsuleur**
326
+ - **Survit aux redémarrages** de l'agent ET du gateway
327
+ - Stocké dans le registre Overmind
328
+ - Indépendant du cycle de vie Hermes
329
+
330
+ ```bash
331
+ # Cron Hermes (agent-level)
332
+ cronjob(action: "create", name: "analyse", schedule: "0 9 * * *",
333
+ prompt: "Analyse crypto...")
334
+
335
+ # Cron Overmind (persistant)
336
+ # → Configuré via Bridge SDK ou API Overmind
337
+ # → Survit aux redémarrages
338
+ ```
339
+
340
+ ---
341
+
342
+ ## 🔄 Workflow Type
343
+
344
+ ### Mono-Agent
345
+ ```
346
+ create_agent (OVERMIND) → config (OVERMIND) → run_agent (OVERMIND → HERMES)
347
+ ```
348
+
349
+ ### Multi-Agents
350
+ ```
351
+ Orchestrateur (OVERMIND)
352
+ ├─► run_agents_parallel([agent1, agent2, agent3])
353
+ └─► Consolidate → Discord
354
+ ```
355
+
356
+ ### Via Bridge
357
+ ```
358
+ App → OverBridgeService → BridgeProxy → Overmind MCP → Hermes Gateway
359
+ ```
360
+
361
+ ---
362
+
363
+ ## 🔧 Troubleshooting
364
+
365
+ ### L'agent ne démarre pas
366
+ - Vérifier `SOUL.md` non vide (Hermes)
367
+ - Vérifier `config.yaml` valide (Hermes)
368
+ - Checker `logs/errors.log` (Hermes)
369
+
370
+ ### MCP Server non connecté
371
+ - Vérifier le port dans `config.yaml` (Hermes)
372
+ - Tester `curl http://localhost:PORT/mcp`
373
+
374
+ ### Bridge — Circuit breaker ouvert
375
+ - 5 échecs → circuit open
376
+ - Attendre 30s ou `bridge.healthCheck()`
377
+
378
+ ### Cron perdu après redémarrage
379
+ - Cron Hermes = par session (pas persistant)
380
+ - Cron Overmind = persistant (survit)
381
+ - Vérifier quel niveau de cron est utilisé
382
+
383
+ ### Mémoire pleine
384
+ - `MEMORY.md` / `USER.md` ont des limites
385
+ - `memory(action: "remove")` pour nettoyer
386
+
387
+ ---
388
+
389
+ ## 📊 Checklist Nouvel Agent
390
+
391
+ - [ ] `create_agent()` (OVERMIND)
392
+ - [ ] `update_agent_config()` — modèle (OVERMIND)
393
+ - [ ] `update_agent_config()` — MCP servers (OVERMIND)
394
+ - [ ] `update_agent_config()` — .env (OVERMIND)
395
+ - [ ] Tester avec `run_agent()` (OVERMIND → HERMES)
396
+ - [ ] Stocker premiers faits en `memory_store()` (OVERMIND)
397
+ - [ ] Configurer Bridge SDK si orchestration externe (OVERMIND)
398
+
399
+ ---
400
+
401
+ > **Dernière mise à jour** : 30 mai 2026
402
+ > **Auteur** : Sniperbot Analyst (agent Hermes permanent)
403
+ > **Basé sur** : Infrastructure Overmind (encapsuleur) + Hermes Gateway (runtime)