Time Compass 提示詞設計完整指南¶
簡介¶
Time Compass 的提示詞系統以心理學驅動的漸進式決策為核心,將使用者的模糊想法逐步轉化為可執行的行動方案。整個系統從情感承接開始,經過意圖路由、方案規劃、行動拆解、質詢確認,最後到總結回顧,形成一個完整的時間管理閉環。
核心設計理念: - 非評判性:絕不責備使用者的拖延、混亂或情緒 - 認知友善:減少使用者的理解負擔(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%)
舊版 DSPy 架構¶
1. EmotionSupport 模組¶
角色定位: MBTI 類型 INFJ 的溫暖陪伴者
輸入: - InteractionContext:包含使用者輸入、過往對話歷史、情緒線索
關鍵規則: - 禁區:不說教、不流程解釋、不流露憐憫、不進行診斷 - 必做:情緒辨識 → 正常化 → 微行動 → 溫柔過渡
輸出結構(A1/A2/B/C/D 五段):
| 段落 | 條件 | 核心任務 |
|---|---|---|
| A1 | 首次情緒支持 | 點出情緒 + 正常化 + 共感 |
| A2 | 後續情緒支持 | 陪伴 + 增強信心 |
| B | 所有情況 | 自然過渡到後續流程 |
| C | 非開心情緒 | 提出 1–2 個簡單微行動 |
| D | 所有情況 | 輕鬆結尾,為後續鋪墊 |
關鍵例示:
情緒類型 → 標題示例 → 行動建議
─────────────────────────────────
重度低落 → 「我聽見你的沮喪」→ 「休息 5 分鐘,喝杯熱水」
輕度焦慮 → 「我能理解你的急迫」→ 「先記下三件事,排序」
開心興奮 → 「我真替你開心」→ 「把這感覺記下來」
2. RouterSignature 模組¶
角色定位: 第一關意圖識別與流程決策
核心決策邏輯:
情緒分流策略: - 重度情緒(低落/憤怒/焦慮/疲勞) - 第一輪:["EmotionSupport", <task>, "EmotionSupport"](前後夾擊) - 後續:[<task>, "EmotionSupport"](尾部收尾)
- 中度情緒(開心/輕度負面)
- 第一輪:
[<task>, "EmotionSupport"](後置收尾) -
後續:可省略或選擇性收尾
-
無明顯情緒
- 直接路由至任務模組
白名單模組:
Pipeline = ["EmotionSupport", "Summary", "Scheduling"]
# 排列規則
Summary + Scheduling → ["Summary", "Scheduling"]
只要回顧 → ["Summary"](必含)
只要排程 → ["Scheduling"](必含)
只要情感 → ["EmotionSupport"]
3. DraftPlan 模組(方案級規劃)¶
角色定位: 需求釐清與粗規劃的策略引導者
關鍵判定標準(任務等級分類):
| 等級 | 特徵 | DraftPlan 應對 |
|---|---|---|
| L1 (模糊) | 目標空泛、資訊明顯不足 | 八段完整結構 |
| L2 (可產出) | 具體截止、明確目標 | 五段結構 |
| L3 (明確) | 任務完全拆解 | 跳過 DraftPlan,直進 DraftAction |
核心輸出:
- draft_plan(使用者可見)
- 必含「我可以怎麼幫你」與「有哪些方向可以努力」
- 不追問、不否定
-
列點與分項呈現
-
constraints_and_missing_info(供後續模組使用)
[MISSING] 截止時間不明確 [ASSUMPTION] 預設以未來 7 天作為規劃週期 [RISK] 時間窗不足可能影響行動品質
4. DraftAction 模組(行動級排程)¶
角色定位: 可執行的具體行動與時間落地
進入前置條件: - 有明確截止點或時間窗口 - 任務已拆至「可產出」的粒度 - 每項任務預計≤60 分鐘
核心輸出:
- action_description(含候選時段 A/B/C)
- 每段包含完成定義、風險評估與緩衝時間
-
避免模糊的「做完」說法
-
start_instructions(1–3 步,立刻可做)
-
第一步必須 <5 分鐘
-
action_metadata(Google Tasks 序列格式)
關鍵限制條件: - 候選時段 2–5 個(避免過載選擇) - 動詞明確(不能用「研究一下」) - 標註風險與緩衝百分比
5. AskQuestion 模組¶
角色定位: 從缺失資訊萃取最關鍵問題
核心轉換邏輯:
[MISSING] 截止時間
[ASSUMPTION] 假設以未來 7 天
[RISK] 時間不足
↓
[QUESTION] 「你想在多久內完成?」
A. 3 天內(密集)
B. 一週內(正常)
C. 兩週以上(充裕)
D. 我不確定
輸出結構: 1. 簡介(為什麼需要這些資訊) 2. questions(3–5 題,每題 3–5 選項) 3. next_steps_suggestion(回答後能做什麼)
質詢哲學: - 問最少、拿最多(合併關聯常數) - 必含「我不確定/我不知道」選項 - 禁止閒聊題,只問會影響排程決策的問題
6. SummaryWriter 模組¶
角色定位: 溫和的觀察者與成就解析者
核心功能: 將零散的活動紀錄轉化為洞察性的週回顧報告
輸出結構(6 個區域):
| 區域 | 內容 | 設計重點 |
|---|---|---|
| 事件回顧 | 分類列點(課業/工作/社交/娛樂) | 客觀、無指責 |
| 完成度分析 | 已完成 vs 規劃的比例 | 溫暖鼓舞,不強調不足 |
| 改進建議 | 基於實驗心態的下週調整 | 正向、可行 |
| 時間占比 | 圓餅圖 / 進度條(Emoji) | 視覺化易解讀 |
| 情緒狀態 | 何時、什麼情緒、為何 | 溫柔陳述,結尾安撫 |
| 成就與亮點 | 正面的每日小勝利 | 抵抗蔡加尼克效應 |
關鍵禁忌: - 絕不責備或責問使用者 - 避免「你應該...」「為什麼不...」 - 不列舉「未完成」的項目 - 避免超誇獎讚
新版 MCP 架構¶
MCP 協定回傳的 Prompt 資源¶
新版架構將所有提示詞封裝為 MCP 工具,允許外部系統動態獲取並渲染。
檔案結構:
src/time_compass/mcp/prompts/
├── content/
│ ├── emotion_support.md
│ ├── tem.md
│ ├── summary_writer.md
│ └── simple_hello.md
│
└── domain_prompts.py // MCP 工具入口
MCP 工具定義¶
| 工具 | 用途 |
|---|---|
emotion_support_prompt() | 情緒承接指令 |
time_management_master_prompt() | 方案規劃指導 |
summary_writer_prompt() | 總結生成指導 |
與 DSPy 架構的對應關係¶
| DSPy Signature | MCP Tool | 輸入 | 輸出 |
|---|---|---|---|
EmotionSupport | emotion_support_prompt() | InteractionContext | str |
RouterSignature | time_management_master_prompt() | InteractionContext | List |
DraftPlan | time_management_master_prompt() | InteractionContext + ResourceContext | str |
DraftAction | time_management_master_prompt() | InteractionContext + ResourceContext | str + List |
AskQuestion | time_management_master_prompt() | constraints_info | List[Question] |
SummaryWriter | summary_writer_prompt() | ResourceContext | str |
認知負荷的三個維度¶
1. 內在負荷(Intrinsic Load)¶
提示詞設計如何降低? - 避免一次呈現 >5 個選項 - 使用「漸進揭示」:先給方向,再補細節 - 層級化組織(標題 → 列點 → 詳述)
2. 外在負荷(Extraneous Load)¶
提示詞設計如何降低? - 禁用複雜術語,改用日常用語 - 避免冗長段落,改全短句 + 列點 - 移除「流程說明」(由 Router 單獨承擔)
3. 相關負荷(Germane Load)¶
提示詞設計如何提升? - 使用類比與實例具體化抽象概念 - 鼓勵使用者的能動性(「你覺得呢?」) - 提供機制化的思考框架(決策樹)
最佳實踐¶
1. 情緒分層判定¶
# 偽代碼示示
def classify_emotion(text: str) -> str:
patterns = {
"重度": ["撐不住", "快崩潰", "完蛋了", "沒辦法", "放棄"],
"輕度": ["有點", "小", "有些", "不太"],
"中度": ["焦慮", "急迫", "開心"],
}
# ...return classification
2. 時間段限制¶
| 等級 | 任務時長 | 時段建議 |
|---|---|---|
| L1 (模糊) | 不限 (只需釐清目標) | 粗規劃 |
| L2 (拆分) | ≤60 min 每段 | 形成大致流程草案 |
| L3 (排程方案) | ≤60 min | 可行動方案 |
3. 文本風格檢查表¶
- [ ] 避免「必須、應該、必需」等指令詞
- [ ] 含有「我們」而非「你應該」
- [ ] 完成定義明確(「做完」→ 「完成 X,達成 Y」)
- [ ] 情緒詞彙具體(「開心」→ 「為進度感到開心」)
- [ ] 列點 ≤5 項每組
- [ ] 段落 ≤4 句
Prompt 實作架構與 MCP 組織¶
架構關係(Domain ↔ MCP)¶
domain 的各模組(summary / emotion / schedule / router)各自從 prompt/*.md 載入 Prompt,供 DSPy Signature 使用。
mcp/prompts 這邊則維護一份獨立 content/*.md,再由 domain_prompts.py 讀取後包成 MCP Tools。
也就是: - 概念上:MCP Prompt 來自 Domain Prompt 的延伸與重組 - 實作上:目前不是動態繼承(非 runtime import domain prompt 檔),而是「檔案複製/改寫後」由 MCP 層單獨載入
Domain 模組與 Prompt 對應¶
| Domain 模組 | Signature 載入檔 | Prompt 檔案 |
|---|---|---|
summary | SummaryToolSignature, SummaryWriterSignature | summary/prompt/summary_tool.md, summary/prompt/summary_writer.md |
emotion | EmotionSupportSignature | emotion/prompt/emotion_support.md |
schedule | SchedulingRouter, DraftPlan, DraftAction, AskQuestion | schedule/prompt/router.md, draft_plan.md, draft_action.md, ask_question.md, tem.md |
router | RouterSignature | router/prompt/router.md |
MCP Prompt 檔案來源對照(繼承/重組)¶
MCP 檔案 (mcp/prompts/content) | 主要 Domain 對應來源 | 關係判定 |
|---|---|---|
emotion_support.md | domain/emotion/prompt/emotion_support.md | 完全一致(內容相同) |
summary_writer.md | domain/summary/prompt/summary_writer.md | 同源改寫(小幅差異) |
tem.md | domain/schedule/prompt/tem.md | 同源改寫(整合 draft_plan.md 、draft_action.md、ask_question.md、schedule/prompt/router.md) |
simple_hello.md | (未在 domain prompt 找到直接對應) | MCP 專用模板 |
目前已公開的 MCP Prompt Tools(3 支)¶
| Tool 名稱 | domain_prompts.py 載入內容 | 說明 |
|---|---|---|
summary_writer_prompt | content/summary_writer.md | 週回顧與成就解析 |
emotion_support_prompt | content/emotion_support.md | 情緒支持與行為啟動 |
time_management_master_prompt | content/tem.md | 規劃排程主流程(L1/L2/L3) |
尚未公開為 MCP Tool 的 Prompt 模板¶
ask_question.md- 缺失資訊轉換為關鍵問題draft_action.md- 行動級排程(≤60 分鐘)draft_plan.md- 方案級規劃(L1/L2/L3 分類)router.md- 意圖識別與流程決策simple_hello.md- MCP 專用的簡單歡迎模板
實作位置¶
- MCP 註冊:
src/time_compass/mcp/prompts/domain_prompts.py - MCP Prompt 內容:
src/time_compass/mcp/prompts/content - Domain Prompt 來源:
src/time_compass/domain/*/prompt
維護建議¶
- 若更新
domain/*/prompt/*.md,請同步檢查mcp/prompts/content/*.md是否需同步 - 若要避免兩份內容漂移,可考慮改為由 MCP 層直接讀取 Domain Prompt(或建立單一來源生成流程)
總結¶
Time Compass 的提示詞系統融合了嚴謹的心理學基礎與務實的工程設計,形成一個既能同情使用者情感,又能高效推進行動的協作系統。從舊版 DSPy 的完整管線到新版 MCP 的模組化架構,核心理念保持不變:理解、陪伴、引導、落地。
更新日期:2026年3月5日 | Time Compass Prompt Design Reference