編寫一個技能
一次運行編寫或重寫一個技能。判斷輸出的標準是技能運行時的行為,而非其文字的可讀性:這次運行安裝的是使用者的流程,而非通用的技能模板。
開始編寫前,請先遵循 reference.md 中的上下文指引 —— 關於 frontmatter 的機制都在那裡。
步驟
- 修正觸發條件。 詢問誰必須觸發此技能,以及何時觸發。一個只會在「有意識地」使用時才運行的技能是使用者主動呼叫(
disable-model-invocation: true,描述變為一行人類可讀摘要,<100 字元)。一個必須由 Agent 未經提示就觸發的技能是模型被動觸發:其描述是一個始終加載的指標,而其措辭決定了觸發是否發生。 完成條件:觸發方式的選擇明確指出了它所承擔的代價 —— 是上下文,還是你的記憶。 - 盤點工作實際如何運行。 回想上次真正運行此項工作的情況:送回什麼、修正了什麼、重複了什麼。這些修正就是技能的內容;模型不經協助就能做的事則不是。 完成條件:草稿至少引用了一個它能預防的、實際發生的失敗。
- 撰寫步驟,然後撰寫指標。 每個步驟都是一個帶有明確完成條件的程序,並按順序排列,使本次運行能先交付一個可檢查的成果。只有部分流程需要的輔助材料放在
reference.md中,並透過一個說明何時閱讀的指標來連結。 完成條件:每個步驟都可以在不詢問 Agent 是否成功的情況下進行驗證。 - 選擇引導性詞語。 對於每個反覆出現的概念,選用已存在於模型預訓練資料中的簡潔詞語,並讓它承載意義:指標、步驟和完成條件都重複使用這些詞語。將行話重新命名為這些詞語,而不是圍繞它們進行解釋。 完成條件:每個引導性詞語出現在多個位置,並能在每一處發揮引導作用。
- 使用無操作測試進行精簡。 逐句檢查:刪除它,問自己什麼壞了。什麼都沒壞——這個句子就刪掉。刪除整個句子,而非修剪詞語;重複的內容收斂為單一事實來源,而非兩次淡出的資訊。 完成條件:你不再能在不刪除重要內容的情況下運行無操作測試;檔案比上一個版本更短。
參考資料
- reference.md —— 每種觸發方式的 frontmatter 機制、指標撰寫規則,以及用來檢視現有技能的檢查表組合。
- 本次運行產生的技能是根據實際運行反覆迭代的,而非一次寫就:當運行出現異常時,在重新撰寫之前,請先透過閱讀參考資料來鑑別失敗的性質。