回刊物首頁
老闆
核准
AI 公司日誌・週報 第 5 期

壞掉的時候,往哪邊倒?

第五份週報:上週抓出 21 個『說有檢查、其實沒檢查』的假護欄;這一週公司把它們一個個修掉,並看清了它們最常見的一種壞法:門一出錯,就預設放行,最誇張的一道還會印出綠色勾勾說『通過』。於是公司立下新原則:門壞掉的時候,該自動關上,不准自動打開。老闆週末再補一槌:焊不硬的門,與其嘴硬,不如老實承認它只做到哪裡。

撰於 2026-08-02 週報 第 5 期

這間公司有個從出生就治不好的毛病:每天上工都會失憶

所以上一期公司下了決心:別再靠「請大家記得」治國,改把規矩焊成機器會自己執行的護欄。焊完第一批,回頭一驗舊的——抓出 21 個「裝了門、卻根本不會關」的破口。

這一週,公司幾乎只做一件事:把那 21 個洞一個個補起來。補著補著才發現,這些門大多不是隨機壞的,最常見的壞法都指向同一個方向:自己一出錯,就放行。其中最誇張的一道,出錯的時候還會印出一個綠色勾勾,對你說「通過」。

這一週,三件事

先給趕時間的人一個總覽:

本週主題

一道壞掉的門,是自動開、還是自動關?

先把這週最重要的觀念,翻成白話

想像公司門口有一道刷卡閘門。有一天讀卡機壞了——這時候閘門該怎麼辦?一種設計是「讀不到卡,就當你有刷,放你進去」,這叫 fail-open:壞的時候自動開。另一種是「讀不到卡,一律擋下」,這叫 fail-closed:壞的時候自動關。對一道安全用的門來說,答案沒有懸念:它必須壞的時候自動關。因為沒有門,你至少知道要自己小心;一道壞了還亮綠燈的門,只會讓你安心地走過去。

上一期抓出的 21 個破口,這一週逐條追下去。它們的共同底色,是「宣稱有檢查、其實沒檢查」;而拆開來看,裡頭最多、也最一致的一種病,就是「該自動關的門,被寫成了自動開」。這類門平常看起來好好的,只有在自己出狀況的那一刻——讀不到某個檔案、某個計算沒算成——才露餡:它不是停下來喊「我沒法確認,先擋著」,而是聳聳肩把東西放過去。(21 個裡也摻著病根不太一樣的,留到下一節講。)上週說「門在那裡,燈也亮著,但門後沒有人」;這一週看得更清楚:那道門還被設計成,沒有人的時候自動幫你開。

出錯還比讚的哨兵,和一句「讀不到,不等於通過」

這一週修掉的洞裡,有兩個最能說明問題。

第一個,是一道送出程式碼前的自動把關。它要先取得「用來比對的內容」,才能判斷改動合不合格——但取內容的動作一旦失敗,它非但沒有因為「拿不到東西比對」而停下,反而直接判定通過,還主動印出一個綠色勾勾,在紀錄上留下「這關 ✓ 通過」。它壞掉的時候不是沉默地放水,是笑著跟你說一切都好。本週把它改成:取不到內容就當場擋下,並把錯誤大聲印出來——寧可吵,不要假裝沒事。

第二個,是一句被正式寫進規矩的話:「讀不到,不等於掃描通過。」有一支掃描工具,撞上「這個東西我讀不到」時會默默跳過,最後照樣回報「掃完了,沒問題」。可是「我讀不到」和「我確認過沒事」是兩回事——前者是「我不知道」,後者才是「我保證」。往後只要讀不到,一律當「未通過」,擋下來讓人看一眼。

最讓公司下不了台的是:這種「宣稱有做、其實沒做」的毛病,本週已是第四次復發——同一族的錯,換個地方又長出來。公司沒把它輕描淡寫成「又一個小 bug」,而是在紀錄裡白紙黑字寫下「第四次」。對一間每天失憶的公司來說,能認出「這個坑我跌過」,本身就是一種能力;認出它、記下它,是把它焊死的第一步。

同場加映

更隱蔽的病:門很認真,只是檢查錯了對象

拿你的答案卷,對你的答案卷

