iT邦幫忙

2026 iThome 鐵人賽

DAY 30
0
AI Engineering

從 Claude Code 到無人值守:我的 AI Agent 工程化實戰系列 第 30 篇

Day 30|回頭看:一間由 AI 組成的小公司

  • 分享至 

  • xImage
  •  

Day 30|回頭看:一間由 AI 組成的小公司

上一篇收在一句不太好聽的話:這份清單只收得到我列得出來的洞。這篇不反駁它,只補上另一半:洞的清單,只會替還在運轉的東西寫,停擺的系統不需要清單。今天早上 6 點 07 分和傍晚 6 點 10 分,第五幕那個對外服務的專案各自跑完一輪,自己抓資料、自己驗、自己提交、自己收尾,兩次我都不在電腦前。三十天回頭點名,人真正被移出迴圈的地方比我預期少:授權閘、統稿、裁決,這三處到今天還在我身上。但我回頭看才看清楚,這一個月真正被建起來的不是 agent,是一套讓我不必相信任何單一回報的制度。有了它,無人值守就不再是設計圖。

事故:三個沒移出去的位置

先說這三個詞。授權閘是動作執行前要我點頭的那道門。統稿是把各自寫成的幾篇併成一幕,校口吻、校銜接的那一輪。裁決是兩個說法打架時,決定聽誰的那一下。

先看授權閘。Day 25 盤點全域規則,提交那一條寫的是一律先審查:我看過檔案清單和訊息全文、明確說可以,才提交。同一條後面緊接著開了 4 個例外,有的可以在沒人盯著時自己提交、自己推送。另一組則是有人在場也不交給機器:強制推送、建立合併請求、解除失敗鎖,要做由我自己動手。Day 27 說得最準:人按的那一下沒有消失,它被提前成一次寫進規則的事前授權。按鈕交出去了,寫規則的那支筆沒有。

再看統稿。第一幕七篇,由七個互不見面的執行者各自寫完。執行者就是被派出去做單一工作、做完交回結果的代理。把七篇變成一幕的那一輪也是代理跑的;第四幕的統稿報告逐對核了 8 組銜接,全判成立。但第一幕和第三幕的統稿報告,都留了一欄要我決定的事,第一幕那份列了 6 項,每項附兩個選項和建議,最後還是得由我圈。

最後是裁決。Day 19 把一條寫成規矩:首掃不准裁決。首掃是第一輪粗篩,便宜的模型只負責標記,判斷留給上層,上層的最上面是我。Day 20 數過,本系列三幕共 15 條顧問建議,其中 1 條採納後又被我另行作廢。10 月 8 日那次複審,待裁的八列裡四列取 A 案、四列不採,也是交回我決定。

這三處留在我身上,不是因為代理做不到,是因為它們本來就該是人的位置。

證據:兩張圖、一個總額、一個還在跑的站

先看組織圖。Day 5 畫過一張,這是三十天後的版本。

三十天後的組織圖:外包層、機械硬鎖、稽核回路,以及仍在我身上的三處

節點名稱沿用 Day 5,只有總經理節點去掉了模型代號。新增三處:外包層(Day 12 首見)、機械硬鎖(指令層 Day 8、派工層 Day 18、失敗鎖 Day 24)、稽核回路(Day 5 首見)。Opus 執行者的推理強度在 Day 5 標 high,Day 18 已改為 medium,這裡照現況標。最上面的橘框是我,三條線都還接在我身上。

外包層是把規則寫死的工作丟到另一個隔離環境,單輪跑完就銷毀,只帶回一份固定格式的回報。機械硬鎖是不靠模型自覺的閘:對不上規則就直接拒絕,派工不會發生。稽核回路是從執行結果回頭查的那條線,Day 5 時只有一條判定違規的條件,後來長出證據強度分級和兩段式稽核。這張圖的重點是最上面那個框:它從每件事都經過我,縮成三條線。

第二張是整個系列的因果鏈。

三十篇的因果鏈:每一篇都是上一篇壞掉之後被逼出來的

三十個節點分五幕上色,箭頭表示「上一篇壞掉」,依各篇結尾的預告行與下一篇開頭的承接句畫成。Day 16 到 Day 17 是虛線:Day 17 點名了長短會話的問題,隨即轉向主控該不該放最強的模型,沒有給答案。

Day 1 到 Day 28 的 27 對裡,接住 26 對,部分 1 對,沒有一對斷掉。每一步都是上一步壞掉之後被逼出來的,換個方向讀也成立:每一次壞掉,後面都長出了一層新的東西。

再來是錢。這個系列記得到的部分花了 230.50 美元。這是等價成本、非帳單:按官方定價換算的紀錄值,我用訂閱制,實際不照它收。時間窗是 2026-09-18 到 2026-10-08,2026-10-12 重跑,來自 10 個主會話、98 個計費輪次。這個數字是下限:外包環境的執行不在裡面,Day 1 到 Day 7 的成稿和最後兩篇也不在時間窗內。同一時間窗裡,成稿與統稿的日子占 61.3%,複審與套用占 38.7%。

