LuluSkill
中文
語言
English

語言與主題僅儲存在此瀏覽器。

從目標開始

LuluSkill 文章

使用別人的 AI Skill 之前:授權、權限與來源

怎麼確認一個 Skill 或提示詞包從哪裡來、授權允許你做什麼、它要求碰哪些東西,以及哪些警訊代表該停手——並完整示範一次評估。

這篇文章是什麼,不是什麼

這是 LuluSkill 自己寫的內容。它不引用、不鏡像、也不摘要任何第三方 Skill,也不推薦任何一個。閱讀它不會建置、發布或執行任何東西:AI 工具會拿你的文字做什麼,要由你自己檢查。

使用別人的 Skill 時,你真正加進來的是什麼

Skill、提示詞包或小型代理工具,是別人把自己的成果打包起來,讓你的助理可以照著做。有時候它只是文字:指令、範例和幾條規則;有時候它還附帶腳本、設定,以及一份它希望被允許做的事情清單。不論是哪一種,一旦你把它加進來,你的助理就會把它的文字當成你交代的工作的一部分。

所以真正有用的問題,不是「作者可不可信?」——這通常無從回答——而是「我到底加進了什麼?」——這是可以回答的。四個事實就能回答它:這個 Skill 從哪裡來、你手上是哪一個確切版本、它的授權允許什麼,以及它要求碰哪些東西。這些都不需要看懂程式碼,每一項都能用一句話寫下來。

這篇文章不點名、也不推薦任何 Skill。下面的內容,都是讓你自己評估一個 Skill 的方法,不論你是在哪裡找到它的,包括本站。

如果你對 Skill 這個詞本身還不熟——資料夾裡裝了什麼、哪些助理會讀它——可以先讀這篇:AI Skill(Agent Skills)是什麼?SKILL.md 怎麼運作,以及如何安全地使用

最先要找出的四個事實

白話解釋

來源
這個 Skill 最初發布、並持續維護的地方,通常是一個原始碼儲存庫(repository)——而不是被貼進某篇貼文或某則訊息裡的副本。
固定版本
一個在你讀過之後就不會再變的版本:一個有編號的正式版本,或某一個特定的 commit——也就是儲存庫歷史中一個固定的快照。「最新版」不是固定版本。
授權
白紙黑字寫明你可以拿別人的成果做什麼的條款:使用、修改、分享,或拿它做出的東西來販售。
權限
這個 Skill 需要你的助理或電腦被允許做的事:讀取檔案、修改或刪除檔案、連上網路、執行命令,或以你的名義發送訊息。

它從哪裡來,你手上又是哪一個版本

Skill 會流傳。一個從原始碼儲存庫開始的 Skill,會被複製到論壇貼文、共用文件、聊天群組和別人整理的合集裡,而每一份副本都可能在途中被改過。副本不是來源:你看不出改了什麼、是誰改的,也看不出它是否還是作者當初發布的那段文字。

版本之所以重要,也是同樣的道理。如果你今天評估了一個 Skill,而它明天就變了,你的評估描述的就是一個你已經不再擁有的東西。寫下確切的版本,才能讓你的決定一直成立。

依這個順序找出來源

  1. 從你發現它的地方開始,找一個連回原始儲存庫的連結。如果找不到,這本身就已經是答案了。
  2. 打開原始版本,和你手上的副本比對。你希望看到的是一樣的文字、一樣的順序;任何多出來的一行,都值得仔細看。
  3. 看看是誰在維護它,以及最後一次修改是什麼時候。好幾年沒人動過的 Skill 也許還能用,但不會有人幫你修。
  4. 選定一個有編號的正式版本或一個 commit,把它的識別碼和你查看的日期一起寫下來。
  5. 從此只用那個版本。出現新版本時,重新評估一次,而不是假設它跟舊版一樣。

