개인 재정 스킬
은행, 투자, 세금, 시장 인텔리전스, 소셜 센티먼트 및 재무 분석 워크플로우를 위한 7개의 확장 기능에 걸쳐 75개의 도구를 제공하는 포괄적인 개인 재정 관리 스킬입니다.
사용 시기
사용자가 다음을 요청할 때 이 스킬을 활성화하세요:
- 계정 통합 — 은행 계좌 연결, 잔액 확인, 거래 동기화
- 순자산 / 현금 흐름 — 총액 계산, 지출 추적, 저축률 분석
- 포트폴리오 모니터링 — 포지션, 할당, 성과, 드리프트 감지
- 거래 — 주문 접수/취소, 시장 데이터, 자산 조회(Alpaca)
- 세금 최적화 — 예상 부채, TLH 후보, 워시세일 확인, 분기별 납부
- 세금 문서 처리 — W-2, 1099-B/DIV/INT, K-1, Form 1040, Schedules A-E/SE, Form 8949, Form 6251 (AMT), 주 신고서 파싱
- 시장 인텔리전스 — 기업 뉴스, SEC 서류, 애널리스트 추천, 경제 데이터(FRED, BLS), 뉴스 센티먼트
- 소셜 센티먼트 — StockTwits 센티먼트, X/Twitter 캐시태그 분석, 트렌드 심볼, 의회 거래
- 반복 지출 추적 — 구독, 청구서, 수입원
- 이상 징후 감지 — 비정상 거래, 잔액 급락, 중복 청구
- 재무 브리핑 — 주간/월간 요약 및 실행 항목
- 예약 재무 워크플로우 — cron 기반 스캔, 알림, 보고서
아키텍처 개요
세 계층으로 구성된 7개의 확장 기능:
인텔리전스 레이어
tax-engine (23개 도구) — 파싱 (15), 부채, TLH, 워시세일, 로트,
Schedule D 계산, 주 세금, AMT
market-intel (10개 도구) — 뉴스, 기초 분석, SEC 서류, 경제 데이터
social-sentiment (6개 도구) — StockTwits, X/Twitter, 의회 거래
데이터 소스 어댑터
plaid-connect (8개) alpaca-trading (10개) ibkr-portfolio (9개)
기반 레이어
finance-core (9개 도구) — 표준 모델, 저장소, 정규화,
정책 확인, 이상 징후 감지, 브리프
데이터 흐름: 어댑터가 공급자 데이터를 가져옴 → finance-core가 정규화 및 저장 → 인텔리전스 레이어가 분석 → 정책 엔진이 실행을 게이팅함.
도구 카탈로그
finance-core — 9개 도구
| 도구 | 설명 | 위험 |
|---|---|---|
finance_upsert_snapshot | 정규화된 재정 데이터 스냅샷 저장(멱등적) | LOW |
finance_get_state | 현재 재정 상태 조회(계정, 포지션 등) | READ |
finance_get_transactions | 필터 및 페이지네이션으로 거래 쿼리 | READ |
finance_get_net_worth | 카테고리/계정별 순자산 분석 계산 | READ |
finance_detect_anomalies | 비정상 거래, 잔액 급락, 수수료 급등 스캔 | READ |
finance_cash_flow_summary | 카테고리별 수입 대 지출, 저축률 포함 | READ |
finance_subscription_tracker | 반복 청구 및 구독 패턴 식별 | READ |
finance_generate_brief | 실행 항목이 포함된 구조화된 재정 요약 생성 | READ |
finance_policy_check | 제안된 조치를 정책 규칙에 대해 검증 | READ |
전체 스키마: references/ext-finance-core.md
plaid-connect — 8개 도구
| 도구 | 설명 | 위험 |
|---|---|---|
plaid_create_link_token | 계정 연결을 위한 Plaid Link 초기화 | LOW |
plaid_exchange_token | 공개 토큰을 영구 액세스 토큰으로 교환 | MED |
plaid_get_accounts | 연결된 계정 목록 및 잔액 조회 | READ |
plaid_get_transactions | 커서 기반 동기화로 거래 가져오기 | READ |
plaid_get_investments | 보유 주식, 증권, 투자 거래 가져오기 | READ |
plaid_get_liabilities | 신용, 학자금 대출, 모기지 데이터 가져오기 | READ |
plaid_get_recurring | 반복 수입/지출 흐름 식별 | READ |
plaid_webhook_handler | 수신 Plaid 웹훅 이벤트 처리 | LOW |
전체 스키마: references/ext-plaid-connect.md
alpaca-trading — 10개 도구
| 도구 | 설명 | 위험 |
|---|---|---|
alpaca_get_account | 계정 잔액, 매수력, 상태 조회 | READ |
alpaca_list_positions | 모든 오픈 포지션 목록 | READ |
alpaca_get_position | 심볼별 단일 포지션 조회 | READ |
alpaca_list_orders | 상태/날짜 필터로 주문 목록 조회 | READ |
alpaca_create_order | 안전 검사로 매수/매도 주문 제출 | HIGH |
alpaca_cancel_order | 미체결 주문 취소 | MED |
alpaca_portfolio_history | 시간 경과에 따른 과거 자기자본 및 P/L | READ |
alpaca_get_assets | 클래스/거래소별 거래 가능 자산 검색 | READ |
alpaca_market_data | 심볼에 대한 스냅샷, 막대 또는 호가 조회 | READ |
alpaca_clock | 시장 개장 여부, 다음 개장/폐장 시간 확인 | READ |
전체 스키마: references/ext-alpaca-trading.md
ibkr-portfolio — 9개 도구
| 도구 | 설명 | 위험 |
|---|---|---|
ibkr_auth_status | 게이트웨이 인증 상태 확인 | READ |
ibkr_tickle | 게이트웨이 세션 유지(~1분 간격) | LOW |
ibkr_list_accounts | 계정 목록 조회(먼저 호출해야 함) | READ |
ibkr_get_positions | 계정별 포지션 조회(페이지네이션) | READ |
ibkr_portfolio_allocation | 자산 클래스, 섹터, 그룹별 할당 | READ |
ibkr_portfolio_performance | NAV 시계열 및 수익률 | READ |
ibkr_search_contracts | 심볼/이름/유형별 계약 검색 | READ |
ibkr_market_snapshot | 계약에 대한 실시간 시장 데이터 | READ |
ibkr_get_orders | 현재 미체결 주문 조회 | READ |
전체 스키마: references/ext-ibkr-portfolio.md
tax-engine — 23개 도구
| 도구 | 설명 | 위험 |
|---|---|---|
tax_parse_1099b | 1099-B 파싱(수익금, 원가 기준, 워시세일) | READ |
tax_parse_1099div | 1099-DIV 파싱(배당금, 자본 이득) | READ |
tax_parse_1099int | 1099-INT 파싱(이자, 채권 프리미엄) | READ |
tax_parse_w2 | W-2 파싱(임금, 원천징수, SS/Medicare) | READ |
tax_parse_k1 | Schedule K-1 파싱(파트너십 패스스루) | READ |
tax_parse_1040 | Form 1040 파싱(주요 연방 신고서) | READ |
tax_parse_schedule_a | Schedule A 파싱(항목별 공제, SALT 한도) | READ |
tax_parse_schedule_b | Schedule B 파싱(이자/배당금 지급자) | READ |
tax_parse_schedule_c | Schedule C 파싱(자영업 소득) | READ |
tax_parse_schedule_d | Schedule D 파싱(자본 이익 상계) | READ |
tax_parse_schedule_e | Schedule E 파싱(임대/로열티/파트너십) | READ |
tax_parse_schedule_se | Schedule SE 파싱(자영업 세금) | READ |
tax_parse_form_8949 | Form 8949 파싱(판매 및 처분) | READ |
tax_parse_state_return | 주 신고서 파싱(CA 540, NY IT-201 등) | READ |
tax_parse_form_6251 | Form 6251 파싱(AMT) | READ |
tax_estimate_liability | 세금 구간을 사용하여 연방/주 세금 계산 | READ |
tax_find_tlh_candidates | 손실세금환수 기회 식별 | READ |
tax_check_wash_sales | 워시세일 규칙 준수 확인(61일 기간) | READ |
tax_lot_selection | 제안된 매도에 대한 FIFO/LIFO/특정 ID 비교 | READ |
tax_quarterly_estimate | 안전항로가 포함된 분기별 예상 납부액 | READ |
tax_compute_schedule_d | 손실 이월을 포함한 Schedule D 상계 계산 | READ |
tax_compute_state_tax | CA/NY/NJ/IL/PA/MA/TX/FL 주 세금 계산 | READ |
tax_compute_amt | 대체 최저 세금 계산(Form 6251) | READ |
전체 스키마: references/ext-tax-engine.md
market-intel — 10개 도구
| 도구 | 설명 | 위험 |
|---|---|---|
intel_company_news | 기업 최신 뉴스 기사 조회(Finnhub) | READ |
intel_market_news | 카테고리별 일반 시장 뉴스 조회(Finnhub) | READ |
intel_stock_fundamentals | 보고된 재무제표 조회(Finnhub) | READ |
intel_analyst_recommendations | 애널리스트 매수/보유/매도 컨센서스 조회(Finnhub) | READ |
intel_sec_filings | 티커별 기업 SEC 서류 목록 조회(EDGAR) | READ |
intel_sec_search | SEC 서류 전체 텍스트 검색(EDGAR) | READ |
intel_fred_series | 경제 시계열 데이터 조회(GDP, CPI, 금리)(FRED) | READ |
intel_fred_search | 키워드로 FRED 시리즈 검색 | READ |
intel_bls_data | 노동/물가 통계 시계열 데이터 조회(BLS) | READ |
intel_news_sentiment | AI 점수 센티먼트가 포함된 뉴스 조회(Alpha Vantage) | READ |
전체 스키마: references/ext-market-intel.md
social-sentiment — 6개 도구
| 도구 | 설명 | 위험 |
|---|---|---|
social_stocktwits_sentiment | 주식에 대한 강세/약세 센티먼트 조회(StockTwits) | READ |
social_stocktwits_trending | 현재 트렌드 심볼 조회(StockTwits) | READ |
social_x_search | 키워드로 최근 트윗 검색(X/Twitter) | READ |
social_x_user_timeline | 사용자의 최근 트윗 조회(X/Twitter) | READ |
social_x_cashtag | 키워드 센티먼트 점수로 캐시태그 검색(X) | READ |
social_quiver_congress | 의회 주식 거래 내역 조회(Quiver) | READ |
주요 워크플로우
1. 온보딩 — 계정 연결
plaid_create_link_token(products: ["transactions", "investments", "liabilities"])
→ 사용자가 Plaid Link 완료
→ plaid_exchange_token(publicToken)
→ plaid_get_accounts → finance_upsert_snapshot(source: "plaid")
→ plaid_get_transactions → finance_upsert_snapshot
→ plaid_get_investments → finance_upsert_snapshot
→ finance_get_net_worth → 사용자에게 기준선 제시
2. 일일 스캔 — 이상 징후 감지
plaid_get_transactions(cursor) → finance_upsert_snapshot
alpaca_list_positions → finance_upsert_snapshot(source: "alpaca")
ibkr_auth_status → ibkr_get_positions → finance_upsert_snapshot(source: "ibkr")
→ finance_detect_anomalies(lookbackDays: 7)
→ 중간/높음 심각도 결과에 대한 알림
3. 손실세금환수 (TLH)
finance_get_state(include: ["positions"])
→ tax_find_tlh_candidates(positions, marginalRate)
→ tax_check_wash_sales(proposedSales, recentPurchases)
→ tax_lot_selection(symbol, qty, lots)
→ finance_policy_check(actionType: "tax_move")
→ [승인 시] alpaca_create_order(side: "sell", ...)
4. 분기별 세금 검토
tax_parse_w2 + tax_parse_1099b + tax_parse_1099div + tax_parse_1099int
→ tax_estimate_liability(filingStatus, income)
→ tax_quarterly_estimate(projectedIncome, priorYearTax, paymentsMade)
→ finance_generate_brief(period: "quarterly")
5. 포트폴리오 모니터링
alpaca_list_positions + ibkr_get_positions
→ finance_upsert_snapshot (두 소스)
→ ibkr_portfolio_allocation (드리프트 확인)
→ alpaca_portfolio_history (성과 추세)
→ finance_detect_anomalies
→ finance_generate_brief(period: "weekly")
6. 기업 조사 — 시장 인텔리전스
intel_company_news(symbol: "AAPL", limit: 10)
→ intel_analyst_recommendations(symbol: "AAPL")
→ intel_stock_fundamentals(symbol: "AAPL", freq: "quarterly")
→ intel_sec_filings(symbol: "AAPL", formType: "10-K")
→ intel_news_sentiment(tickers: "AAPL")
→ social_stocktwits_sentiment(symbol: "AAPL")
→ social_x_cashtag(symbol: "AAPL")
7. 경제 개요
intel_fred_series(seriesId: "GDP")
→ intel_fred_series(seriesId: "CPIAUCSL")
→ intel_fred_series(seriesId: "UNRATE")
→ intel_bls_data(seriesIds: ["CES0000000001"])
→ intel_fred_series(seriesId: "DFF")
8. 전체 세금 신고서 처리
tax_parse_1040(rawData) → tax_parse_schedule_a(rawData)
→ tax_parse_schedule_b(rawData) → tax_parse_schedule_c(rawData)
→ tax_parse_schedule_d(rawData) → tax_parse_schedule_e(rawData)
→ tax_parse_form_8949(rawData) → tax_parse_schedule_se(rawData)
→ tax_compute_schedule_d(gains, losses, carryovers)
→ tax_compute_state_tax(stateCode, taxableIncome, filingStatus)
→ tax_compute_amt(taxableIncome, adjustments, regularTax)
→ tax_parse_state_return(rawData)
9. 의회 거래 신호
social_quiver_congress(daysBack: 30)
→ 대량 매수 필터링
→ intel_company_news(symbol: <top_ticker>)
→ alpaca_market_data(symbols: <top_ticker>)
→ social_stocktwits_sentiment(symbol: <top_ticker>)
설정
환경 변수
| 변수 | 확장 기능 | 설명 |
|---|---|---|
PLAID_CLIENT_ID | plaid-connect | Plaid API 클라이언트 ID |
PLAID_SECRET | plaid-connect | Plaid API 시크릿 키 |
PLAID_ENV | plaid-connect | sandbox / development / production |
ALPACA_API_KEY | alpaca-trading | Alpaca API 키 |
ALPACA_API_SECRET | alpaca-trading | Alpaca API 시크릿 |
ALPACA_ENV | alpaca-trading | paper / live |
IBKR_BASE_URL | ibkr-portfolio | Client Portal Gateway URL |
FINNHUB_API_KEY | market-intel | Finnhub API 키 (finnhub.io) |
FRED_API_KEY | market-intel | FRED API 키 (fred.stlouisfed.org) |
BLS_API_KEY | market-intel | BLS 등록 키 (v2) |
ALPHA_VANTAGE_API_KEY | market-intel | Alpha Vantage API 키 |
X_API_BEARER_TOKEN | social-sentiment | X/Twitter OAuth 2.0 Bearer Token |
QUIVER_API_KEY | social-sentiment | Quiver Quantitative API 키 |
확장 기능 설정
각 확장 기능에는 openclaw.plugin.json 파일과 configSchema가 있습니다. 주요 설정:
- finance-core:
storageDir,anomalyThresholds,policyRulesPath - plaid-connect:
plaidEnv,webhookUrl,clientName,countryCodes - alpaca-trading:
env(paper/live),maxOrderQty,maxOrderNotional - ibkr-portfolio:
baseUrl,defaultAccountId - tax-engine:
defaultFilingStatus,defaultState,defaultTaxYear - market-intel:
finnhubApiKeyEnv,fredApiKeyEnv,blsApiKeyEnv,alphaVantageApiKeyEnv,secEdgarUserAgent - social-sentiment:
xApiBearerTokenEnv,quiverApiKeyEnv
Cron 예시
주간 포트폴리오 보고서
0 8 * * 1 # 매주 월요일 오전 8시
워크플로우:
alpaca_list_positions
ibkr_get_positions
→ finance_upsert_snapshot(sources: ["alpaca","ibkr"])
→ ibkr_portfolio_allocation
→ alpaca_portfolio_history
→ finance_generate_brief(period: "weekly")
일일 이상 징후 스캔
0 7 * * * # 매일 오전 7시
워크플로우: 위의 "일일 스캔" 워크플로우 참조.
분기별 세금 검토
0 9 1 1,4,7,10 * # 분기 첫째 날 오전 9시
워크플로우: 위의 "분기별 세금 검토" 워크플로우 참조.
보안 정책
기본적으로 매수/매도 주문 실행(alpaca_create_order, alpaca_cancel_order)은 승인이 필요합니다. finance_policy_check는 트랜잭션을 실행하기 전에 정책 규칙을 검증합니다.
정책은 policyRulesPath (기본값: ~/.openclaw/policies.json)에 정의됩니다:
{
"rules": [
{
"name": "max-daily-volume",
"type": "threshold",
"params": { "maxNotionalPerDay": 50000 }
},
{
"name": "wash-sale-check",
"type": "required",
"params": { "requiredTools": ["tax_check_wash_sales"] }
}
]
}