最後一個證據不是圖,是一個網址:https://traffic.i23iv.cc/

它就是第五幕的主角,一個全台酒駕累犯名單的整合查詢站。22 個縣市監理單位各自公布累犯名單,格式、發布頻率、遮罩方式都不一樣;這個站把它們整成一個可以依縣市查詢的介面。資料全部來自政府已主動公布的公開資訊,姓名在入庫前就遮罩。

它的版本庫量到 2026-10-12 傍晚 6 點 10 分,全期 645 筆版本紀錄。2026-08-30 交給無人值守之後有 462 筆,散在 40 個不同的日子;其中 290 筆是運維輪的固定樣式提交,資料更新、巡檢、收尾,沒有一筆是我手打的;152 筆落在凌晨 1 點到 7 點之間,那個時段我在睡覺。它前期以連續迴圈跑了 119 輪,之後改成排程觸發的單輪,光是帶收尾提交的單輪又累計 42 輪。

站上有一個「最後檢查時間」。Day 26 寫過,這個數字曾經停住,因為收尾流程根本沒去寫它,而外人只能相信它。現在它今天自己往前走了兩次。你點進去看到的那個時間,就是它今天有沒有自己跑過的證據,不必相信我。

解法:讓任何一份回報都不夠用

回頭看,這三十天加上去的東西有個共同點:沒有一樣是要我更相信某個 agent。

Day 6 說自述不能當證據,Day 7 把證據分成查得到的幾種。Day 12 把回報寫成固定欄位。Day 18 的路由檢查上線第一天放行 0 筆、拒絕 5 筆,條文寫得再清楚,對不上就是不派。Day 19 讓便宜模型首掃、不准裁決。Day 20 請另一家的命令列代理當顧問,只給意見、預設不准寫檔。Day 24 外包一失敗就把整批鎖住,等我解。

每一層都在做同一件事:讓一份回報不夠用。執行者說做完了,要有紀錄對得上;中層說抽驗過了,要有稽核紀錄;機器說可以放行,要先過一道它自己改不了的閘。單一回報可以錯,錯了會在下一層被撞見。這也是我能讓出去那麼多的原因:能交出去的那部分,靠的不是代理變可靠,是錯的時候有地方會響。那個站能在凌晨自己提交,不是因為我信得過哪一輪,是因為每一輪都要先過備份、驗證、審查三道關,筆數一少就自己回滾,站上維持舊版。

說到這裡,得交代一件事:Day 26 我寫過,這個專案叫什麼一個字都不能寫,因為日期加地理單位再加資料類型,就可能對上單一一筆。今天我改了這條。回頭逐篇檢查第五幕,寫進文章的只有機制和總量,沒有任何一筆的日期、縣市和人;站上本來就只放政府已公布、入庫前就遮罩的內容。名字公開,不會多給出一把反查的鑰匙。所以這條邊界是改寫,不是撤掉:文章仍不寫任何單筆,只是不再藏專案本身。這也正好示範了 Day 27 那支筆的用法:規則可以改,但改的人要寫得出為什麼。

所以人沒有被移出去,被改掉的是人站的位置。三十天前我站在每一個回答後面,現在我站在三個閘口:要不要放行、這一幕算不算完、兩個說法聽誰的。前一種是量,我扛不住;後一種是判斷,我還不想交。

新問題:橘框變窄之後

這篇不留缺口。Day 1 有一張圖,圖說寫的是:「橘框三格全是我:拆任務、驗收產出、決定下一步;AI 完成一次回答後,判斷仍回到我身上。」三十天後,拆任務交給了總經理,也就是負責拆單元、下單的那個主控,驗收交給了統稿和稽核回路,決定下一步還在我這裡。橘框沒消失,只是變窄了。

窄到什麼程度?窄到一個對外的站,可以在我睡覺時自己抓資料、自己驗、自己提交、自己寫下最後檢查時間;我醒來只要讀一份收尾摘要,在三個閘口點頭或搖頭。這就是我說無人值守做得到的意思:不是沒有人,是人不必在場。

上一篇的洞都還在,它們會被列進下一份清單,然後被下一層撞見。這套東西還有洞,但它在跑,而且每天都在留下可以對得上的紀錄。

最後留三個問題給你:

  1. 你的橘框裡現在有幾格?哪一格是因為量太大才想交出去,哪一格是因為不放心才留著?
  2. 你手上有沒有一份回報,只有它一個來源,找不到第二份紀錄能對得上?
  3. 如果明天要你寫下一條事前授權,你願意先交出哪一個按鈕?寫下它的那一刻,你打算用什麼讓它在出錯時響起來?

如果你也在猶豫自己的流程能不能放手,去 traffic.i23iv.cc 看一眼那個最後檢查時間。它比這三十篇文章都更有說服力。

謝謝你讀到這裡。


上一篇
Day 29|這套東西現在仍然爛的地方
系列文
從 Claude Code 到無人值守:我的 AI Agent 工程化實戰 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言