
你讓 Agent 幫你設計一個組件庫它立刻開始寫代碼。改完你發(fā)現(xiàn)它假設了 React你要的是 Vue它假設了 CSS Modules你要的是 Tailwind它假設了暗色主題你根本沒想過主題這件事。三輪糾正下來每一輪都推翻前一輪的一半。于是你讓它先問。它就真的一個一個問起來——二十個決策問了二十輪問到第十五個的時候它已經(jīng)忘了第三輪你否掉的那個假設正拿著它往下推。為了消除猜測而增加的輪次最后把猜測請了回來。所以問題從來不是問得夠不夠多。提問本身有成本要定的是兩件事用幾輪問完以及一輪問幾條。這兩件事歸兩個不同的約束管。哪些能放進同一輪由依賴決定去哪個國家決定簽證怎么辦簽證決定時間夠不夠時間決定能去幾個城市。這三個必須分三輪先問城市純屬白問上層一變它就作廢。而預算多少和偏好自然還是城市互不影響分兩輪問就是白花一輪。所以每一輪該問的不是接下來問什么而是此刻前置條件已經(jīng)滿足、現(xiàn)在就能答的那一批。它們之間沒有依賴回答順序不影響結果。這一批答完下一批才浮出來。只看這個約束輪數(shù)被壓到?jīng)Q策樹的深度而不是決策的數(shù)量二十個決策如果只有三層依賴三輪就該問完。一輪實際問幾條由注意力決定但能同一輪問不等于該同一輪問。一次拋八條問題給你你會認真答前兩條剩下六條隨手劃過——那不是省了輪次是把輪次換成六個敷衍答案而它們照樣會被當成你的決定用下去。所以還有個上限一輪最多三條超了按答錯代價降序留前三其余下輪再說。排序用代價而不用邏輯順序是因為砍掉的那些下輪還會回來而代價最高的那條如果被推到下輪你已經(jīng)拿著它的默認值往下走了一輪。輪次的成本是真的但它沒有大到值得用六個敷衍答案去換。上限是三條不是要湊到三條。這個區(qū)別看著無所謂實際很要緊寫成取前三個三就從天花板變成了目標真正的高代價決策只有一條時Agent 會把本該濾掉的小事?lián)苹貋硖顫M額度。三類問題根本不該問比怎么問更省輪次的是不問。第一類是環(huán)境里能查到的。路徑、現(xiàn)有代碼用了什么框架、配置文件里寫了什么、上一輪的文檔說了什么——這些是可觀測的事實不是需要你決策的東西。把你們項目用的是 Vue 還是 React問出口說明它沒打開過 package.json。問一個能查到的事實比猜錯更糟猜錯至少快問錯既慢又暴露它沒做功課。第二類是答錯代價低的。改一版很便宜的事做出來給你看比問你更快。你看著實物說不對往這邊比對著一個抽象選項做選擇更容易。第三類是那些你大概不會反對的子決定。Agent 判斷這個自己定了你也不會有意見就不再往下展開——決策樹在這里截止否則它可以一直分叉下去。三條合起來圈出該問的范圍環(huán)境里查不到而且答錯了要推翻一大片。剩下的做了再說。該問的里面還分兩種問法這是我覺得最容易做錯的一處不是所有問題都該帶推薦選項。技術和執(zhí)行類的問題要帶推薦還要帶上代價。用 JSON 還是 YAML這種Agent 比你更清楚兩者的差別直接給建議和它的風險你點個頭就行。讓你去權衡一件它更懂的事是把它的活推給你。偏好和判斷類的不給推薦?!白x者是誰”“這篇最想表達什么”“要極簡還是信息密集”——答案取決于你的審美、動機和價值觀Agent 一給推薦你很可能就順著它的框子走了。不管哪種都問封閉式。選 A 還是 B為什么能答你怎么看答不了后者把整理思路的活又扔回給你。還有一種回答要接住你說你定或者隨便。這時候不追問。交付的不是聊天記錄問完之后還有個隱性成本決策散落在二十條消息里。下一步要執(zhí)行得回聊天記錄里考古拼錯了又是一輪糾正。所以最后要落成一份決策清單每條標出它是怎么定的你選的、你授權它代定的、它默認的。第三態(tài)對應前面第三類不該問的問題——它判斷你不會反對于是沒有展開。三態(tài)里最有用的就是第三態(tài)。前兩態(tài)你都在場第三態(tài)是它自己填的空。不標出來這些默認會和你的決定混在一起看上去像是你都同意過。事后出問題你翻這份清單就知道該找誰是你當時選錯了還是它替你定的地方偏了。停的標準也在這份清單上沒有懸而未決的分支就停。不是我覺得差不多了是所有決策都有歸屬。開源鏈接SKILL.md 全文batch-grill-mebatch-grill-medescription: Use when 請求含多個未定決策、直接執(zhí)行要靠猜。典型觸發(fā)“幫我設計/規(guī)劃/選型/寫/做 X”、“我想做 X”或其他 skill 需要按依賴逐輪收斂決策。不觸發(fā)指令明確、無歧義。把請求里的隱含決策按依賴分層暴露一輪問一批、逐輪推進最后交一份帶歸屬的決策清單。Hard Gate決策清單未產(chǎn)出、或用戶未確認前不執(zhí)行請求本身不寫實現(xiàn)、不出方案、不改文件。一輪只發(fā)一條消息本輪批次一次拋完不一問一答。概念Design Tree決策成樹上層是下層的前提。Frontier前置已定、此刻就能答的候選問題集。集內(nèi)互不依賴回答順序不影響結果所以可以同一輪問。本輪批次Frontier 按答錯代價排序后本輪實際發(fā)出的 ≤3 條。Frontier 決定哪些可以同輪問批次決定這輪實際問幾條。步驟1. 收窄問題集先讀環(huán)境文件、代碼、配置、歷史對話、上輪文檔再決定問什么。不問的三類環(huán)境能查到的事實路徑、現(xiàn)有技術棧、配置值、已有文檔結論→ 直接讀作為已知前提列出禁止問用戶。答錯代價低改一版就夠或做出來給用戶看比問更快 → 記為「默認」繼續(xù)。用戶大概不會反對的子決定→ 不向下展開記為「默認」繼續(xù)。該問的只剩一類環(huán)境里查不到且答錯要推翻一大片。Done when已知前提已列出剩余未定決策點已列出且每條都通過上面三類過濾。2. 計算 Frontier從未定決策點中取出前置已滿足的依賴未解問題的子問題歸入下一輪。給每條寫出答錯會推翻什么——這是排序判據(jù)也是留下的資格寫不出具體后果的說明它屬于步驟 1 的低代價項刪掉。按后果嚴重度降序。取最前 3 條作為本輪批次其余留下輪。3 條是上限不是目標Frontier 只剩 1 條就問 1 條禁止從已過濾掉的低代價項里補齊。Done when本輪批次已定每條都寫出了答錯會推翻什么條數(shù) ≤ 3。3. 批量提問一條消息列完本輪批次編號。問封閉式選 A 還是 B為什么“不問你怎么看”帶不帶推薦按問題類型分技術/執(zhí)行類“用 JSON 還是 YAML”→ 給推薦選項并寫明該選項的代價或風險。偏好/判斷類“讀者是誰”“最想表達什么”→ 不給推薦。判據(jù)答案取決于用戶的審美、動機或價值觀。Done when問題清單已發(fā)出每條標明了推薦選項或明確開放。4. 消解并推進收到回答后更新 Design Tree已定 → 推進 Frontier。回答使某些問題失效“其實我不需要 X”→ 該問題及其子樹標 void不再追蹤。用戶拒絕推薦 → 追問具體的限制是什么挖出隱藏約束。用戶說你定“隨便” → 記為「代定」不在此處再追問?;夭襟E 1新回答可能帶出新的可查事實先查再問。Frontier 為空則進入 Done When。Done WhenFrontier 為空無懸而未決的分支。已輸出決策清單每條標出歸屬1. [決定] — 用戶選擇 2. [決定] — 代定用戶授權 3. [決定] — 默認代價低 / 判斷用戶不關心未問 已知前提[從環(huán)境讀到的事實] 未決[無 / 列出]用戶回復確認。