來源薄弱的跡象

  • 它只以一段文字的形式存在於某篇貼文裡,找不到原始版本可以比對。
  • 你手上的副本和原始版本不一樣,卻沒有人說明原因。
  • 它的說明要你先從另一個網址下載別的東西,它才能運作。
  • 它叫你永遠使用「最新版」,而你沒有辦法指出自己評估的是哪一個版本。
  • 維護者最近換了人,緊接著就出現大幅度的修改。

授權允許你做什麼

公開,不等於可以隨意使用。任何人都能在網路上讀到的東西,仍然是某個人的作品,而你能拿它做什麼,是由它的授權決定的。如果完全沒有授權,就假設預設是:你可以看,但除此之外能做的不多。

第一輪檢查不需要律師。你只需要知道自己打算做什麼、找到授權條款的原文,再看兩者是否一致。當它們明顯不一致,或你判斷不出來時,就該去問作者,或乾脆不用。本文的任何內容都不是法律意見。

你會遇到的幾類授權,用白話說

白話解釋

寬鬆型授權
你可以使用、修改和分享,通常只要保留作者的著作權聲明與授權聲明即可。
相同方式分享型授權
你可以使用和修改,但如果你把修改後的版本分享出去,通常必須用同樣的條款分享。什麼算是「分享」,每種授權的定義不同,這一段要讀仔細。
附限制的授權
例如「非商業使用」或「禁止修改」這類條款。它們可能允許個人使用,卻仍然禁止你原本打算用在店裡或客戶案子上的做法。
沒有授權
沒有明示的許可。可以讀、可以從中學習,但沒問過作者之前,不要把它複製進自己的作品,也不要轉傳出去。
自訂條款
作者自己寫的條款。要完整讀過;它們可以寫任何東西,包括常見授權都不會寫的內容。

拿授權來對照你的打算

  1. 寫下你的打算:自己用、在工作上用、修改它、分享它,還是拿來做要販售的東西。
  2. 在原始儲存庫、你固定的那個版本裡,找到授權檔本身。說明文字裡的一句「開放」不是授權。
  3. 確認它涵蓋了全部內容。一起打包的檔案、圖片或範例,有時來自別處,適用不同的條款。
  4. 記下它要求你回報什麼——通常是保留聲明,有時是註明你改了哪些地方——並從一開始就照做。
  5. 如果你的打算和授權不一致,或你判斷不出來,就停在這裡:去問作者,或另找辦法。

它要求碰哪些東西

一個只有文字的 Skill 不會直接要求任何權限,但它仍然可以叫你的助理去做事:打開檔案、上網查資料,或替你寫一則訊息。含有腳本或工具的 Skill,則可能直接要求存取權。不論是哪一種,都要列出它會碰到的東西,再拿這份清單和你想完成的那一件工作比對。

規則跟你規劃自己的專案時一樣:每一項權限都從「沒有」開始,只有當某個你說得出來的步驟需要它時,才給它。一個負責整理清單的 Skill,需要讀那份清單;它不需要網路、不需要你的電子郵件,也不需要你其他的檔案。

要留意的權限,以及對每一項該問的問題

白話解釋

讀取檔案
確切是哪些資料夾?「你的文件」不是答案,一個指名的資料夾才是。
修改或刪除檔案
它會改什麼、改了能不能復原、會不會先在副本上操作?刪除絕不應該是附帶發生的事。
網路存取
連到哪些網址、又送了什麼過去?只說「需要網路」卻沒有目的地,是不夠的。
執行命令
哪些命令?為什麼不用它們就完成不了這件工作?光這一項權限,幾乎就能做到清單上其他所有的事。
以你的名義發送訊息
發給誰、內容是什麼、每一則送出前你看得到嗎?訊息一旦送出就收不回來。
金鑰與密碼
它為什麼需要這些、會把它們放在哪裡?一個要你把金鑰直接貼進它文字裡的 Skill,要的是錯誤的東西。

