從一條思路到一棵樹
思維鏈只走一條路。但有些問題——謎題、規劃、搜尋——需要你試一條分支、評估它,若是死路就退回去。思維樹提示(tree-of-thought,ToT)把思維鏈推廣成一種分支式搜尋:在每一步,模型提出幾個可能的下一步想法、評估各自有多有希望,再探索最好的那些,並放棄孱弱的分支。
- 生成:請模型給出幾個彼此不同的候選下一步,而不只是一個。
- 評估:讓模型為每個候選「朝目標有多有希望」打分或排序。
- 擴展:保留最佳的幾個分支並重複;剪掉其餘的,以控制搜尋的成本。
一棵从根节点分叉的交互式搜索树,节点被打分,最强的分支被扩展。
提示鏈:許多小提示勝過一個巨無霸
與其把整個工作流硬塞進一個巨無霸提示,提示鏈(prompt chaining)把它拆成一連串聚焦的提示,每一步的輸出餵給下一步。先萃取事實、再摘要、再依摘要草擬一封電子郵件——三個乾淨的階段,取代一個糾結的指令。
提示鏈是由少至多推理的務實表親:兩者都把工作分解成階段,但提示鏈把這些階段接成由你在程式中掌控的獨立呼叫,於是你可以在步驟之間驗證、重試或分支。每一步都更好寫、更好除錯,出問題時也更便宜修。
Step 1 prompt: Extract every date, name, and amount from the contract. Return JSON. Step 2 prompt: Given this JSON, list any obligations due within 30 days. Step 3 prompt: Write a one-paragraph reminder email for those obligations.
提示鏈也是通往代理(agent)的橋樑。一旦模型的輸出開始決定接下來該跑哪個提示——或該呼叫哪個工具——你就從固定的提示鏈,邁向了大型語言模型代理(LLM agent)。這裡的提示技巧,正是讓那些系統可控的關鍵。
一个在推理、行动、观察之间循环的大模型智能体回路。
角色提示:模型該扮演誰?
角色提示(role prompting)要求模型以某個特定人設來回答——「你是一位有耐心的數學家教」、「你是一位資深的資安審查員」。一個挑得好的角色,會改變用詞、深度,以及模型強調的重點,往往比一整段瑣碎的指令來得更俐落。一位「謹慎的編輯」自然會只改文法而不重寫;一個「好奇的五歲小孩」自然會問簡單的問題。
角色放在系統提示裡時最為持久,這樣人設能貫穿整場對話,而不必每一輪重講一次。不過要誠實面對它的極限:標上「專家醫師」這個角色,只會讓模型聽起來更權威,並不會讓它實際上更正確。用角色去塑造語氣和框架,別用它去製造你尚未驗證過的信任。
把這套工具組合起來
這些技巧是積木,不是對手。一條穩健的流程,可能在系統提示裡指派一個角色、用提示鏈串起好幾步、在最關鍵的那一步跑一次自我一致性投票,並把思維樹保留給單一步驟內真正困難的搜尋。永遠先伸手去拿能解決問題的最輕量工具,只在簡單提示力有未逮處才加上結構。