iT邦幫忙

2026 iThome 鐵人賽

DAY 9
0
AI Engineering

從零打造情感感知 Agentic System:FSM 狀態機與 RAG 的整合實作系列 第 9 篇

Day 09:【好感度系統1】暴走列車如何啟動?有限狀態機 ( FSM 理論篇)

  • 分享至 

  • xImage
  •  

介紹

到 Day 09!在開始學習理論前先來閒聊一下,甚麼是傲嬌,用一部動漫來解釋的話,這裡舉例的是《五等分的花嫁》,如果你有看過,那你一定會被二乃的心境變化深深吸引:從開局防備心超重「毒舌防備狀態」,到中期的「傲嬌嘴硬」,再到最後直接發動「暴走列車」的直球告白!沒看過的圖我放下面,可以去看,我會選擇先做傲嬌性格,某部分因為這個關係。

如果我們的 AI Agent 只用同一套 Prompt,就永遠只會停留在開局的毒舌模式,這完全無法呈現角色的成長啊!
動漫圖片
動漫名:《五等分的花嫁》

今天我們的輕量目標:

  1. 搞懂什麼是有限狀態機 (FSM)
  2. 設計角色的三階段情感轉移圖 (State Diagram)
  3. 規劃好感度 (Affection) 的加減分轉移條件

第一關:什麼是有限狀態機 (FSM)?

簡單來說,FSM 就像是遊戲裡的「轉職系統」或「Boss 階段切換」:

  • 有限狀態 (Finite States):角色在任意時間點,都只能處於一種狀態(例如:不能同時處於「極度討厭你」又「愛你愛得要死」)。
  • 狀態轉移 (State Transition):當滿足特定條件(例如:好感度累積突破 70 分)時,角色就會從「狀態 A」切換到「狀態 B」。

在 Agent 架構中導入 FSM,就能讓 AI 根據歷史互動累積的數值,動態載入不同的 system_instruction,實現真正的「性格成長」!

第二關:甚麼是角色的三階段狀態圖 (State Diagram)

為了理解甚麼是狀態,這裡我們參考二乃來當做範例講說,我們把二乃與主角的關係,可拆解為三個核心狀態:

  • Stage 1: 【防備警戒】HOSTILE (好感度:0 - 30)
    • 心態:對陌生人充滿警惕,護短且毒舌。
    • 代表台詞:「請你立刻消失,不要再出現在我們面前」
  • Stage 2: 【傲嬌嘴硬】TSUNDERE (好感度:31 - 70)
    • 心態:開始認可你,雖然嘴上依然叫你笨蛋,但會默默關心你或拿烤薄餅給你。
    • 代表台詞:「哼!這、這只是我剛好鬆餅做多了而已,才沒有特地留給你的意思呢!」
  • Stage 3: 【暴走列車】IN_LOVE (好感度:71 - 100)
    • 心態:完全淪陷!不搞曖昧、直接發動直球攻勢。
    • 代表台詞:「我說過,像你這樣的男生,地球上至少有個女生喜歡你,對吧?那人就是我了,真遺憾啊」

第三關:情感轉移條件與數值規劃

了解了甚麼是狀態,我們還需要定義「什麼情況會讓狀態改變」。我設計一個數值 Affection(0 - 100 分):
https://ithelp.ithome.com.tw/upload/images/20260923/20183877455iT3Wkin.png
當 Affection 跨越門檻(例如從 30 變成 31)時,系統就會觸發 State Transition,下一句對話開始,莉莉就會載入全新的 Prompt!


上一篇
Day 08:【意圖路由】AI 也懂看眼色?打造 Intent Router 讓 Agent 聰明分流
下一篇
Day 10:【好感度系統2】掛上好感度儀表板!用 Python 實作 FSM 狀態機與動態 Prompt(實作篇)
系列文
從零打造情感感知 Agentic System:FSM 狀態機與 RAG 的整合實作 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言