Bibliothèque de modules intégrée
Plus de 120 modules livrés avec la plateforme — à appeler directement en tant que sub_workflow, ou à combiner dans vos propres workflows.
Braidrun est livré avec plus de 120 modules intégrés. Chaque module est un workflow encapsulé, doté d'un contrat d'entrée / sortie typé ; les autres workflows le référencent via une étape sub_workflow sans avoir à se soucier de son implémentation interne.
Les modules intégrés sont distribués avec la plateforme, chargés automatiquement dans la bibliothèque de modules au démarrage du service, et ne consomment pas votre quota de workflows. Ils ne peuvent être ni modifiés ni supprimés, et reçoivent automatiquement de nouvelles versions lors des mises à niveau de la plateforme ; pour en modifier la logique interne, utilisez « Cloner en mon workflow » afin d'obtenir une copie modifiable.
Outils généraux (environ 80)
utility-module-* préfixe, couvrant des étapes générales indépendantes du métier telles que le traitement de données, les requêtes HTTP, la recherche et l'extraction, l'IA sur texte et les vérifications de surveillance. Modules représentatifs :
utility-module-http-requestClient REST générique : GET / POST / PUT / DELETE / PATCH, prise en charge de query / body / headers et de l'authentification basic / bearer / api-key, avec délai d'expiration et nouvelle tentative à backoff exponentiel intégrés, renvoyant le code de statut et le corps de réponse.
utility-module-json-transformApplique en chaîne des transformations extract / filter / map / flatten / merge / pick / omit / sort sur des données JSON.
utility-module-csv-processorLit un CSV et effectue des opérations telles que filter / sort / select / groupby / dedupe, détecte automatiquement le séparateur et produit du CSV ou du JSON.
utility-module-web-searchRecherche Web : DuckDuckGo (sans key) ou Serper.dev, renvoyant le titre, le lien et le résumé des N premiers résultats.
utility-module-text-summarizerRésumé de textes longs par LLM, prenant en charge quatre styles (bullets / paragraph / tldr / headline) et une limite de longueur.
utility-module-sentiment-analyzerAnalyse de sentiment par LLM : produit la polarité (positive / neutral / negative / mixed), le niveau de confiance et les expressions clés à l'origine du sentiment.
Remise et notification
Sortie de notification stable en fin de workflow, le plus souvent implémentée par des étapes purement code, sans dépendre du LLM, afin d'éviter qu'une absence d'identifiant de modèle ne fasse échouer la chaîne de notification. Modules représentatifs :
utility-module-slack-webhookEnvoie un message via un Slack Incoming Webhook : texte brut ou texte enrichi Blocks, avec nom affiché et icône personnalisables.
utility-module-dingtalk-webhookRobot de groupe DingTalk : trois types de messages text / markdown / link, avec calcul automatique de la signature HMAC-SHA256 lorsqu'un secret est fourni.
utility-module-email-senderEnvoi d'e-mails SMTP : corps HTML, pièces jointes, CC / BCC, prise en charge des deux modes de sécurité STARTTLS et SMTPS.
utility-module-twilio-smsEnvoie des SMS via l'API REST Twilio, adapté aux notifications de type code de vérification et alerte.
Les autres modules de notification couvrent les robots de groupe Discord, Feishu, WeCom, Microsoft Teams, Mattermost, Rocket.Chat, les e-mails Mailgun / SendGrid, ainsi que les notifications push Bark, Pushover et ServerChan. Il existe en outre un module de remise de fichiers Telegram qui envoie directement dans une conversation désignée des rapports .md / .xlsx / .pdf / .csv accompagnés d'un texte explicatif, et prend en charge dedupe_key pour éviter les envois en double lors d'une réémission.
Analyse financière (environ 10)
module-* préfixe, une chaîne d'outils quantitatifs : cotations → indicateurs techniques → analyse de portefeuille → backtesting. Les modules de cotations ne requièrent pas d'API key (sources de données Tencent Finance / Yahoo Finance / CoinGecko), et les modules d'indicateurs et de backtesting sont implémentés uniquement avec la bibliothèque standard.
module-stock-quoteCotations en temps réel multi-marchés : actions A / actions de Hong Kong / actions américaines / cryptomonnaies, avec routage automatique de la source de données selon le préfixe du symbole, renvoyant un quotes_json unifié.
module-stock-historyRécupération de chandeliers historiques (OHLCV), renvoyant un bars_json unifié trié par ordre chronologique croissant, directement exploitable par les modules d'indicateurs et de backtesting.
module-technical-indicatorsCalcul d'indicateurs techniques : SMA / EMA / RSI / MACD / BOLL / KDJ / ATR, avec sortie du dernier signal de croisement haussier / baissier.
module-portfolio-analyzerAnalyse de performance de portefeuille : rendement cumulé / annualisé, Sharpe / Sortino / Calmar, drawdown maximal, taux de réussite, avec comparaison facultative à un indice de référence.
module-backtest-engineMoteur de backtesting jour par jour : quatre stratégies intégrées (croisement de moyennes mobiles / RSI / MACD / Bollinger) ou signaux personnalisés, prise en charge des frais, du slippage et des stops de perte / de gain.
La même série comprend aussi des modules d'actualités boursières, de sélection d'actions sous conditions, de valorisation d'options, d'indicateurs de risque et de vue d'ensemble du marché, que l'on peut enchaîner en un pipeline complet allant des cotations au rapport.
Publicité et croissance (environ 40)
Ce lot de modules provient de l'exploitation publicitaire réelle de l'équipe d'une application par abonnement, et couvre les données Apple Search Ads, Google Ads et les revenus de l'application. Voici les principales catégories par usage :
- Récupération de rapports ASA:Quatre dimensions campaigns / keywords / adgroups / searchterms, avec harmonisation automatique des différences de nommage des champs de l'API.
- Liste des entités ASA:Récupération en masse des campagnes, groupes d'annonces, mots-clés et mots-clés négatifs.
- Outil Google Ads:Exécute une requête GAQL et renvoie un résultat structuré, avec en outre un rapport de performance des campagnes et la découverte des comptes accessibles.
- Récupération des revenus de l'application:Récupère les données de revenus et d'abonnements par fenêtre temporelle.
- Analyse de fenêtre temporelle:Convertit un nombre de jours de recul et un fuseau horaire en dates de début et de fin normalisées, afin de garantir que la sémantique de « hier / la semaine dernière » soit parfaitement cohérente au sein d'un lot de rapports.
- Assemblage de rapports:Construction d'un Excel multi-feuilles et rendu de modèles de rapport Markdown.
- Traitement par lots multi-applications:Un même sous-processus est exécuté une fois pour chaque application d'un lot, puis les résultats sont fusionnés.
- Boucle de revue qualité:Un contrôle qualité normalisé : générer → noter → réessayer si non conforme → sortir une fois conforme.
Contrat module
Chaque module déclare un contrat : les entrées sont typées (string / number / boolean / enum / path / json) et peuvent être annotées avec required, une valeur par défaut, des valeurs d'énumération et une plage de valeurs numériques ; les sorties déclarent un nom, un type et une variable source ; le contrat possède une contract_version indépendante de la version d'implémentation du workflow.
module:
enabled: true
display_name: Web Search
contract_version: 1.0.0
inputs:
- {name: query, type: string, required: true}
- {name: provider, type: enum, default: duckduckgo,
allowed_values: [duckduckgo, serper]}
- {name: max_results, type: number, default: "10", min: 1, max: 100}
outputs:
- {name: results_json, type: string, source: "{{var:results_json}}"}
- {name: result_count, type: number, source: "{{var:result_count}}"}Lors de la modification d'un contrat, la plateforme compare le nouveau contrat à l'ancien : une modification non rompante (par exemple l'ajout d'une entrée facultative) passe directement ; une modification rompante (susceptible d'affecter les référenceurs existants) est par défaut refusée à l'enregistrement, requiert une confirmation explicite et donne lieu à un numéro de version de contrat suggéré. Le contrat prend aussi en charge une marque deprecated assortie de notes de migration, pour inviter les référenceurs à basculer vers un module de remplacement.
Référencer dans un workflow
Référencez par id de module via une étape sub_workflow. Les valeurs de inputs sont toutes des chaînes (un nombre s'écrit aussi "10") et prennent en charge les modèles de variables ; outputs remappe la sortie du module vers les variables du workflow parent, pour un usage direct dans les étapes suivantes.
workflow:
- step: fetch_metrics
sub_workflow:
name: utility-module-http-request
version_strategy: latest
inputs:
url: "https://api.example.com/v1/metrics"
method: GET
outputs:
status_code: fetch_status
response_body: metrics_json
- step: notify
sub_workflow:
name: utility-module-slack-webhook
inputs:
webhook_url: "{{var:slack_webhook_url}}"
text: "Metrics updated: {{var:metrics_json}}"
outputs:
send_status: notify_status
depends_on:
- fetch_metrics
retry:
max_attempts: 2
backoff: exponentialversion_strategylatest par défaut ; vous pouvez aussi épingler une version précise, de sorte qu'une mise à jour du module n'affecte pas le workflow parent déjà en production.- Une référence pointant vers un module fonctionne en mode contrat : inputs / outputs sont validés selon le contrat ; si le module est rétrogradé en workflow ordinaire, la référence bascule en mode permissif et n'est plus validée automatiquement.
- Les modificateurs d'étape tels que retry, condition, depends_on restent applicables aux étapes sub_workflow.
Module personnalisé
N'importe quel workflow peut être promu en module : dans le panneau des réglages de workflow de l'éditeur, repérez la section « Contrat de module », renseignez le nom affiché, la description, les entrées / sorties et la version du contrat, puis cliquez sur « Enregistrer le contrat de module ». Il apparaît ensuite dans la bibliothèque de modules et les autres workflows peuvent le référencer via sub_workflow.
Lors du retrait du statut de module (rétrogradation), la plateforme effectue d'abord une vérification des dépendances inverses : s'il subsiste des workflows parents référençant ce module, elle énumère les emplacements de référence précis et bloque l'opération, afin d'éviter de casser en silence les processus d'autrui.
Comme les modèles, les modules peuvent être publiés sur le marché, avec un numéro de version, et leurs dépendances sont résolues automatiquement à l'installation.