Time Compass 提示詞設計完整指南¶
簡介¶
Time Compass 的提示詞系統以心理學驅動的漸進式決策為核心,將使用者的模糊想法逐步轉化為可執行的行動方案。整個系統從判斷意圖的路由開始,經過情感承接、方案規劃、行動拆解、質詢確認,最後到總結回顧,形成一個完整的時間管理閉環。
我們有兩個架構,分別是dspy (舊版本) 以及 mcp (新版本),兩者有相似的功能,新版本新增可以將方案可視化供使用者選擇。
核心設計理念: - 非評判性:絕不責備使用者的拖延、混亂或情緒 - 認知友善:減少使用者的理解負擔(CLT 認知負荷理論) - 動機平衡:在「適度挑戰」與「可達成」間找到平衡點(葉杜法則) - 循序漸進:從模糊目標 → 可行方案 → 具體行動 → 實踐驗收
核心理念與心理學基礎¶
1. 認知負荷理論(Cognitive Load Theory, CLT)¶
應用原則: - 聚焦與分段:不一次呈現超過 3–5 個選項或要點 - 漸進揭示:先給方向,再補細節 - 層級清晰:用標題與列點減少理解成本
在各模組中的實踐: - Router:只輸出 1–3 句承接文案,不超過 15 個單詞 - DraftPlan:候選時段限制在 2–5 個 - AskQuestion:題數 3–5,每題 3–5 選項
2. 認知行為治療(Cognitive Behavioral Therapy, CBT)¶
核心技巧: - 去災難化:「這分心情很正常,你不是唯一的」 - 共感不同情:認可情緒,但不表示憐憫 - 行為啟動:提供 1–2 個簡單的立刻可做活動(≤2 分鐘)
在 EmotionSupport 中的實踐: - 點出具體情緒(沮喪、焦慮、疲勞)而非籠統接受 - 將情緒正常化:「這是很多人都有的狀態」 - 提供微行動建議:喝杯熱水、深呼吸等可立即執行的小步驟
3. 葉杜心理定律(Yerkes-Dodson Law)¶
原理: 適度的壓力與挑戰能提升動機,但過多則導致焦慮,過少則無法激發。
動機-壓力曲線應用: - 重度情緒(焦慮、低落)→ 降低難度,給極小步驟 - 輕度情緒(開心、中立)→ 提供適度挑戰 - 語氣調整:避免指令句(「你應該...」→ 「我們一起...」)
具體措施: - 任務時限 ≤60 分鐘(「可達成感」) - 層級化選項(「無壓力選項」 vs 「挑戰選項」) - 緩衝時間設定(+10–20%)
架構¶
我們根據功能,將prompt 分成三個部分,分別是:情緒承接(emotion support)、計劃安排(schedule)、過去總結(summary),此外還有負責分配路徑的router 。情緒承接根據使用者情緒狀態決定要呼叫幾次以及具體位置,同時需要計劃安排以及過去總結時,先執行過去總結再執行計畫安排。
router¶
兩組架構的router 從本質上就是完全不同的: - DSPy: router.md - DSPy 架構下的路由是將 ‘router.md’ 作為prompt 交給ai 讓它判斷使用者的需求與情緒,將會需要的功能與功能的順序製成pipeline_description 交給程式用if…else 判斷需要呼叫其他哪些prompt 。 - 情緒分流策略: - 重度情緒(低落/憤怒/焦慮/疲勞) - 第一輪:["EmotionSupport", <task>, "EmotionSupport"](前後夾擊) - 後續:[<task>, "EmotionSupport"](尾部收尾)
- **中度情緒**(開心/輕度負面)
- 第一輪:`[<task>, "EmotionSupport"]`(後置收尾)
- 後續:可省略或選擇性收尾
- **無明顯情緒**
- 直接路由至任務模組
- MCP:
- MCP 架構內沒有一個專門的 router.md ,我們將各個功能的觸發條件用docstring 的方式呈現給AI ,讓它自己判斷需要使用什麼功能。
情緒承接¶
兩組下架構的情緒承接是幾乎一樣的(分別domain/ mcp資料夾中的emotion_support.md),AI 扮演INFJ 的溫柔學長姐,承接使用者的負面情緒,並作為承接其他功能的橋樑。 我們將這個功能分成四段:
- A1/A2情緒處理:分為承接與收攏
- 負責正常化使用者的情緒
- B溫柔過度:
- 如有有承接功能則引出接下來的功能
- 若沒有承接功能,則告訴使用者情緒是正常的
- C微行動建議:
- 提供簡單的、快速的放鬆小活動
- D輕鬆收尾
規劃安排¶
兩個架構中的規劃安排的流程是一樣的,但是MCP 架構中只有一個完整的’ tem.md ’; DSPy 架構中則拆分成 ‘ draft_plane.md ’ 、‘draft_action.md’ 、‘(scheduling)router.md’以及’ask_question.md’。
-
MCP 架構 — tem.md : MCP 架構中的’ tem.md ’將整個schaduling 功能融合近一個prompt內:
-
將計劃分為三級:
-
L1 : 模糊且空泛
- 任務:確認具體目標與截止時間
- 輸出:
- 對齊目標 — 透過復述和使用者確認目標和現有資訊
- AI 能為你做什麼 — (可能包含)介紹能提供的協助/淺再困難與風險/可用的網路資源
- 初步規劃 — 提供計畫的大方向
- 缺失的資訊或潛在風險
- 資訊追問 — 用 1–5 題選項題確認規劃方向與必要資訊
- 說明回復完後如何細化
- 收尾 — 低調鼓勵,口吻輕鬆
-
L2 : 有具體目標 — 可以進行規劃
- 任務:進行任務差分與資訊追問
- 輸出:
- 確認任務邊界 — 複述確切目標、已知條件、完成期限
- 粗流程 — 計畫的大致流程和整體節奏
- 行動任務清單 — 具體的規劃細節
- 向使用者提議進入排程,並主動詢問計畫是否足夠詳細(若判斷仍不足排成則會跳過)
- 最小追問 — 用 1–5 題選項題確認必要資訊
-
L3 : 認為拆分完成
- 任務:可以生成計畫方案
- 輸出:
- 提供備選方案 — 含「詳細任務、產出物、完成定義、風險」
- 啟動視覺化頁面
- 詢問 — 詢問使用者要選擇哪個方案以及有沒有需要更改的地方
- 情緒辨識收尾 — 判斷是否呼叫emotion_support
-
-
-
DSPy 架構 : DSPy 架構中,為了加速回復產出,我們將schaduling 功能prompt 拆分為四個檔案
-
四個檔案:
-
router 模組 : router.md
- 任務:判斷並路由使用者至適當的排程子模組(draft_plan 或 draft_action)
- 輸出:
- 對齊目標 — 透過復述和使用者確認目標和現有資訊
- AI 能為你做什麼 — (可能包含)介紹能提供的協助/淺再困難與風險/可用的網路資源
task_level: 判定的任務等級:L1/L2/L3。(是內部用,使用者不可見)
-
DraftPlan 模組 : draft_plan.md
- 任務:把使用者較抽象或方案級的需求,轉成「可立刻開始的粗規劃」
- 輸出:
- 梳理規劃 — 提供計畫的大方向
- constraints_and_missing_info: 缺失的資訊或潛在風險 — 輸出給AskQuestion 模組的缺失資訊
- 要怎麼排出更詳細的計畫 — 為問問題做鋪墊
-
DraftAction 模組 : draft_action.md
- 任務:把需求轉成「行事曆可執行」的具體行動與候選時段
- 輸出:
- action_description : 備選方案 — 提供計畫的規劃/步驟
- start_instructions : 開始的第一步
- constraints_and_missing_info: 缺失的資訊或潛在風險 — 輸出給AskQuestion 模組的缺失資訊
- action_metadata: List[GoogleTaskCreate] — 用於直接在 Google Tasks 建立任務
-
AskQuestion 模組: ask_question.md
- 任務:進行資訊追問
- 觸發方式 :由DraftPlan 模組或
- 輸出:
- 簡介 — 告訴使用者為了規劃需要確認更多資訊,以及知道這些資訊後,能為他做甚麼」
- 3–5 題選項題(每題含「我不確定/我不知道」)
- next_steps_suggestion — 告訴使用者回完後的具體交付
-
-
過去回顧¶
兩組下架構的過去回顧是幾乎一樣的(分別domain/ mcp資料夾中的summary_writer.md),讓AI 做為過去計畫完成進度總結助手,扮演一位溫和的觀察者。 我們將這個功能分成四段: 1. 每日回顧: - 摘要指定的時間段都做了些什麼 - 完成度分析 2. 改進建議: - 若有未完成規劃,則提出替代方案 3. 總結: - 提供整個時間段的總結,包含: 1. 各個任務事項的時間占比 2. 情緒大致狀態 3. 代辦事項提醒 4. 若是使用者有記帳,則分析財務資料 5. 此時間段達成的成就與亮點 6. 結尾
- 情緒與狀態(只在詢問是否需要後觸發):
- 使用者健康、精神狀態分析
- 效能分析
實作位置¶
- MCP 註冊:
src/time_compass/mcp/prompts/domain_prompts.py - MCP Prompt 內容:
src/time_compass/mcp/prompts/content - Domain Prompt 來源:
src/time_compass/domain/*/prompt