iT邦幫忙

2026 iThome 鐵人賽

DAY 21
0
AI Engineering

30 天打造高齡智慧健康照護 AI Companion系列 第 21

Day 21|把個人化真的用起來:讓 Agent 根據 Context 自適應互動

  • 分享至 

  • xImage
  •  

前兩天開始把 AI Companion 從「記得使用者」往「根據不同使用者調整互動方式」推進。

Day 19 建立了 Personalization Context,把 Memory、Health Memory、互動紀錄、偏好與近期狀態整理成 Agent 可以使用的 Context。

Day 20 則加入 Contextual Bandit,讓系統不再固定使用同一種互動方式,而是根據目前情境選擇比較適合的策略。

但做到這裡其實還少了最後一段:

策略被選出來之後,要怎麼真的變成一句話或一個 Action?

所以今天要把 Personalization Context、Contextual Bandit 和 Agent 串起來,完成第一版真正的「自適應互動」。

從 Context 到真正的互動

目前完整流程變成:

User Context
+
Health State
+
Interaction History
↓
Personalization Context
↓
Contextual Bandit
↓
選擇 Interaction Action
↓
Agent Executor
↓
LLM Response / Tool Call
↓
User Feedback
↓
Reward Log
↓
更新後續策略

Personalization Context 負責整理「現在這個人處於什麼狀態」,Bandit 負責決定「現在比較適合採取什麼互動策略」,最後再交給 Agent 執行。

也就是:

Bandit 決定做什麼,Agent 決定怎麼做。

例如 Bandit 選出的 Action 可能包含:

normal_chat
light_checkin
health_followup
reminder
encouragement
no_action

如果選到 light_checkin,Agent 不會直接把這個 Label 回傳給使用者,而是會將 Action 和 Context 一起交給 LLM,產生真正自然的回答。

一個實際例子

假設目前 Personalization Context 是:

最近三天睡眠品質不好
今天已經與 AI 互動 2 次
使用者不喜歡頻繁提醒
晚上比較願意聊天
目前沒有危急健康事件

Contextual Bandit 根據這些特徵,最後選擇:

Action = light_checkin

接著 Agent 判斷這次不需要查 RAG,也不需要建立提醒,只需要進行簡短關心。

最後 LLM 產生:

「你這幾天好像都睡得不太好,今晚感覺有比較舒服一點嗎?」

這時候系統就不再只是「根據 Memory 回答」,而是會根據目前情境主動調整互動方式。

如果今天已經互動很多次,Bandit 甚至可能選擇:

no_action

代表現在不主動打擾使用者。

對高齡陪伴系統來說,我覺得這反而是一個很重要的能力。

因為好的陪伴並不是一直說話,而是知道:

什麼時候應該關心,什麼時候應該保持安靜。

記錄互動結果

策略執行後,還需要知道這次互動到底有沒有產生好的結果。

因此今天也開始加入 Reward Log。

第一版先記錄:

context
selected_action
timestamp
user_response
interaction_duration
reminder_acceptance
reward

例如:

Action:light_checkin

使用者:
「有啊,今天有比較早睡。」

Reward:+1

如果 AI 主動提醒後,使用者直接拒絕:

Action:reminder

使用者:
「不用一直提醒我。」

Reward:-1

這些結果之後就可以回到 Contextual Bandit,用來更新不同 Action 的權重。

也就是:

這次選擇策略
↓
觀察使用者反應
↓
計算 Reward
↓
更新策略
↓
下一次做更適合的選擇

讓 Personalization 不只是寫在 Prompt 裡,而是真的可以隨著長期互動逐漸調整。

避免過度個人化

做到這裡也出現另一個問題:

如果系統太依賴過去資料,會不會反而很奇怪?

例如使用者三天前提過睡不好,不代表每一次聊天都要問:

「你最近睡得怎麼樣?」

如果每次都強調記憶,反而會讓陪伴變成一種壓力。

所以 Personalization Context 不應該直接控制所有回答,而只是提供 Agent 額外判斷依據。

目前會同時考慮:

資訊是否仍然相關
最近是否已經提過
今天互動次數
事件重要程度
使用者偏好
目前情境

只有真正有幫助的 Context 才應該影響這一次互動。

今天完成的核心

Day 19:

建立 Personalization Context,理解現在面對的是誰。

Day 20:

使用 Contextual Bandit,根據情境選擇互動策略。

Day 21:

把策略交給 Agent 真正執行,並利用使用者反應形成 Feedback Loop。

目前流程已經開始形成:

Context
↓
Decision
↓
Action
↓
Feedback
↓
Learning

AI Companion 不再只是固定規則的聊天機器人,而是開始能根據不同使用者、不同時間與不同互動結果,逐漸調整自己的互動方式。

今天最重要的一句話就是:

Bandit 負責選擇互動策略,Agent 負責把策略真正執行出來,而 Feedback 則讓下一次互動有機會變得更適合使用者。

下一步就可以開始把前面完成的 Health Memory、Health Trend、衛教 RAG、Agent、Reminder、Personalization 與 Contextual Bandit 整合到完整的高齡智慧健康照護情境中。


上一篇
Day 20|讓 AI 學會選擇互動策略:Contextual Bandit
系列文
30 天打造高齡智慧健康照護 AI Companion21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言