iT邦幫忙

2026 iThome 鐵人賽

DAY 1
0

https://ithelp.ithome.com.tw/upload/images/20260807/20181284qRamJq9gd3.png
1962,老頭一個,中文系畢業,愛玩電腦。感謝 AI 時代的來臨,許多過往遙不可及的夢想,可以逐步實現。

我的系統裡有四台實體的虛擬化主機 ,跑著三十幾台虛擬機。上面裝了我自己架的 LLM伺服器(跑在本機的顯示卡上)、檢索 (RAG) 與文字辨識服務 (OCR) 、語音合成與辨識、郵件伺服器、客戶關係管理系統,還有名片辨識和影片渲染平台。對外的網域與網域名稱伺服器也是親手手刻的。

這些不是週末拿出來玩的玩具,是每天真的在用的。而維運它們的,就我一個。沒有站台工程師,沒有值班表,白天我還得去上自己的正職。

這些,全靠 Claude Code 的支持。

這個系列從頭到尾都在用同一個工具:一個跑在終端機裡的程式設計代理人,從 Claude Code 4.5、4.7 到 5.0 ,從 sonnet、opus 到 fable,。它不是聊天視窗,它可以直接讀寫檔案、執行指令,甚至連到機隊裡的其他機器去操作。我不把它當萬能的神明,我把它當同事。差別在於我交出去的任務變了——以前是「幫我寫一段程式」,寫完自己貼上去;現在是把整台機器、整個服務、整套備份策略交給它,我在旁邊看著、驗證,在它做錯的時候把它拉回來。

這個系列要記錄這段旅程。三十天,每天一篇,不是教學文,是實錄。每一篇都會附上實際下的指令原文、做出來的東西,以及那天翻車的事件。我們會從網域、固定位址、虛擬化這些地基開始,中段講大語言模型 LLM、語音、檢索辨識、控制台與備份,後段串起文件庫、知識庫、寫作、代理人、通訊軟體、郵件、客戶關係、名片、收發件、語音客服,最後兩天讓 AI 去攻擊我自己蓋的系統,並公開三十天的總帳。

先講四件出過的事。有兩件是系統自己爛掉,有一件,是這個「同事」親手闖的禍。

事故一發生在機隊的備份上。有幾台機器一直沒有完整的映像備份,出事就等於全沒了。排了備份工作,工具跑完回報「Finished」。隔天順手做了完整性驗證,結果解不開。更麻煩的是,備份工具自帶的驗證竟然會過!結果是要用更嚴格的壓縮檔驗證才能抓到錯誤。從那之後,備完一定多跑一次驗證。排程有跑,不等於事情有做成。

另一台機器,網域名稱伺服器 (DNS Server),對全世界開著門。某次做外部曝險檢查,發現它允許任何人執行「區域轉送」。只要一個指令,整個網域的全部記錄可以被一次抄光,一百多筆,包含所有內部服務的子網域名稱。等於把自己的服務清單公開送人。最麻煩的地方在於,從內部網路測完全測不出來。內部的網路位址轉換會把請求繞回自己,看起來一切正常。要真的從外面的線路打進來,才看得見那個洞。同一台機器更早之前還有另一個問題:它會回答不屬於自己的查詢,一個小小的請求換來十幾倍大的回應,這種機器會被拿去當成攻擊的放大器。還好有發現。

系統裡發生過:辦公室的收發件辨識。拍一張快遞單,送去雲端做視覺辨識,自動建檔,是早期建的,所以沒接本地端LLM。我的寫作、知識庫、翻譯、代理人這些服務都有接本地模型——雲端掛了只是降級,不會停。只有這一台,忘了接。後來輪換金鑰的時候:舊金鑰刪掉、新的還沒放上去,那段時間這個功能整個停擺,沒有任何錯誤提示,使用者只覺得「怎麼今天不會動」。解決方案早就存在,只是沒有用上。這個,也證明:本地端 LLM 的重要性。你接雲端,雲端一停,所有服務全斷,由不得你。

AI 自己也會出包,而且是安靜地出包。有一台機器專門跑對話代理人,接了通訊軟體,幫我記待辦、排提醒,背後是自架的LLM模型。這東西出過幾個很有代表性,超經典的包:排程的時間戳被寫成根本不存在的日期:七月五十號;一次失控的生成,連續吐了兩萬多個字才被攔下來。最嚴重的一次是寫入待辦清單時少帶了一個「合併」的參數,單筆寫入變成整份覆蓋,一整份清單就這樣被洗掉了。沒有錯誤訊息,沒有告警,就是資料不見了,過幾天才發現。

解決方式不是去更換模型,而是在中間那層轉發服務動手:強制補上那個參數、把最大輸出量壓住、把當下時間注入進去讓它不用自己猜。與其期待 AI 不出錯,不如認定它一定會出錯,然後在它外面架防護網。 在有限的資源下,用防護及規定,把堪用的 LLM 調教成可用的模型,簡單講:把笨模型調教成可以按規定辦事的工具。

這就是我用 Claude Code 的方式。給目標,而非步驟。不說「先執行這個指令再執行那個」,而是「把這十台機器的核心升級,逐台驗證,有問題就停」。每台機器都有一份專屬的筆記,工具在動手之前會先讀那台機器的筆記,知道這台的雷區在哪——例如某台重開機之後有個服務不會自己回來,要手動啟動。這份筆記是長期累積的,不是每次從零開始。我隨時驗證。工具做完不等於做對,所有結果我都自己再查一次。

某次系統核心要更新,十台機器要逐台升級並重開。我讓 AI 自己規劃順序、逐台執行、每台重開後跑健康檢查、確認服務都回來了才動下一台。十台全過。但過程中也學到一件事:健康檢查的網址如果寫成對外的網域( xxx.com),在我的系統,檢查會經過反向代理 NPM、繞一圈才回到自己身上,結果驗的根本不是這台機器,是那台反向代理機器。要寫成本機位址,才是真的在問「你還活著嗎」。

成本結構很單純:硬體是一次性的,電費是持續的。因為大部分工作跑在本地模型上,成本被壓低。精確的帳單留到系列最後一天才公開。

明天,我們從最基礎的網域與固定位址開始。


下一篇
D02 AI 的記憶會過期,而且它不知道自己過期了
系列文
一個人的 IT 部門:用 Claude Code 從裸機到一整座 AI 機房2
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言