跳轉到主要內容
文件模組庫內建模組

內建模組庫

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 鑑權,內建逾時與指數退避重試,回傳狀態碼與回應主體。

典型輸入:url, method
utility-module-json-transform

對 JSON 資料鏈式執行 extract / filter / map / flatten / merge / pick / omit / sort 變換。

典型輸入:input_json / input_path, operations_json
utility-module-csv-processor

讀取 CSV 並執行 filter / sort / select / groupby / dedupe 等操作,自動偵測分隔符號,輸出 CSV 或 JSON。

典型輸入:input_path, operations_json, output_format
utility-module-web-search

Web 搜尋:DuckDuckGo(免 key)或 Serper.dev,回傳前 N 條結果的標題、連結與摘要。

典型輸入:query, provider, max_results
utility-module-text-summarizer

LLM 長文字摘要,支援 bullets / paragraph / tldr / headline 四種風格與長度上限。

典型輸入:input_text / input_path
utility-module-sentiment-analyzer

LLM 情感分析:輸出極性(positive / neutral / negative / mixed)、信賴度與驅動情感的關鍵短語。

典型輸入:text, language_hint

送達與通知

工作流末端的穩定通知出口,多為純程式碼步驟實作,不相依 LLM,避免因為模型憑證缺失導致通知鏈路失敗。代表模組:

utility-module-slack-webhook

透過 Slack Incoming Webhook 發訊息:純文字或 Blocks 富文字,可自訂顯示名與圖示。

典型輸入:webhook_url, text / blocks_json
utility-module-dingtalk-webhook

釘釘群機器人:text / markdown / link 三種訊息,傳 secret 時自動計算 HMAC-SHA256 簽章。

utility-module-email-sender

SMTP 郵件傳送:HTML 內文、附件、CC / BCC,支援 STARTTLS 與 SMTPS 兩種安全模式。

典型輸入:smtp_host, smtp_port
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,並輸出最近一次金叉 / 死叉訊號。

典型輸入:bars_json
module-portfolio-analyzer

組合績效分析:累計 / 年化報酬、Sharpe / Sortino / Calmar、最大回撤、勝率,可選基準對比。

module-backtest-engine

逐日回測引擎:均線交叉 / RSI / MACD / 布林四種內建策略或自訂訊號,支援手續費、滑價、停損停利。

典型輸入:bars_json

同一系列還有股票新聞、條件選股、選擇權定價、風險指標、市場總覽等模組,可以串成從行情到報告的完整流水線。

廣告與成長(約 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。

yaml
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 把模組的輸出對應回父工作流的變數,後續步驟直接使用。

metrics-notify.yamlyaml
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: exponential
  • version_strategy 預設 latest;也可以釘住具體版本,模組更新不會影響已上線的父工作流。
  • 指向模組的引用工作在契約模式下,inputs / outputs 按契約校驗;如果模組被降級回普通工作流,引用會退化成寬鬆模式,不再自動校驗。
  • retry、condition、depends_on 等步驟修飾符對 sub_workflow 步驟照常可用。

自定義模塊

任何工作流都可以提升為模組:在編輯器的工作流設定面板找到「模組契約」區,填寫顯示名、描述、輸入 / 輸出與契約版本,點「儲存模組契約」。之後它會出現在模組庫裡,其他工作流就能透過 sub_workflow 引用。

取消模組身分(降級)時,平台會先做反向相依檢查:如果還有父工作流在引用這個模組,會列出具體的引用位置並阻止操作,避免悄悄破壞別人的流程。

模組和範本一樣可以發布到市集,帶版本號,安裝時自動解析相依。