내장 모듈 라이브러리
플랫폼에 기본 포함된 120개 이상의 모듈 — sub_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-transformJSON 데이터에 대해 extract / filter / map / flatten / merge / pick / omit / sort 변환을 체인으로 실행합니다.
utility-module-csv-processorCSV를 읽어 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-webhookSlack 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-smsTwilio REST API로 SMS를 전송하며, 인증 코드와 알림류 통지에 적합합니다.
나머지 알림 모듈은 Discord, Feishu, WeCom, Microsoft Teams, Mattermost, Rocket.Chat 그룹 봇, Mailgun / SendGrid 이메일, Bark, Pushover, ServerChan 푸시를 지원합니다. 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로 참조할 수 있습니다.
모듈 신분을 취소(강등)할 때 플랫폼은 먼저 역방향 의존성 검사를 합니다: 아직 이 모듈을 참조하는 상위 워크플로가 있으면 구체적인 참조 위치를 나열하고 작업을 차단하여, 다른 사람의 프로세스를 몰래 망가뜨리는 것을 방지합니다.
모듈도 템플릿과 마찬가지로 마켓에 발행할 수 있으며, 버전 번호를 가지고 설치 시 의존성을 자동으로 해석합니다.