
如何打造 Miva | 第一部分:從系統提示詞到專業 AI 說書人
如何打造 Miva | 第一部分:從系統提示詞到專業 AI 說書人

謝昆霖(Keanu)

在 AI 領域,提示詞工程 (Prompt Engineering) 是一項關鍵技術。在 BookAI,我們將這個角色稱為「指令設計師 (Instruction Designer)」。本系列文章分享 BookAI 團隊開發 Miva 的真實經驗,說明我們如何透過精心設計的系統提示詞 (System Prompts) 與指令,建構出可靠而專業的 AI 閱讀系統。
▎ LLM 的靈魂:BookAI 系統提示詞
BookAI 的產品——Miva Lite、Pro 和 Advanced——是針對不同使用情境所設計的 AI 驅動閱讀服務。技術的核心在於檢索 (Retrieval):我們最初的挑戰是如何有效地在數十億字中搜尋,以精準回答讀者的問題。在檢索功能的概念驗證 (PoC) 成功後,技術藍圖便確立了,到了 2024 年第二季,關鍵目標是創建一個用於說書服務的多代理系統 (Multi-Agent System, MAS)。
起初,MAS 非常陽春,僅包含兩個代理:一個辨識用戶意圖,另一個從書籍中生成學術回應。到了 2024 年第四季,我們的 MAS 演進為四個代理。當時,MAS 或 Agentic Workflow 等術語鮮少聽聞,因此我們大多是在黑暗中摸索。
為什麼一切會變得這麼複雜?我們稍後會解釋!(笑)
以下是基於檢索到的書籍內容所生成的代理框架:
最初,我們將 Miva Lite、Pro 和 Advanced 規劃為一個產品線,Lite 為免費版,其他為付費版。因此,建立一個通用且嚴謹的平台——「BookAI 系統提示詞」——對整體架構與服務來說變得至關重要。
將其想像成汽車平台,作為各種車型的核心。正如不同的引擎驅動不同類型的車輛,多樣的 LLM 模型提供了不同的優勢——有些強大,有些細膩。我們的架構引導並限制 AI 回應的深度,清楚界定每個 LLM 的邊界。
<Miva_Version_and_Core_Mission> - You are Miva Lite, an AI reading companion created by BookAI. - Your Mission: Help readers discover books, quickly understand core concepts from <book_excerpts>, and decide if a book is right for them. - Explain only highest-level core concepts from <book_excerpts>. - Focus: Answer \"What is this excerpt about?\" with extreme brevity. </Miva_Version_and_Core_Mission>
這明確定義了 Miva Lite 的角色 (AI閱讀夥伴)、目標 (快速理解核心概念) 以及回應風格 (極度簡潔且專注於書籍本身)。這種清晰度確保 Miva Lite 保持在基本的書籍介紹範圍內。
▎ 大型語言模型即服務 (LLMaaS):Miva Lite 代理架構
Miva Lite 擁有 Miva 家族中最簡單的指令。但即使如此,其單一「基於書籍回答」代理的指令也包含了兩萬字 (6,130 tokens)。Pro 和 Advanced 版本則更加精密。
在 MAS 架構中,我們採用了營運管理原則,將每個代理視為獨立的工作站——明確定義角色、目標、輸入/輸出格式、評估方法,以及代理與資料之間的互動。
在 BookAI,我們很早就發現了「大型語言模型即服務 (LLM-as-a-Service, LLMaaS)」的趨勢:透過控制 LLM 輸出來實現服務的差異化與變現。
Miva Lite「基於書籍回答」的指令集包含以下關鍵模組:
使用者請求處理模組 解析讀者問題,分析意圖與語言,找出使用者真正想知道的內容。
對話記憶管理模組 管理短期與長期記憶,促進免費版和付費版中書籍搜尋的功能。
書本內容接收與引用模組 管理從系統檢索到、經過排序與加權的內容摘要,根據使用者意圖進行配對和過濾。
回應生成模組 透過精心設計的指令嚴格限制 LLM 輸出,確保格式與深度的一致性。進階 (Premium) 用戶則享有跨書分析的功能。
輸出控制模組的範例:
<Output_Formatting_and_Constraints_LITE> - Answer field: limited to 150 words. - Focus strictly on high-level, core concepts. - Be conversational, insightful, inspiring. - Response must end with a compelling question. - Use Markdown bold for key terms. - 2 sentence paragraphs, rarely 3. </Output_Formatting_and_Constraints_LITE>
這些精心設計的規則可避免資訊超載,激發好奇心與進一步探索,從而提升使用者體驗。
這樣的架構允許針對不同的 LLM 模型調整回應成本並最大化效率,在商業與技術層面上均實現可行性。
▎ 忠於原著與 AI 創造力:界定訂閱的邊界
商業成功需要平衡技術理想與商業現實。出版商常問我們:「如果書裡沒有答案,Miva 會有答案嗎?」我們的回答是:「技術上來說,Miva 總是有答案。但『是否要嚴格遵循書籍內容』是一個商業決定,而非技術決定。」
我們的設計挑戰在於:在不超越書籍內容邊界的情況下發揮 LLM 的創造力。因此,我們的訂閱策略如下:
Miva Lite (免費版) 嚴格介紹書籍和基本概念,限制創造性延伸,忠實傳達內容。
Miva Pro/Advanced (付費版) 允許不同程度的創意探索。付費用戶在付款過程中會清楚了解服務包含更豐富的 LLM 功能。
規範差異化服務的具體指令如下:
<Creative_Task_Handling_By_Tier> - Creative tasks out of scope for Miva Lite. - Example: \"Miva Lite introduces books briefly. For creative explorations, Miva Pro offers more capabilities.\" </Creative_Task_Handling_By_Tier>
此模組明確管理了期望,平衡了商業可行性與認知清晰度。
▎ 簡單:掌控 LLM 的第一原則
回顧 BookAI 系統提示詞的開發過程,我們最初寫了大量冗長的指令,導致後期的管理困難。我們因此學到了一個核心原則:簡單化與模組化。
LLM 在產生輸出時會對所有輸入的上下文進行採樣,無論它們被稱為系統提示詞還是使用者提示詞。唯一的區別在於採樣權重。實務上來說,指令越複雜,發生錯誤的機率越高,除錯也越困難。為了方便解決提示詞衝突 (prompt conflicts),設計模組化的指令至關重要,我們將每項指令視為獨立的「功能單元」。
例如,我們將角色定義與功能模組完全分開:
角色模組 (Persona Module) (Miva Persona Core)
任務模組 (Mission Module) (Core Mission)
輸出格式模組 (Output Formatting Module) (Output Formatting)
階層式邏輯處理模組 (Tiered Logic Handling Module) (Tiered Logic Handling)
這種模組化大幅降低了維護成本,同時提升了彈性。過於複雜的指令邏輯會導致效能問題,這是讓「指令設計師」持續頭痛的問題——這需要我們在 BookAI 系統提示詞的設計中實施嚴格的控制。
▎ 來自現實世界的挑戰
從學術界踏入現實世界的「戰場」,達成獲利是關鍵。建立簡潔、模組化、且利於人類管理的架構以有效控制 LLM 的行為,既是一項技術挑戰,也是一門藝術。
作為一款商業產品,我們必須不斷適應快速演進的科技、使用者體驗以及商業模式。
在下一篇文章中,我們將討論如何解決「沒有內容的情況下如何回應」、多代理系統協作,以及如何將商業策略、UX 設計和精實原則 (lean principles) 整合到產品開發中。
敬請期待!
(待續)


