iT邦幫忙

2026 iThome 鐵人賽

DAY 1
0
Claude AI

當 AI Agent 走進風機現場:Claude × MCP × 工業維運的 30 天系列 第 1

【Day 1】AI 真的進得了工廠嗎?30 天後,我要讓 Agent 回答「照著手冊做了,還是起不來,然後呢」

  • 分享至 

  • xImage
  •  

系列:《當 AI Agent 走進風機現場:Claude × MCP × 工業維運的 30 天》
2026 iThome 鐵人賽 · Claude AI 組


四點半的通知

告警進來的時候,天還亮著。

從辦公室開到現場四十分鐘。爬上去,進機艙,關掉頭燈。代碼在螢幕上,紅色的,很清楚。

這一步從來不是問題。控制器上有,SCADA 上也有,手冊裡也查得到——那個代碼對應一段明確的處置程序:檢查某個感測器、清潔某個接點、確認某個閥件、復歸、重啟。

四個步驟。他一項一項做完。

按下復歸。

什麼都沒發生。

再試一次。還是一樣。

他看了一眼窗外。天要黑了。


這才是真正的問題

手冊回答的是「這個代碼該做什麼」。

它沒有回答 「做完了沒用,接下來怎麼辦」

而在真實的風場,第二個問題出現的頻率遠比想像中高。原因很簡單: 告警代碼是症狀,不是根因。 同一個代碼在不同工況、不同季節、不同機齡下,背後可能是完全不同的東西。手冊寫的是最常見的那一條,而你現在遇到的顯然不是最常見的那一條。

站在機艙裡的那個人,這時候腦袋裡在跑什麼?

如果他是新人,他在想要打給誰。

如果他做了二十年,他在想的是別的東西——這台機上個月是不是也跳過同一個代碼,那次最後換了什麼才好。告警跳出來的前後三十秒,哪一個先跳、哪一個是連帶的。當時風速多少、功率多少,是滿載時跳的還是低風速時跳的,這兩件事的意義完全不同。同型的另外三台機組,有沒有出現過類似狀況。

還有最後一件,也是最現實的一件:哪些事現在可以在這裡做,哪些必須停手。 天快黑了,人在高處,機組還掛著。要不要通知營運方、要不要等廠商、要不要今天就到這裡。

這些東西沒有一項在手冊裡。

它們分散在歷史紀錄、即時數值、其他機組的案例,以及那個人做了二十年累積下來的判斷。

新人得打電話問人。老手憑經驗。而系統本身,什麼都不會告訴你。

這是我做風機維運這些年一直存在的問題,也是我想用這 30 天處理的問題。


我現在問 Claude,它答不出來

我開了一個新對話,把上面那個情境原封不動貼進去:告警代碼是多少、手冊怎麼寫、我照做了、還是起不來,接下來該怎麼辦。

https://ithelp.ithome.com.tw/upload/images/20260914/201840125W25dhnLGP.png

[截圖 1-1:Claude 在沒有任何工具的情況下的回答]

它給了一段結構完整、聽起來很專業的回答。它會建議我「重新確認前述步驟是否確實執行」、「檢查是否有其他關聯告警」、「必要時聯繫原廠技術支援」。

這些話沒有錯。但任何一個站在機艙裡的人都知道,這等於什麼都沒說—— 它只是把手冊又講了一遍,然後叫我打電話。

原因不是模型不夠聰明。是它缺了五樣東西:

一、它讀不到現在的數值。 我剛剛做完處置、按了復歸,機組現在的轉速、油溫、槳距角是多少?有沒有任何一項在動?這些數字就在控制器的暫存器裡,但沒有任何管道把它交給模型。 沒有即時值,就沒辦法判斷「處置到底有沒有產生任何效果」。

二、它不知道這台機的歷史。 上一次跳同一個代碼是什麼時候、當時的根因是什麼、最後怎麼排除的。這些紀錄可能存在,但模型讀不到。

三、它沒讀過 SOP,更沒讀過 SOP 以外的東西。 手冊只寫了第一層。第二層、第三層的排除順序,藏在技術通報、維修工單、和人的經驗裡。

四、它不知道哪些動作不該碰。 這一點在「照做了沒用」的情境下特別危險——人在排除失敗時,最容易開始「試試看」。 如果我給模型寫入權限,它會很樂意幫我調某個參數,而它完全不知道那台機組正掛在七十公尺高的地方。

五、它不知道自己講的話有沒有依據。 它分不出「這是手冊第 4.2 節寫的」和「這是我根據語感生成的」有什麼差別。在第一層排除失敗、開始往深處走的時候,這條界線是最重要的。

這五件事,就是接下來 30 天要一件一件補上的東西。


為什麼「直接餵給它」不會成功

在開始之前,先講清楚兩條看起來很近、但走不通的路。

路線一:把手冊整包丟進 context

現在的模型 context 夠長,把 PDF 貼進去似乎就解決了。

但上面那個情境已經說明了問題:手冊本身就是不夠的。 把一份回答不了問題的文件塞進 context,只會得到一個更流暢的、把手冊複述一遍的答案。

就算退一步,只求它能正確引用手冊,這條路也有技術上的障礙。維修手冊裡大量出現的是型號、料號、扭力值、告警代碼——3021M12x1.75GB-0417 這種東西。這些字串在語意空間裡幾乎沒有辨識度,模型很容易在「3021」和「3012」之間滑過去,而且它不會告訴你它滑過去了。