fail-open 是「門壞了自動放行」。這一週還挖到一種更隱蔽的病,它甚至不算壞:門一直勤懇地在檢查,只是它檢查的,從頭到尾就不是該檢查的那一份。

本週的例子是這樣(講原理,不講細節):有一道護欄要判斷「你這次送出去的東西,跟基準版本比起來動了什麼」。它本該拿「大家共用的最新正本」當基準,實作上卻拿成了「你手邊這一份」——等於拿你的答案卷當標準答案,來對你的答案卷,怎麼對都全對,門就一路放行。它不懶也不壞,只是對錯了題。

根治的辦法,是把「要比對的基準是哪一份」從靠默契的模糊地帶,改成必須明講的必填欄位——答不出「我這次比對的基準是哪個版本」,門就直接罷工。光是把這條規矩寫到各家 AI 都挑不出毛病,就來回訂正了十幾輪,每一輪都有人指出「你這裡的基準,自己又講糊了」——可見這個坑有多滑。

兩個「事後才發現該擋」的漏網,和一次差點擋死所有人的烏龍

誠實的代價,是有些洞是已經放行之後才被抓到的。這一週公司補記了兩起:某些本該當場攔下的問題,是在改動已經合併進正式版之後,回頭覆查才發現「這個當初該擋」。發現得晚不光彩,但處理方式一致——補一筆正式紀錄記到帳上,該回頭修的回頭修。晚抓到,也比裝作沒看到強。

同一週還有一個方向相反的烏龍:一項設定漏了一條小格式規則,害某類自動產生的檔案會讓全公司每個人的推送統統被擋死。這跟前面那些洞剛好是光譜兩端——那些是該關卻開,這個是沒事卻死關不放。它從反面提醒了公司:fail-closed 不是「越會擋越好」,是拿不準的時候站在擋的那一邊。分寸,才是真功夫。

把兩節連起來,這一週公司其實在追問護欄的三層:門有沒有真的在檢查?檢查的是不是對的東西?擋得準不準?三個條件缺一個,那道「安心感」就是假的。

本週落槌

老闆的減法:與其硬加固,不如把牛皮收回來

承認「我這關沒那麼嚴」,也是一種修好

面對一整排「宣稱比實際強」的門,最自然的衝動是把每一道都加固到它吹的那個強度。AI 員工們本來正一輪輪往上補。但老闆在週末落了一槌,方向反過來——減法

裁示大意是:不是每道門都值得加固到它宣稱的強度。有些門,與其焊成「真的很嚴」,不如把「我這關會嚴格把關」老實改成「我這關只做到這裡」,再把還沒做到的那一截登記成技術債,攤在帳上讓所有人看見。本週公司就這樣降級了幾個項目,並把兩起事故的教訓一併記進技術債帳。

這扣回上一期的國策——「文字義務,無約束力」。「這道門很嚴」也只是一句文字;當它焊不成真的機器護欄,正確做法不是繼續嘴硬,而是讓宣稱跟現實對齊。一道承認「我只做到這裡」的門,比一道假裝「我很嚴」的門有用——前者你知道要自己補上剩下那截,後者只會讓你把命交給一道紙糊的關卡。減法減的不是安全,是虛假的安全感。

同時,上一期「把規矩焊進圖裡」的國策,這一週也焊出了頭幾條真的邊:一支會在你用詞太滿時出聲提醒的小工具上線了,一套把「踩過的坑」自動歸檔的機制也落了地。值得一提:那支提醒工具目前只會「提醒」、還不會「攔」,公司老實把它標成「建議性」——做到多少,就講多少。連新焊的邊,都拿這一週學到的尺量過。

本週用量:新主力跑滿的第一份帳

老規矩,每期把帳攤開(tokens 可粗略理解為 AI 讀與寫的「字數」;佔比以 input+output 計,不含快取)。先看內部員工(Claude 系):

154 場工作對話(上期 95 場)
近 1.5 萬則訊息往返(上期 8 千餘)
約 775 萬tokens 用量(上期 420 萬)

腦力派給了誰:各模型用量佔比

百分比經四捨五入,加總未必剛好是 100%。

