技能
技能是一套 agent 在需要的時候會拿出來用的說明 —— 一段寫下來一次的流程,而不是每次都 往提示詞裡黏一遍。
內置哪些
六個流程隨產品一起來,在任何目錄都能用:
| 技能 | 做什麼 |
|---|---|
spreadsheet-review | 按寫明的規則核查一張表,列出違規的行和行號 |
weekly-report | 這裡這段時間實際變了什麼 —— 做完的、在做的、以及需要誰拍板的 |
inbox-triage | 按「在要求什麼」給消息分類,挑出必須由人回的 |
document-compare | 兩版之間實質變了什麼,和只是措辭變了的分開 |
meeting-notes | 把錄音記錄變成決定、帶負責人的行動、和懸而未決的問題 |
records-review | 在一堆記錄裡挑出值得核對的,並引用它來自哪一條 |
另外兩個是繼承來的,講的是怎麼寫技能和裝技能本身:skill-creator 和 skill-installer。
它們從哪裡來
| 範圍 | 目錄 |
|---|---|
| 內置 | ~/.opencli/skills/.system —— 應用更新時重寫 |
| 你自己的 | ~/.opencli/skills |
| 這個專案的 | 工作目錄裡的 .opencli/skills |
寫一個
一個目錄加一個 SKILL.md,前置訊息裡說明它是什麼、以及什麼時候該用它:
---
name: invoice-check
description: 按我們的付款規則核查發票,報出違反規則的。當被要求
審查、核對或審計一批發票時使用。
metadata:
short-description: 找出違反規則的發票
---
# 發票核查
## 先找到規則,再讀資料
...
description 是 agent 拿來符合請求的東西。一個只說「這是什麼」的描述,會讓模型自己去猜
什麼時候適用 —— 內置的六個每一個都寫明了它的場合,你的也應該。
什麼讓一個技能真的管用
讀那六個內置的是看清形狀最快的方式,但有三點反復出現:
- 說清楚讀什麼、按什麼順序讀。 「最早的先讀」是一條真指令;「審查這些記錄」不是。
- 說清楚產出什麼。 一個具名的文件,或者一個寫明的結構。不是「一份總結」。
- 說清楚絕對不許做什麼。 內置的病歷技能有三分之一的篇幅在寫這個,而那正是它能存在的原因。
還有一條是吃過虧才知道的:如果一個數字重要,就要說明這個數字必須從哪裡來。表格核查 技能要求報出行數,而第一次執行憑記憶報了個數,錯了一位。現在它要求這個數字必須來自 做核查的那個指令碼。
關掉一個
每個技能在能力 → 技能裡有開關。改動對下一個打開的對話生效,不是正在跑的這個。