Un CLI et serveur JavaScript/TypeScript pour tester et interagir avec des agents IA.
# Installer les dépendances
npm install
# Copier et configurer les variables d'environnement
cp .env.example .env# Démarrer le serveur en mode production
npm run server
# Ou en mode développement avec rechargement automatique
npm run devLe serveur sera accessible sur http://localhost:8080
# 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 --debugCré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-...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"
}
]
}GET /healthGET /agents
Authorization: Bearer your-tokenPOST /:agentId/invoke
Authorization: Bearer your-token
Content-Type: application/json
{
"message": "Votre message",
"thread_id": "optional-thread-id"
}POST /:agentId/stream
Authorization: Bearer your-token
Content-Type: application/json
{
"message": "Votre message",
"thread_id": "optional-thread-id"
}POST /:agentId/stop
Authorization: Bearer your-token
Content-Type: application/json
{
"thread_id": "thread-id-to-stop"
}GET /conversations
GET /conversations/:threadId
Authorization: Bearer your-token!clear- Réinitialiser la conversation!debug- Basculer le mode debugexit- Quitter le chat
# 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 contexteLe serveur supporte les Server-Sent Events avec les types d'événements suivants :
stream_start- Début du streamingstream_token- Token de réponsestream_end- Fin du streamingtool_execution_start- Début d'utilisation d'outiltool_execution_complete- Fin d'utilisation d'outiltool_execution_error- Erreur d'outilerror- Erreur générale
myges-agent/
├── agent.mts # Agent LangChain original
├── cli.mts # CLI pour tester les agents
├── server.mts # Serveur Express.js
├── agents_config.json # Configuration des agents
├── package.json # Dépendances et scripts
└── README.md # Documentation
npm run cli # Lancer le CLI
npm run server # Démarrer le serveur
npm run dev # Mode développement avec rechargementPour remplacer le MockAgent par de vrais agents :
- Modifiez la classe
MockAgentdansserver.mts - Intégrez avec LangChain, OpenAI, ou votre framework préféré
- Adaptez les méthodes
generateResponseetinvokeResponse
- 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)
# 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 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# Voir tous les détails des requêtes
npm run cli chat --debug- Agents simulés (MockAgent)
- Stockage en mémoire uniquement
- Pas de persistance des conversations
- Authentification basique
- Pas de rate limiting
- Intégration avec de vrais agents LangChain
- Base de données pour la persistance
- Authentification robuste
- Rate limiting
- Interface web
- Docker
- Tests automatisés
MIT
🚀 Prêt à discuter avec vos agents IA !