Agent UI
AI 代理讀取、建議或變更真實事物的畫面只有一個任務:讓人看到代理做了什麼、決定它下一步能做什麼,並信任這兩者。這些是達成該目標的規則與檢查,適用於任何框架與任何設計系統。若專案使用 Candor UI,則 candor-ui 技能會為每個任務命名對應的元件;本技能則說明無論畫面如何繪製,都必須做到什麼。
如何運作
在畫面之前,回答三個問題,並在建置過程中持續牢記答案:
- 代理在這裡可以做什麼:僅讀取、建議讓人員套用,還是自行執行?所有控制項都由此決定。
- 人員需要決定什麼,並且依據什麼證據?決策需要事物本身(差異對比、目標、數量),而非其描述。如果這裡需要核准任何事項,請閱讀
references/approvals.md。 - 什麼是無法復原的?那些動作必須明確標示、需要更嚴格的確認,並且絕不能放在預設按鈕或單一按鍵下。
在建置過程中,謹記以下九條規則,使用 references/status-and-states.md 中的狀態詞彙,並依照 references/progress.md 所述的方式顯示進度。模型文字視為資料:顯示它,絕不執行或渲染它。
每個畫面完成後,對照 references/review-checklist.md 逐一檢查執行中的畫面,每項檢查一行,修正失敗項目後再繼續。僅勾選你實際檢查過的項目,而非你意圖檢查的。
九條規則
每條規則在 references/honesty-rules.md 中都有範例說明。
- 模型輸出是文字,絕非標記。 將模型寫的內容顯示為文字(最多是安全的 Markdown 子集)。它寫的 URL 是文字,不是連結。它寫的任何內容都不會進入
innerHTML。 - 未知就是未知。 未經測量的持續時間、成本或數量,留空或顯示「未測量」。估計值則需標明「估計」及其依據。來自某次執行的靜默不是「正在執行」。
- 無法使用的控制項須說明原因。 鎖定控制項並附上鍵盤與螢幕閱讀器使用者能觸及的原因;不要只使用
disable屬性而讓使用者困惑。 - 決策中不預先選取任何項目。 核准與拒絕、保留與捨棄,兩者皆從未選取開始。Enter 鍵絕不會觸發核准。代理的建議應標示而非選取。
- 核准的是確切變更。 決策必須綁定人員所看到的變更(一個雜湊值或版本)。如果變更內容變動,需重新詢問。若政策規定,則拒絕自我核准;生產環境可能需要第二個人員。
- 推理是可信的,而非已驗證的。 模型對原因的說明僅為主張。請將其標示為主張,並與證據(來源、測試結果、差異對比)分開。
- 應用程式為代理命名。 每則代理訊息都帶有來自應用程式自身資料的名稱。系統行的文字是應用程式的字串。模型寫的任何內容都不會成為名稱或系統訊息。
- 說明哪些可以復原,哪些不能。 在破壞性動作之前:它會移除什麼、是否能恢復、如何恢復以及多久內可恢復。在復原或還原之後:它還未復原什麼。
- 動畫跟隨結果。 動畫報告已發生的變更;它絕不預測或裝飾變更。成功標記在結果穩定後才繪製,進度條僅填滿已測量的部分,畫面繪製時已經是最終狀態的項目不應有動畫,並且作業系統的減少動畫設定優先。為每個動畫賦予一種變更類型(Candor 定義了十四個動畫家族,詳列於
references/honesty-rules.md),並讓主題能改變其外觀,但絕不改變播放時機。
根據什麼閱讀什麼
| 當畫面包含… | 請閱讀 |
|---|---|
| 任何需要人員核准、允許或拒絕的事項 | references/approvals.md |
| 執行、工具呼叫、步驟、狀態、圓點 | references/status-and-states.md |
| 代理工作超過片刻,或人員離開後才完成 | references/progress.md |
| 與人對話的 AI,或 AI 製作的內容 | references/disclosure-and-accessibility.md |
| 任何事項,在繼續之前 | references/review-checklist.md |
用詞
平實且有根據。說明發生什麼事、對誰發生、以及下一步該做什麼。採用句子大小寫,無驚嘆號、無最高級形容詞、無數據不支持的主張。狀態是帶有顏色的詞彙,絕非僅用顏色。數字僅在已測量時使用;否則使用「估計」或「未測量」等詞語。