Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

đŸ€– Agent CLI & Server

Un CLI et serveur JavaScript/TypeScript pour tester et interagir avec des agents IA.

📩 Installation

# Installer les dépendances
npm install

# Copier et configurer les variables d'environnement
cp .env.example .env

🚀 DĂ©marrage rapide

1. Démarrer le serveur

# Démarrer le serveur en mode production
npm run server

# Ou en mode développement avec rechargement automatique
npm run dev

Le serveur sera accessible sur http://localhost:8080

2. Utiliser le CLI

# Vérifier la connectivité et lister les agents
npm run cli check

# Démarrer une session de chat
npm run cli chat

# Utiliser un agent spécifique
npm run cli chat --agent sallyO

# Mode invoke au lieu de streaming
npm run cli chat --invoke

# Mode debug
npm run cli chat --debug

🔧 Configuration

Variables d'environnement

Créez un fichier .env avec les variables suivantes :

# Configuration API
API_URL=http://localhost:8080
PORT=8080

# Authentification (optionnelle)
BEARER_TOKEN=votre-token-ici
REQUIRE_AUTH=false

# Clés API pour les agents réels
OPENAI_API_KEY=sk-...
TAVILY_API_KEY=tvly-...

Configuration des agents

Modifiez le fichier agents_config.json pour configurer vos agents :

{
  "api_url": "http://localhost:8080",
  "agents": [
    {
      "id": "sallyO",
      "name": "SallyO",
      "description": "Un agent IA spécialisé dans les opportunités CRM"
    }
  ]
}

📡 Endpoints API

Vérification de santé

GET /health

Liste des agents

GET /agents
Authorization: Bearer your-token

Invocation directe

POST /:agentId/invoke
Authorization: Bearer your-token
Content-Type: application/json

{
  "message": "Votre message",
  "thread_id": "optional-thread-id"
}

Streaming SSE

POST /:agentId/stream
Authorization: Bearer your-token
Content-Type: application/json

{
  "message": "Votre message",
  "thread_id": "optional-thread-id"
}

ArrĂȘter la gĂ©nĂ©ration

POST /:agentId/stop
Authorization: Bearer your-token
Content-Type: application/json

{
  "thread_id": "thread-id-to-stop"
}

Gestion des conversations

GET /conversations
GET /conversations/:threadId
Authorization: Bearer your-token

💬 Utilisation du CLI

Commandes spéciales pendant le chat

  • !clear - RĂ©initialiser la conversation
  • !debug - Basculer le mode debug
  • exit - Quitter le chat

Options de ligne de commande

# Commande check
npm run cli check [options]
  --api-url <url>        URL de l'API
  --bearer-token <token> Token d'authentification
  -d, --debug           Mode debug

# Commande chat
npm run cli chat [options]
  -a, --agent <id>       ID de l'agent
  -i, --invoke          Mode invoke (pas de streaming)
  --api-url <url>        URL de l'API
  --bearer-token <token> Token d'authentification
  -d, --debug           Mode debug
  --no-context          Désactiver le contexte

🔄 Streaming et Ă©vĂ©nements SSE

Le serveur supporte les Server-Sent Events avec les types d'événements suivants :

  • stream_start - DĂ©but du streaming
  • stream_token - Token de rĂ©ponse
  • stream_end - Fin du streaming
  • tool_execution_start - DĂ©but d'utilisation d'outil
  • tool_execution_complete - Fin d'utilisation d'outil
  • tool_execution_error - Erreur d'outil
  • error - Erreur gĂ©nĂ©rale

đŸ› ïž DĂ©veloppement

Structure du projet

agent-example/
├── Agents/Agent/Agent.mts  # Agent LangChain
├── CLI/cli.mts            # CLI pour tester les agents
├── serveur/server.mts     # Serveur Express.js
├── CLI/agents_config.json # Configuration des agents
├── package.json           # DĂ©pendances et scripts
└── README.md              # Documentation

Scripts disponibles

npm run cli      # Lancer le CLI
npm run server   # Démarrer le serveur
npm run dev      # Mode développement avec rechargement

Intégration avec de vrais agents

Pour remplacer le MockAgent par de vrais agents :

  1. Modifiez la classe MockAgent dans server.mts
  2. Intégrez avec LangChain, OpenAI, ou votre framework préféré
  3. Adaptez les méthodes generateResponse et invokeResponse

🔐 SĂ©curitĂ©

  • L'authentification par token Bearer est optionnelle (configurable)
  • Les tokens sont stockĂ©s en mĂ©moire cĂŽtĂ© serveur
  • Les conversations sont en mĂ©moire (remplacer par une DB en production)
  • CORS configurĂ© pour accepter toutes les origines (Ă  restreindre en production)

📝 Exemples d'utilisation

Test rapide

# Terminal 1 - Démarrer le serveur
npm run server

# Terminal 2 - Tester la connectivité
npm run cli check

# Terminal 3 - Commencer Ă  chatter
npm run cli chat

Avec authentification

# Avec token dans .env
BEARER_TOKEN=mon-super-token npm run server

# Utiliser le mĂȘme token dans le CLI
npm run cli chat --bearer-token mon-super-token

Mode debug

# Voir tous les dĂ©tails des requĂȘtes
npm run cli chat --debug

🚹 Limitations actuelles

  • Agents simulĂ©s (MockAgent)
  • Stockage en mĂ©moire uniquement
  • Pas de persistance des conversations
  • Authentification basique
  • Pas de rate limiting

🎯 Prochaines Ă©tapes

  • IntĂ©gration avec de vrais agents LangChain
  • Base de donnĂ©es pour la persistance
  • Authentification robuste
  • Rate limiting
  • Interface web
  • Docker
  • Tests automatisĂ©s

📄 Licence

MIT


🚀 PrĂȘt Ă  discuter avec vos agents IA !

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages