內建模組庫
120+ 個隨平台附帶的模組 —— 直接作為 sub_workflow 呼叫,或組合進你自己的 workflow。
Braidrun 附帶 120+ 內建模組。每個模組都是一個封裝好的工作流,帶類型化的輸入 / 輸出契約,其他工作流用 sub_workflow 步驟引用它,不需要關心內部實作。
內建模組隨平台一起散布,服務啟動時自動載入進模組庫,不占用你的工作流配額。它們不能編輯或刪除,平台升級時自動拿到新版本;想改內部邏輯,用「複製為我的工作流」得到一份可編輯副本。
通用工具(約 80 個)
utility-module-* 前綴,涵蓋資料處理、HTTP 請求、搜尋抓取、文字 AI、監控檢查這類與業務無關的通用環節。代表模組:
utility-module-http-request通用 REST 用戶端:GET / POST / PUT / DELETE / PATCH,支援 query / body / headers 與 basic / bearer / api-key 鑑權,內建逾時與指數退避重試,回傳狀態碼與回應主體。
utility-module-json-transform對 JSON 資料鏈式執行 extract / filter / map / flatten / merge / pick / omit / sort 變換。
utility-module-csv-processor讀取 CSV 並執行 filter / sort / select / groupby / dedupe 等操作,自動偵測分隔符號,輸出 CSV 或 JSON。
utility-module-web-searchWeb 搜尋:DuckDuckGo(免 key)或 Serper.dev,回傳前 N 條結果的標題、連結與摘要。
utility-module-text-summarizerLLM 長文字摘要,支援 bullets / paragraph / tldr / headline 四種風格與長度上限。
utility-module-sentiment-analyzerLLM 情感分析:輸出極性(positive / neutral / negative / mixed)、信賴度與驅動情感的關鍵短語。
送達與通知
工作流末端的穩定通知出口,多為純程式碼步驟實作,不相依 LLM,避免因為模型憑證缺失導致通知鏈路失敗。代表模組:
utility-module-slack-webhook透過 Slack Incoming Webhook 發訊息:純文字或 Blocks 富文字,可自訂顯示名與圖示。
utility-module-dingtalk-webhook釘釘群機器人:text / markdown / link 三種訊息,傳 secret 時自動計算 HMAC-SHA256 簽章。
utility-module-email-senderSMTP 郵件傳送:HTML 內文、附件、CC / BCC,支援 STARTTLS 與 SMTPS 兩種安全模式。
utility-module-twilio-sms透過 Twilio REST API 傳送簡訊,適合驗證碼與告警類通知。
其餘通知模組涵蓋 Discord、飛書、企業微信、Microsoft Teams、Mattermost、Rocket.Chat 群機器人,Mailgun / SendGrid 郵件,以及 Bark、Pushover、Server 醬推送。另有一個 Telegram 檔案投遞模組,把 .md / .xlsx / .pdf / .csv 報表連同說明文字直接發到指定會話,支援 dedupe_key 防止重放時重複傳送。
金融分析(約 10 個)
module-* 前綴的量化工具鏈:行情 → 技術指標 → 組合分析 → 回測。行情模組免 API key(騰訊財經 / Yahoo Finance / CoinGecko 資料源),指標與回測模組用純標準庫實作。
module-stock-quote多市場即時報價:A 股 / 港股 / 美股 / 加密貨幣,按符號前綴自動路由資料源,回傳統一的 quotes_json。
module-stock-history歷史 K 線(OHLCV)取得,回傳按時間升序的統一 bars_json,可直接餵給指標與回測模組。
module-technical-indicators技術指標計算:SMA / EMA / RSI / MACD / BOLL / KDJ / ATR,並輸出最近一次金叉 / 死叉訊號。
module-portfolio-analyzer組合績效分析:累計 / 年化報酬、Sharpe / Sortino / Calmar、最大回撤、勝率,可選基準對比。
module-backtest-engine逐日回測引擎:均線交叉 / RSI / MACD / 布林四種內建策略或自訂訊號,支援手續費、滑價、停損停利。
同一系列還有股票新聞、條件選股、選擇權定價、風險指標、市場總覽等模組,可以串成從行情到報告的完整流水線。
廣告與成長(約 40 個)
這批模組來自某訂閱制應用團隊的真實投放營運,涵蓋 Apple Search Ads、Google Ads 與 App 收入資料。按用途列出主要幾類:
- ASA 報表拉取:campaigns / keywords / adgroups / searchterms 四種維度,自動抹平介面欄位命名差異。
- ASA 實體列表:廣告系列、廣告群組、關鍵字、否定關鍵字的批次拉取。
- Google Ads 工具:執行 GAQL 查詢並結構化回傳,另有廣告系列成效報表與可存取帳號探索。
- App 收入拉取:按時間窗口取得收入與訂閱資料。
- 時間窗口解析:把回看天數加時區轉成標準化的起止日期,保證一批報表裡「昨天 / 上週」的語意完全一致。
- 報表組裝:多 Sheet Excel 建構與 Markdown 報表範本渲染。
- 多 App 批次處理:同一個子流程對一批 App 各跑一次並合併結果。
- 品質審閱迴圈:生成 → 評分 → 未達標重試 → 達標退出的標準化品質門。
模塊契約
每個模組宣告一份契約:輸入是類型化的(string / number / boolean / enum / path / json),可以標注 required、預設值、列舉取值與數值範圍;輸出宣告名稱、類型與來源變數;契約有獨立於工作流實作版本的 contract_version。
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}}"}修改契約時,平台會把新契約與舊契約做比對:非破壞性變更(比如新增可選輸入)直接通過;破壞性變更(會影響既有引用方)預設拒絕儲存,需要顯式確認,並會給出建議的新契約版本號。契約還支援 deprecated 標記加遷移說明,提示引用方換用替代模組。
在工作流裡引用
用 sub_workflow 步驟按模組 id 引用。inputs 的值都是字串(數字也寫成 "10"),支援變數範本;outputs 把模組的輸出對應回父工作流的變數,後續步驟直接使用。
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_strategy預設 latest;也可以釘住具體版本,模組更新不會影響已上線的父工作流。- 指向模組的引用工作在契約模式下,inputs / outputs 按契約校驗;如果模組被降級回普通工作流,引用會退化成寬鬆模式,不再自動校驗。
- retry、condition、depends_on 等步驟修飾符對 sub_workflow 步驟照常可用。
自定義模塊
任何工作流都可以提升為模組:在編輯器的工作流設定面板找到「模組契約」區,填寫顯示名、描述、輸入 / 輸出與契約版本,點「儲存模組契約」。之後它會出現在模組庫裡,其他工作流就能透過 sub_workflow 引用。
取消模組身分(降級)時,平台會先做反向相依檢查:如果還有父工作流在引用這個模組,會列出具體的引用位置並阻止操作,避免悄悄破壞別人的流程。
模組和範本一樣可以發布到市集,帶版本號,安裝時自動解析相依。