更根本的是,這解決不了即時資料。手冊是靜態的,風機不是。

路線二:接個 API 讓它讀資料就好

這條路的問題更隱蔽。

假設我很順利地讓模型讀到一個數值,80

80 是什麼? 是齒輪箱油溫 80°C,還是發電機轉速 80 rpm,還是某個百分比?這筆數值是三秒前的還是三小時前的?感測器當時的狀態是正常的嗎?如果 Modbus 讀取失敗,回傳的是 0——那到底是「真的是 0」還是「拿不到」?

模型不會問這些問題。它會直接拿 80 去推理,然後給你一段很有說服力的分析。

工業場景與一般應用最大的差別就在這裡:一個看起來合理但基於錯誤前提的答案,比一個「我不知道」危險得多。 尤其是在第一層排除已經失敗、人開始焦慮的時候。


這 30 天要蓋的東西

先看終點。
https://ithelp.ithome.com.tw/upload/images/20260914/20184012IbjotrNVEn.png

[圖 1-1:architecture-v1.svg]

這張圖裡,實線的框是現在就有的,虛線的框是接下來 30 天要一層一層裝上去的。

最上面是人類工程師。我特意把人放在最頂層,而不是畫在旁邊當備案——這是整個系列最重要的一個立場,後面會反覆回到這裡。

最下面兩個灰色的框,一個是風機控制器,一個是維修 SOP 語料。它們一直都在,只是現在的 Agent「連不上」、「讀不到」。

中間那四層虛線,就是這 30 天的工作。

六幕

Day 要補上的能力
1–4 環境與第一個 MCP server——讓 Agent 有手
5–11 工業通訊、資料契約、錯誤處理、唯讀安全閘
12–19 SOP 檢索、混合搜尋、量化評測
20–23 引用來源、流程封裝、拒答機制
24–28 完整診斷、衝突處理、主動告警、部署
29–30 十個坑,以及回答 Day 1 的問題

其中 Day 13 是專門為今天這個情境寫的。那一篇沒有任何程式碼,標題是「Alarm 不等於 Root Cause」,講的就是為什麼「照著手冊做完還是不行」會發生,以及有經驗的人在那個時刻是怎麼想的。


一條會貫穿 30 天的原則

Read-only by default

現在市面上關於 AI Agent 的討論,絕大多數在回答同一個問題:Agent 能做到什麼?

在工業現場,我認為要先回答另一個問題:Agent 絕對不該做什麼?

一個能讀資料的 Agent 出錯,成本是一次誤判。一個能寫入設備的 Agent 出錯,成本是一台正在運轉的機組。

而今天那個情境,正是最容易出事的時刻。

第一層排除失敗了。人在高處,天快黑了,機組還停著。這種時候,人會開始試——調一個參數看看、跳過一個保護看看、反正先讓它轉起來再說。

這種時刻最需要的不是一個什麼都敢做的助手,是一個知道停在哪裡的助手。

所以這套系統從第一行程式碼開始就設定:所有對設備的存取預設唯讀。 任何寫入路徑都必須同時滿足三件事——在白名單裡、經過人類二次確認、留下操作日誌。三者缺一不可。

架構圖上那個珊瑚色的「唯讀閘」,跟最上面的「人類工程師」是同一個顏色。這不是配色巧合。它們是同一件事:人的控制邊界。

你也可以注意到,右邊 RAG 那一側沒有這個閘——讀文件不需要,動設備才需要。這個不對稱本身就是設計。


關於這個題目

我想講清楚這 30 天的定位:這不是一個 AI 工程師找了風機題目來做 Demo,而是一個做風機的人把 AI 帶進自己的專業。

差別會在第三幕特別明顯。那一段每一篇都綁在「照著手冊做完還是不行」這個情境上——為什麼關鍵詞檢索有時候比語意搜尋可靠、為什麼向量搜尋會把料號吃掉、為什麼檢索效果一定要量化才知道有沒有用。


遊戲規則

有幾件事我想在第一天就說清楚,因為它們會影響你怎麼看後面 29 篇的每一個數字。

所有效能數值都會真的跑。 召回率、MRR、延遲、重排序前後的名次變化,全部是實際執行的結果。如果某天實驗跑不出來,我會改寫成定性討論,不會補一個看起來合理的數字上去

所有圖表會標示資料性質,是 模擬資料 / Synthetic 還是 實測結果 / Real Experimental Result

所有風機資料都是自建模擬。 這個系列不會使用任何營運方的實際運轉資料或廠商專有技術文件。第 5 天我會用 pymodbus 架一台虛擬風機,之後所有的讀值都來自它。

程式碼全部開源,同一個 repo 每天長大一點。 不是 30 個互不相干的小程式。到第 30 天,git clone 下來就是一套完整的東西。


今天 Agent 多了什麼能力?

沒有。

這是 30 篇裡唯一一篇這個欄位是空的。今天只有一個問題、一張圖,和一個承諾。

明天開始裝東西。


明天:Day 2

Claude、MCP、PLC 到底各自扮演什麼角色?在寫任何一行程式之前,得先把職責邊界劃清楚——哪些事該由模型決定,哪些事根本不該讓模型碰。


repo github.com/dofliu/wind-agent-30 · tag day01-architecture


系列文
當 AI Agent 走進風機現場:Claude × MCP × 工業維運的 30 天1
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言