overmind-mcp 2.0.0 β 2.0.2
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.
- package/README.md +145 -139
- package/dist/server.d.ts +40 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +104 -61
- package/dist/server.js.map +1 -1
- package/dist/services/ClaudeRunner.d.ts.map +1 -1
- package/dist/services/ClaudeRunner.js +68 -47
- package/dist/services/ClaudeRunner.js.map +1 -1
- package/docs/INDEX.md +144 -0
- package/docs/README.md +128 -0
- package/docs/api/prompt/Claude_code.md +74 -0
- package/docs/api/prompt/Kilo.md +74 -0
- package/docs/api/prompt/Kilo_Hermes.md +170 -0
- package/docs/api/prompt/Minimax4.md +96 -0
- package/docs/changelog/CHANGELOG.add.md +106 -0
- package/docs/changelog/CHANGELOG.md +339 -0
- package/docs/guides/DEPLOYMENT.md +418 -0
- package/docs/guides/SWARM_USAGE.md +444 -0
- package/docs/index.html +569 -0
- package/docs/library.html +239 -0
- package/docs/prompt.html +1212 -0
- package/docs/script.js +428 -0
- package/docs/styles.css +2816 -0
- package/docs/tools.md +794 -0
- package/package.json +26 -11
- package/scripts/docker-manager.mjs +200 -0
- package/scripts/install-dependencies.mjs +462 -0
- package/scripts/postinstall.mjs +192 -0
- package/scripts/setup-overmind-db.mjs +199 -0
- package/scripts/setup-windows.js +264 -0
- package/scripts/setup.mjs +394 -0
- package/scripts/uninstall.mjs +224 -0
- package/dist/tools/metadata.d.ts +0 -20
- package/dist/tools/metadata.d.ts.map +0 -1
- package/dist/tools/metadata.js +0 -246
- package/dist/tools/metadata.js.map +0 -1
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
# π OverMind-MCP Deployment Guide
|
|
2
|
+
|
|
3
|
+
Guide de dΓ©ploiement complet pour OverMind-MCP avec Temporal, RabbitMQ, Prometheus, Grafana, Jaeger, et PostgreSQL + pgvector.
|
|
4
|
+
|
|
5
|
+
## π PrΓ©requis
|
|
6
|
+
|
|
7
|
+
- **Docker** & **Docker Compose** (v2.0+)
|
|
8
|
+
- **Node.js** 20+ (pour OverMind-MCP)
|
|
9
|
+
- **pnpm** 10+
|
|
10
|
+
- **Git** (pour cloner le repo)
|
|
11
|
+
|
|
12
|
+
## π― Architecture DΓ©ployΓ©e
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
16
|
+
β OverMind-MCP v1.13.15 β
|
|
17
|
+
β (AI Orchestrator) β
|
|
18
|
+
ββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
19
|
+
β
|
|
20
|
+
ββββΊ RabbitMQ (Message Broker)
|
|
21
|
+
ββββΊ Temporal (Workflow Orchestrator)
|
|
22
|
+
ββββΊ PostgreSQL + pgvector (Vector DB)
|
|
23
|
+
ββββΊ Redis (Cache & Sessions)
|
|
24
|
+
ββββΊ OpenTelemetry Collector (Traces Bridge)
|
|
25
|
+
ββββΊ Prometheus (Metrics Collection)
|
|
26
|
+
β
|
|
27
|
+
βΌ
|
|
28
|
+
ββββββββββββββββββββββββββββ
|
|
29
|
+
β ObservabilitΓ© β
|
|
30
|
+
ββββββββββββββββββββββββββββ€
|
|
31
|
+
β β’ Grafana (Dashboards) β
|
|
32
|
+
β β’ Jaeger (Traces UI) β
|
|
33
|
+
β β’ Prometheus (Metrics) β
|
|
34
|
+
ββββββββββββββββββββββββββββ
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## ποΈ Γtape 1 : Cloner & Builder OverMind-MCP
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# 1. Cloner le repository
|
|
41
|
+
git clone https://github.com/DeamonDev888/overmind-mcp.git
|
|
42
|
+
cd overmind-mcp
|
|
43
|
+
|
|
44
|
+
# 2. Installer les dΓ©pendances
|
|
45
|
+
pnpm install
|
|
46
|
+
|
|
47
|
+
# 3. Builder le projet
|
|
48
|
+
pnpm run build
|
|
49
|
+
|
|
50
|
+
# 4. CrΓ©er le fichier .env
|
|
51
|
+
cp .env.example .env
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## π Γtape 2 : Configuration Environment Variables
|
|
55
|
+
|
|
56
|
+
Γditez le fichier `.env` avec vos valeurs rΓ©elles :
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# βββ OVERMIND WORKSPACE ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
60
|
+
OVERMIND_WORKSPACE=/path/to/your/workspace
|
|
61
|
+
|
|
62
|
+
# βββ DATABASE (PostgreSQL + pgvector) βββββββββββββββββββββββββββββββββββββββββββ
|
|
63
|
+
POSTGRES_HOST=127.0.0.1
|
|
64
|
+
POSTGRES_PORT=5432
|
|
65
|
+
POSTGRES_DATABASE=overmind_memory
|
|
66
|
+
POSTGRES_USER=postgres
|
|
67
|
+
POSTGRES_PASSWORD=CHANGE_ME_SECURE_PASSWORD
|
|
68
|
+
POSTGRES_SSL=false
|
|
69
|
+
|
|
70
|
+
# βββ MEMORY CONFIGURATION βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
71
|
+
OVERMIND_MEMORY_TYPE=postgres
|
|
72
|
+
|
|
73
|
+
# βββ EMBEDDING CONFIGURATION (Qwen 8B - 4096D) βββββββββββββββββββββββββββββββββ
|
|
74
|
+
OVERMIND_EMBEDDING_URL=https://openrouter.ai/api/v1
|
|
75
|
+
OVERMIND_EMBEDDING_KEY=sk-or-v1-YOUR_OPENROUTER_KEY_HERE
|
|
76
|
+
OVERMIND_EMBEDDING_MODEL=qwen/qwen3-embedding-8b
|
|
77
|
+
OVERMIND_EMBEDDING_DIMENSIONS=4096
|
|
78
|
+
|
|
79
|
+
# βββ MESSAGE BROKER (RabbitMQ) ββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
80
|
+
OVERMIND_BROKER=rabbitmq
|
|
81
|
+
RABBITMQ_URL=amqp://overmind:overmind_secret_password_change_me@localhost:5672
|
|
82
|
+
|
|
83
|
+
# βββ WORKFLOW ORCHESTRATOR (Temporal) βββββββββββββββββββββββββββββββββββββββββββ
|
|
84
|
+
OVERMIND_WORKFLOW=temporal
|
|
85
|
+
TEMPORAL_ADDRESS=localhost:7233
|
|
86
|
+
|
|
87
|
+
# βββ OPENTELEMETRY (ObservabilitΓ©) βββββββββββββββββββββββββββββββββββββββββββββββ
|
|
88
|
+
OTEL_ENABLED=true
|
|
89
|
+
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318/v1/traces
|
|
90
|
+
|
|
91
|
+
# βββ DISCORD (Optional - Notifications) βββββββββββββββββββββββββββββββββββββββββββ
|
|
92
|
+
DISCORD_TOKEN=YOUR_DISCORD_BOT_TOKEN_HERE
|
|
93
|
+
DISCORD_CHANNEL_ID=YOUR_CHANNEL_ID_HERE
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## π³ Γtape 3 : DΓ©ployer l'Infrastructure Docker
|
|
97
|
+
|
|
98
|
+
### 3.1 Lancer la stack principale
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# Lancer tous les services
|
|
102
|
+
docker-compose up -d
|
|
103
|
+
|
|
104
|
+
# VΓ©rifier que tous les services sont up
|
|
105
|
+
docker-compose ps
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Services lancΓ©s :**
|
|
109
|
+
- β
RabbitMQ (ports 5672, 15672)
|
|
110
|
+
- β
Temporal (ports 7233, 8233)
|
|
111
|
+
- β
PostgreSQL (port 5432)
|
|
112
|
+
- β
Redis (port 6379)
|
|
113
|
+
- β
Prometheus (port 9090)
|
|
114
|
+
- β
Grafana (port 3000)
|
|
115
|
+
- β
Jaeger (port 16686)
|
|
116
|
+
- β
OpenTelemetry Collector (ports 4317, 4318)
|
|
117
|
+
|
|
118
|
+
### 3.2 Lancer les exporters (mΓ©triques additionnelles)
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# Lancer RabbitMQ, PostgreSQL, Redis exporters
|
|
122
|
+
docker-compose -f docker-compose.exporters.yml up -d
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 3.3 VΓ©rifier la santΓ© des services
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# VΓ©rifier les logs
|
|
129
|
+
docker-compose logs -f
|
|
130
|
+
|
|
131
|
+
# Tester RabbitMQ Management UI
|
|
132
|
+
# Ouvrir: http://localhost:15672
|
|
133
|
+
# User: overmind
|
|
134
|
+
# Pass: overmind_secret_password_change_me
|
|
135
|
+
|
|
136
|
+
# Tester Temporal Web UI
|
|
137
|
+
# Ouvrir: http://localhost:8088
|
|
138
|
+
|
|
139
|
+
# Tester Grafana
|
|
140
|
+
# Ouvrir: http://localhost:3000
|
|
141
|
+
# User: admin
|
|
142
|
+
# Pass: grafana_password_change_me
|
|
143
|
+
|
|
144
|
+
# Tester Jaeger UI
|
|
145
|
+
# Ouvrir: http://localhost:16686
|
|
146
|
+
|
|
147
|
+
# Tester Prometheus
|
|
148
|
+
# Ouvrir: http://localhost:9090
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## π Γtape 4 : DΓ©marrer OverMind-MCP
|
|
152
|
+
|
|
153
|
+
### 4.1 DΓ©marrer le serveur MCP
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# Mode dΓ©veloppement (avec watch)
|
|
157
|
+
pnpm run dev
|
|
158
|
+
|
|
159
|
+
# Mode production
|
|
160
|
+
pnpm run start
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### 4.2 DΓ©marrer les workers (optionnel)
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
# Worker RabbitMQ (si utilisation du broker)
|
|
167
|
+
pnpm run worker:rabbitmq
|
|
168
|
+
|
|
169
|
+
# Worker Temporal (si utilisation des workflows longs)
|
|
170
|
+
pnpm run worker:temporal
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## π§ͺ Γtape 5 : Tester le DΓ©ploiement
|
|
174
|
+
|
|
175
|
+
### 5.1 Test Message Broker (RabbitMQ)
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# Dans un terminal, tester l'envoi de message
|
|
179
|
+
curl -X POST http://localhost:8088/api/v1/namespaces/default/workflows \
|
|
180
|
+
-H "Content-Type: application/json" \
|
|
181
|
+
-d '{
|
|
182
|
+
"workflow": {
|
|
183
|
+
"name": "orchestrateAgentsWorkflow",
|
|
184
|
+
"taskQueue": "overmind-agents"
|
|
185
|
+
},
|
|
186
|
+
"input": [{
|
|
187
|
+
"runner": "claude",
|
|
188
|
+
"prompt": "Test RabbitMQ deployment",
|
|
189
|
+
"agentName": "test-agent"
|
|
190
|
+
}]
|
|
191
|
+
}'
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### 5.2 Test Vector DB (pgvector)
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
# Utiliser l'outil MCP memory_store
|
|
198
|
+
# Via votre client MCP (Cursor, Claude Code, etc.)
|
|
199
|
+
|
|
200
|
+
memory_store({
|
|
201
|
+
text: "OverMind-MCP deployment successful",
|
|
202
|
+
source: "deployment",
|
|
203
|
+
agentName: "system"
|
|
204
|
+
})
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### 5.3 Test ObservabilitΓ© (OpenTelemetry)
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# ExΓ©cuter un agent avec tracing
|
|
211
|
+
run_agent({
|
|
212
|
+
runner: "claude",
|
|
213
|
+
prompt: "Test observability with tracing",
|
|
214
|
+
agentName: "test-agent"
|
|
215
|
+
})
|
|
216
|
+
|
|
217
|
+
# VΓ©rifier les traces dans Jaeger UI
|
|
218
|
+
# http://localhost:16686
|
|
219
|
+
# Chercher: service="overmind-mcp"
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### 5.4 Test Temporal Workflows
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
# Lancer un workflow long-running
|
|
226
|
+
longRunningWorkflow({
|
|
227
|
+
batches: [{
|
|
228
|
+
id: "test-batch-1",
|
|
229
|
+
tasks: [{
|
|
230
|
+
runner: "claude",
|
|
231
|
+
prompt: "OSINT analysis task 1",
|
|
232
|
+
agentName: "analyst"
|
|
233
|
+
}],
|
|
234
|
+
status: "pending"
|
|
235
|
+
}],
|
|
236
|
+
maxParallelBatches: 3,
|
|
237
|
+
batchTimeout: "1 hour"
|
|
238
|
+
})
|
|
239
|
+
|
|
240
|
+
# VΓ©rifier dans Temporal Web UI
|
|
241
|
+
# http://localhost:8088
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## π Γtape 6 : Configurer Grafana Dashboards
|
|
245
|
+
|
|
246
|
+
### 6.1 Importer les datasources
|
|
247
|
+
|
|
248
|
+
1. Ouvrir Grafana: http://localhost:3000
|
|
249
|
+
2. Aller dans **Configuration β Data Sources**
|
|
250
|
+
3. Ajouter **Prometheus**:
|
|
251
|
+
- URL: `http://prometheus:9090`
|
|
252
|
+
- Access: `Server (default)`
|
|
253
|
+
4. Ajouter **Jaeger**:
|
|
254
|
+
- URL: `http://jaeger:16686`
|
|
255
|
+
- Access: `Server (default)`
|
|
256
|
+
|
|
257
|
+
### 6.2 CrΓ©er les dashboards
|
|
258
|
+
|
|
259
|
+
**Dashboard 1: OverMind-MCP Health**
|
|
260
|
+
- Panel 1: RAM Usage (Node Exporter)
|
|
261
|
+
- Panel 2: RabbitMQ Queue Length
|
|
262
|
+
- Panel 3: PostgreSQL Connections
|
|
263
|
+
- Panel 4: Temporal Workflow Success Rate
|
|
264
|
+
|
|
265
|
+
**Dashboard 2: AI Performance**
|
|
266
|
+
- Panel 1: LLM Token Consumption (custom metric)
|
|
267
|
+
- Panel 2: Agent Execution Time
|
|
268
|
+
- Panel 3: Vector DB Search Latency
|
|
269
|
+
- Panel 4: Workflow Completion Rate
|
|
270
|
+
|
|
271
|
+
## π§ Γtape 7 : Maintenance & Monitoring
|
|
272
|
+
|
|
273
|
+
### 7.1 Logs & Diagnostics
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
# Logs OverMind-MCP
|
|
277
|
+
docker-compose logs -f overmind-mcp
|
|
278
|
+
|
|
279
|
+
# Logs RabbitMQ
|
|
280
|
+
docker-compose logs -f rabbitmq
|
|
281
|
+
|
|
282
|
+
# Logs Temporal
|
|
283
|
+
docker-compose logs -f temporal
|
|
284
|
+
|
|
285
|
+
# Logs PostgreSQL
|
|
286
|
+
docker-compose logs -f postgres
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
### 7.2 Backups
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
# Backup PostgreSQL (incluant les vecteurs)
|
|
293
|
+
docker-compose exec postgres pg_dump -U postgres overmind_memory > backup.sql
|
|
294
|
+
|
|
295
|
+
# Backup Grafana dashboards
|
|
296
|
+
docker-compose exec grafana grafana-cli admin export-dashboards
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### 7.3 Clean up (si nΓ©cessaire)
|
|
300
|
+
|
|
301
|
+
```bash
|
|
302
|
+
# ArrΓͺter tous les services
|
|
303
|
+
docker-compose down
|
|
304
|
+
|
|
305
|
+
# ArrΓͺter + supprimer volumes (donnΓ©es perdues!)
|
|
306
|
+
docker-compose down -v
|
|
307
|
+
|
|
308
|
+
# Relancer après clean up
|
|
309
|
+
docker-compose up -d
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
## π― Γtape 8 : Workflows AvancΓ©s
|
|
313
|
+
|
|
314
|
+
### 8.1 Lancer un workflow OSINT longue durΓ©e
|
|
315
|
+
|
|
316
|
+
```typescript
|
|
317
|
+
import { startLongRunningWorkflow } from 'overmind-mcp';
|
|
318
|
+
|
|
319
|
+
const workflow = await startLongRunningWorkflow({
|
|
320
|
+
batches: [{
|
|
321
|
+
id: "osint-batch-1",
|
|
322
|
+
tasks: [{
|
|
323
|
+
runner: "claude",
|
|
324
|
+
prompt: "OSINT analysis: Crypto market sentiment analysis",
|
|
325
|
+
agentName: "crypto-analyst"
|
|
326
|
+
}],
|
|
327
|
+
status: "pending"
|
|
328
|
+
}],
|
|
329
|
+
maxParallelBatches: 5,
|
|
330
|
+
batchTimeout: "24 hours"
|
|
331
|
+
});
|
|
332
|
+
|
|
333
|
+
// Surveiller le workflow
|
|
334
|
+
const state = await workflow.stateQuery();
|
|
335
|
+
console.log('Workflow state:', state);
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
### 8.2 Allocation Swarm dynamique
|
|
339
|
+
|
|
340
|
+
```typescript
|
|
341
|
+
import { createSwarmOrchestrator } from 'overmind-mcp';
|
|
342
|
+
|
|
343
|
+
const swarm = createSwarmOrchestrator({
|
|
344
|
+
agents: [{
|
|
345
|
+
agentName: "crypto-analyst",
|
|
346
|
+
runner: "claude",
|
|
347
|
+
capabilities: ["analysis", "osint", "crypto"],
|
|
348
|
+
maxConcurrentTasks: 3,
|
|
349
|
+
currentLoad: 0
|
|
350
|
+
}],
|
|
351
|
+
tasks: [{
|
|
352
|
+
id: "task-1",
|
|
353
|
+
type: "analysis",
|
|
354
|
+
prompt: "Analyze BTC price action",
|
|
355
|
+
priority: 10,
|
|
356
|
+
requiresCapabilities: ["analysis", "crypto"]
|
|
357
|
+
}],
|
|
358
|
+
maxParallelTasks: 5,
|
|
359
|
+
enableLoadBalancing: true,
|
|
360
|
+
enableTaskPriority: true
|
|
361
|
+
});
|
|
362
|
+
|
|
363
|
+
const allocations = await swarm.allocateTasks();
|
|
364
|
+
console.log('Allocations:', allocations);
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
## π SΓ©curitΓ© (IMPORTANT)
|
|
368
|
+
|
|
369
|
+
Avant de passer en production :
|
|
370
|
+
|
|
371
|
+
1. **Changer tous les mots de passe par dΓ©faut**
|
|
372
|
+
- RabbitMQ: `overmind_secret_password_change_me`
|
|
373
|
+
- PostgreSQL: `postgres_password_change_me`
|
|
374
|
+
- Grafana: `grafana_password_change_me`
|
|
375
|
+
|
|
376
|
+
2. **Configurer SSL/TLS**
|
|
377
|
+
- PostgreSQL: `POSTGRES_SSL=true`
|
|
378
|
+
- RabbitMQ: Activer SSL
|
|
379
|
+
- Temporal: Acturer mTLS
|
|
380
|
+
|
|
381
|
+
3. **Restreindre l'accès réseau**
|
|
382
|
+
- Utiliser Docker networks privΓ©s
|
|
383
|
+
- Exposer seulement les ports nΓ©cessaires
|
|
384
|
+
- Configurer firewall/iptables
|
|
385
|
+
|
|
386
|
+
4. **Activer l'authentification**
|
|
387
|
+
- Grafana: Configurer OAuth/LDAP
|
|
388
|
+
- Temporal: Activer mTLS
|
|
389
|
+
- PostgreSQL: Certificats clients
|
|
390
|
+
|
|
391
|
+
## π Ressources & Documentation
|
|
392
|
+
|
|
393
|
+
- **OverMind-MCP**: https://github.com/DeamonDev888/overmind-mcp
|
|
394
|
+
- **Temporal**: https://docs.temporal.io
|
|
395
|
+
- **RabbitMQ**: https://www.rabbitmq.com/documentation.html
|
|
396
|
+
- **Prometheus**: https://prometheus.io/docs
|
|
397
|
+
- **Grafana**: https://grafana.com/docs
|
|
398
|
+
- **Jaeger**: https://www.jaegertracing.io/docs
|
|
399
|
+
- **pgvector**: https://github.com/pgvector/pgvector
|
|
400
|
+
|
|
401
|
+
## π Support & CommunautΓ©
|
|
402
|
+
|
|
403
|
+
- **Discord**: https://discord.gg/4AR82phtBz
|
|
404
|
+
- **Issues**: https://github.com/DeamonDev888/overmind-mcp/issues
|
|
405
|
+
|
|
406
|
+
---
|
|
407
|
+
|
|
408
|
+
**DΓ©ploiement terminΓ© !** π
|
|
409
|
+
|
|
410
|
+
OverMind-MCP est maintenant opΓ©rationnel avec :
|
|
411
|
+
- β
Message Broker (RabbitMQ)
|
|
412
|
+
- β
Workflow Orchestrator (Temporal)
|
|
413
|
+
- β
Vector DB (PostgreSQL + pgvector)
|
|
414
|
+
- β
Observabilité complète (Prometheus, Grafana, Jaeger)
|
|
415
|
+
- β
Workflows long-running (OSINT, analyses)
|
|
416
|
+
- β
Allocation Swarm dynamique
|
|
417
|
+
|
|
418
|
+
**Prochaine Γ©tape**: CrΓ©er vos agents et workflows personnalisΓ©s !
|