返回專案列表
自主財務

Family CFO

一個個人財務智能agent,能連接Plaid支援的任意銀行,幫交易分類、預測現金流、偵測異常和訂閱、追蹤完整的信封預算,並透過Telegram主動推播洞察——不用等人來問。

分享這篇案例 →
6
專業Agent
ReAct + tool registry
編排方式
A2A ecosystem member
生態協議
難點所在

難點在於:把雜亂的真實交易資料變成一個家庭每天都能信任的數字,而且沒有人在旁邊替它把關。

架構一覽
已上線
截至 2026-07-14
ReAct orchestrator (agent-as-tool)Config-driven LLM tiersExternalized prompt storeReplayable reasoning tracesA2A protocol peerNAS-first deploy smoke and dashboard observabilityRepository-backed SQLite services with legacy compatibility facade
完整的內部 Agent 陣容
orchestratorclassifierbudget_advisorinsight_reporterplaid_opsanomaly_sentinelinvestment_advisor遠端 A2A 專家
Agent

ReAct orchestrator coordinating specialist agents through agent-as-tool calls

Family CFO 在生態系統中
技術棧

Python, SQLite schema v8, Plaid, Telegram Bot, APScheduler, Docker, Gitea Actions on NAS, M14 LLM gateway, A2A TraderJoe integration

01真正的規劃能力,不只是一張更快的表格

五個專業agent分工合作——分類器、預算顧問、洞察報告員、Plaid同步agent、異常哨兵——每一個背後都有自己的DeepSeek工具schema函式:按類別和月份查支出、預算比對、淨資產、現金流預測、異常偵測、YNAB風格的信封預算等等。一個典型對話是這樣的:使用者問這個月為什麼花得多;agent呼叫get_spending發現日用品支出翻倍;再呼叫get_anomaly_alerts發現某個商家的到訪次數從3次跳到8次;然後給出具體原因,並主動提議設一個預算提醒——這是跨兩次工具呼叫的推理,不是簡單的關鍵字比對。除了對話之外,還有四個排程任務在不用人問的情況下自主運作:一個每日預算檢查,只在真的超支時才發訊息(平時保持安靜,不製造無謂的噪音);一個每日洞察推播,把健康分數和異常偵測合併成一條Telegram訊息;一個週一早上的週報,由agent自己寫自己這一週的總結;還有一個每天兩次的銀行同步。對話只是這套系統的一個入口,主動預警是另一個。長遠方向——目前還沒做——是把Family CFO和Trader Joe接通,讓理財和投資由同一套系統統一規劃,而不是兩個互不相通的app:一個家庭、一張全景圖,朝著跨世代累積財富的同一個目標努力。它透過Video Factory共享的LLM閘道器接入,帶著自己的呼叫方識別碼,所以用量和閘道器上其他任何agent分開統計。

02個人財務裡最難的問題

交易分類是一個三層級聯。第一層用Plaid自帶的結構化類別(覆蓋約70%)。第二層對已知商家套用關鍵字規則(再覆蓋約20%)。第三層對剩下約10%的模糊情況交給LLM兜底,回傳類別、信心分數和理由。當使用者手動糾正一次錯誤分類時,agent可以當場新增一條關鍵字規則——在生產環境裡學習,不需要重新訓練模型。這正是修復一個真實bug的方式:一個粗糙的對應曾經把房貸和車貸都埋在籠統的「轉帳」類別下,悄悄扭曲了每一次預算計算,而且沒有任何可見的錯誤訊息。

03不用機器學習的統計異常偵測

三條規則,全部用純Python和SQL實作——不用pandas,不用scikit-learn。單筆交易超過該類別預算50%,標記為高severity。某類別月度總額超出其歷史均值兩個標準差(由家庭自己的真實歷史資料算出),標記為中severity。同一商家三個月內扣款兩次以上,標記為低severity,視為疑似訂閱。不用訓練模型,不用擔心概念漂移,而且它能準確區分「真的異常」和「只是稍微超支」。

04一條SQL查詢搞定訂閱偵測

按描述給未刪除的交易分組,保留出現兩次以上且總額為正的分組,按平均金額排序。就這一條查詢,把帳戶裡所有的經常性扣款都找出來——Netflix、Spotify、健身房會員、保險——不需要任何模式比對或外部服務。這個agent不需要知道「訂閱」長什麼樣,資料本身的規律會自己浮現出來。

05結構上保證冪等

每一筆Plaid交易在落庫前都會被規整成一條不可變記錄。去重規則比對日期、描述、金額——同時檢查整數分和近似浮點兩種表示法,以捕捉四捨五入誤差——而軟刪除保護確保使用者刪掉的交易永遠不會被悄悄重新匯入。這個同步agent連續跑十次和只跑一次的結果完全一樣,所以同步中途崩潰從來不是什麼危險的事。

技術棧

Python、Plaid、透過共享M14閘道器呼叫的LLM、APScheduler、Docker、SQLite。

— 履歷與聯絡方式

聊。