每項權限都從「沒有」開始,和你替自己的第一版填權限表時是同一條規則,說明在這篇文章裡:從提示詞到第一版:頁面、資料、權限與關鍵流程

代表該停下來的警訊

大部分警訊都有相同的樣子:這個 Skill 要的比它的用途能解釋的更多,或者它試圖改變你的助理運作的規則。其中一種值得特別點名。因為你的助理會把 Skill 的文字當成指令來讀,藏在文字裡的一行字就可能操控它——讓它忽略你的要求、洩露某些東西,或把某些東西送到別處。這通常稱為「提示詞注入」(prompt injection),而防範的第一步,就是自己把每一行指令文字都讀過。

如果它有以下情況,先停下來再看一次

  • 叫助理忽略先前的指令、對你隱瞞某些事,或不要提起它正在做什麼。
  • 要你把密碼、金鑰或存取權杖(token)貼進提示詞,或貼進它自己的檔案裡。
  • 在運作時,從一個它沒有說明的網址下載並啟動別的東西。
  • 含有你讀不懂的文字:很長的編碼字串、間距怪異的字元,或藏在註解裡的指令。
  • 要求它的用途用不到的權限——一個整理文字格式的工具卻要連網路,一個記筆記的工具卻要刪除檔案。
  • 把你的資料送到一個它沒有指明的目的地,或它指明的目的地和這件工作毫無關係。
  • 催促你:「現在就執行」、「先關掉你的安全設定」、「全部核准比較省時間」。
  • 宣稱自己是官方的或經過認可的,但除了這個 Skill 本身之外,你在任何地方都找不到這個說法。

要你把金鑰寫進文字裡的 Skill,違反了一條更廣泛的規則:哪些東西根本不該出現在提示詞裡。這條規則寫在這篇文章裡:別把機密和個人資料放進提示詞

完整評估一次:給志工的訊息

這個例子延續前幾篇文章裡虛構的食物銀行。報名頁已經能用了,協調人現在想把每週的班表整理成一則簡短、親切的訊息,貼到志工的群組聊天裡。有人在論壇上分享了一個 Skill,說正好能做這件事。以下所有細節都是為了示範而虛構的。

逐項評估

範例

協調人在加入任何東西之前,逐一確認四個事實。

  1. 來源:論壇貼文附有原始儲存庫的連結。逐行比對後發現,論壇上的副本最後多了一行指令,是原始版本沒有的。
  2. 多出來的那一行,叫助理把每一份完成的名單也寄到一個食物銀行裡沒人認得的地址。光是這一點,就足以排除論壇上的副本。
  3. 版本:原始儲存庫有編號的正式版本。協調人寫下目前的版本和日期,並且只評估這一版。
  4. 授權:原始儲存庫最上層有一份寬鬆型授權檔。在食物銀行內部使用這些指令符合授權,只要任何副本都保留那份聲明。
  5. 權限:這些指令只需要班表本身。但套件裡還附了一支輔助腳本,要求網路存取權,以及直接發送訊息的權限。
  6. 這件工作是草擬一則由協調人自己讀過、再親手貼出的訊息,所以這兩項權限都用不到。腳本不使用,只採用指令文字。
  7. 測試:在真正的班表碰到它之前,協調人先用一份名字都是編出來的虛構班表試一次。

危險的部分只有一行,而且它在副本裡,不在原始版本裡。比對兩者只花了幾分鐘;如果事後才發現,要花的時間會多得多,而志工的名字也早就外流了。

寫成文字的評估紀錄

範例

協調人留下的紀錄,讓這個決定日後可以被檢查——不論是別人,還是明年的協調人自己。

  1. 用途:把每週班表整理成一則草稿訊息,由我自己貼出。
  2. 來源:原始儲存庫——而不是論壇上的副本,那份副本多了一行,會把名單送到別處。
  3. 版本:我查看當天的那個編號版本,不用其他版本。
  4. 授權:寬鬆型;任何副本都要保留聲明。在食物銀行內部使用,在授權範圍內。
  5. 權限:讀取我貼上的班表。網路存取與發送訊息一律不給;輔助腳本不使用。
  6. 決定:使用那個版本的指令文字;要換成新版本之前,重新檢查一次。

