Plateforme d'Agents
Construisez, déployez et gérez votre workforce d'agents IA comme des microservices.Identité, registre et découverte d'agents pour dessystèmes IA à l'échelle entreprise.
La plateforme d'agents OrkaJS transforme les agents de simples outils en citoyens de première classe de votre infrastructure IA. Chaque agent a une identité unique, des métadonnées, et peut être découvert, partagé et géré dans toute votre organisation.
Identité d'Agent
Chaque agent a un id, nom, rôle, version et métadonnées riches
Registre Central
Enregistrez, découvrez et gérez les agents dans votre organisation
Découverte Avancée
Recherchez des agents par tags, capacités, rôle ou texte
Métadonnées Riches
Tags, capacités, dépendances, auteur, licence et champs personnalisés
Gestion de Versions
Versioning sémantique avec timestamps de création et mise à jour
Import/Export
Sauvegardez, migrez et partagez les configurations d'agents en JSON
# Démarrage Rapide
Enregistrez votre premier agent avec identité et métadonnées :
import { globalAgentRegistry, ReActAgent } from '@orka-js/agent';import { OpenAIAdapter } from '@orka-js/openai'; // Create an agentconst llm = new OpenAIAdapter({ apiKey: process.env.OPENAI_API_KEY });const agent = new ReActAgent({ goal: 'Qualify leads and schedule follow-ups', tools: [emailTool, calendarTool, crmTool],}, llm); // Register with identityawait globalAgentRegistry.register( { id: 'sales-assistant-v1', name: 'Sales Assistant', role: 'CRM automation', description: 'Handles lead qualification and follow-ups', version: '1.0.0', metadata: { tags: ['sales', 'crm', 'automation'], capabilities: ['email', 'calendar', 'database'], author: 'YourCompany', license: 'MIT' } }, agent.config, 'react'); // Discover agentsconst salesAgents = globalAgentRegistry.query({ tags: ['sales'] });console.log(`Found ${salesAgents.length} sales agents`);# Identité d'Agent
Chaque agent dans OrkaJS a une identité unique avec des métadonnées riches. Cela rend les agents découvrables, réutilisables et gérables à grande échelle.
Champs d'Identité
id: stringIdentifiant unique (ex: 'sales-assistant-v1')
name: stringNom lisible (ex: 'Assistant Commercial')
role: stringRôle de l'agent (ex: 'Automatisation CRM')
description: stringDescription détaillée de ce que fait l'agent
version: stringVersion sémantique (ex: '1.0.0', '2.1.3-beta')
metadata: AgentMetadataMétadonnées riches pour découverte et filtrage
# Métadonnées d'Agent
Les métadonnées fournissent des informations riches pour la découverte, catégorisation et gestion des agents.
const metadata = { // Tags for categorization tags: ['sales', 'crm', 'automation', 'lead-qualification'], // Agent capabilities capabilities: ['email', 'calendar', 'database', 'reporting'], // Dependencies on other agents or services dependencies: ['email-service', 'crm-database'], // Author information author: 'YourCompany', // License license: 'MIT', // Custom fields custom: { department: 'Sales', costCenter: 'SALES-001', supportEmail: 'support@company.com' }};# Registre d'Agents
Le registre d'agents est un dépôt central pour gérer tous vos agents. Il fournit l'enregistrement, la découverte, le versioning et la gestion du cycle de vie.
Enregistrer un Agent
import { AgentRegistry } from '@orka-js/agent'; const registry = new AgentRegistry(); // Register an agentconst registered = await registry.register( { id: 'support-bot-v1', name: 'Support Bot', role: 'Customer support', description: 'Handles tier-1 support tickets and escalations', version: '1.0.0', metadata: { tags: ['support', 'customer-service', 'tickets'], capabilities: ['chat', 'ticketing', 'knowledge-base'], author: 'Support Team', license: 'proprietary' } }, agentConfig, 'react'); console.log(`Registered agent: ${registered.identity.name}`);Rechercher des Agents
Trouvez des agents avec des options de filtrage puissantes :
// Find all sales agentsconst salesAgents = registry.query({ tags: ['sales'] }); // Find agents with email capabilityconst emailAgents = registry.query({ capabilities: ['email'] }); // Find agents by roleconst supportAgents = registry.query({ role: 'support' }); // Search in name and descriptionconst automationAgents = registry.query({ search: 'automation' }); // Combine multiple filtersconst results = registry.query({ tags: ['sales'], capabilities: ['email', 'calendar'], author: 'YourCompany', limit: 10}); // Get specific agentconst agent = registry.get('sales-assistant-v1');if (agent) { console.log(`Found: ${agent.identity.name} v${agent.identity.version}`);}Mettre à Jour un Agent
// Update agent identityawait registry.update('sales-assistant-v1', { identity: { version: '1.1.0', description: 'Enhanced with AI-powered lead scoring' }}); // Update agent configurationawait registry.update('sales-assistant-v1', { config: { maxSteps: 10, temperature: 0.7 }});Supprimer un Agent
// Delete an agentconst deleted = registry.delete('old-agent-v1');if (deleted) { console.log('Agent deleted successfully');} // Check if agent existsif (registry.has('sales-assistant-v1')) { console.log('Agent exists');}# Statistiques du Registre
Obtenez des insights sur votre écosystème d'agents :
const stats = registry.getStats(); console.log(`Total agents: ${stats.totalAgents}`);console.log('Agents by type:', stats.agentsByType);console.log('Popular tags:', stats.popularTags);console.log('Popular capabilities:', stats.popularCapabilities); // Example output:// Total agents: 15// Agents by type: { react: 8, 'plan-and-execute': 5, 'openai-functions': 2 }// Popular tags: [// { tag: 'sales', count: 6 },// { tag: 'support', count: 4 },// { tag: 'automation', count: 8 }// ]# Import & Export
Sauvegardez, migrez ou partagez les configurations d'agents :
// Export all agents as JSONconst json = registry.export();await fs.writeFile('agents-backup.json', json); // Import agents from JSONconst json = await fs.readFile('agents-backup.json', 'utf-8');const imported = registry.import(json);console.log(`Imported ${imported} agents`); // Import with overwriteconst imported = registry.import(json, true); // Overwrites existing agents# Registre Global
Utilisez le registre global pour la gestion d'agents à l'échelle de l'application :
import { globalAgentRegistry } from '@orka-js/agent'; // Register agents globallyawait globalAgentRegistry.register(identity, config, type); // Access from anywhere in your applicationconst agents = globalAgentRegistry.query({ tags: ['production'] }); // Clear all agents (useful for testing)globalAgentRegistry.clear();# Exemple Réel : Équipe Commerciale
Construisez un système complet d'automatisation commerciale avec plusieurs agents spécialisés :
import { globalAgentRegistry, ReActAgent } from '@orka-js/agent';import { OpenAIAdapter } from '@orka-js/openai'; const llm = new OpenAIAdapter({ apiKey: process.env.OPENAI_API_KEY }); // 1. Lead Qualification Agentconst leadAgent = new ReActAgent({ goal: 'Qualify incoming leads based on BANT criteria', tools: [crmTool, emailTool]}, llm); await globalAgentRegistry.register( { id: 'lead-qualifier-v1', name: 'Lead Qualifier', role: 'Lead qualification', description: 'Qualifies leads using BANT framework', version: '1.0.0', metadata: { tags: ['sales', 'lead-gen', 'qualification'], capabilities: ['crm', 'email', 'scoring'], author: 'Sales Team' } }, leadAgent.config, 'react'); // 2. Follow-up Agentconst followUpAgent = new ReActAgent({ goal: 'Schedule and manage follow-up communications', tools: [calendarTool, emailTool]}, llm); await globalAgentRegistry.register( { id: 'follow-up-v1', name: 'Follow-up Manager', role: 'Follow-up automation', description: 'Manages follow-up schedule and communications', version: '1.0.0', metadata: { tags: ['sales', 'follow-up', 'scheduling'], capabilities: ['calendar', 'email', 'reminders'], dependencies: ['lead-qualifier-v1'] } }, followUpAgent.config, 'react'); // 3. Proposal Generatorconst proposalAgent = new ReActAgent({ goal: 'Generate customized sales proposals', tools: [crmTool, documentTool]}, llm); await globalAgentRegistry.register( { id: 'proposal-gen-v1', name: 'Proposal Generator', role: 'Proposal creation', description: 'Creates customized proposals based on lead data', version: '1.0.0', metadata: { tags: ['sales', 'proposals', 'documents'], capabilities: ['document-generation', 'crm', 'templates'], dependencies: ['lead-qualifier-v1'] } }, proposalAgent.config, 'react'); // Discover all sales agentsconst salesTeam = globalAgentRegistry.query({ tags: ['sales'] });console.log(`Sales team has ${salesTeam.length} agents`); // Find agents that depend on lead qualifierconst dependentAgents = globalAgentRegistry.list().filter(agent => agent.identity.metadata.dependencies?.includes('lead-qualifier-v1'));console.log(`${dependentAgents.length} agents depend on lead qualifier`);# Bonnes Pratiques
Utilisez le Versioning Sémantique
Suivez semver (1.0.0, 1.1.0, 2.0.0) pour les versions d'agents afin de suivre les changements majeurs
IDs Descriptifs
Utilisez des IDs descriptifs comme 'assistant-commercial-v1' au lieu de 'agent-1' générique
Métadonnées Riches
Ajoutez des tags et capacités complets pour une meilleure découverte
Documentez les Dépendances
Suivez les dépendances d'agents pour comprendre votre écosystème
Sauvegardes Régulières
Exportez votre registre régulièrement pour sauvegarde et récupération
Utilisez le Registre Global
Utilisez globalAgentRegistry pour la gestion d'agents à l'échelle de l'application
# Types TypeScript
// Agent Identityinterface AgentIdentity { id: string; name: string; role: string; description: string; version: string; createdAt: Date; updatedAt: Date; metadata: AgentMetadata;} // Agent Metadatainterface AgentMetadata { tags: string[]; capabilities: string[]; dependencies?: string[]; author?: string; license?: string; custom?: Record<string, unknown>;} // Registered Agentinterface RegisteredAgent { identity: AgentIdentity; config: AgentConfig; type: 'react' | 'plan-and-execute' | 'openai-functions' | 'structured-chat' | 'custom'; instance?: unknown;} // Query Optionsinterface AgentQueryOptions { tags?: string[]; capabilities?: string[]; role?: string; author?: string; search?: string; limit?: number;}🚀 Prochaines Étapes
La plateforme d'agents est la fondation pour construire des systèmes IA à l'échelle entreprise. Bientôt :
- ▸Permissions & Contrôle d'Accès (RBAC)
- ▸Collaboration & Orchestration Multi-Agents
- ▸Déploiement d'Agents (Slack, API, Webhooks)
- ▸Marketplace & Templates d'Agents