OrkaJS
Orka.JS

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 agent
const 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 identity
await 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 agents
const 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: string

Identifiant unique (ex: 'sales-assistant-v1')

name: string

Nom lisible (ex: 'Assistant Commercial')

role: string

Rôle de l'agent (ex: 'Automatisation CRM')

description: string

Description détaillée de ce que fait l'agent

version: string

Version sémantique (ex: '1.0.0', '2.1.3-beta')

metadata: AgentMetadata

Mé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 agent
const 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 agents
const salesAgents = registry.query({ tags: ['sales'] });
 
// Find agents with email capability
const emailAgents = registry.query({ capabilities: ['email'] });
 
// Find agents by role
const supportAgents = registry.query({ role: 'support' });
 
// Search in name and description
const automationAgents = registry.query({ search: 'automation' });
 
// Combine multiple filters
const results = registry.query({
tags: ['sales'],
capabilities: ['email', 'calendar'],
author: 'YourCompany',
limit: 10
});
 
// Get specific agent
const agent = registry.get('sales-assistant-v1');
if (agent) {
console.log(`Found: ${agent.identity.name} v${agent.identity.version}`);
}

Mettre à Jour un Agent

// Update agent identity
await registry.update('sales-assistant-v1', {
identity: {
version: '1.1.0',
description: 'Enhanced with AI-powered lead scoring'
}
});
 
// Update agent configuration
await registry.update('sales-assistant-v1', {
config: {
maxSteps: 10,
temperature: 0.7
}
});

Supprimer un Agent

// Delete an agent
const deleted = registry.delete('old-agent-v1');
if (deleted) {
console.log('Agent deleted successfully');
}
 
// Check if agent exists
if (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 JSON
const json = registry.export();
await fs.writeFile('agents-backup.json', json);
 
// Import agents from JSON
const json = await fs.readFile('agents-backup.json', 'utf-8');
const imported = registry.import(json);
console.log(`Imported ${imported} agents`);
 
// Import with overwrite
const 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 globally
await globalAgentRegistry.register(identity, config, type);
 
// Access from anywhere in your application
const 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 Agent
const 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 Agent
const 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 Generator
const 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 agents
const salesTeam = globalAgentRegistry.query({ tags: ['sales'] });
console.log(`Sales team has ${salesTeam.length} agents`);
 
// Find agents that depend on lead qualifier
const 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 Identity
interface AgentIdentity {
id: string;
name: string;
role: string;
description: string;
version: string;
createdAt: Date;
updatedAt: Date;
metadata: AgentMetadata;
}
 
// Agent Metadata
interface AgentMetadata {
tags: string[];
capabilities: string[];
dependencies?: string[];
author?: string;
license?: string;
custom?: Record<string, unknown>;
}
 
// Registered Agent
interface RegisteredAgent {
identity: AgentIdentity;
config: AgentConfig;
type: 'react' | 'plan-and-execute' | 'openai-functions' | 'structured-chat' | 'custom';
instance?: unknown;
}
 
// Query Options
interface 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