# 技能不觸發,第一個該懷疑的不是 Claude,是你寫的那行描述 技能出問題時,最常見的反應是抱怨工具不靈,好像 Claude 今天心情不好,故意不理你。… · @swordBluesy · TwKit
@swordBluesy
# 技能不觸發,第一個該懷疑的不是 Claude,是你寫的那行描述 技能出問題時,最常見的反應是抱怨工具不靈,好像 Claude 今天心情不好,故意不理你。但實務上,技能的問題多半有跡可循,而且常常出在同幾個地方。與其反覆重試同一句話,不如照著一套排查順序走,先把最可能的原因一個一個排除。 ## 排查技能的做法 第一步,先用 agent skills verifier 排查結構。技能出問題,先不要猜內容,先檢查結構對不對。結構錯了,內容再好也沒用,驗證工具就是用來先把這一層排除的。這一步做完,你才知道問題是在結構,還是在觸發,還是到了執行才出事。 第二步,處理不觸發的問題。不觸發幾乎總是描述問題,描述沒有把使用時機講清楚,Claude 就沒有理由叫它。做法是補上觸發短語,而且要補使用者真正會講的說法,不是你自己發明的術語。補完還要測試,不能只用一種說法測一次就結案,要用多種說法測試,看不同講法是不是都能穩定觸發。一種說法能觸發、另一種說法不能觸發,就代表描述還缺了某一種真實措辭。 第三步,處理不載入的問題。技能連載入都沒有,就要回頭查最基本的地方:目錄對不對、檔案名是不是 SKILL.md、檔案頭的 YAML 有沒有寫錯。這些地方錯一個字,技能就可能直接被跳過。查的時候可以用 claude --debug 來看除錯資訊,不要只憑感覺猜,感覺猜不到檔名打錯一個字母這種問題。 第四步,處理用錯技能的問題。用錯技能通常是描述太相似,兩支技能的描述長得太像,Claude 分不出來該叫哪一支。解法不是把兩支技能合併,而是把描述改得更具體,讓每一支技能的適用情境、對象與範圍都清楚區分開。描述越像,誤叫的機率越高,描述越具體,選錯的機率越低。 第五步,處理被高優先順序遮蔽的問題。同名技能在不同層級都有,優先順序高的會勝出,優先順序低的那一份就算寫得再好也不會被叫到。這時候改名是最省事的做法,換一個不撞名的具體名字,遮蔽問題立刻消失,不要花時間去改優先順序的設定跟它硬碰硬。 第六步,處理插件不出現的問題。插件裝了卻看不到技能,先清快取,再重新啟動,最後重新安裝。順序不要亂,先做成本最低的清除快取與重啟,真的不行再重裝,不要一開始就把東西全拆掉重來。 第七步,處理執行時失敗的問題。技能載入了、觸發了,執行卻失敗,就要查執行層面的東西:依賴有沒有裝好、腳本有沒有執行權限,權限不夠就用 chmod +x 補上、路徑是不是都用正斜槓。路徑寫法這種小地方,在不同環境下最容易出事,一律用正斜槓可以少掉很多不必要的麻煩。 ## 一個可以照做的例子 假設你寫了一支審查技能,講了幾次都沒觸發,照做的排查順序是這樣: 第一步,先跑 agent skills verifier,確認結構沒有問題,排除目錄、檔案名、檔案頭這些基本錯誤。第二步,打開描述看一遍,問自己一個問題:使用者真正會講的那句話,描述裡有沒有?如果沒有,先補上幾種真實說法,再用三種不同的講法測試,例如直接說審查、說檢查一下、說看看有沒有問題,看是不是都能觸發。第三步,如果還是沒載入,用 claude --debug 查一次,看它到底掃到了哪幾支技能、又跳過了哪幾支。第四步,如果觸發的是一支名字很像的其他技能,就把兩支技能的描述改得更具體,寫清楚各自審查的對象與情境。第五步,如果懷疑是高優先順序的同名技能遮住了它,直接改名,換一個更具體的名字再測一次。 這個例子裡最重要的一課是順序。先結構、再描述、再載入、再區分、再遮蔽、再插件、再執行,一層一層往下走,不要一出問題就直接改內容。內容常常是無辜的,真正出事的,是描述、結構或優先順序這些外圍環節。 ## S1哥觀點 排查技能最浪費時間的做法,就是憑感覺一直換說法測試,測到某一次突然觸發了,就以為問題解決了。觸發一次不代表修好了,觸發不穩定代表描述還缺東西,下次換個說法一樣會落空。穩定的觸發不是靠運氣,是靠描述裡有沒有覆蓋使用者真正會講的各種說法。 爭論點在這裡:到底該先怪工具,還是先怪自己寫的描述?我的判斷是,先怪描述,再怪結構,再怪優先順序,最後才輪到工具。這個順序不是在護著工具,而是在省時間。描述問題最常見、最好修,結構問題次之,遮蔽問題改名就解決,真的走到工具層面的問題其實最少。先從最常見、最好修的地方動手,才是排查,不是發洩。 原文連結:https://anthropic.skilljar.com/introduction-to-agent-skills/434530 原文:Anthropic Academy(由 S1哥 編譯)
曝光 104 · 评论 2 · 点赞 1 · 书签 0
查看原帖