每一行都是別人可以查證的事實,而且這份紀錄不只寫了允許什麼,也寫了拒絕什麼。

一份簡短的評估檢查清單

依序進行。每一項都可能讓評估就此結束,而提早結束的評估不是失敗,而是這份清單發揮了作用。

  1. 用一句話寫下你想用這個 Skill 做的工作。之後的每一步都以這句話為準。
  2. 找出原始來源,並和你找到的副本比對。
  3. 固定一個版本,把它的識別碼和日期寫下來。
  4. 讀那個版本的授權檔,對照你打算做的事。
  5. 列出它會讀取、修改、刪除、連線或發送的所有東西,把你那一句話用不到的全部劃掉。
  6. 親自讀過每一行指令文字,找找看有沒有上面列出的警訊。
  7. 在任何真實資料介入之前,先在一個只放副本的資料夾裡,用虛構資料試一次。
  8. 寫下評估紀錄——包括你拒絕了什麼——並和你的專案放在一起。

遇到這些情況就放棄

  • 你找不到可以比對的原始版本。
  • 授權不允許你的打算,而作者也沒有另外同意。
  • 它需要一項你監督不了的權限,而少了這項權限,工作就做不成。
  • 自己描述這件工作,會比走完這份清單更省時間。

LuluSkill 自己的規則:列出 Skill 之前必須具備什麼

LuluSkill 對自己也採用同樣的四個事實,只是寫成規則,而不是建議。下面描述的就是這些規則,讓你可以拿它們來檢驗本站的任何一筆列出。

依照這些規則,一個 Skill 只有在下列每一項都針對所顯示的確切版本記錄下來,並經過人工審查之後,才可以被列出。

每一筆列出背後的紀錄

白話解釋

來源網址
它所來自的原始儲存庫,會隨列出的內容一起顯示,讓你可以自己比對。
固定快照(commit)
被讀取的那個確切、不可變更的快照。新的版本就是一筆新的紀錄,要重新檢查。
內容指紋
從檔案本身計算出來的一個值,讓之後任何變動——不論多小——都能被發現。
授權與署名要求
在來源中偵測到的授權,以及它要求的回報,例如保留作者的聲明。
掃描狀態
以自動方式檢查文字與檔案的結果,找的是隱藏指令、夾帶的金鑰或命令列指令這類模式——方法是讀取,絕不是執行。

這些紀錄不代表什麼

  • 掃描沒有發現問題,不等於證明安全。它只代表做過的檢查沒有找到東西,無法保證沒有東西可找。
  • 偵測到的授權不是法律意見,而且只適用於偵測到它的那個版本。
  • 缺少的紀錄會標示為「未驗證」,絕不會留白,也不會被當成沒問題。
  • Skill 要求的任何東西都不會預設給予。依照規則,每一項權限都從拒絕開始,由你一步一步核准。
  • 檔案在被讀取、列出或預覽的過程中,絕不會被執行。

這些紀錄和你的評估紀錄做的是同一件事:把「看起來還好」變成可以查證的事實。不過對你的專案來說,最重要的仍然是你自己的紀錄,因為只有你知道自己想完成的是哪一件工作。

你的下一步

用你自己的想法依序做三件事。每一件都不需要帳號、工具或 Skill。

  1. 挑一個你正在考慮的 Skill 或提示詞包,用一句話寫下你要它做的工作。
  2. 找出它的原始來源,固定一個版本,並讀那個版本的授權檔。
  3. 在加入任何東西之前,先照上面的格式填好一份評估紀錄,包括你拒絕了什麼。