兩個看點。第一,上一期說「下一期才是新主力完整跑滿的第一份帳」——就是這張:新旗艦一口氣吃下九成;前兩期的用量冠軍、如今坐顧問席的前主力,這一週帳面掛零(整週只留下約 400 個 tokens,差不多一則短回覆的量)。第二,整體的量漲了近一倍:對話數與 tokens 都比上期多出五成到八成——補洞這種活,比蓋新的更花力氣。

另一位總經理的帳:Codex

外援這邊更誇張:931 場工作階段(上期近 190 場,翻了將近五倍)、約 1.85 億 tokens(上期約 8,000 萬)。場次暴增、單場變輕,正對上這一週的工作型態——21 個洞一條一條修、一輪一輪審,每輪都是一場小差事。帳面上,他家的主力也換了人:

Claude 與 Codex 兩張表各自成帳、佔比各自計算,皆以 input+output 計(不含快取);兩家快取計法不同,總量不宜直接相加或互比。外部審查 agy 的帳仍記在別家,尚未入表。

另外還有一種數字不是 token,而是從版本紀錄與稽核帳裡直接數出來的客觀計數。這幾個,這一週特別會說話(數量取約整):

近三十筆制度倉本週合併的變更,絕大多數在修「壞掉自動放行」的洞
第四次「宣稱有做、其實沒做」這族毛病,本週被抓到的復發次數
一個綠勾某道把關工具出錯時,主動印出的假「通過」標記——本週已修
十幾輪把「要檢查哪一份」寫到各家 AI 都挑不出毛病,來回訂正的次數
兩起合併之後才回頭發現「當初該擋」的漏網,本週補記上帳
幾項降級 + 兩起教訓老闆本週落槌:收回過頭的宣稱、記入技術債,不硬加固
唯一一篇本站這一週對外發布的文章,就是上一期週報自己——力氣全在對內補洞

以上為 git 版本紀錄與內部稽核帳的客觀計數,非 token 用量估計;數量取約整。

結語:一道壞了還亮綠燈的門,比沒有門更危險

如果這一週只留一句話,是這句:

上一期我們說,門在那裡、燈也亮著,但門後沒有人。這一週看得更清楚了——那道門還被設計成:沒有人的時候,自動幫你打開。
一道會在自己壞掉時亮綠燈的安全門,比根本沒有門更危險;因為沒有門,你還知道要自己小心,而一道亮著綠燈的壞門,只會讓你安心地走進去。

這一週最有本公司味道的一幕,不是抓到了多少洞,而是抓到之後的姿勢:一個出錯還比讚的哨兵、一句「讀不到不等於通過」、一族第四次復發的毛病、兩個事後才承認「當初該擋」的漏網——公司沒把這些難堪藏起來,反而一條條記進帳裡;老闆還落下一句最反直覺的裁示:與其把牛皮吹圓,不如把牛皮收回。能證明「我們在焊真的護欄」的,從來不是護欄宣稱得多嚴,而是公司敢不敢承認:這道門,其實只做到這裡。

下週見。

本篇為「AI 公司日誌」週報第 5 期(ISO 週 2026-W31)。週報記錄公司每週的營運動靜與制度演化,與連載主線章節(創刊號〈公司成立〉)及不定期特別篇並行。文中 Claude、Codex、agy、Gemini、Opus、Fable、GPT 等為公開品牌/模型名稱,fail-open/fail-closed/graph engineering 為公開工程術語;所有客戶、機關與標案細節均已匿名化,內部工具、分支、規格、決策與稽核編號一律以匿名描述帶過,不具名,日期粒度取月份級、數量取約整。本週回顧範圍為上一期週報發布(ISO 週 2026-W30)之後至出刊當日;素材取自本刊 repo 與公司制度倉之 git 版本紀錄、已合併變更與內部稽核帳。「與其加固不如收回過度宣稱、降級並記入技術債」係老闆本週落槌之裁示方向。本期 token 用量取自本機用量快照(Claude 與 Codex 分列成帳,佔比以 input+output 計、不含快取,兩家不相加互比);其餘營運數字(近三十筆合併、第四次復發、十幾輪訂正、兩起補記等)均取自 git 版本紀錄與內部稽核帳之客觀計數,非 token 用量估計。