Développeurs
Référence technique pour les développeurs qui intègrent, étendent ou automatisent Pulse depuis l'extérieur. Chaque capacité est exposée via HTTP, WebSocket et protocoles standards d'appel d'outils.
À qui s'adresse cette section
Intégrateurs de solutions
Vous automatisez Pulse depuis votre propre logiciel, scripts, backends, pipelines CI, plateformes internes.
Auteurs d'outils externes
Vous exposez vos services afin que les agents Pulse puissent les appeler via le protocole standard d'invocation d'outils.
Pratique du pipeline-as-code
Vous définissez agents et pipelines en YAML, les versionnez dans Git et les déployez via l'API.
Auteurs de modèles
Vous packagez des workflows réutilisables sous forme d'artéfacts JSON portables pour d'autres utilisateurs Pulse.
Auteurs de bibliothèques client
Vous construisez un SDK Pulse dans votre langage favori au-dessus de contrats HTTP et WebSocket stables.
Ce que vous pouvez construire
- Pilotez Pulse de manière programmatique, déployez des agents, déclenchez des pipelines, récupérez des événements et approuvez des actions depuis votre code.
- Définissez les pipelines en YAML, versionnez-les dans Git et appliquez-les via l'endpoint d'import, intégré à votre CI.
- Construisez des outils externes qui tournent partout, dans n'importe quel langage, appelables par les agents Pulse via le protocole standard d'invocation d'outils.
- Créez des modèles : packagez un workflow réutilisable en JSON et distribuez-le à vos clients ou à la communauté.
- Ingérez des événements externes via webhooks HTTP avec vérification HMAC, polling de boîtes mail, watchers RSS ou déclencheurs systèmes de fichiers.
- Souscrivez à un flux WebSocket temps réel d'événements, deltas de conversation et changements de statut d'agents.
Démarrage rapide
Appeler l'API en 30 secondes
Authentifiez-vous, puis appelez n'importe quelle ressource avec un jeton porteur.
1curl -X POST http://localhost:9090/api/auth/login \
2 -H "Content-Type: application/json" \
3 -d '{"username":"alice","password":"your-password"}' \
4 | jq -r '.accessToken' > /tmp/token
5
6curl http://localhost:9090/api/pulse/agents \
7 -H "Authorization: Bearer $(cat /tmp/token)" \
8 | jq '.agents[].name'Déployer un agent depuis un YAML
Décrivez votre agent de manière déclarative et envoyez-le sur l'endpoint des agents.
1# agent.yaml
2name: url-shortener-watcher
3engine: llm
4inputTopic: urls.inbound
5outputTopic: urls.shortened
6systemPrompt: |
7 Extract every URL from the event payload. For each one,
8 call the short_url tool. Return a JSON array of
9 { original, shortened } pairs.
10externalTools: [url-shortener.shorten]1curl -X POST http://localhost:9090/api/pulse/agents \
2 -H "Authorization: Bearer $(cat /tmp/token)" \
3 -H "Content-Type: application/json" \
4 --data-binary @<(yq -o=json agent.yaml)Exposer un outil externe
Implémentez un petit serveur qui parle le protocole standard d'invocation d'outils, Pulse l'enregistre et n'importe quel agent peut l'utiliser.
1# my_tool.py, minimal external tool server
2from tool_server import Server
3
4srv = Server("my-custom-tool")
5
6@srv.tool()
7async def greet(name: str) -> str:
8 """Greet someone by name."""
9 return f"Hello, {name}!"
10
11srv.run_stdio()Surface API en un coup d'œil
Pulse expose une surface REST unifiée. L'URL de base par défaut est http://localhost:9090, placez du TLS en frontal pour un accès distant.
| Ressource | Préfixe REST | Rôle |
|---|---|---|
| Auth | /api/auth/* | Connexion, rafraîchissement, 2FA, bascule d'organisation |
| Agents | /api/pulse/agents/* | Déploiement, démarrage, arrêt et liste des agents |
| Pipelines | /api/pulse/pipelines/* | Workflows nommés, import / export YAML |
| Modèles | /api/pulse/templates/* | Catalogue de pipelines prêts à l'emploi |
| Chat | /api/pulse/chat/* | Interface conversationnelle avec réponses en streaming |
| Événements | /api/pulse/events/* | Requêtes et flux SSE |
| Topics | /api/pulse/topics | Métadonnées des canaux d'événements |
| Approbations | /api/pulse/approvals/* | Points de décision humain dans la boucle |
| Sauvegardes | /api/pulse/backups/* | Snapshots et restauration |
| Licence | /api/pulse/license/* | Statut et activation de licence |
| Consensus | /api/pulse/pvsc/* | Comité de validateurs, file de messages morts, ledger |
| Paramètres | /api/pulse/settings/* | Configuration administrative |
| Statistiques | /api/pulse/stats | Métriques du tableau de bord |
| Public | /health, /metrics | Sonde de vie et métriques Prometheus |
Cinq SDKs, une API
Mêmes capacités en Python, JavaScript/TypeScript, Go, Rust et Java. Déclarez le flux une fois avec le DSL streams — Pulse le compile et l'exécute côté serveur. Le client reste léger ; votre laptop ne devient jamais le goulot.
Même recette dans chaque onglet : lire un topic Kafka, compter les commandes par client sur une fenêtre d'1 minute, pousser vers une tuile live Power BI.
1from pulse_client import PulseClient, StreamBuilder, windows, aggs
2
3flow = (
4 StreamBuilder("orders-per-customer")
5 .from_topic("orders", source_engine="kafka")
6 .key_by("customer_id")
7 .window(windows.tumbling("1m"), aggregations={"orders": aggs.count()})
8 .to_connector("powerbi", {"powerbi.push.url": "<your-push-url>"})
9)
10
11with PulseClient(base_url="https://pulse.example.com", token="…") as client:
12 client.streams.deploy(flow)Garanties de stabilité
API REST
Stable selon semver. Les changements cassants exigent un saut de version majeure et un préavis de dépréciation de six mois sur les endpoints concernés.
Événements WebSocket
De nouveaux types d'événements peuvent apparaître à tout moment ; les types existants restent stables. Les clients doivent ignorer les types inconnus.
Protocole d'invocation d'outils
Pulse suit le standard ouvert amont. Les ajouts non cassants arrivent rapidement ; les ruptures suivent le rythme amont.
Schémas de modèles et d'agents
Les ajouts sont autorisés à tout moment ; les retraits exigent un saut de version majeure.
Guides approfondis
Création de modèles
Empaqueter des pipelines en JSON : assistants de configuration, substitution de variables, prérequis, modèles fantômes et publication.
Patrons d'intégration
Dix scénarios de bout en bout : webhooks, GitOps, ETL, outils externes, provisioning, supervision, rejeu, tests A/B, multi-tenant.
Évaluez la version Entreprise pendant 30 jours
Débloquez le cluster distant, la HA et le SSO. Licence envoyée par email — à coller dans Pulse → Paramètres → Licence. Pas de carte bancaire.
Besoin d'un accès plus poussé ?
Les contributions au code source, les serveurs de licences en environnement isolé et les intégrations en marque blanche sont traités directement par notre équipe.