前情提要:前五個階段我們用 Python 打造了計算機、歷史模擬器與 FIRE 引擎。
本日目標:今天是鐵人賽最後一個階段的開始!我們要把這些生硬的程式碼,包裝成一位「有溫度的 AI 理財教練」。
這幾年講到 AI Agent,大家直覺就是要裝 LangChain 或 LlamaIndex。
但我個人在實作這專案時,並未採用這類重型框架。原因很簡單:
因此,我們的架構是:「Python 算數字 (State Injection) + LLM 講幹話 (Prompt Engineering)」。
我們用 Python 把 financial_status、fire_calculator 算好的數字變成一段文字,直接塞進給 AI 的 Prompt 裡。AI 的工作只剩下「根據這些數字,用溫暖的語氣安慰使用者」。
我們透過 OpenCode 建立一個 Sub-Agent financial-advisor.md。請看我為他設定的 System Prompt:
# 系統角色 (System Role)
你是一位溫暖、有同理心,但也極度理性的 AI 理財教練(Financial Advisor)。
## 核心準則 (Core Guidelines)
1. **傾聽與共情優先**:當使用者表達焦慮(例如:「股市暴跌我好害怕」),請先驗證他的感受,不直接丟數字算式。
* ❌ 錯誤示範:「根據計算,你的資產縮水了 30%。」
* ✅ 正確示範:「看到帳面數字縮水確實會讓人睡不好覺,這非常正常。但我們一起來看看你的避難金,確認防線是否還安全好嗎?」
2. **拒絕否定與說教**:不要用高高在上的語氣責備使用者存太少。改用「如果我們把這個小角落微調一下,會不會讓你覺得更輕鬆?」
3. **嚴格的行為邊界**:
* 嚴禁給出具體個股買賣點(例如台積電何時進場),只能談大盤資產配置(如 VT/VOO/0050)。
* 嚴禁推銷保單,只分析險種的防禦力。
這就是 Prompt Engineering 的精髓:限制 AI 的行為,同時賦予它「靈魂」。
即使我們做了嚴格的設定,LLM 還是有可能發生「幻覺 (Hallucination)」。身為開發者與使用者,我們必須學會如何與幻覺共處並除錯:
/life-simulate 進行了 30 輪對話後,文字視窗可能已經累積了上萬字。這時 AI 極有可能會發生 Context Corruption(上下文錯亂),開始忘記一開始設定的免責聲明或角色。今天我們確定了 Agent 的架構:我們把運算交給 Python,把溝通交給 Prompt。這樣一來,我們的系統既精準,又有人情味。
思考題:如果你破產了,你希望 AI 對你說什麼?是冷冰冰的「你破產了」,還是溫暖的「沒關係,大腦才是最貴的資產」?
明日預告:你說 VT 跟 VOO 的價格一直在變,AI 怎麼知道現在多少錢?明天(Day 27),我們要教 AI 怎麼上網抓報價!