壓測經驗:RLS 的「OR 擋索引」要 5.4M 才看得見,連 AI 都沒辦法 Day One 告訴你對的選擇
成本一:AI 打掉「建造成本」,沒打掉「複雜度稅」。月分區讓程式更難推理。這兩天我們親自繳了這個稅:監測資料量時,pg_total_relation_size 對分區母表只算母表本身(回 0);還有 FK 要複合鍵、分區不繼承 RLS、清測試資料時被自己剛上的 append-only trigger 擋住……這個複雜度,是每一次未來改動、每一次 debug 都要付的稅,連 AI 也付。「AI 讓規模準備好建」是真的,「規模準備免費」是假的——稅照繳,只是從建造繳給了維護。
成本二:有些規模決策是「經驗的」,Day One 就是準備不了——RLS 自己就是鐵證。RLS 本來就是 Day One 的規模準備(多租戶隔離),結果它是錯的 Day One 選擇。為什麼當初設計看不出來?因為「OR 擋索引」這個病要 5.4M 壓測才看得見。有些決策,正確答案取決於規模行為,而那行為你預測不了——那是壓出來的,不是設計出來的。而且如前面那一節的教訓:光有規模還不夠,要對的「資料形狀」——對照社區是 0 筆的那次壓測,把第二波洩漏整個蓋住了。經驗決策不只需要壓力,需要對的壓力。
AI 時代,「規模化 Day One」從奢侈變預設。但「準備什麼」的判斷力反而更值錢:有把握的結構提前上(便宜了);取決於規模實測的決策,老實留給壓測。
有把握的(會有很多社區 → 按社區/時間分區;離線不可妥協 → 佇列),提前做。沒把握的(隔離機制、索引策略),別假裝設計階段就能拍板。這跟我之前寫過的 企業 AI 落地為什麼失敗 是同一個底層觀念:方法論不能照抄,要看你的前提條件還成不成立。
如果只能留一句:老的 RD 有老的包袱,所以才有「MVP、先別管規模」的智慧。但那個智慧是成本算出來的。當 AI 把建造成本打掉、當你做的是領域已驗證的 V2——規模化就是 Day One 的事。只是別忘了,AI 打不掉複雜度稅,也替不了你壓測;有把握的提前上,沒把握的,老實壓出來——而且要用對的資料形狀去壓,單租戶測不出跨租戶的洩漏。
RLS 是我們「Day One 準備了錯的東西、規模化才發現」的活標本。它沒有讓這個決定變壞——它讓這個決定有了教材。
企業導入 AI 編碼工具時,資安與法遵部門會問的第一個問題永遠是:「我們的程式碼與機密,送去哪裡?誰能存取?怎麼稽核?成本怎麼歸戶?」 把 Claude Code 直接接公開 API,這些問題全部無解。解法是讓推論跑在公司自己的雲端租戶裡,資料留在合規邊界內,並在前面架一道統一閘道。本文就是這條路的逐步實戰,從最簡單的直連,進化到可上線的企業架構。延伸閱讀可參考我先前寫的 用 Claude Code Hooks 打造大腦反饋迴路。
全局:兩個階段
整條路分兩階段。先讓 Claude Code 直連雲端供應商上的 Claude(證明機制),再把它收斂到自家閘道後面(正式控管)。
階段一(直連):
Claude Code ---> https://<resource>.services.ai.azure.com/anthropic/v1/messages
階段二(閘道):
Claude Code ---> https://ai-gw.yourcompany.com/v1/messages ---> 雲端供應商後端
(自家 DNS、統一入口、依 model 路由、注入真憑證)
第一階段:Claude Code 直連雲端 Foundry
1. 在 Foundry 部署 Claude 模型
在 Foundry 入口建立資源並部署 base model。三個實務重點,踩過才知道:
地區限定:Claude 模型目前只開放在特定區域(本文撰寫時為 East US 2 與 Sweden Central),選錯區一定部署失敗。
務必接受服務條款:第一次在資源上部署 Claude,後台要建立一個對應的供應商組織(Anthropic Organization)。部署時跳出的 Terms of Service 一定要在「正確登入帳號」狀態下按接受,否則握手失敗。
bad-state 陷阱:一旦某次部署握手失敗進入 bad state,該資源就修不好、重部任何模型都會死。正解是建立全新資源,別在壞掉的資源上重試。
2. 設定 Claude Code(settings.json)
最乾淨的做法是把環境變數寫進 Claude Code 的 settings.json 的 env 區塊(跨平台、持久,Windows 與 Linux 通用)。檔案位置:Linux 是 ~/.claude/settings.json,Windows 是 %USERPROFILE%\.claude\settings.json。
兩種選擇。企業環境建議 Entra ID:不把金鑰寫進檔案,改用 Azure CLI 的身分,集中式身分管理、適合團隊與 CI/CD。只要在啟動 Claude Code 前登入即可:
# 方案 A:Entra ID(不放金鑰進檔案,建議)
az login
az account show # 確認登入到正確訂閱
# 然後在 settings.json 拿掉 ANTHROPIC_FOUNDRY_API_KEY 那行即可
# 方案 B:API 金鑰(快速測試用)
# 直接把金鑰填進 settings.json 的 ANTHROPIC_FOUNDRY_API_KEY
4. 驗證設定
啟動 claude,在裡面打 /status,確認 API provider 顯示 Microsoft Foundry、resource 與 model 都正確。啟動橫幅若顯示類似 Sonnet 4.5 · API Usage Billing,代表它走的是 API 計量(雲端供應商),不是訂閱。最後送一句測試訊息,有正常回應就代表端到端打通。
供應商解耦:哪天要把某個模型從 A 雲換成 B 雲,改閘道就好,幾百台 client 一行都不用動。
關鍵架構原則:一個入口,依 model 路由
最容易設計錯的地方:不要做成「Sonnet 一個網址、Opus 另一個網址」。 Claude Code 整個 session 只認一個 base URL,它靠請求 body 裡的 model 欄位區分模型,所有請求都送到同一個入口。所以正確設計是:閘道對外只露一個 DNS 入口,內部再依 model 名稱路由到對應的後端部署。你想像中的「API1 / API2 分流」應該活在閘道後面,對 client 只露一扇門。
Claude Code 改成 Gateway 模式
不再用 Foundry 那組變數,改用通用閘道模式。注意 model 這裡填「乾淨的標準名」,讓部署名的映射藏在閘道裡:
身份與信任由統一的 Identity Service 治理(authenticate / trust)。
值得一提的是,雲端廠在大會上一口氣發布了多項與 ERP 深化整合的東西,包括官方的 MCP Server(讓 AI Agent 透過整合套件安全存取 ERP 商業數據)、支援 ABAP 開發者的 AI IDE,以及基於雲端模型平台的 Agentic AI 方案。換句話說,MCP 已經不是概念,而是有官方實作可以開始試的東西。
結語:協定先行,骨架才穩
如果你也在規劃企業內的 AI Agent,這篇的重點只有一個:先把「Agent 怎麼接系統、怎麼互相協作」這層協定想清楚,再談上面要跑什麼應用。MCP 負責垂直、A2A 負責水平,資料層走串接不搬遷,身份治理統一——這就是下一代企業 AI 自動化的骨架。下一篇換個角度,看真實的傳產與金融公司,是怎麼把這套東西落到地上的。
我參加了一整天的企業 AI 大會,聽了金融、半導體、電子製造、鋼鐵、顧問與雲端平台共六、七家公司分享他們怎麼把 AI 落地。把這些不同產業的經驗放在一起聽,最有趣的發現是:他們講的「成功關鍵」高度一致,而且那個關鍵幾乎都不是技術。這篇是系列第一篇,先談方法論——企業 AI 為什麼會失敗,又該怎麼做對。
這是一場以「企業 AI 如何落地」為題的綜合座談,與談者橫跨餐飲、光電製造、科技集團、顧問與平台商。把五個視角放在一起聽,會發現他們其實在講同一件事的不同切面:AI 正從「自動化」走向「自主化」。以下是我在現場記下的五個觀察。
一、AI 不是要取代你,而是放大你的價值
座談一開始就定調:多數與談者都同意,AI 帶來的不是「取代」,而是經營模式的變革。
餐飲集團董事長講得最直白:「餐飲業的本質不會改變,但 AI 會帶來經營模式的變革。」他認為這個產業「太幸運」——人與人之間有溫度的交流,本來就不會被 AI 取代,反而能被 AI 放大價值。他舉點餐為例:與其讓客人自己滑手機自助點餐,理想場景是 AI 一眼認出常客、知道他的口味偏好,讓不同的服務夥伴也能交付一樣的感動。
他們的競爭力主張是:「真正難被複製的,不是單一技術,而是跨產業整合能力。」關鍵在於整合算力、網路、資料、場域與產業 know-how,讓 AI 從「分析工具」進一步成為「營運執行助力」。而支撐這種跨公司、跨事業群整合的,是一套「單一數據真相」。
顧問業者則把話題拉回本質:「我們要做的不是科技本身,而是怎麼去改善營運、改善業務、改善流程。」他強調關鍵始終在你的資料——先把碎片化的資料匯進系統、治理好,才談得上往上疊應用。對於代理型 AI(Agentic AI)的紅利,他的建議是:資源有限,必須有排序與藍圖,而且「未來是系統整合的世界」,懂業務結構的人,才找得出最適應自己的 AI 應用。
五、平台商的兩個答案:資料留地端、成功靠選擇
平台商在觀眾 Q&A 給了兩個很實用的答案。
問題一:用 AI 一定要把所有資料都搬上雲嗎?
答案是「不用」。透過資料雲的「串接」機制(而不是把資料整個搬上去),地端資料可以留在原地,上層再用 AI 助理做分析。對於有資安與成本考量、又想用 AI 的企業,這是關鍵的一條路。
Hooks 的唯一使命,就是確保「經驗 → 長期記憶」這條路徑不會因為 AI 的健忘或偷懶而斷掉。Brain 負責存、CLAUDE.md 負責規範,而 Hooks 負責在對的時間點逼著迴路閉合。三者缺一,知識就會慢慢漏光。
設計哲學:為什麼是「強制關卡」而不是「溫柔提醒」?
因為知識的衰減是無聲的。沒人會在當下感覺到「我剛剛流失了一條教訓」,只會在三個月後重踩同一個坑時才後悔。溫柔的提醒對抗不了這種無聲衰減——它需要的是一個會在你想跳過時擋在路中間的系統。借別人(與過去的自己)之手學坑,而不是真的每個坑都親自踩一次,這才是把 AI 從「強力的金魚」變成「會累積的夥伴」的關鍵。
Transformer:把 Anthropic API request schema 轉換成 OpenAI / Ollama 格式,模型不用知道對方是誰
動態切換:聊天中用 /model 指令切後端,不重啟
路由策略:根據 task 類型自動派模型(重任務 → Claude Opus、background → DeepSeek、本地 → Qwen3-Coder)
實際省錢幅度:[Cut Claude Code Bill 90%] 給的數字是 50-90%,看路由邏輯激進程度。但對保留 Claude Max 訂閱的人,router 真正的價值不是省錢,是削峰 — 把 subagent / background 派出去,Claude Max 的 weekly quota 留給真正需要 Opus 的任務,永不撞 lockout。
三個正交軸線(Model / Effort / Workflow)分開問。對照組是新手會問「給我最好的設定」— 等於要 AI 替你在多維空間做加總決策,你拿到答案也不知道為什麼。
對 AI 協作的特別意義:AI 處理 bundled question 會發生兩種失敗:(1) 只回最顯眼那條,其他偷偷漏掉;(2) 強行給一個整合答案,但每個軸線都妥協。你下意識把 3 軸拆開,等於逼 AI 逐個 expose,你才能照自己的 context 做選擇。這對應的軟工原則是「不讓抽象漏掉」(don’t leak the abstraction)的反向應用:你拒絕 AI 把抽象漏掉。
#3 真實基準 (Representative Benchmarks)
定義:評估新工具用真實場景,不用 toy example。 經典出處:John Hennessy / David Patterson《Computer Architecture》§1.8 Fallacies and Pitfalls(benchmark 永遠騙人)、SPEC CPU 為什麼要 update、ML 領域 distribution shift 一整條研究線。
定義:任務開始前先寫死「做到什麼程度算 done」。 經典出處:Agile user story 的 INVEST criteria、Behavior-Driven Development (BDD) 的 Given-When-Then、Definition of Done 是 Scrum 必備產物。
用 --effort medium 而不是 high 開始,確認 quality 夠才升 effort
跑前先讓 Claude 估算 token cost 跟 agent 數,你 approve 才放跑(workflow 內建這層 approval prompt,但你按 [3] View raw script 之前沒人問你 budget)
對自己設「單條對話 spend 上限」(例如 $10),透過 Claude Code admin page 或 API budget API 強制
對 AI 協作的特別意義:傳統軟工 budget 是「機器跑爛要錢」,AI 場景下 budget 還包含「AI 寫錯 script 跑很久才發現」的 fail-loud delay。Anthropic 自己在他們 multi-agent research system 的 paper 也警告:multi-agent 用 token 是 single-agent 的 3-10×,Research system 是 ~15×。沒 budget cap 等於放任這個倍率,3am 一覺起來收到 $200 帳單是真實風險。
#13 根因分析 (Root Cause Analysis)
定義:遇到問題不停在表象,挖到「為什麼會發生」的最底層。 經典出處:Toyota 的「Five Whys」、Apollo 13 事故報告、Etsy / Google 的 blameless postmortem template、《The Field Guide to Understanding Human Error》。