跳至主要内容

技能

技能是一套 agent 在需要的時候會拿出來用的說明 —— 一段寫下來一次的流程,而不是每次都 往提示詞裡黏一遍。

內置哪些

六個流程隨產品一起來,在任何目錄都能用:

技能做什麼
spreadsheet-review按寫明的規則核查一張表,列出違規的行和行號
weekly-report這裡這段時間實際變了什麼 —— 做完的、在做的、以及需要誰拍板的
inbox-triage按「在要求什麼」給消息分類,挑出必須由人回的
document-compare兩版之間實質變了什麼,和只是措辭變了的分開
meeting-notes把錄音記錄變成決定、帶負責人的行動、和懸而未決的問題
records-review在一堆記錄裡挑出值得核對的,並引用它來自哪一條

另外兩個是繼承來的,講的是怎麼寫技能和裝技能本身:skill-creatorskill-installer

它們從哪裡來

範圍目錄
內置~/.opencli/skills/.system —— 應用更新時重寫
你自己的~/.opencli/skills
這個專案的工作目錄裡的 .opencli/skills

寫一個

一個目錄加一個 SKILL.md,前置訊息裡說明它是什麼、以及什麼時候該用它:

---
name: invoice-check
description: 按我們的付款規則核查發票,報出違反規則的。當被要求
審查、核對或審計一批發票時使用。
metadata:
short-description: 找出違反規則的發票
---

# 發票核查

## 先找到規則,再讀資料
...

description 是 agent 拿來符合請求的東西。一個只說「這是什麼」的描述,會讓模型自己去猜 什麼時候適用 —— 內置的六個每一個都寫明了它的場合,你的也應該。

什麼讓一個技能真的管用

讀那六個內置的是看清形狀最快的方式,但有三點反復出現:

  • 說清楚讀什麼、按什麼順序讀。 「最早的先讀」是一條真指令;「審查這些記錄」不是。
  • 說清楚產出什麼。 一個具名的文件,或者一個寫明的結構。不是「一份總結」。
  • 說清楚絕對不許做什麼。 內置的病歷技能有三分之一的篇幅在寫這個,而那正是它能存在的原因

還有一條是吃過虧才知道的:如果一個數字重要,就要說明這個數字必須從哪裡來。表格核查 技能要求報出行數,而第一次執行憑記憶報了個數,錯了一位。現在它要求這個數字必須來自 做核查的那個指令碼。

關掉一個

每個技能在能力 → 技能裡有開關。改動對下一個打開的對話生效,不是正在跑的這個。