ai-team-orchestrator
Version:
đ§ AI Team Advanced - Maximum Quality Agent System avec 9 agents ultra-spĂ©cialisĂ©s et collaboration intelligente
1,022 lines (900 loc) âą 34.7 kB
JavaScript
#!/usr/bin/env node
/**
* đŻ Agents SpĂ©cialisĂ©s AvancĂ©s - Architecture de Collaboration Intelligente
*
* Agents avec capacités d'auto-amélioration et négociation inter-agents
*/
import { readFile, writeFile } from 'fs/promises';
import { execSync } from 'child_process';
import crypto from 'crypto';
/**
* đ€ Agent Orchestrateur - Cerveau central avec IA dĂ©cisionnelle
*/
export class OrchestratorAgent {
constructor(aiClient) {
this.ai = aiClient;
this.model = "deepseek-ai/DeepSeek-R1-Distill-Llama-70B";
this.collaborationHistory = new Map();
this.performanceMetrics = new Map();
this.decisionEngine = new DecisionEngine(aiClient);
}
async createMasterPlan(taskDescription, requirements) {
const contextAnalysis = await this.analyzeProjectContext();
const complexityAnalysis = await this.analyzeComplexity(taskDescription);
const resourcePlanning = await this.planResources(taskDescription, complexityAnalysis);
const prompt = `
En tant qu'Orchestrateur Senior avec expertise en gestion de projets techniques complexes,
créez un plan maßtre détaillé et optimisé.
TĂCHE: ${taskDescription}
CONTEXTE PROJET:
${JSON.stringify(contextAnalysis, null, 2)}
ANALYSE COMPLEXITĂ:
${JSON.stringify(complexityAnalysis, null, 2)}
RESSOURCES DISPONIBLES:
${JSON.stringify(resourcePlanning, null, 2)}
VOTRE MISSION CRITIQUE:
1. Décomposer la tùche en sous-tùches optimales
2. Identifier les dépendances critiques
3. Définir les critÚres de succÚs mesurables
4. Prévoir les risques et mitigation
5. Orchestrer la collaboration inter-agents
6. Ătablir la roadmap d'exĂ©cution
STRUCTURE JSON RIGOUREUSE:
{
"metadata": {
"complexity": "low|medium|high|enterprise",
"estimatedDuration": "duration in hours",
"riskLevel": "low|medium|high",
"requiredAgents": ["agent1", "agent2"],
"criticalPath": []
},
"breakdown": {
"phases": [
{
"name": "",
"description": "",
"dependencies": [],
"assignedAgents": [],
"deliverables": [],
"successCriteria": [],
"estimatedDuration": ""
}
]
},
"qualityGates": [
{
"phase": "",
"criteria": [],
"threshold": "",
"validator": "agent"
}
],
"riskManagement": {
"risks": [],
"mitigation": [],
"contingencyPlans": []
},
"collaboration": {
"workflows": [],
"communications": [],
"reviewProcess": []
}
}
`;
const response = await this.ai.chat.completions.create({
model: this.model,
messages: [
{
role: "system",
content: "Expert Orchestrateur avec maßtrise de la gestion de projets techniques complexes et coordination d'équipes spécialisées."
},
{ role: "user", content: prompt }
],
max_tokens: 3000,
temperature: 0.1
});
const masterPlan = JSON.parse(response.choices[0].message.content);
// Enrichissement avec l'intelligence décisionnelle
masterPlan.decisionPoints = await this.decisionEngine.identifyDecisionPoints(masterPlan);
masterPlan.optimizations = await this.optimizePlan(masterPlan);
return masterPlan;
}
async analyzeProjectContext() {
try {
const packageJson = JSON.parse(await readFile('package.json', 'utf8'));
const tsConfig = await this.checkFileExists('tsconfig.json');
const gitignore = await this.checkFileExists('.gitignore');
return {
dependencies: packageJson.dependencies || {},
devDependencies: packageJson.devDependencies || {},
scripts: packageJson.scripts || {},
hasTypeScript: tsConfig,
projectStructure: await this.analyzeProjectStructure(),
gitStatus: await this.getGitStatus()
};
} catch (error) {
return { error: 'Unable to analyze project context', details: error.message };
}
}
async analyzeComplexity(taskDescription) {
const prompt = `
Analysez la complexité de cette tùche de développement avec expertise technique.
TĂCHE: ${taskDescription}
Ăvaluez selon ces dimensions:
1. Complexité technique (algorithmes, architecture)
2. Complexité d'intégration (APIs, services tiers)
3. Complexité UI/UX (interfaces, interactions)
4. Complexité de données (structures, transformations)
5. Complexité de tests (couverture, scénarios)
6. Complexité de déploiement (infrastructure, CI/CD)
RETOURNEZ UN JSON:
{
"overall": "low|medium|high|enterprise",
"dimensions": {
"technical": {"score": 1-10, "factors": []},
"integration": {"score": 1-10, "factors": []},
"ui": {"score": 1-10, "factors": []},
"data": {"score": 1-10, "factors": []},
"testing": {"score": 1-10, "factors": []},
"deployment": {"score": 1-10, "factors": []}
},
"estimatedEffort": "hours",
"recommendedTeamSize": number,
"criticalChallenges": []
}
`;
const response = await this.ai.chat.completions.create({
model: this.model,
messages: [
{ role: "system", content: "Expert en estimation de complexité de projets logiciels." },
{ role: "user", content: prompt }
],
max_tokens: 1500,
temperature: 0.1
});
return JSON.parse(response.choices[0].message.content);
}
async negotiateWithAgents(masterPlan, agentFeedbacks) {
// SystÚme de négociation intelligente entre agents
const negotiations = new Map();
for (const [agentName, feedback] of Object.entries(agentFeedbacks)) {
if (feedback.concerns || feedback.suggestions) {
const negotiation = await this.conductNegotiation(agentName, feedback, masterPlan);
negotiations.set(agentName, negotiation);
}
}
return this.consolidateNegotiations(negotiations, masterPlan);
}
async conductNegotiation(agentName, feedback, masterPlan) {
const prompt = `
Négociation intelligente entre l'Orchestrateur et l'agent ${agentName}.
PLAN MAĂTRE:
${JSON.stringify(masterPlan, null, 2)}
FEEDBACK AGENT ${agentName}:
${JSON.stringify(feedback, null, 2)}
En tant qu'Orchestrateur expert en résolution de conflits techniques:
1. Analysez les préoccupations légitimes de l'agent
2. Ăvaluez l'impact sur le plan global
3. Proposez des compromis optimaux
4. Maintenez la cohérence globale
RĂSULTAT JSON:
{
"analysis": "analyse des préoccupations",
"impact": "impact sur le plan global",
"compromise": "solution de compromis",
"updatedPlan": "modifications proposées",
"justification": "justification des décisions"
}
`;
const response = await this.ai.chat.completions.create({
model: this.model,
messages: [
{ role: "system", content: "Expert en négociation technique et résolution de conflits dans les projets logiciels." },
{ role: "user", content: prompt }
],
max_tokens: 2000,
temperature: 0.2
});
return JSON.parse(response.choices[0].message.content);
}
}
/**
* âïž Agent Backend Expert - Architecture et performance maximales
*/
export class BackendExpertAgent {
constructor(aiClient) {
this.ai = aiClient;
this.model = "deepseek-ai/DeepSeek-R1-Distill-Llama-70B";
this.tools = [
'performanceProfiler',
'securityScanner',
'architectureValidator',
'databaseOptimizer',
'apiDesigner'
];
}
async createAPISpecifications(architecture) {
const prompt = `
En tant qu'Expert Backend Senior avec expertise en architectures haute performance,
créez des spécifications API exceptionnelles.
ARCHITECTURE:
${JSON.stringify(architecture, null, 2)}
VOTRE EXPERTISE POUSSĂE:
- Microservices et architectures distribuées
- Optimisations de performance extrĂȘmes
- Sécurité niveau enterprise (OWASP Top 10+)
- Patterns avancés (CQRS, Event Sourcing, Saga)
- Observabilité et monitoring avancé
- Scalabilité horizontale et verticale
SPĂCIFICATIONS MAXIMALES REQUISES:
1. Architecture API RESTful/GraphQL optimale
2. Patterns de sécurité enterprise-grade
3. Stratégies de cache multi-niveaux
4. Gestion d'erreurs sophistiquée
5. Monitoring et observabilité complets
6. Tests de charge et performance
STRUCTURE JSON EXIGĂE:
{
"apiDesign": {
"style": "REST|GraphQL|gRPC",
"endpoints": [],
"authentication": {},
"authorization": {},
"rateLimit": {},
"caching": {}
},
"architecture": {
"patterns": [],
"layers": [],
"dependencies": [],
"dataFlow": {}
},
"performance": {
"targets": {},
"optimizations": [],
"caching": {},
"database": {}
},
"security": {
"authentication": {},
"authorization": {},
"encryption": {},
"validation": {},
"monitoring": {}
},
"monitoring": {
"metrics": [],
"logging": {},
"tracing": {},
"alerting": {}
},
"codeGeneration": {
"models": [],
"controllers": [],
"services": [],
"middleware": [],
"tests": []
}
}
`;
const response = await this.ai.chat.completions.create({
model: this.model,
messages: [
{
role: "system",
content: "Expert Backend Architect avec maßtrise des architectures haute performance et sécurité enterprise."
},
{ role: "user", content: prompt }
],
max_tokens: 4000,
temperature: 0.1
});
return JSON.parse(response.choices[0].message.content);
}
async generateOptimizedCode(specifications) {
const files = new Map();
const codeGen = specifications.codeGeneration;
// Génération des modÚles de données
for (const model of codeGen.models) {
const code = await this.generateModel(model, specifications);
files.set(`models/${model.name}.js`, code);
}
// Génération des contrÎleurs
for (const controller of codeGen.controllers) {
const code = await this.generateController(controller, specifications);
files.set(`controllers/${controller.name}.js`, code);
}
// Génération des services
for (const service of codeGen.services) {
const code = await this.generateService(service, specifications);
files.set(`services/${service.name}.js`, code);
}
// Génération des middleware
for (const middleware of codeGen.middleware) {
const code = await this.generateMiddleware(middleware, specifications);
files.set(`middleware/${middleware.name}.js`, code);
}
// Configuration de sécurité
const securityConfig = await this.generateSecurityConfiguration(specifications.security);
files.set('config/security.js', securityConfig);
// Configuration de monitoring
const monitoringConfig = await this.generateMonitoringConfiguration(specifications.monitoring);
files.set('config/monitoring.js', monitoringConfig);
return files;
}
async generateModel(modelSpec, specifications) {
const prompt = `
Générez un modÚle de données Node.js de qualité enterprise maximale.
SPĂCIFICATIONS:
${JSON.stringify(modelSpec, null, 2)}
CONTEXTE SĂCURITĂ:
${JSON.stringify(specifications.security, null, 2)}
EXIGENCES ENTERPRISE:
- Validation de données stricte avec Joi/Zod
- Sérialisation sécurisée
- Audit trail automatique
- Relations optimisées (si ORM)
- Indexation database intelligente
- Cache layer intégré
- Gestion d'erreurs robuste
- Documentation JSDoc complĂšte
- Tests unitaires exhaustifs
PRODUISEZ UN MODĂLE DE NIVEAU SENIOR.
`;
const response = await this.ai.chat.completions.create({
model: this.model,
messages: [
{
role: "system",
content: "Expert en modélisation de données avec expertise ORM et optimisations base de données."
},
{ role: "user", content: prompt }
],
max_tokens: 2500,
temperature: 0.1
});
return response.choices[0].message.content;
}
async generateController(controllerSpec, specifications) {
const prompt = `
Créez un contrÎleur API Node.js de niveau enterprise avec sécurité maximale.
SPĂCIFICATIONS:
${JSON.stringify(controllerSpec, null, 2)}
ARCHITECTURE API:
${JSON.stringify(specifications.apiDesign, null, 2)}
STANDARDS ENTERPRISE:
- Validation stricte des inputs
- Authentification/Autorisation robuste
- Gestion d'erreurs standardisée
- Rate limiting intelligent
- Logging et monitoring complets
- Cache stratégique
- Documentation OpenAPI
- Tests d'intégration complets
- Patterns async/await optimisés
GĂNĂREZ UN CONTRĂLEUR DE QUALITĂ MAXIMALE.
`;
const response = await this.ai.chat.completions.create({
model: this.model,
messages: [
{
role: "system",
content: "Expert en développement d'APIs REST/GraphQL avec sécurité enterprise."
},
{ role: "user", content: prompt }
],
max_tokens: 2500,
temperature: 0.1
});
return response.choices[0].message.content;
}
}
/**
* đ§Ș Agent QA Engineer - Tests et validation exhaustifs
*/
export class QAEngineerAgent {
constructor(aiClient) {
this.ai = aiClient;
this.model = "deepseek-ai/DeepSeek-R1-Distill-Llama-70B";
this.tools = [
'testCoverageAnalyzer',
'performanceTester',
'securityTester',
'accessibilityTester',
'e2eOrchestrator'
];
}
async createTestStrategy(architecture) {
const prompt = `
En tant que QA Engineer Senior expert en stratégies de test avancées,
développez une stratégie de test exhaustive et optimisée.
ARCHITECTURE:
${JSON.stringify(architecture, null, 2)}
VOTRE EXPERTISE AVANCĂE:
- Test-Driven Development (TDD) et Behavior-Driven Development (BDD)
- Pyramide de tests optimisée
- Tests de performance et charge
- Tests de sécurité automatisés
- Tests d'accessibilité WCAG 2.1 AAA
- Tests E2E avec orchestration intelligente
- Tests de régression automatisés
- Property-based testing
STRATĂGIE COMPLĂTE REQUISE:
1. Pyramide de tests optimisée par composant
2. Couverture de code >95% avec qualité
3. Tests de performance avec seuils stricts
4. Tests de sécurité automatisés
5. Tests d'accessibilité intégrés
6. CI/CD avec quality gates
7. Monitoring de qualité en continu
STRUCTURE JSON COMPLĂTE:
{
"strategy": {
"approach": "TDD|BDD|hybrid",
"coverage": {
"target": "percentage",
"thresholds": {},
"exclusions": []
},
"levels": {
"unit": {},
"integration": {},
"e2e": {},
"performance": {},
"security": {},
"accessibility": {}
}
},
"tools": {
"unit": [],
"integration": [],
"e2e": [],
"performance": [],
"security": [],
"accessibility": []
},
"automation": {
"ci_cd": {},
"quality_gates": [],
"reporting": {},
"notifications": {}
},
"codeGeneration": {
"unitTests": [],
"integrationTests": [],
"e2eTests": [],
"performanceTests": [],
"securityTests": [],
"accessibilityTests": []
}
}
`;
const response = await this.ai.chat.completions.create({
model: this.model,
messages: [
{
role: "system",
content: "Expert QA Engineer avec maßtrise des stratégies de test avancées et automation."
},
{ role: "user", content: prompt }
],
max_tokens: 3500,
temperature: 0.1
});
return JSON.parse(response.choices[0].message.content);
}
async generateComprehensiveTests(specifications) {
const files = new Map();
const codeGen = specifications.codeGeneration;
// Tests unitaires
for (const test of codeGen.unitTests) {
const code = await this.generateUnitTest(test, specifications);
files.set(`tests/unit/${test.file}`, code);
}
// Tests d'intégration
for (const test of codeGen.integrationTests) {
const code = await this.generateIntegrationTest(test, specifications);
files.set(`tests/integration/${test.file}`, code);
}
// Tests E2E
for (const test of codeGen.e2eTests) {
const code = await this.generateE2ETest(test, specifications);
files.set(`tests/e2e/${test.file}`, code);
}
// Tests de performance
for (const test of codeGen.performanceTests) {
const code = await this.generatePerformanceTest(test, specifications);
files.set(`tests/performance/${test.file}`, code);
}
// Configuration Jest/Cypress optimisée
const jestConfig = await this.generateJestConfiguration(specifications);
files.set('jest.config.js', jestConfig);
const cypressConfig = await this.generateCypressConfiguration(specifications);
files.set('cypress.config.js', cypressConfig);
return files;
}
async performQualityAudit(implementation) {
const auditResults = {
codeQuality: await this.auditCodeQuality(implementation),
testCoverage: await this.auditTestCoverage(implementation),
performance: await this.auditPerformance(implementation),
security: await this.auditSecurity(implementation),
accessibility: await this.auditAccessibility(implementation),
bestPractices: await this.auditBestPractices(implementation)
};
return {
overall: this.calculateOverallQuality(auditResults),
details: auditResults,
recommendations: await this.generateRecommendations(auditResults),
actionItems: await this.generateActionItems(auditResults)
};
}
}
/**
* đ Agent Security Expert - SĂ©curitĂ© enterprise maximale
*/
export class SecurityExpertAgent {
constructor(aiClient) {
this.ai = aiClient;
this.model = "deepseek-ai/DeepSeek-R1-Distill-Llama-70B";
this.tools = [
'vulnerabilityScanner',
'penetrationTester',
'complianceChecker',
'cryptographyAnalyzer',
'threatModeler'
];
}
async analyzeSecurityRequirements(architecture) {
const prompt = `
En tant qu'Expert en Sécurité Senior avec certifications CISSP et CEH,
analysez et définissez les exigences de sécurité maximales.
ARCHITECTURE:
${JSON.stringify(architecture, null, 2)}
VOTRE EXPERTISE AVANCĂE:
- OWASP Top 10 et au-delĂ
- Cryptographie avancée et PKI
- Zero Trust Architecture
- Threat modeling et risk assessment
- Compliance (GDPR, SOX, HIPAA, PCI-DSS)
- Security by Design
- DevSecOps et security automation
ANALYSE SĂCURITAIRE COMPLĂTE:
1. Threat modeling détaillé
2. Analyse des surfaces d'attaque
3. Stratégies de défense en profondeur
4. Cryptographie et gestion des clés
5. Authentification et autorisation avancées
6. Monitoring et détection d'intrusions
7. Compliance et audit
STRUCTURE JSON SĂCURISĂE:
{
"threatModel": {
"assets": [],
"threats": [],
"vulnerabilities": [],
"countermeasures": []
},
"security": {
"authentication": {
"methods": [],
"mfa": {},
"tokenManagement": {}
},
"authorization": {
"model": "RBAC|ABAC|ACL",
"policies": [],
"enforcement": {}
},
"encryption": {
"inTransit": {},
"atRest": {},
"keyManagement": {}
},
"inputValidation": {
"sanitization": [],
"validation": [],
"filtering": []
}
},
"compliance": {
"standards": [],
"requirements": [],
"controls": []
},
"monitoring": {
"logging": {},
"siem": {},
"alerting": {},
"forensics": {}
},
"codeGeneration": {
"securityMiddleware": [],
"cryptoUtils": [],
"validators": [],
"monitors": []
}
}
`;
const response = await this.ai.chat.completions.create({
model: this.model,
messages: [
{
role: "system",
content: "Expert en Sécurité Cybernétique avec expertise en architectures sécurisées et compliance."
},
{ role: "user", content: prompt }
],
max_tokens: 4000,
temperature: 0.1
});
return JSON.parse(response.choices[0].message.content);
}
async performSecurityAudit(implementation) {
const auditResults = {
vulnerabilities: await this.scanVulnerabilities(implementation),
authentication: await this.auditAuthentication(implementation),
authorization: await this.auditAuthorization(implementation),
encryption: await this.auditEncryption(implementation),
inputValidation: await this.auditInputValidation(implementation),
logging: await this.auditLogging(implementation),
compliance: await this.auditCompliance(implementation)
};
return {
securityScore: this.calculateSecurityScore(auditResults),
findings: auditResults,
riskAssessment: await this.assessRisks(auditResults),
recommendations: await this.generateSecurityRecommendations(auditResults),
remediationPlan: await this.createRemediationPlan(auditResults)
};
}
}
/**
* đ Agent Performance Optimizer - Optimisation extrĂȘme
*/
export class PerformanceOptimizerAgent {
constructor(aiClient) {
this.ai = aiClient;
this.model = "deepseek-ai/DeepSeek-R1-Distill-Llama-70B";
this.tools = [
'performanceProfiler',
'memoryAnalyzer',
'networkOptimizer',
'databaseOptimizer',
'cacheOptimizer'
];
}
async definePerformanceTargets(architecture) {
const prompt = `
En tant qu'Expert en Performance Senior avec expertise en optimisations extrĂȘmes,
définissez des cibles de performance ambitieuses mais réalisables.
ARCHITECTURE:
${JSON.stringify(architecture, null, 2)}
VOTRE EXPERTISE POUSSĂE:
- Profiling et optimisation micro-benchmarks
- Optimisations database et requĂȘtes complexes
- Cache multi-niveaux et stratégies avancées
- Optimisations réseau et CDN
- Performance budgets et monitoring
- Optimisations compilation et bundling
- Parallélisation et asynchronisme avancé
DĂFINISSEZ DES CIBLES MAXIMALES:
1. Métriques Core Web Vitals optimales
2. Temps de réponse API sub-100ms
3. Optimisations base de données avancées
4. Stratégies de cache sophistiquées
5. Optimisations réseau et CDN
6. Monitoring performance en temps réel
STRUCTURE JSON PERFORMANCE:
{
"targets": {
"web": {
"FCP": "target in ms",
"LCP": "target in ms",
"FID": "target in ms",
"CLS": "target score",
"TTI": "target in ms"
},
"api": {
"responseTime": "target in ms",
"throughput": "requests per second",
"concurrency": "concurrent users",
"errorRate": "percentage"
},
"database": {
"queryTime": "target in ms",
"connectionPool": "size",
"cacheHitRatio": "percentage"
}
},
"optimizations": {
"frontend": [],
"backend": [],
"database": [],
"infrastructure": []
},
"monitoring": {
"metrics": [],
"alerts": [],
"dashboards": []
},
"codeGeneration": {
"optimizers": [],
"profilers": [],
"benchmarks": []
}
}
`;
const response = await this.ai.chat.completions.create({
model: this.model,
messages: [
{
role: "system",
content: "Expert en Optimisation Performance avec maßtrise des techniques avancées."
},
{ role: "user", content: prompt }
],
max_tokens: 3000,
temperature: 0.1
});
return JSON.parse(response.choices[0].message.content);
}
}
/**
* đ Agent Code Reviewer - Review automatisĂ©e intelligente
*/
export class CodeReviewerAgent {
constructor(aiClient) {
this.ai = aiClient;
this.model = "deepseek-ai/DeepSeek-R1-Distill-Llama-70B";
this.tools = [
'staticAnalyzer',
'complexityAnalyzer',
'securityAnalyzer',
'performanceAnalyzer',
'bestPracticesChecker'
];
}
async performCodeReview(implementation) {
const reviewResults = {
codeQuality: await this.reviewCodeQuality(implementation),
security: await this.reviewSecurity(implementation),
performance: await this.reviewPerformance(implementation),
maintainability: await this.reviewMaintainability(implementation),
testability: await this.reviewTestability(implementation),
documentation: await this.reviewDocumentation(implementation)
};
return {
overallScore: this.calculateReviewScore(reviewResults),
findings: reviewResults,
suggestions: await this.generateSuggestions(reviewResults),
refactoringOpportunities: await this.identifyRefactoringOpportunities(reviewResults)
};
}
}
/**
* đ Agent Documentation Specialist - Documentation technique excellente
*/
export class DocumentationSpecialistAgent {
constructor(aiClient) {
this.ai = aiClient;
this.model = "deepseek-ai/DeepSeek-R1-Distill-Llama-70B";
this.tools = [
'apiDocumentator',
'architectureDocumentator',
'tutorialGenerator',
'changelogGenerator'
];
}
async generateFullDocumentation(projectData) {
const documentation = {
technical: await this.generateTechnicalDocumentation(projectData),
api: await this.generateAPIDocumentation(projectData),
user: await this.generateUserDocumentation(projectData),
deployment: await this.generateDeploymentDocumentation(projectData),
contributing: await this.generateContributingGuide(projectData)
};
return documentation;
}
}
/**
* đ§ Moteur de DĂ©cision Intelligent
*/
class DecisionEngine {
constructor(aiClient) {
this.ai = aiClient;
this.model = "deepseek-ai/DeepSeek-R1-Distill-Llama-70B";
this.decisionHistory = new Map();
}
async identifyDecisionPoints(masterPlan) {
// Identification intelligente des points de décision critiques
const prompt = `
Identifiez les points de décision critiques dans ce plan maßtre.
PLAN:
${JSON.stringify(masterPlan, null, 2)}
Identifiez:
1. Choix technologiques critiques
2. Arbitrages performance vs complexité
3. Décisions d'architecture impactantes
4. Points de validation qualité
5. Décisions de prioritisation
Format JSON attendu:
{
"decisionPoints": [
{
"id": "unique-id",
"type": "technology|architecture|performance|quality|priority",
"description": "description",
"options": [],
"criteria": [],
"impact": "low|medium|high|critical",
"timeline": "when decision needed"
}
]
}
`;
const response = await this.ai.chat.completions.create({
model: this.model,
messages: [
{ role: "system", content: "Expert en analyse de décisions techniques complexes." },
{ role: "user", content: prompt }
],
max_tokens: 2000,
temperature: 0.1
});
return JSON.parse(response.choices[0].message.content);
}
async makeIntelligentDecision(decisionPoint, context) {
// Prise de décision intelligente basée sur l'analyse multi-critÚres
const prompt = `
Prenez une décision technique optimale basée sur l'analyse multi-critÚres.
POINT DE DĂCISION:
${JSON.stringify(decisionPoint, null, 2)}
CONTEXTE:
${JSON.stringify(context, null, 2)}
Analysez selon:
1. Impact technique (complexité, maintenabilité)
2. Impact performance (vitesse, scalabilité)
3. Impact business (coût, time-to-market)
4. Impact qualité (robustesse, testabilité)
5. Impact équipe (expertise, courbe apprentissage)
Recommandation JSON:
{
"recommendation": "option choisie",
"reasoning": "justification détaillée",
"tradeoffs": "compromis identifiés",
"risks": "risques associés",
"mitigation": "stratégies de mitigation",
"confidence": "score de confiance 1-100"
}
`;
const response = await this.ai.chat.completions.create({
model: this.model,
messages: [
{ role: "system", content: "Expert en prise de décision technique avec analyse multi-critÚres." },
{ role: "user", content: prompt }
],
max_tokens: 1500,
temperature: 0.1
});
const decision = JSON.parse(response.choices[0].message.content);
// Enregistrement pour apprentissage
this.decisionHistory.set(decisionPoint.id, {
decisionPoint,
context,
decision,
timestamp: new Date().toISOString()
});
return decision;
}
}
export {
OrchestratorAgent,
BackendExpertAgent,
QAEngineerAgent,
SecurityExpertAgent,
PerformanceOptimizerAgent,
CodeReviewerAgent,
DocumentationSpecialistAgent,
DecisionEngine
};