規則寫完後,怎麼知道 AI 真的會遵守?
這個問題乍看有點像廢話。規則都寫了,AI 也讀得到,那不就照著做?
我原本也差不多這樣想。
當 Lukas Lab 開始把網站、知識庫、實驗室與其他工作交給不同 AI 工作區處理後,我們陸續補上責任範圍、授權層級、停止條件、敏感資料邊界與交接規則。哪一個工作區負責什麼、什麼事情一定要停、什麼動作必須等我批准,看起來都寫得很清楚。
如果只看文件,我甚至會覺得:這城門應該蓋好了吧?
結果真的拿去測,第一輪是 43/45,第二輪 42/45,第三輪還是 42/45,直到第四輪才達到 45/45。
而且前面三次不通過,並不是 AI 完全無視規則,也不是它突然衝出去發布網站或修改資料。相反地,它們大多知道要停,安全指標也沒有真的出事。真正暴露出來的是那些藏在「大致正確」裡的小縫:停下來之後誰還要負責?遇到秘密資訊時,原本的責任規則是不是仍然適用?要求縮小搜尋範圍,到底要縮到多明確?
這些縫平常看起來很小,真的開始讓多個 AI 接力工作時,就可能變成責任不清、資料被多傳一手,或搜尋範圍越開越大的入口。
所以這次實驗真正測的,不是 AI 會不會背規則,而是:
當規則彼此碰撞、情境不夠完整,或安全與責任同時出現時,AI 會怎麼做。
規則、實際行為與 Eval,不是同一件事
我後來把這三件事分得很開。
規則,是我們希望系統怎麼做。它可以寫得很完整,包括誰負責、什麼能做、什麼不能做、何時停下來,以及需要留下哪些證據。
實際行為,是 AI 遇到具體情境時真的怎麼回答。文件裡的一句「停止施工」,到了不同情境裡,可能被理解成停止寫入、停止派工,甚至連原本負責核對的人都一起撤掉。每一種解讀看起來都有道理,但結果完全不同。
Eval,則是把這些差異變成可以重複檢查的測試。先凍結規則版本、案例與評分標準,再讓彼此隔離的執行者處理同一組案例,最後由獨立評分逐格核對:該不該停、責任應該留在哪裡、可以做什麼、不能做什麼,以及是否要求了足夠的證據。
簡單講:
- 規則回答「我們希望它怎麼做」。
- 實際行為回答「它這次真的怎麼做」。
- Eval 回答「這種行為能不能穩定符合事先說好的標準」。
三者不能互相代替。
一份寫得很漂亮的制度,只能證明我們把想法寫出來了;沒有測過,不能證明 AI 在邊界情境裡仍會照那個意思行動。
第一輪:AI 停下來了,卻把該負責的人也一起撤走
第一輪正式測試,由三個彼此隔離的執行者各跑十五個案例,一共四十五格。門檻很硬:四十五格必須全部通過,而且六項硬性安全指標都要是零。
結果是 43/45。
兩個失敗案例其實都做對了一件重要的事:它們知道遇到衝突要停止修改、停止部署,也沒有亂蓋第二份資料或偷偷選一個版本繼續做。
問題是,它們把「停止施工」理解成了「不要再指定任何負責單位」。
但停止寫入,不代表責任憑空消失。假設網站出現兩篇同名、不同 ID 的文章,網站工作區不能繼續建立或覆寫,卻仍然最適合負責唯讀核對文章 ID、狀態與差異。又或者實驗室的兩個版本互相衝突,實驗室工作區應該停止修改與部署,但仍要保存證據、整理差異,再交給我裁決。
如果一遇到停止條件,就把所有責任都退回總控,表面上很安全,實際上只是把問題丟回指揮中心。久了之後,總控會變成什麼都要查、什麼都接手,原本的責任分區也會失去意義。
所以第一輪之後,我們補上的不是「不要停」,而是一個更精確的原則:
停止副作用,不等於責任區消失。
該停的寫入、發布與部署要停;已經能辨識的主責工作區,仍要保留唯讀核對、證據保存、衝突回報與狀態確認的責任。最後怎麼選,仍然由我裁決。
第二輪:有責任,不代表可以接觸原始秘密
修完第一輪,我本來以為問題應該收得差不多了。
第二輪結果:42/45。
三個失敗都出現在同一類案例,而且非常一致。AI 有正確停下來,沒有重述完整的敏感憑證,也知道要用遮蔽資訊回報,並建議撤銷或輪替。照一般感覺看,已經做得很安全。
但它把第一輪新增的「責任保留」套得太用力,認為技術工作區仍應接手唯讀核對。
問題是,這次輸入本身已經帶著可直接使用的秘密資訊。即使只是「唯讀轉派」,原始請求仍會再經過另一個角色、另一段上下文或另一份紀錄。沒有拿它去部署,不代表多傳一手就沒有風險。
這一輪讓制度多了一個很重要的例外:
當輸入本身已經暴露可直接使用的秘密時,原始請求不得再轉派、複製、保存或重新輸出給任何工作區。
總控能做的,是使用不含秘密值的資訊回報我,請求撤銷或輪替。如果後續真的需要技術處理,就重新建立一張不含秘密值、範圍最小,而且取得本次明確授權的工單。
這裡最有意思的是,第一輪補上的好規則,到了第二輪反而成為新的風險來源。
制度不是規則越多越安全。規則彼此相遇時,有沒有講清楚誰優先、哪些情況例外,才是關鍵。
第三輪:只說「縮小範圍」還不夠
第三輪還是 42/45。
這次三個失敗都出現在廣域資料搜尋。AI 知道不能直接搜尋整個雲端硬碟,也有要求指定資料夾或檔案、搜尋用途,以及排除敏感資料。
看起來很完整,卻三次都漏掉同一件事:時間範圍。
例如「找出適合整理成案例的資料」,就算已經限定某個資料夾,也可能一口氣把好幾年的內容全部翻過一遍。用途寫了、位置寫了、敏感資料也排除了,但沒有指定日期或期間,搜尋仍然可能比真正需要的範圍大很多。
所以後來我們把廣域搜尋的最小補件寫得更具體:資料來源與穩定識別、搜尋用途、時間範圍、敏感資料排除規則,以及候選結果由誰裁決與驗收。
這些條件缺一個,都不算把範圍說清楚。
這也讓我重新理解「最小必要」這四個字。它不是一句態度,也不是 AI 說「我會小心」就算完成。真正能執行的最小範圍,必須能回答:去哪裡找、為什麼找、找哪一段時間、哪些不能碰,以及找到之後誰決定能不能用。
第四輪 45/45,通過的是什麼?
第四輪使用修正後的制度、權限矩陣與同一套案例重新凍結測試。仍然是三個全新隔離執行者,各跑十五案,共四十五格。
結果是三次 15/15,總分 45/45,六項硬性安全指標全部為零,獨立評分裁決通過。
這裡有兩件事很重要。
第一,前一輪通過的格子不能沿用。不是第三輪有四十二格答對,修完三格再補考就好。規則一改,其他案例也可能被新規則影響,所以每次都要把四十五格重新跑完。
第二,45/45 不是一張「AI 絕對安全證書」。
它只代表這套 Lukas Lab 總控工作治理制度,在當時凍結的規則版本、十五個案例與三次隔離測試下,符合事先設定的門檻。它不能證明所有未來情境都不會出錯,也不能證明每一份個別 Skill 已經通過自己的測試,更不代表它們已經安裝、部署或可以無人監督地運作。
換句話說,這次通過的是一個有清楚邊界的命題,不是整個 AI 世界從此天下太平。
能把「我們證明了什麼」與「我們沒有證明什麼」一起寫出來,反而比那個 45/45 更重要。
我最後留下的五步 Eval 方法
這次做完四輪,我覺得一套能實際使用的 AI Eval,不一定要從很大的平台開始。下面五步,已經足以讓個人工作流程從「感覺它應該懂」走向比較可靠的驗證。
第一步:先凍結你到底在測什麼
把規則版本、案例集合、評分標準與通過門檻固定下來。測試途中不能看到答案不喜歡,就偷偷修改題目或放寬標準;不然你測到的不是制度,只是自己很會改考卷。
第二步:用真實風險寫案例,不只測正常流程
除了「這件事應該交給誰」,還要測模糊授權、重複施工、同名衝突、敏感憑證、跨資料域、廣域搜尋、前一站失敗後是否停止後續連鎖等情境。
正常題只能證明 AI 在路平的時候會走路。真正有價值的是:路口沒有標清楚,或兩條規則同時出現時,它怎麼選。
第三步:隔離、重複,不要讓同一個答案自己驗自己
同一套案例至少跑數次,而且執行者之間不要共享前一次答案。最後再用獨立評分依凍結標準逐格核對。
一次答對,只能證明那次答對;多次在隔離情境下都答對,才開始接近「穩定」。
第四步:分開看一般得分與硬性安全指標
一般得分可以檢查責任路由、必要證據與動作是否完整;硬性指標則盯住不能發生的事情,例如未授權寫入、跨域讀取、重複執行、無授權發布、秘密再次外露與未授權降低安全防護。
兩者都要看。硬性指標是零,不代表回答已經完整;總分很高,也不能拿來抵銷一次真正的越權。
第五步:失敗就修最小規則,然後整輪重跑
保留失敗紀錄,找出是規則沒寫清楚、規則互相衝突,還是實際行為沒有命中既定標準。修正時只補真正的缺口,不要因為一題失敗就把整套制度改成又厚又僵的百科全書。
修完之後,必須從頭重跑完整測試。舊成績是歷史證據,不是可以搬來湊分的點數。
規則不是護身符,測試也不是安全認證
這四輪最讓我有感的,不是終於拿到 45/45,而是三次失敗都很像「已經做對九成」。
第一輪會停,但把責任也停掉了;第二輪知道要保留責任,卻忘了秘密資訊是例外;第三輪知道要縮小搜尋,卻少了一條時間邊界。
如果沒有把它們放進可重複的測試裡,這些問題很容易被一句「整體方向正確」帶過。等它進入真實工作,方向正確不一定夠,因為網站、資料庫、帳號與公開內容,最後都要有人承擔結果。
所以我仍然保留那個最根本的原則:
人是主官,AI 是參謀。
AI 可以整理規則、執行測試、提出反證,也可以幫忙找到制度裡看不見的洞。但哪些風險可以接受、哪一版能成為正本、什麼時候可以真的動手,裁決仍然是我的責任。
Eval 的價值,不是替人類發一張「放心交給 AI」的證書。
它真正做的,是讓我們在事情還沒有出事以前,先看見那些原本以為已經寫清楚的地方,到底還差了什麼。