標籤: Agent Harness

  • 腦子系統小白指南:10 步驟從零做到完整 AI 工作流

    重點摘要(TL;DR)

    • 前 9 篇是給做過的人看的設計 / 實作 / 修補。本篇是給「沒做過、想做到那樣」的人 — 10 步驟從零到 v2.3 完整工作流。
    • 10 步驟:裝 CC → 寫 CLAUDE.md → 開始 brain → spawn 1 agent → Agent Team 並行 → 行動端 → 加分級 → Gateway → Ollama → 完整 v2.3。每一步都能單獨用,合起來變成完整體系。
    • 不需要一次做完。每一步停下來都能用,不會卡死。Step 1-3 是 1 週體感巨變,Step 4-6 是 Agent Team 開花,Step 7-10 是資安升級。
    • 不是寫程式 tutorial,是工作流改造指南。每一步都跟你怎麼做事的方式有關 — brain 改你「怎麼累積知識」、Agent Team 改你「怎麼處理複雜任務」、Gateway 改你「怎麼處理敏感資料」。
    • 本文是腦子系統第 10 篇 / 入門篇。前 9 篇連結在文末。

    誰該讀這篇

    • 有寫 code / 用 terminal 經驗,但沒系統性用過 AI 工作流
    • 看過前面 9 篇覺得有道理,但不知道從哪開始
    • 想做出完整 AI 工作流(腦子 + Agent Team + 跨平台 + 資安),不只是聊天用 ChatGPT
    • 願意花 1-3 個月漸進改造,不追求一週搞定

    不該讀這篇:完全沒寫過 code、沒用過 terminal — 那需要先補基礎(git / shell / markdown)。

    終點長什麼樣(預覽)

    10 步驟全部做完後,你的日常工作流會變成:

    你 (Claude Code) — 設了 ANTHROPIC_BASE_URL → Gateway
       ├─ 普通 prompt → Gateway 看分級 → cloud / 地端 自動路由
       ├─ Spawn Agent Team(7 個 opus 並行)→ 每個 agent 走 Gateway,獨立分級
       ├─ 寫到敏感字 → 自動切地端,cloud 流量歸零
       └─ 行動端透過 ccbot / Telegram → 同樣經 Gateway
    
    旁邊 brain 系統(~/.claude/projects/.../memory/)
       ├─ 全域規則 CLAUDE.md(自動載)
       ├─ 領域 brain markdown(LLM 看了知道踩過什麼坑)
       └─ 每個 brain 有 sensitivity_level: A/B/C
           └─ Gateway 自動同步字典做路由
    

    實際感受:

    • 寫 code 比以前快 3-5 倍(LLM 看過你 brain 不會犯重複錯)
    • 複雜任務不用親自跑,7 個 agent 平行做,你 review 結果
    • 不再擔心客戶資料貼進 ChatGPT(地端自動接管)
    • 離開電腦也能繼續(手機 LINE / Telegram → ccbot → 你的工作流)

    10 步驟總覽

    Step 做什麼 時間 階段體感
    1裝 Claude Code(或 Cursor / Continue)30 分鐘能跟 LLM 對話寫 code
    2寫第一份 CLAUDE.md(規則層)30 分鐘LLM 開始遵守你的習慣
    3建立 brain markdown(知識層)1 週累積不再講同樣的話兩次
    4Spawn 1 個 agent(Agent Team 入門)1 小時學會把工作 delegate
    5多 agent 並行(Agent Team 進階)1 小時同時跑 7 個任務
    6行動端通訊(ccbot / 官方 channel)1 小時手機也能繼續工作流
    7加 sensitivity_level 分級(資安 1)30 分鐘brain 開始分敏感度
    8裝 Gateway(資安 2)30 分鐘prompt 自動分流
    9加 Ollama 地端(資安 3)1 小時A 級資料永不上雲
    10完整 v2.3(B 級脫敏 + tests)半天production-ready

    關鍵:不要連續做完。Step 1-3 做完跑 1-2 週,習慣後再做 4-6,習慣後再做 7-10。跳級會崩潰

    Step 1:裝 Claude Code

    Claude Code(以下簡稱 CC)是 Anthropic 官方的 terminal AI coding 工具。也可選 Cursor、Continue、OpenCode 等替代品 — 概念一樣,本文以 CC 示範。

    # macOS / Linux,需要 Node 18+
    npm install -g @anthropic-ai/claude-code
    
    # 登入(用 Anthropic 帳號 OAuth 或 API key)
    claude
    
    # 在某個專案資料夾跑
    cd ~/your-project
    claude

    其他工具的安裝請查官方 docs:Claude Code Quickstart / Cursor / Continue / OpenCode

    第一個 prompt 試試:

    $ claude
    > 看一下這個專案的 README,告訴我是做什麼的

    能讀檔、回應 — 你已經在 step 1。跑幾天感受 LLM 怎麼讀你的 codebase

    Step 2:寫第一份 CLAUDE.md(規則層)

    CC 會自動讀你 home 目錄下的 ~/.claude/CLAUDE.md(全域規則)+ 專案根目錄的 ./CLAUDE.md(專案特定)。這就是「腦子」第一層。

    # 寫第一份(全域)
    mkdir -p ~/.claude
    cat > ~/.claude/CLAUDE.md << 'EOF'
    # 全域規則
    
    ## 我的習慣
    - 一律用繁體中文回應
    - code 不寫超過必要的註解
    - commit message 用 feat: / fix: / docs: prefix
    
    ## 我的環境
    - macOS / Linux mini PC
    - Python 3.12 / Node 20
    
    ## 不要做的事
    - 不要主動 git commit(等我說才 commit)
    - 不要安裝 dev dependency 沒問過
    EOF

    馬上感受差別:重啟 CC,再問同樣問題,LLM 已經會用中文回 + 不會自作主張 commit。這就是規則層的價值 — 你不用每次重複講

    原則:條目少而精,3-10 條最好。寫 30 條沒人記得住(包括 LLM)。

    Step 3:開始寫 brain markdown(知識層)

    規則是「你想要什麼」。Brain 是「你踩過什麼坑」。

    mkdir -p ~/.claude/projects/your-project/memory/brain

    第一份 brain 範例(假設你寫過 Kafka 踩過坑):

    cat > ~/.claude/projects/your-project/memory/brain/kafka.md << 'EOF'
    ---
    name: kafka
    type: technical
    ---
    # Kafka 我踩過的坑
    
    ## consumer rebalance 一直跑
    - 症狀:consumer group 每隔幾分鐘 rebalance,訊息處理停頓 30 秒
    - 原因:max.poll.interval.ms 預設 5 分鐘,業務邏輯處理超過會觸發
    - 解法:max.poll.interval.ms 拉到 15 分鐘 + 業務邏輯拆 batch
    
    ## 訊息順序錯亂
    - 同一個 partition 才保證順序
    - 多 partition 一定要設 partition key(預設 hash key)
    EOF

    更新 CLAUDE.md 引用 brain:

    echo "
    ## Domain Brain
    - [Kafka](projects/your-project/memory/brain/kafka.md)
    " >> ~/.claude/CLAUDE.md

    累積策略(關鍵):每次踩坑後 5 分鐘寫進對應 brain。不要等月底整理一次 — 那永遠不會發生。

    1 週後感受:LLM 開始知道「Kafka 你不會犯哪些錯」「OSGi 你踩過哪些雷」。同樣 prompt 一個月前要解釋 5 分鐘,現在 LLM 直接 hit brain 給對的答案

    Step 4:Spawn 一個 agent(Agent Team 入門)

    到這步你已經會用 LLM 寫 code + 累積 brain。下一個跨越:讓 LLM 派出小弟做事

    CC 內建 Agent tool。在 CC 裡:

    > 派一個 agent 看 ~/myproject/src/ 底下所有 .py 檔,
      找出沒寫 type hint 的函式,列清單給我

    CC 會 spawn 一個 sub-agent,sub-agent 自己跑 grep / read,跑完回報。你不用看那 100 個檔

    啟發點:任何「我想做但要花 1-2 小時看資料的事」都可以 delegate。你變成 manager,不是 doer

    Step 5:多 agent 並行(Agent Team 進階)

    真正威力:並行 spawn 多個 agent

    > 同時派 7 個 agent:
       1. agent A: review 我新寫的 OAuth 模組安全
       2. agent B: 看 .github/workflows 有沒有 CI 改進空間
       3. agent C: 找 README 跟實際 code 不一致的地方
       4. agent D: 算這個 codebase 的 test coverage
       5. agent E: 看 dependencies 有沒有過期
       6. agent F: 列所有 TODO 註解
       7. agent G: 找硬編碼的密碼 / token
    
    7 個並行,2 分鐘後給我一份 dashboard

    CC 會用 Agent tool 並行 spawn 7 個,各自獨立 context、各自查資料、回報。這是傳統工作流不可能做到的

    記憶體規則:LLM 推理在 cloud,本機跑的是 CC sub-agent process 本身。粗估每個 opus agent ~1 GB / sonnet ~600 MB / haiku ~400 MB,7 個 opus 並行 ~7 GB,先 free -h 確認 available 夠 +2 GB buffer。16 GB 機器跑得動但要關掉其他大耗 RAM 程式,32 GB 比較舒服。
    真正吃 RAM 的是本地 LLM:Step 9 的 Ollama 跑 14b 模型要 ~10 GB,跟 sub-agent process 加起來才是負載 — 16 GB 機器若同時跑 7 個 opus agent + Ollama 14b 會 swap 重災,建議改 7b 級模型或升級到 32 GB+。

    Step 6:行動端通訊(ccbot / 官方 channel)

    到這步你已經是 desktop power user。下一步:離開電腦也能繼續工作流

    兩個選項:

    • 官方 channel(2026/3 Anthropic 推出):MCP server 接 Telegram / Discord / iMessage,設定簡單。官方文件
    • ccbot(six-ddc/ccbot):Telegram 接 tmux,decouple from SDK,1 個 Telegram topic = 1 個 tmux window = 1 個 CC session

    ccbot 安裝:依官方 README(因為安裝方式可能更新)— https://github.com/six-ddc/ccbot。流程大致是:

    1. 去 Telegram @BotFather 申請 bot token + 開 Threaded Mode
    2. 依 README 用 uv tool installpipx install 裝 ccbot
    3. TELEGRAM_BOT_TOKEN + ALLOWED_USERS 環境變數
    4. 裝 hook 讓 CC tmux session 自動連 Telegram

    官方 channel 安裝(2026/3 Anthropic 推出):依 Claude Code Channels 官方文件,設定更簡單,但只支援 Anthropic 官方 endpoint。

    感受:通勤路上想到 bug,Telegram 一句話 → ccbot → 桌機 CC 開始跑 → 你下車回家結果已在。
    (ccbot 限 Telegram;若用 LINE,需自己寫 LINE bot bridge,或改用官方 channel 接 iMessage / Discord)

    Step 7:加 sensitivity_level 分級(資安第 1 道)

    到這步你 brain 累積了不少。但有些 brain 含敏感資訊(客戶名、家裡網路、內部專案代號)。一旦 LLM 走 cloud,這些就送出去了。

    第一道防線:brain frontmatter 標 sensitivity_level

    # brain/kafka.md(技術知識,公開可用)
    ---
    name: kafka
    type: technical
    sensitivity_level: C   # 純技術,可上 cloud
    ---
    
    # brain/client_alpha_oncall.md(客戶資料)
    ---
    name: client_alpha_oncall
    type: business_incident
    sensitivity_level: A   # A 級,絕對不上 cloud
    ---

    分級原則:

    • A 級:洩漏會出事(客戶名 / 家裡 IP / 個資 / 合約 / 配方)
    • B 級:能脫敏後送 cloud(內部 process 名 / 員工名)
    • C 級:純技術 / 開源 / 公開知識

    這步看起來只是改 frontmatter,但 讓你開始用「分級」眼光看資訊,為下一步 Gateway 鋪路。

    (Step 8 後回來做)從 brain 自動同步到 Gateway 字典

    等 Step 8 把 Gateway clone 下來後,回頭做這個同步,讓 brain 跟 Gateway 用一份字典:

    # 從所有 A 級 brain 抽 placeholder(例 [client_xxx] / [project_xxx])
    grep -h "sensitivity_level: A" -A 100 ~/.claude/projects/*/memory/brain/*.md \
      | grep -oP '\[client_\w+\]|\[project_\w+\]|\[employee_\w+\]' \
      | sort -u > ~/walsin-gateway/A_keywords.txt
    
    # 改 gateway_v2_cc.py 的 A_KEYWORDS list 從檔案 load:
    #   A_KEYWORDS = open(os.path.expanduser("~/walsin-gateway/A_keywords.txt")).read().splitlines()
    # 取代原本 hardcoded 的 ["[client_alpha]", ...]

    核心想法:一個 sensitivity_level 欄位,brain 跟 Gateway 兩邊都用 — 不用手動維護兩套字典。

    Step 8:裝 Gateway(資安第 2 道)

    分級標好了,但 LLM 不會自動知道。需要 Gateway 在「prompt 命中 A 級字典」時把 LLM 流量切到地端。

    用我寫的 v2.3 版(674 行 FastAPI):

    # clone Gist
    gh gist clone c82c51ae2a73bfe640dec5b61e5a542a walsin-gateway
    cd walsin-gateway
    
    # 裝套件
    pip install --user fastapi uvicorn httpx tiktoken
    
    # (若已做 Step 7 字典同步)Gateway 自動讀 ~/walsin-gateway/A_keywords.txt
    # (還沒做)先用 gateway_v2_cc.py 預設的字典,跑通後再回頭做 Step 7 同步
    
    # 啟動(必設 MASTER_KEY,用 export 不能用 inline env)
    export MASTER_KEY=sk-$(openssl rand -hex 16)
    echo "記下這把 key,別 commit、別寫進 tracked .env: $MASTER_KEY"
    
    # 啟動 Gateway 背景跑
    python3 gateway_v2_cc.py &
    
    # CC 切過去
    export ANTHROPIC_BASE_URL=http://localhost:4000
    export ANTHROPIC_AUTH_TOKEN=$MASTER_KEY

    從此你 prompt 命中字典 → 自動切地端。但這時還沒裝 Ollama,只是 Gateway 就位。完整體驗看 Step 9。

    ⚠️ 安全提醒(必看):Gateway 預設 bind 0.0.0.0(所有網卡),若你跑在筆電或公共 wifi,別人掃到 port 4000 就能試你的 master key,把 Gateway 當公網 proxy 借走你的 Anthropic API 額度。本機開發必須鎖回 127.0.0.1:編 gateway_v2_cc.py 末段的 uvicorn.run(...),把 host="0.0.0.0" 改成 host="127.0.0.1"。公網部署需 reverse proxy + TLS + 第二層 auth,不在本指南範圍。

    Step 9:加 Ollama 地端(資安第 3 道)

    # 裝 Ollama
    curl -fsSL https://ollama.com/install.sh | sh
    
    # 拉模型(看你硬體)
    ollama pull qwen3:14b      # 14B,中等強度,16GB RAM 跑得動
    ollama pull qwen3:1.7b     # 輕量,當 fail-safe

    到這步,完整路由生效:

    • 你寫「客戶 X 的訂單問題」→ Gateway 命中 A 級 → Ollama 14b 處理 → 不出本機
    • 你寫「Kafka rebalance 怎麼解」→ Gateway 沒命中 → cloud Claude → 全速 Opus 4.7

    實際感受:95% 工作跟原本一樣爽,只有 5% 命中字典的會慢一點 — 但那些任務本來就不該上雲。

    Step 10:完整 v2.3(B 級脫敏 + tests)

    v2.3 額外有:

    • B 級脫敏 fallback:中等敏感資料,地端壞了能脫敏後送 cloud(B 級走 cloud 時 response 帶 X-Gateway-Sanitized: 1 header)
    • Auth 防 substring 攻擊:secrets.compare_digest 精確比對
    • SSE byte-stream 直通:streaming 不變形
    • 24 個 pytest:跑 pytest test_gateway.py -v 全綠才上線
    • benchmark_runner.py:多模型對比 runner
    • demo_record.sh:asciinema 60 秒 demo 自動化

    跑 pytest 的前提:

    pip install --user pytest pytest-asyncio
    cd ~/walsin-gateway
    # sk-test-secret 是 test fixture 預設值;真實使用換成 openssl rand -hex 16 產生的 key
    MASTER_KEY=sk-test-secret python3 -m pytest test_gateway.py -v
    # 應看到 24 passed

    到這步你的工作流是 production-ready 的。能拿給公司 IT 看,有立場提內部 PoC

    不同階段你會得到什麼(別跳級)

    完成 Step 你的 superpower 建議停留
    1-3LLM 認得你的習慣 + 不再重複講同樣的話2 週
    4-5manager 模式 — delegate 而不是 do2 週
    6脫離桌機,工作流跟著你走1 週
    7-9敏感資料 + AI 生產力可同時擁有2 週
    10production-ready,可推給公司穩定使用

    最常見的失敗模式:跳級。沒寫過 brain 就裝 Gateway → 字典空的,Gateway 沒用;沒玩過 Agent Team 就跑 7 個 agent → 機器 OOM 崩潰。每階段穩了再下一階段

    跟前 9 篇對應

    本篇 Step 對應九部曲深入閱讀
    1-3 規則 + brain第 1 篇 (Why) + 第 2 篇 (How)
    4-5 Agent Team第 4 篇 (Tools) Harness 段
    6 行動端第 4 篇 (Tools) 的 ccbot / 官方 channel 段
    7 分級第 7 篇 (ISO) A/B/C 分級
    8-9 Gateway + 地端第 9 篇 (Proof) 完整 v2.3
    10 完整 production所有篇章 + Gist 完整 code

    踩坑警告(過來人提醒)

    • 不要先看 9 篇藍圖再開始 — 會被嚇到動彈不得。先做 Step 1-3,有感再看藍圖
    • 不要追求完美 brain — 寫得醜但有資訊比寫得漂亮但沒人看好
    • 不要 spawn 太多 agent — 機器 RAM 16GB 跑 7 個 opus 會 OOM,先 free -h 確認
    • 不要把 Iron Rules 寫 30 條 — 沒人記得住,3-10 條最好
    • 不要 Step 8 Gateway 上線就斷網 — 沒設 ANTHROPIC_API_KEY 時 fallback 地端,但本來工作流可能有依賴 cloud 的習慣,慢慢適應
    • 不要假裝 Agent Team 取代 review — agent 出的東西還是要看,他們是 fast doer 不是 quality gate

    結語:不要追求一週搞定

    10 步驟看似可以一週做完,但每一步的「習慣養成」需要時間

    Step 3 累積 brain 你會經歷「寫了 5 個又懶了」「再撿起來」「逐漸變成反射」。沒這 3 週適應期,Step 4 派 agent 你會不知道讓他做什麼。

    Step 5 並行 agent 你會經歷「派 7 個但 review 不過來」,然後學會「派 3 個但每個任務切清楚」。這也是要時間。

    這篇文章是地圖,不是腳本。照走 1 個月,你會擁有跟前 9 篇文章作者一樣的工作流。再走 3 個月,你會發展出自己的版本,可能比這個更好。

    這就是「我可以怎麼做到現在這樣」的答案。10 步驟,1-3 個月,從零到 v2.3

    延伸閱讀:腦子系統 10 篇

  • 腦子系統實證篇:本地 Gateway 完整實作版(v2.3,674 行真能接 CC)

    重點摘要(TL;DR)

    • 前 8 篇是藍圖。本篇是實作真實版:在 Mini PC(無 GPU、32GB RAM、Ryzen 7)用 364 行 FastAPI 跑通搬離方法論,真能接 Claude Code。
    • 核心邏輯:Gateway 看 prompt 內容,命中 A 級字典 → 地端最強模型(14b);其他 → cloud Claude(若有 API key)或 fallback 地端。
    • 關鍵設計原則(別搞錯):A 級資料用地端最強模型,不是最弱。敏感資料因為更重要,需要更可靠的回答。小模型只能當分類器或 fail-safe。
    • 真接 CC 的關鍵:用 Anthropic 原生 /v1/messages endpoint,不是 OpenAI 的 /v1/chat/completions,並做完整翻譯層(request / response / tool use / SSE)。
    • Harness 三 agent 永遠走 cloud(地端跑不動三 agent 並行 + long context),只是輸入經 Gateway 強脫敏 — 這是搬離後最關鍵的工作流保護。
    • 本文是腦子系統九部曲實證篇。前八篇:Why / How / Scale / Tools / ERP / Self-Service / ISO / Execution

    一、為什麼寫這篇 — 從藍圖到實作真實版

    前 8 篇腦子系統累積了大量「應該怎樣」的論述:Why / How / Scale / Tools / ERP / Self-Service / ISO / Execution。對真正要動手的人,這些都還是紙上的東西

    本篇是分水嶺 — 用一台 Mini PC(沒 GPU,32GB RAM,Ryzen 7 4700U,2020 年款)跑通可以真的接 Claude Code 的搬離 Gateway,證明:

    • 不需要 GPU,純 CPU 也能 host gateway logic
    • 不需要 LiteLLM / Portkey 等大框架,純 Python 364 行搞定
    • 不需要 ANTHROPIC_API_KEY 也能跑(有 fallback 模式)
    • CC + Agent Team + Harness 工作流不變,只改 BASE_URL

    二、5 條設計原則(別搞錯)

    原則 1:A 級資料地端,不可協商

    A 級的定義是「送出去會出事」 — 客戶機密、財報、製程 know-how。這個層級不能因為 cloud 模型強就送出。地端是底線。

    原則 2:A 級用地端最強模型,不是最弱

    這條最容易搞錯。直覺是「敏感資料 = 風險高 = 用小模型」,但 logic 應該倒過來:敏感資料因為更重要,需要更可靠的回答

    情境 地端模型選擇 理由
    A 級主處理 地端最強(14b / 32b / 80B-A3B) 資料越敏感,回答越要可靠
    分級判斷器 小模型(0.5b / 1.7b)or regex 分類本身不需要強能力
    Fail-safe 容錯 小模型保守路由 寧可路由保守不要錯放

    原則 3:路由邏輯走字典 + regex,不靠 LLM

    分級判斷不該交給 LLM(慢、不確定、可被 prompt injection 騙)。改用字典 + regex,毫秒級完成,可審計。

    原則 4:Anthropic 原生 endpoint(/v1/messages),不是 OpenAI 的 /v1/chat/completions

    CC 用 Anthropic Messages API,你 Gateway 必須 expose /v1/messages,不是 OpenAI 的 endpoint。並且做完整 Anthropic ↔ OpenAI 翻譯(因為地端 Ollama 用 OpenAI compatible 格式)。

    原則 5:沒 API key 也能跑(fallback 地端)

    Gateway 設計成:有 ANTHROPIC_API_KEY 就 C 級走真 cloud Claude;沒有就 fallback 走地端。讓你能純地端先驗證 logic,再加 cloud

    2.1 雙維度決策表(敏感度 × 可用性)— 別搞混

    fallback 不只看「cloud 有沒有 key」,還要看「資料能不能上 cloud」。雙維度決策才完整:

    分級 主路由 Fallback 關鍵保護
    A 級 地端最強(14b/32b/80B) 沒 fallback — 地端跑不動 = 等 / 改題目 即使有 cloud key 也不走 cloud
    B 級 地端優先 地端不可用 → 脫敏後 cloud 能脫敏才 fallback,不能脫敏寧願報錯
    C 級 cloud 優先 沒 key → 地端 純技術問題,無敏感度

    常見誤解:有 cloud key 就什麼都走 cloud。錯。A 級即使有 key 也不該走 cloud — 因為「資料外洩風險 > 模型能力差異」。Gateway 的職責就是替你擋住這個誘惑:你 prompt 命中 A 級字典,Gateway 不問你「要不要送 cloud」,直接路由到地端。

    本版實作狀態:A 級 + C 級已實作完整;B 級的「地端優先 + cloud fallback + 脫敏」是 TODO,本版 B 級 keyword 命中時邏輯等同 A 級(全地端)。完整 B 級實作見最末「待補的東西」章節。

    三、364 行 Gateway 完整實作

    結構:

    gateway.py(364 行)
    ├─ Classifier              (~30 行)— 抽 messages 文字 + 字典命中
    ├─ Anthropic→OpenAI Req    (~80 行)— system / messages / tool_use / tool_result 翻譯
    ├─ OpenAI→Anthropic Resp   (~40 行)— content blocks / stop_reason / usage
    ├─ SSE Streaming           (~40 行)— 6 種 Anthropic 事件 from OpenAI delta
    ├─ Backend Forwarders      (~80 行)— Ollama / Anthropic 雙路 forward + fallback
    └─ Main Endpoint           (~30 行)— /v1/messages,分類後派到對應 forward

    3.1 核心邏輯(主要 dispatcher)

    @app.post("/v1/messages")
    async def messages(request: Request):
        auth = request.headers.get("authorization", "")
        if MASTER_KEY not in auth and not ANTHROPIC_API_KEY:
            raise HTTPException(401, "bad master key")
    
        body = await request.json()
        original_model = body.get("model", "claude-opus-4-7")
        decision, keyword = classify(body.get("messages", []), body.get("system"))
    
        if decision == "A":
            log.warning(f"[A-LEVEL] 命中 '{keyword}' → 地端 {MODEL_A_LEVEL}")
            return await forward_to_ollama(body, MODEL_A_LEVEL, original_model)
        else:
            log.info(f"[C-LEVEL] → cloud {original_model}" if ANTHROPIC_API_KEY else f"[C-LEVEL] no key → local fallback")
            return await forward_to_anthropic(body, request, original_model)

    3.2 Anthropic ↔ OpenAI 翻譯的 4 個關鍵點

    # 1. Anthropic system 是 top-level → OpenAI 是 system message
    sys = body.get("system")
    if isinstance(sys, str):
        openai_messages.append({"role": "system", "content": sys})
    
    # 2. Anthropic tool_use 是 content block → OpenAI 是 message 上的 tool_calls
    if btype == "tool_use":
        tool_calls.append({
            "id": block["id"],
            "type": "function",
            "function": {"name": block["name"],
                         "arguments": json.dumps(block["input"])}
        })
    
    # 3. Anthropic tool_result 在 user message 內 → OpenAI 是 role:tool 獨立 message
    if btype == "tool_result":
        openai_messages.append({
            "role": "tool",
            "tool_call_id": block["tool_use_id"],
            "content": str(result_content)
        })
    
    # 4. SSE 翻譯:OpenAI delta 累積 → Anthropic 6 種事件
    #    message_start → content_block_start → content_block_delta(每個 token)
    #    → content_block_stop → message_delta(stop_reason)→ message_stop

    3.3 Forwarder(雙路 + fallback)

    async def forward_to_ollama(body, target_model, original_model):
        """A 級 → 翻譯成 OpenAI format,forward to Ollama 地端強模型。"""
        openai_body = anthropic_to_openai_request(body, target_model)
        is_stream = openai_body.get("stream", False)
        if is_stream:
            return StreamingResponse(stream_anthropic_from_openai(...))
        async with httpx.AsyncClient(timeout=600) as client:
            r = await client.post(f"{OLLAMA_URL}/v1/chat/completions", json=openai_body)
        return JSONResponse(openai_to_anthropic_response(r.json(), original_model))
    
    
    async def forward_to_anthropic(body, request, original_model):
        """C 級 → 直接 proxy 到 api.anthropic.com,沒 key 就 fallback 地端。"""
        if not ANTHROPIC_API_KEY:
            return await forward_to_ollama(body, ANTHROPIC_FALLBACK_MODEL, original_model)
        headers = {"x-api-key": ANTHROPIC_API_KEY, "anthropic-version": "2023-06-01"}
        if body.get("stream"):
            # SSE 直接透傳(Anthropic format,不用翻譯)
            return StreamingResponse(...)
        async with httpx.AsyncClient(timeout=600) as client:
            r = await client.post("https://api.anthropic.com/v1/messages", json=body, headers=headers)
        return JSONResponse(r.json())

    v2.3 完整 Gist(674 行 gateway + 24 個 pytest + benchmark + demo + README,5 個檔案):
    👉 https://gist.github.com/tm731531/c82c51ae2a73bfe640dec5b61e5a542a

    Gist 含 README + 5 步驟啟動 + 測試 curl 範例 + 已知限制。clone 下來改字典即可用。

    3.1 v2 → v2.1 changelog(review 後修)

    v2 上 Gist 後又收到 review,點出 3 個有實際影響的 bug,其中 1 個是安全問題。**全修了**:

    • 🔴 Bug 1(安全):Auth 邏輯反了 — 原本「沒設 cloud key 才檢查 master_key」意思是「接了 cloud 反而不檢查」,任何人能燒你 quota。修法:無條件檢查 master_key,並兼容 x-api-key + Authorization: Bearer 兩種 header。實測 no-key/wrong-key 都回 401
    • 🔴 Bug 2(功能):Streaming 模式 tool use 完全不工作 — 原本 stream_anthropic_from_openai 只翻譯 text delta,沒處理 delta.tool_calls。CC 的 Read/Edit/Bash 都是 tool use → A 級 + streaming 時 CC 卡住。修法:加 tool_calls delta 累積邏輯,追蹤 tool_call_index → our_block_index mapping,送 content_block_start (tool_use) + input_json_delta 事件序列。約 +60 行
    • 🟡 Bug 3:streaming 模式 stop_reason 寫死成 end_turn,即使 OpenAI 端因 max_tokens 截斷或 tool_calls 收尾也誤標。修法:streaming 過程累積最後 finish_reason,結束時用真實值映射(stop→end_turn / length→max_tokens / tool_calls→tool_use)
    • + 結構改進:content blocks 改 lazy open(只在真有內容時送 content_block_start),text 跟 tool 可正確交錯;dead import 清掉;docstring 改寫(原版誤稱用 sse-starlette)

    從 v1(80 行,描述跟 code 矛盾) → v2(364 行,文字宣稱) → v2 Gist(394 行,實際存在但 3 bug) → v2.1(502 行,bug 修完)。三天四個版本,每一輪 review 都點出真實問題。這個迭代過程本身就是 brain 系統「review-driven development」的最佳示範

    四、CC + Agent Team + Harness 三件事的協作

    4.1 CC 接 Gateway(0 行 code 改動)

    # Terminal 設環境變數
    export ANTHROPIC_BASE_URL=http://localhost:4000
    export ANTHROPIC_AUTH_TOKEN=sk-walsin-test
    
    # 跑 CC 跟原本一樣
    claude

    CC 完全不知道後面接的是 Gateway。所有 prompt 自動經分類 → 路由。

    4.2 Agent Team 走 Gateway(子進程繼承 BASE_URL)

    你在 CC 裡 spawn 7 個 opus agent 並行 — 每個 sub-agent 共用同一個 BASE_URL(從父 process 繼承)。Gateway 對每個 agent 的 prompt 獨立分類:

    你 (CC main)
    ├─ Agent 1 (opus): "review 這份 SAP API 設計"  → C 級 → cloud Claude
    ├─ Agent 2 (opus): "找 [client_alpha] 客訴 case" → A 級 → 地端 14b
    ├─ Agent 3 (opus): "寫 Kafka consumer"          → C 級 → cloud Claude
    ├─ Agent 4 (opus): "看 [project_xxx] 的合約"    → A 級 → 地端 14b
    ├─ Agent 5-7 (opus): 其他 C 級任務              → cloud Claude

    大多數 Agent Team 任務不命中 A 級字典,99% 體感跟原本一樣。少數命中的會走地端,慢一點但隔離。

    4.3 Harness 三 agent — 永遠走 cloud(關鍵保護)

    Anthropic 2026/3 發布的三 agent harness(Planner / Generator / Evaluator)是給 cloud 設計的。地端 80B-A3B 跑三 agent 並行 = GPU 排隊,根本跑不動。

    正解:Harness 永遠走 cloud,但輸入經 Gateway 強脫敏

    用戶: "幫我 refactor [project_xxx] 的支付模組"
        ↓
    Gateway 偵測 [project_xxx](A 級字典)
        ↓
    若強脫敏成功 → "幫我 refactor [PROJECT] 的支付模組" → cloud Claude(三 agent)
    若無法脫敏 → 整個任務改地端 14b sequential 跑(慢但安全)
        ↓
    Planner: 拆 task → Generator: 寫 code → Evaluator: 檢查
        ↓
    結果經 Gateway 回到用戶

    Harness 的價值在 long context + 複雜 reasoning,地端在這兩點本就弱。硬搬就是自虐。脫敏走 cloud 才是對的策略。

    4.4 三件事的協作全景

    你 (CC main session, ANTHROPIC_BASE_URL=gateway)
        │
        ├─ 普通 prompt → Gateway → 路由 → 對應 backend
        │
        ├─ Spawn Agent Team(7 個 opus 並行)
        │   ├─ 每個 sub-agent 繼承 BASE_URL
        │   ├─ Gateway 對每個 prompt 獨立分類
        │   └─ A 級走地端 14b,C 級走 cloud Claude
        │
        └─ Spawn Harness(Planner / Generator / Evaluator)
            ├─ 三 agent 共用 BASE_URL
            ├─ Gateway 強制路由全 cloud(脫敏後)
            └─ 因為地端跑不動三 agent 並行

    五、Brain 系統整合(sensitivity_level frontmatter)

    你的 brain markdown 系統(~/.claude/projects/.../memory/)是搬離的核心資產。整合方式:

    5.1 brain frontmatter 加分級欄位

    # 一般 brain(C 級,可上 cloud)
    ---
    name: kafka_consumer_pattern
    type: technical
    sensitivity_level: C
    ---
    Kafka consumer 群組 rebalance 機制...
    
    # 敏感 brain(A 級,只地端 + 強模型)
    ---
    name: client_alpha_oncall_pattern
    type: business_incident
    sensitivity_level: A
    applies_to: [bu_xxx]
    ---
    [client_alpha] 客訴流程,聯絡窗口...

    5.2 build.sh 編譯時依分級過濾

    #!/bin/bash
    # 編譯雙版本 CLAUDE.md
    
    # Cloud-bound CLAUDE.md(沒 A 級)
    find brain/ -name "*.md" \
      | xargs grep -L "sensitivity_level: A" \
      | xargs cat > .claude/CLAUDE.md.cloud
    
    # Local-bound CLAUDE.md(全部,A 級也進)
    cat brain/**/*.md > .claude/CLAUDE.md.local
    
    # Gateway 看員工任務目標選對應 CLAUDE.md

    5.3 brain 的 A 級關鍵字自動同步到 Gateway 字典

    # 從所有 A 級 brain 抽出 client name / project code 等
    grep -h "sensitivity_level: A" -A 20 brain/**/*.md \
      | grep -oP '\[client_\w+\]|\[project_\w+\]' \
      | sort -u > /tmp/A_keywords.txt
    
    # Gateway 啟動時 load
    A_KEYWORDS = open("/tmp/A_keywords.txt").read().splitlines() + DEFAULT_A_KEYWORDS

    5.4 公開版 brain repo 自動過濾

    如果你的 brain 有公開版(教學分享 / 開源),build script 自動排除 sensitivity_level: A 條目,只發 B / C。不用手動審 brain 是否能公開

    這是brain 系統跟 Gateway 的接合點:你寫 brain 時標分級,Gateway 自動知道哪些字串該擋,公開版自動過濾。一個 frontmatter 欄位,三個地方用

    六、放大邏輯 — 個人 → 80 人 → 萬人

    面向 個人(本文實證) 80 人公司 萬人集團
    Gateway 實作 364 行 FastAPI LiteLLM Docker K8s HPA + Portkey
    A 級字典 3-10 個關鍵字 100 個 1000+ 自動同步 brain
    A 級 backend Ollama Qwen3:14b(CPU) Ollama Qwen3:32b(1x 4090) 中央 GPU H100 跑 80B-A3B + 區域副本
    C 級 backend cloud Claude(個人 API key)or fallback 地端 Anthropic Enterprise Anthropic Enterprise + Azure / Bedrock 多家
    脫敏 字典 + regex Microsoft Presidio + LLM 兜底
    認證 master key 員工 SSO SSO + Token Impersonation
    Audit log stdout SQLite / OpenSearch 三軌制 + WORM + HSM mapping
    治理 0 Working Group 三道防線
    時程 30-60 分鐘 2-3 個月 12 個月
    預算 0 ~30 萬 NTD 4000-6000 萬 NTD

    核心邏輯一模一樣(看 prompt → 字典分類 → 路由)。差的只是:

    • 規模(字典條數、並發、儲存)
    • 治理(Working Group、三道防線、ISO 認證)
    • 合規(SOX / J-SOX / 個資法 / GDPR)
    • 能力 backend(14b vs 80B-A3B)

    七、能力降級補償策略

    實際擔心:地端模型比 Claude Opus 4.7 弱,搬完會不會生產力崩?

    實話:會降,看你會不會用補償工具。具體 benchmark 沒跑(個人 mini PC 沒 GPU 跑不了 32B+ 對比),但業界經驗的補償清單:

    地端弱的地方 補償工具 效果
    Long context 弱 RAG (Chroma / Qdrant) + chunking context 不全進 LLM,只進 top-K
    Reasoning 弱 Chain-of-thought structured prompt 強制分步,單步難度降
    Tool use 不穩 function calling 限縮 5-10 個 tools 減少選擇,提升正確率
    並行 Agent 跑不動 改 sequential workflow 一個跑完再下一個
    跨檔 refactor 弱 限定 working set(≤ 5 檔) 降低 context
    Memory 弱 brain markdown 強制 inject 永遠帶 context

    而且這只用在 5% A 級任務,其他 95% 還是 cloud。整體生產力下降可控,具體百分比待 SWE-bench Lite 子集 + 真實工作流 case 量化

    八、5 步驟讓你今晚就跑起來

    1. 裝 Ollama + 拉模型:
      ollama pull qwen3:14b      # A 級主處理(地端最強)
      ollama pull qwen3:1.7b     # 可選,當分類器 fail-safe
    2. 裝 Python 套件:
      pip install --user fastapi uvicorn httpx
    3. 存 364 行 gateway.py(本文第三章 + 完整版見 GitHub Gist)
    4. 跑起來:
      # 沒 API key 也能跑(fallback 地端)
      python3 gateway.py &
      curl -s http://localhost:4000/health   # 確認 OK
      
      # 有 API key 完整版
      ANTHROPIC_API_KEY=sk-ant-... python3 gateway.py &
    5. CC 切過去:
      export ANTHROPIC_BASE_URL=http://localhost:4000
      export ANTHROPIC_AUTH_TOKEN=sk-walsin-test
      claude   # 跟原本一樣寫 code

    30-60 分鐘搞定。設定完後 99% 工作跟原本一樣,只有 prompt 命中 A 級字典時自動切地端。

    九、跑不起來時會看到什麼(失敗模式排查)

    Gist 證明能跑,失敗模式證明跑過。下面是實作過程實際踩過的 7 個錯誤:

    錯誤訊息 / 症狀 根本原因 排查指令
    connection reset by peer + log 完全空 Container 還在 init(LiteLLM 啟動慢 30s-1min),或 Python stdout buffering docker exec <container> ps auxf 看 PID 1 是否還在跑;加 PYTHONUNBUFFERED=1
    404 Not Found from CC Gateway 用 OpenAI /v1/chat/completions,CC 打 Anthropic /v1/messages 看 Gateway log 有沒有「POST /v1/messages」;改用本文 Anthropic 原生 endpoint
    httpx.ReadTimeout 在 forward_to_ollama Ollama 模型在 CPU 第一次 load 太慢(超過 timeout) ollama run <model> "warm" 先暖機;timeout 從 300 改 600
    OCI runtime exec failed: "curl" not found LiteLLM image 沒裝 curl,內部 health check 工具有限 用 host 端 curl 測 http://localhost:4000/health 不要 docker exec
    {"detail": "bad master key"} CC 設了 ANTHROPIC_AUTH_TOKEN 但 Gateway 沒 match echo $ANTHROPIC_AUTH_TOKEN 跟 Gateway 的 MASTER_KEY 對
    CC 卡住沒回應(streaming 不出來) SSE 翻譯漏了 message_stop 事件,client 等不到結束 Gateway log 看最後送出的 event;確認 6 種事件全送(message_startcontent_block_start/delta/stopmessage_deltamessage_stop)
    A 級 prompt 沒命中字典(看到走 C 級) 字典 keyword 是 case-sensitive 漏了 re.IGNORECASE,或字典裡沒這條 curl -s gateway.../health 看 keywords_count;echo $PROMPT | grep -i <keyword>

    十、Gist 上線前檢查清單(13 條)

    從文章第一版到本版踩過的所有雷,清單化:

    1. Authorization header 兩種格式都要兼容:CC 可能送 x-api-key: xxxAuthorization: Bearer xxx,Gateway 都要認
    2. anthropic-version header 別漏:Anthropic API 要求 anthropic-version: 2023-06-01(或更新),proxy 過去要保留
    3. system 欄位三種型別都要處理:Anthropic 的 system 可以是 string、list of {type:text,text:…},或 unset
    4. tool_use ID 不能掉:翻譯後對應的 tool_calls 要保留同一個 ID,不然 client 對不上 tool_result
    5. tool_result 在 user message 內,翻譯後要拆成獨立 role:tool message
    6. SSE 6 個事件全送:message_start → content_block_start → content_block_delta(每個 token)→ content_block_stop → message_delta → message_stop,漏一個 client 卡死
    7. SSE event 名稱要寫 event:,data: 兩行:不是只送 data,Anthropic SSE 格式有 event 名
    8. Ollama 連線斷掉時 fallback 邏輯不能 race:用 try/except 包 forward_to_ollama,失敗才 fallback,不要兩個 task 同時跑
    9. timeout 要設 600 秒以上:CPU 跑 14b 慢,300 秒會 timeout
    10. master_key 預設值不要外洩:Gist 上的 sk-walsin-test 是 placeholder,部署前換掉
    11. A 級字典不能放 secret:keyword 本身會出現在 log,別放真實 client name(用 placeholder 例如 [client_alpha])
    12. health endpoint 不檢查 master_key:不然 monitoring 工具會 401
    13. 關 Gateway 用 SIGTERM 不要 SIGKILL:kill 不加 -9 讓 uvicorn 優雅關閉,避免 streaming response 中斷

    十一、TODO 全部 close(v2.2 update)

    原本標的 4 個 TODO 全做完了,本版升 v2.2(620 行)。逐項說:

    原 TODO v2.2 處理 行數
    B 級「地端優先 + cloud fallback + 脫敏」 ✅ 完整實作:ollama_alive() 健康檢查 → 失敗 sanitize_anthropic_body() → fallback cloud;sanitize 沒命中拒絕(503) +90 行
    Benchmark benchmark_runner.py 獨立檔(258 行):跑 SWE-bench Lite 子集 + 自家 prompts × 多 model,輸出 markdown 報表。不打分,只跑數據(讓人類自己判斷,避免 premise drift) 258 行新檔
    Asciinema 60 秒 demo demo_record.sh:health → C 級 → A 級 → auth fail 4 個 step,可直接跑或 asciinema rec -c 包起來錄影 110 行新檔
    Token usage 真實計算 ✅ 用 tiktoken 估算累積 text + tool args,取代原本的 chunk count(嚴重低估) +20 行

    11.1 v2.1 → v2.2 主要新邏輯

    elif decision == "B":
        # v2.2 完整 B 級實作
        if await ollama_alive():
            return await forward_to_ollama(body, MODEL_B_LEVEL, original_model)
    
        # 地端死了,看能不能 fallback cloud
        if not (ANTHROPIC_API_KEY and B_LEVEL_CLOUD_FALLBACK):
            raise HTTPException(503, "B-level: local unavailable, cloud fallback disabled")
    
        sanitized_body, hit = sanitize_anthropic_body(body)
        if not hit:
            # 地端死 + 脫敏沒命中 = B 字典跟脫敏字典不一致,寧願報錯
            raise HTTPException(500, "B-level: local down + sanitization mismatch")
    
        return await forward_to_anthropic(sanitized_body, request, original_model)

    11.2 Sanitization 字典(v2.2 新增)

    SANITIZE_MAP = {
        r"\[internal_process\]": "[PROCESS]",
        r"\[vendor_quote\]": "[QUOTE]",
        r"\[employee_name\]": "[PERSON]",
        # 通用 PII patterns
        r"\b[\w.+-]+@[\w-]+\.[\w.-]+\b": "[EMAIL]",
        r"\b(?:\d{1,3}\.){3}\d{1,3}\b": "[IP]",
        r"\b\d{4}-\d{4}-\d{4}-\d{4}\b": "[CARD]",
    }

    實作策略:regex-based 簡單脫敏(快、可審計);生產環境建議升 Microsoft Presidio(NER + checksum + 多語言)。

    11.3 Benchmark Runner 跑法

    # 跑全部 prompts × 你已 pull 的 ollama 模型
    python3 benchmark_runner.py
    
    # 加 cloud Claude 對比(有 ANTHROPIC_API_KEY 才能)
    ANTHROPIC_API_KEY=sk-ant-... python3 benchmark_runner.py \
      --models qwen3:14b,qwen3:4b \
      --anthropic-models claude-opus-4-7
    
    # 只跑 SWE-bench Lite 子集
    python3 benchmark_runner.py --suite swe --output report.md

    跑出來是 markdown 報表,每 model × 每 prompt 的 latency / tokens / 截斷回應。故意不打分 — 因為「能力 = X%」這種宣稱本身就是 review 點過的 premise drift 風險。**跑數據給人看,人類自己判斷**,比 AI 講百分比有 integrity。

    11.4 Demo 錄影

    # 純跑(看 terminal output)
    bash demo_record.sh
    
    # 用 asciinema 錄影
    asciinema rec -c "bash demo_record.sh" walsin-demo.cast
    asciinema upload walsin-demo.cast   # (可選)上傳分享

    4 個 step:health check → C 級 prompt → A 級 prompt(命中字典)→ 沒帶 key 401。每一步都看到 x-gateway-decision + x-gateway-model headers。

    11.5 v2.2 → v2.3 self-review 後再清 7 個漏洞

    「考試不能邊改邊考」 — 我自己當最嚴格 reviewer 把 v2.2 從頭審一次,找到 7 個應修的(不是別人指出),全清:

    優先 問題 v2.3 修法
    🔴 P0 Auth substring match 漏洞 — MASTER_KEY not in auth 太寬,sk-test-extra 也通過 secrets.compare_digest 精確比對 + Bearer 解析
    🔴 P0 SSE 透傳格式錯 — aiter_lines + "\n" 會剝掉 \n\n event 結尾 aiter_bytes 直通,SSE 格式 byte-for-byte 完整
    🔴 P0 Sanitize 漏 tool_use input + tool_result content — 只處理 text block 改遞迴 _sanitize_value 處理任意巢狀 dict / list / str
    🟡 P1 MASTER_KEY 預設 hardcoded,生產環境壞習慣 沒設環境變數時 log warning,提示部署前必設
    🟡 P1 demo_record.sh 缺 pre-flight,gateway 沒啟動 script crash 開頭加 curl /health,失敗給友善提示 + 啟動指令
    🟡 P1 /health 沒回報 ollama 狀態,monitoring 不夠 ollama: alive/down + b_level_model + b_cloud_fallback 配置
    🟡 P1 B 級走 cloud(脫敏後)client 不知道 回應加 X-Gateway-Sanitized: 1 header,透明度

    11.6 24 個 pytest 全綠(v2.3 新)

    $ pip install --user pytest pytest-asyncio
    $ MASTER_KEY=sk-test-secret python3 -m pytest test_gateway.py -v
    
    test_gateway.py::TestClassify::test_C_level_default              PASSED
    test_gateway.py::TestClassify::test_A_level_keyword_match        PASSED
    test_gateway.py::TestClassify::test_A_level_in_system            PASSED
    test_gateway.py::TestClassify::test_A_level_in_list_content      PASSED
    test_gateway.py::TestClassify::test_B_level_match                PASSED
    test_gateway.py::TestClassify::test_A_takes_precedence_over_B    PASSED
    test_gateway.py::TestMasterKey::test_correct_bearer              PASSED
    test_gateway.py::TestMasterKey::test_correct_bare                PASSED
    test_gateway.py::TestMasterKey::test_empty                       PASSED
    test_gateway.py::TestMasterKey::test_wrong                       PASSED
    test_gateway.py::TestMasterKey::test_substring_extra_suffix_blocked  PASSED  ← v2.3 修
    test_gateway.py::TestMasterKey::test_substring_prefix_blocked    PASSED  ← v2.3 修
    test_gateway.py::TestMasterKey::test_lower_case_bearer           PASSED
    test_gateway.py::TestSanitization::test_string_email             PASSED
    test_gateway.py::TestSanitization::test_string_ip                PASSED
    test_gateway.py::TestSanitization::test_string_no_hit            PASSED
    test_gateway.py::TestSanitization::test_recursive_dict           PASSED
    test_gateway.py::TestSanitization::test_recursive_list           PASSED
    test_gateway.py::TestSanitization::test_anthropic_body_text_block            PASSED
    test_gateway.py::TestSanitization::test_anthropic_body_tool_use_input_v23    PASSED  ← v2.3 修
    test_gateway.py::TestSanitization::test_anthropic_body_tool_result_v23       PASSED  ← v2.3 修
    test_gateway.py::TestRequestTranslation::test_system_string_to_message       PASSED
    test_gateway.py::TestRequestTranslation::test_tool_use_to_tool_calls         PASSED
    test_gateway.py::TestRequestTranslation::test_tool_result_becomes_separate_message PASSED
    
    ============================== 24 passed in 0.61s ==============================

    4 個 v2.3 安全修正關鍵 test 全綠 — 證明 substring 攻擊擋下、tool_use input 真的會被 sanitize。

    11.7 真的還剩什麼不會做(誠實)

    • SWE-bench 完整跑數據:需要 GPU 跑 32B+,我這台 mini PC 不行。Runner 寫好了,你有 GPU 自己跑
    • 真錄 asciinema 公開連結:script 寫好(含 v2.3 pre-flight check),你自己 run + upload
    • Microsoft Presidio 升級:regex 已夠 demo,生產時換成 NER + checksum
    • httpx async mock 整合測試:現在的 24 個 unit test 涵蓋純函式,async stream 整合測試還沒寫

    策略:能在我環境做的全做,不能做的寫好工具讓你自己做。每一輪迭代都比上一輪誠實。

    十二、5 個學到的事(實作後)

    1. Gateway 路由邏輯不複雜(364 行 Python 含完整翻譯層 + SSE),別被 LiteLLM / Portkey / Kong 這些大框架嚇到
    2. CC 工作流不用改(只改 BASE_URL),搬離成本低於想像。但要真接 CC 必須做 Anthropic 原生 endpoint + 完整翻譯層
    3. A 級資料用地端最強,不是最弱。敏感資料因為更重要,需要更可靠回答 — 這條最容易搞反
    4. Mini PC 雖弱但能跑(CPU 跑 14b 約 1-3 tok/s,慢但能用),證明搬離方法論不需要先投資 GPU
    5. Harness 不該硬搬地端(三 agent 並行 + 長 context 是 cloud 的價值,脫敏走 cloud 才是對的)

    結語:從藍圖到可執行的搬離

    前 8 篇腦子系統告訴你「應該怎樣」。本篇告訴你「實際怎樣」。

    364 行 Python + Mini PC + Ollama + Claude Code = 搬離方法論的可執行實作。

    這不是教你「怎麼蓋萬人企業 AI 治理」 — 那是另外 8 篇的事。

    這是教你「怎麼今晚就在自己電腦上跑通搬離 logic」 — 證明你的方法論不只是紙上的。

    有了這個實作,你才有立場跟集團 IT 提 PoC,跟 CFO 提預算,跟法遵提合規。

    下一步:你的 mini PC 有沒有變慢?Agent Team 還能 spawn 嗎?Brain 還在嗎?都沒事 — 因為 Gateway 是個獨立 process,不影響任何沒設 BASE_URL 的工作流。你想停掉就 kill 一個 process,連配置都不用改。

    這就是搬離方法論的真實樣子:低風險、可逆、漸進、實作在前、規模在後

    延伸閱讀:腦子系統九部曲

  • 腦子系統壓軸:萬人製造集團 AI 治理 1 年實戰藍圖

    重點摘要(TL;DR)

    • 腦子系統前 7 篇是理論藍圖。本篇是萬人跨國製造集團 1 年實戰執行版:Day 1 到 M12 的 5 個 Phase Gate、三層治理、預算 NTD 4,000-6,000 萬具體 breakdown、22 個關鍵 gap、5 場真人會議。
    • 骨架不是憑空寫的 — 經過 4 輪 AI agent review × 10 個 domain × 28 份 expert opinion:CISO / AI 治理 / ERP / 法務 / IT 架構 / 組織變革 / 製造業 BU senior / HR / CFO / 外部會計師。
    • 核心心法 5 條:鄉村包圍欽點啟動、三條紅線下放、90 天法律化(非 30 天)、三道防線(內稽必須第三線獨立)、預算具體到 NTD 級距(非「中等到中高」)
    • 給 CIO 的訊息:這份藍圖的價值不是告訴你答案,是告訴你接下來要問哪 5 群真人哪些問題。
    • 本文是腦子系統八部曲的壓軸實戰篇。前七篇:Why / How / Scale / Tools / ERP / Self-Service / ISO

    一、為什麼寫這篇

    腦子系統前 7 篇講的是理論:為什麼這樣設計、怎麼蓋、怎麼擴展。但理論到實戰之間,有一條鴻溝 — 萬人跨國集團的真實政治、文化、預算、合規

    這個鴻溝不是 1 篇文章 + 1 個 IT 主管腦袋能跨過。我為一家萬人製造集團寫了完整的 1 年實戰藍圖,經過4 輪 AI agent review × 10 個 domain expert(總共 28 份 expert opinion)後,把所有 cross-confirmed 的議題壓縮成這一篇。

    10 個 domain 包括:

    • CISO 資安(ISO 27001 + OWASP Top 10 LLM 紅隊)
    • AI 治理(ISO 42001 + 倫理 + 偏見)
    • ERP 架構(SAP / Oracle / iDempiere / Dynamics)
    • 法務合規(個資法 / 營業秘密法 / GDPR / 勞基法)
    • IT 架構(K8s / Gateway / SRE / vLLM)
    • 組織變革(萬人台灣集團 + 家族企業文化)
    • 製造業 BU senior 主管(20 年資歷)
    • HR / 員工關係(第四輪新增)
    • CFO / 財務(第四輪新增)
    • 外部會計師 / 內控(第四輪新增)

    每一個 domain 都找出了前面 9 個 domain 沒看到的盲點。這是本文跟一般 AI 治理藍圖的根本差異:不是某個 IT 主管的個人見解,是 28 份不同視角壓縮的最大公約數。

    二、戰略骨架(一句話)

    鄉村包圍城市:三條集團紅線下放 → 各 BU 自然生長 → 根據地正規化 → Working Group 整理已發生事實 → 集團 Gateway 上線。

    不從總部開始,從願意動的 BU 開始。起爆階段必須欽點(不能等自願)、擴散階段才靠拉力

    為什麼不用傳統由上而下:啟動成本太高、規範是空白紙上畫的(法務全判 A 級系統失效)、員工沒採用動機。

    三、三條 Iron Rules + 90 天法律化(不是 30 天)

    1. BOM 配方 / 製程參數 / 合金成分 / 熔煉 know-how
       → 禁止送任何雲端 LLM
       → 「送出」涵蓋: completion / embedding / vector / fine-tune /
         batch / log retention / 第三方 RAG
       → 違反視同營業秘密外洩
    
    2. 未公告財報數字(月報 / 季預估 / 年度計畫 / 財務假設)
       → 禁止送任何 AI 工具(含本地)
       → 違反視同內線交易風險
    
    3. 客戶合約 / 訂單金額 / 供應商報價 / 客戶聯絡資料
       → 禁止送雲端 LLM
       → 須脫敏後才可使用 AI 協助分析

    第一個重大修正(來自會計師 review):CIO 一人簽 Iron Rules 在台灣上市公司治理上有重大瑕疵 — 涉及營業秘密 + 重大資訊管控屬資安政策層級,需經審計委員會或董事會核備。CIO 單簽日後查核會被會計師列 deficiency。

    真實時程 90-120 天(原藍圖寫 30 天嚴重低估):

    階段 動作 時間
    Day 1 CIO 緊急發布(行政命令位階)+ 全員 email 1 天
    Day 1-30 CISO 簽核 + 法遵核可 30 天
    Day 30-60 工會協商(勞基法 § 70 細則,30 天起) 30 天
    Day 60-90 工作規則修正報主管機關核備 14-30 天
    Day 90-120 審計委員會核准 + 董事會決議 30 天

    過渡期免責條款(會計師建議):Day 1-90 期間若違規,公司立合規導向處理(培訓 + 警告),不得作為解雇 / 賠償依據。否則「合理保密措施」舉證會被法院質疑。

    工會協商失敗 fallback(HR review):Iron Rule 1(BOM)走營業秘密法 § 13-1 強制,不需工會同意;Rule 2/3 走員工自願同意 + 工具權限分流(不簽就限制 AI 工具,不解雇)。

    四、五個 Phase Gate

    Gate 通過硬條件
    G0 啟動 M1 CIO 簽 Iron Rules + 任命準 CISO + 法遵 / 內稽通知
    G1 種子 M3 至少 2 個 BU 各 5 人在用、無 Iron Rules 違反
    G2 根據地 M4-M5 至少 2 BU 完成雙 Repo + 分級表 v0.1 + 脫敏字典
    G3 包圍 M8 Working Group 4 場核心會議完成 + 集團 v1 + AIIA SOP + Iron Rules 走完董事會核准(若 M8 未完,fallback「議程已排定 + 審計委員會初審通過」)
    G4 進城 M9-M10 Gateway + 雙引擎接入 + 北極星 70% + ERP MCP 1 BU 跑(用 Token Impersonation,不是 service account)
    G5 稽核就緒 M12 內審完 + Gap 補完 + ISO 27001 + 42001 stage 1 audit 通過

    五、三層治理結構(三道防線正確版)

    第二輪 AI review 點出 v0.2 違反三道防線(內稽應第三線獨立),v0.3 大幅修正:

    [第二線:管理]
    ├─ Steering Committee(每季 sponsor)
    │  └─ 家族成員 / 總經理室掛名,不參與每月運作
    │  ⚠️ 議事規則明文「不得對 Working Group 個案決議下指導」+ 會議錄音
    │
    └─ Working Group(7-8 人,雙週例會,治理者)
       ├─ 準 CISO(主席)
       ├─ 法務 / 法遵代表
       ├─ IT/RD 代表
       └─ 3-4 BU senior 代表
    
    [第三線:獨立監督]
    └─ AI 治理監督委員會(每季,獨立)
       ├─ 內稽處長(召集人,雙線報告:行政→CIO,職能→審計委員會)
       ├─ 1 名獨立董事
       └─ 外部顧問(由審計委員會選聘 + 預算獨立 + 3 年輪換)
    
       季度 audit Working Group 自身 + Gateway log + bias probe
       直接向審計委員會報告(不經 CIO)
    
    [第一線:執行]
    └─ BU 內部
       ├─ BU Curator(技術骨幹,每週 45 分跑 PR)
       ├─ BU Senior 把關人(每週 15-30 分簽字)
       └─ BU 種子員工

    家族干預仍是 SOX 疑點(會計師 review):即使家族「掛名 sponsor」,Big-4 仍可能列「tone-at-the-top deficiency」。所以加 Steering Committee 議事規則 + 會議錄音是必要補丁。

    外部顧問獨立性閉環:必須由審計委員會選 + 預算獨立 + 3 年輪換 + 不得轉任公司任何職位,否則 Big-4 視為 management’s specialist 形同虛設。

    六、AI Agent Team 編制 + Curator HR 認證

    v0.1 寫「BU senior 兼任 Curator 每週 1 小時」,但 HR review 點出實務上 100% 推給課長 / 工程師 — senior 行事曆已被「客訴會、月結、業務檢討、產能調度」塞滿。v0.3 拆角色:

    • BU Curator(技術骨幹):>8 年資歷工程師,每週 45 分跑 PR review
    • BU Senior 把關人:senior 主管,每週 15-30 分簽字 + A 級判斷 + 口述補充業務知識

    HR 認證制度(避免空文化)

    • 完成 6 個月任期 + brain 達標 → HR 核發「AI 治理認證」
    • 0.5 P-band 加分(等同跨部門輪調)— 但需走集團人才發展委員會核可,IT 處單獨發會被 HR 退件
    • PBC 5%-10% 權重(集團強制下限 7%,避免 BU 主管壓到 5%)
    • senior 連 2 週缺席 → 自動升級 CIO,1 個月失能撤銷認證
    • 分初級 / 資深 Curator:資深需 2 年 + 跨 BU 貢獻才核發,避免認證貶值(1-2 年後人人有獎=沒獎)

    培訓教材決策(M2 必須定)

    8 小時 OWASP Top 10 LLM + ISO 42001 + 公司 brain 規範。中文教材沒現成 — 外購(BSI / SGS 客製課 35-60 萬/梯)vs 內製?M2 前必定。HR LMS(Cornerstone / SuccessFactors / 自建)需要排版上架、考題設計、合格標準 ≥ 80%、補考機制。

    七、預算 NTD 4,000-6,000 萬具體 breakdown(CFO 視角)

    v0.3「中等到中高」級距完全不能進審計委員會。CFO 真實要的數字:

    項目 級距 NTD 備註
    CapEx GPU 3-5x H100 1,200-2,000 萬 DGX 整機約 $300K USD/台,5 年攤提 ≈ 250 萬/年
    CapEx 多台 4090 200 萬 本地推理 + Layer 2 分類器
    OpEx 雲端 LLM Enterprise 1,500-3,000 萬/年 萬人 seat × $40-80/月(Anthropic / Azure / Bedrock)
    OpEx ISO 雙標稽核 + 內審準備 200 萬 Schellman / TÜV SÜD / BSI / DNV 任選
    OpEx RD x 2 + Curator 折算 600 萬
    OpEx SIEM 自架 stack 100-150 萬 OpenSearch + S3 + Glacier vs Splunk 商業版 3,000-8,000 萬,自架降一個量級
    OpEx 培訓教材外購 60-100 萬 BSI / SGS 客製課
    Year 1 全包 4,000-6,000 萬 這是 CFO 要的具體數字

    稅務套利(產創條例 §10-1)

    • GPU CapEx 認列「智慧機械」可申請 5% 投資抵減營所稅
    • 萬人集團單年 H100 採購 1,500 萬 → 抵減 75 萬
    • 5 年攤提下,財報「壓力」比一次性 OpEx 燒掉小

    ROI / Risk-Adjusted Savings(對審計委員會講)

    • 避免 GDPR 罰鍰:營收 4% 上限(萬人製造集團風險:數十億)
    • 避免 ISO 失效訂單損失:B2B 客戶常要求 ISO 認證,失效 = 失客戶
    • 員工生產力:保守 5% × 萬人 × 平均薪資 = 數億效益
    • 對審計委員會用「保險費比喻」,不要堆生產力數字

    預算占比 / 排擠效應

    • 萬人製造集團年 IT 預算約營收 0.8-1.5%
    • AI 治理 4-6 千萬 ≈ IT budget 8-12%
    • 會排擠 ERP 升級 / MES / 製造 IoT — 必須在董事會列「AI 治理 vs 其他 IT 投資」優先序

    隱性成本(v0.3 漏)

    • Layer 2 GPU HPA 4x baseline → 雲端 burst 月結尖峰可能單月燒 30% 預算 → 加 monthly cap
    • 廠商封鎖演練(每年 1 次)→ 計入 BCP 成本
    • WORM 7 年 audit log 取出費(egress)→ incident 時單次可能數十萬,需準備金

    八、Audit Log 三軌制(法庭採信 + 個資合規)

    Track 內容 保留 儲存 / 解密
    A. Metadata 員工 hash、tool、decision_code、bu_context、token jti 7 年 WORM OpenSearch 30天 → S3 1年 → Glacier 7年;HSM mapping CISO+法務雙簽
    B. 全文 prompt/response 完整對話內容 90 天 OpenSearch 加密分離,90 天自動刪
    C. Incident 凍結全文 觸發事件相關全文 7 年 WORM S3 Object Lock;CISO+法務+內稽三方簽

    HSM mapping 雙簽 break-glass 必須留書面審批單(會計師補丁):申請書 + 核准單 + 時戳服務(TWCA)。否則 SOX 404(d) ITGC 證據能力不足。

    勞動事件法 § 35(法務補丁):員工有舉證請求權調閱自身 audit log → 加員工查閱 SLA 14 天 + HR 介接窗口。

    九、4 輪 AI review 找出的 22 個 cross-confirmed gap

    從 28 份 expert opinion 提煉的最重要議題,按 review 階段:

    第一輪(v0.1 → v0.2,7 個 expert):結構性問題

    • Iron Rules 加 embedding / vector / fine-tune 涵蓋(防 OpenAI embedding 破口)
    • Curator 拆角色(senior + 技術骨幹)
    • Multi-ERP 不做統一 schema
    • SAP S/4HANA 工程量 6-9 個月(原估 3-4 嚴重低估)
    • Token Impersonation 強制(禁用 service account)
    • 三條 Iron Rules 治理路徑(CIO 簽不夠)
    • Brain PR Scanner + 雙審 + 簽章 commit

    第二輪(v0.2 → v0.3):重大治理結構

    • 三道防線正確化(內稽從 Working Group 退出第三線獨立)
    • 家族介入降溫(Steering Committee 季度 sponsor,不掛主席)
    • WORM 三軌制(metadata 7年 / 全文 90 天 / incident 7 年)
    • MCP tool schema 欄位級遮罩
    • iDempiere MSession + cache 分級 + 月結 SLO 例外
    • Gateway K8s HPA 5-15 pods(不寫死 3)
    • GPU 容量 3-5x H100 + 區域副本
    • 同意書脫鉤雇用條件
    • per-BU view scope(不全集團統一最高 A 級)
    • 跨境 geo-routing by 工作地 BU(不 by 國籍)

    第四輪(HR + CFO + 會計師)— 進階 gap(只在新 domain 加入後才被發現)

    • §16 重寫具體 NTD 級距 + 產創條例 §10-1 + ROI(CFO P0)
    • 30 天法律化時程改 90-120 天 + 過渡期免責(會計師 P0)
    • 監督委員會獨立性閉環(內稽行政線雙線報告 + 外部顧問獨立預算 + 3 年輪換)(會計師 P0)
    • HSM break-glass 留書面審批單 + 時戳(會計師 P0)
    • bias probe 獨立 validator(自選 = 自評違反 A.6.2.4)(會計師 P0)
    • 工會協商 fallback(HR P0)
    • HR LMS + 培訓教材外購 / 內製決策(M2 必定)(HR P0)
    • 退休 / 離職 brain 智財 + 錄影同意 SOP(HR P0)
    • 勞動事件法 § 35 員工查閱 SLA 14 天(法務 P0)

    關鍵 insight:第四輪 9 個 gap 是前 3 輪沒有任何 expert 點到的 — 這證明 HR / CFO / 外部會計師三個 domain 是真正的盲點。任何 AI 治理藍圖如果沒有這 3 個 domain 獨立 review,等於沒做完

    十、真人 review 接手 — 5 場會議

    會議 時長 對象
    法律 / 合規 review 2-3 hr 法遵處長 + 外部勞動法律師 + 個資律師 + 工會代表
    組織治理 review 2 hr CIO + 法遵 + 內稽 + 獨立董事 + 審計委員會
    財務 review 2 hr CFO + 財務副總 + 集團 IT 預算負責人
    HR review 1.5 hr HR 處長 + LMS 負責人 + 工會代表
    IT / 工程 review 2-3 hr IT 主管 + RD lead + ERP 顧問
    BU 實戰 review 各 1.5 hr BU senior + 種子員工(各 BU 一場)
    ISO 機構 mock audit 半天 Schellman / TÜV SÜD / BSI / DNV 任選

    第一次 mock audit 應在 M9(不是 M11),時間夠改正。SOC 2 Type 2 需 6 個月運行證據,M12 才 Stage 1 → SOC 2 Type 2 報告最快 M18+。

    十一、Day 1 待確認的 6 件事

    1. 三條 Iron Rules 法務 review — BOM 配方、未公告財報、客戶合約合不合法務認知
    2. ERP 現況 — SAP / iDempiere / Oracle / Dynamics / 混合?(影響 30% 工程量)
    3. 準 CISO 人選 — IT 主管?資安代表?
    4. 種子 BU 候選欽點 1 個營收前三主力 BU(不要等自願)
    5. 預算核給 — Year 1 NTD 4-6 千萬具體編列
    6. ISO 稽核機構意向 — Schellman / TÜV SÜD / BSI / DNV 任選一家

    十二、給 CIO 的最後三句話

    三條 Iron Rules + 90 天法律化 + 鄉村包圍欽點啟動 = Day 1 全部要做的事

    4 輪 AI review + 28 份 expert opinion 找到的 22 個 gap 是骨架。真正的肉、血、溫度,在你接下來那 5 場真人會議

    這份藍圖的價值不是「告訴你答案」,是「告訴你接下來要問哪 5 群真人哪些問題」。

    延伸閱讀:腦子系統八部曲

  • 腦子系統 ISO 整合治理框架:6 篇收成 1 個合規可審計藍圖

    重點摘要(TL;DR)

    • 把腦子系統前六篇收成合乎 ISO 27001:2022 + ISO 42001:2023 的整合治理框架。雙標準有 ~40% 重疊,已 27001 認證可快 30-40% 取得 42001。
    • 多場景多用戶多工具的統一架構:5 個共用元件(Gateway / 分級表 / Audit log / Curator / KPI Dashboard)+ 4 類工具(Coding Agent / Chat-native / Bridge / Self-service HTML)+ 5 種角色(銷售 / 客服 / 採購 / RD / 管理層)。
    • 鄉村包圍踏實落地的 5 個 Phase Gate:每個階段過渡前要過硬條件,對應 ISO 稽核里程碑。沒過 Gate 不要硬上下一階段。
    • 月度健檢三個關鍵指標:覆蓋率(80%+)、合規 gap 減少率、稽核就緒度。月度報告 ≠ 一次性稽核 — 持續可量測。
    • 稽核準備 90% 自動化:從 git log / Gateway log / Audit DB / Curator review 自動 export,RD 投入時間從 1-2 個月降到 1-2 週。
    • 本文是腦子系統第七篇收尾。前六篇:Why / How / Scale / Tools / ERP / Self-Service

    一、問題重述

    腦子系統六篇文章寫完後,有個關鍵問題沒明確收斂:

    1. 整套架構合不合 ISO 27001 + ISO 42001?哪些直接合、哪些有 gap?
    2. 第三篇的「鄉村包圍」策略講了大方向,但怎麼穩定踏實做完?哪些真實風險會讓計劃流產?
    3. 多場景(銷售/客服/RD/管理層)、多用戶(80 人 vs 萬人)、多 AI 工具(Claude Code / OpenCode / QwenPaw / Self-service HTML)— 怎麼用一套框架統一治理?
    4. 怎麼確保多方都得到正確、安全、合規、整合的資料?

    本文是腦子系統的收尾整合,把前六篇收成可審計、可執行、可量測的治理框架。

    二、ISO 範圍界定(事實驗證)

    2.1 適用標準三件套

    標準 範圍 關鍵內容
    ISO 27001:2022 資安管理(ISMS) Annex A 共 93 controls,4 themes(Organizational 37 / People 8 / Physical 14 / Technological 34)
    ISO 42001:2023 AI 管理(AIMS) Annex A 共 38 AI-specific controls,9 control objectives,Clauses 4-10 結構
    ISO 27701 個資管理(PIMS) 針對 GDPR / 個資法,腦子系統的脫敏管道對應這個

    2.2 雙標準的重疊與互補

    • ~40% 重疊:Annex A 的 Clauses 4-10 結構大部分一致(Context / Leadership / Planning / Support / Operation / Performance / Improvement),已 27001 認證可快 30-40% 取得 42001([來源])
    • 60% AI-specific:42001 的 Clause 8(Operation)幾乎沒重疊 — AI Risk Treatment / AI System Impact Assessment / AI System Lifecycle / Data Management 都是 27001 沒有的
    • 同樣 3 年認證週期,可整合 audit 降低 disruption

    實務建議:先 27001 → 再加 42001。如果並行做,跟同一個認證機構(Schellman / TÜV SÜD / BSI / DNV)約整合稽核,證據文件大量 reuse。

    三、六篇文章 × ISO 控制項映射

    每一篇對應到具體 ISO 控制項。標 ✅ 是文章已涵蓋,標 ⚠️ 是 gap 需要補

    3.1 ISO 27001:2022 Annex A 對應

    Control 名稱 對應篇 狀態
    A.5.10 Acceptable use of information 第 1 篇 Iron Rules
    A.5.12 / A.5.13 Classification / Labelling of information 第 1 篇 A/B/C 分級
    A.5.19-21 Supplier relationship 第 4 篇 OpenClaw 教訓
    A.5.34 PII protection 第 2 篇脫敏 pipeline
    A.6.3 Awareness, education, training 第 1 篇 Layer 3 規則+教育
    A.8.3 Information access restriction 第 5 篇 iDempiere AD_Role
    A.8.15 Logging 第 2 篇 Gateway audit log
    A.8.20-23 Networks security / Web filtering 第 1 篇 Gateway 流量管制
    A.8.28 Secure coding 第 6 篇 LLM 產 HTML 安全規範 ⚠️ 部分
    A.8.32 Change management 第 2 篇 git PR review
    A.5.7 Threat intelligence 未涵蓋 ⚠️ Gap
    A.5.30 ICT readiness for business continuity 未涵蓋 ⚠️ Gap
    A.7.x Physical controls(機房 / 進出管制) 未涵蓋 ⚠️ 範圍外

    3.2 ISO 42001:2023 Annex A 對應(關鍵 9 個 control objectives)

    42001 Annex A 範疇 對應篇 狀態
    AI 政策(AI Policy) 第 1 篇 Iron Rules + 第 2 篇 Working Group
    AI 風險評估(AI Risk Assessment) 第 2 篇分級表 + 第 4 篇 OpenClaw 廠商風險
    AI 系統影響評估(AI Impact Assessment) 第 2 篇 Working Group 跨部門
    AI 系統生命週期(AI System Lifecycle) 第 2 篇 Phase 0-5 + 第 4 篇 Harness 修改
    資料治理(Data Management) 第 5 篇 iDempiere AD_Role + 分級表
    透明度與可解釋(Transparency) 第 4 篇三層漏斗(規則優先,LLM 兜底)
    第三方關係(Third-party relationships) 第 4 篇 Enterprise 合約 + DPA
    監控與量測(Monitoring & Measurement) 第 2 篇 KPI Dashboard
    人為監督(Human Oversight) 第 2 篇 Curator + 第 6 篇預設 read-only
    偏見緩解(Bias Mitigation) 未明確涵蓋 ⚠️ Gap
    事故管理(AI Incident Management) 部分(audit log 可追,但無 SOP) ⚠️ 部分

    四、Gap 補強方案

    對應前面標 ⚠️ 的條款,給每個 gap 具體補強做法:

    4.1 A.5.7 Threat intelligence

    • 定期收集 LLM 廠商安全公告(Anthropic / OpenAI / Microsoft 等)
    • 訂閱 prompt injection / jailbreak / model 漏洞情報源(OWASP Top 10 for LLM Applications)
    • 每季 working group 會議納入「AI 威脅情報」議程,新威脅進腦子的 brain markdown

    4.2 A.5.30 ICT readiness for business continuity

    • Gateway 高可用(HA)+ 失效時的降級策略(本地 LLM 接管)
    • 本地 Ollama 機器是 backup endpoint(雲端 frontier 掛時切回來)
    • BCM 演練每年 1 次:模擬 Anthropic API 全面斷掉,測員工是否能繼續工作

    4.3 A.8.28 Secure coding(LLM 產 HTML)

    • 第 6 篇講的「textContent 不用 innerHTML」、「不用 eval」是 prompt 規範,但需要 server side 驗證
    • Gateway 端加 HTML scanner:用 ESLint security rules 或 OWASP HTML Sanitizer 掃 LLM 產的 HTML
    • 不通過 scanner 的 HTML 不出 Gateway,改要員工重新 prompt

    4.4 ISO 42001 偏見緩解(Bias Mitigation)

    • 定期測試 LLM 對特定 prompt 的回應差異(性別、年齡、地區)
    • 建立 baseline test set:每季用同一組 prompt 測各廠 LLM,看 bias drift
    • Working Group 評估該 bias 是否影響業務,進腦子 brain markdown 註明

    4.5 AI 事故管理(Incident Management)

    • 定義「AI 事故」:LLM 產生危害內容、員工誤洩 A 級資料、Gateway 規則失效、模型 hallucination 造成業務錯誤等
    • SOP:發現 → 通報 CISO → audit log 凍結 → 影響評估 → 補救 → 事後檢討進 brain
    • 每年至少 1 次 incident 演練(tabletop exercise)

    五、鄉村包圍踏實落地的 5 個 Phase Gate

    第三篇講了大方向。本節補上「每個 Phase 過渡前的硬條件」,沒過 Gate 不要硬上下一階段。每個 Gate 同時對應 ISO 稽核里程碑。

    Gate 時機 硬條件 ISO 對應
    G0 啟動 M1 W1 CIO 簽核 3 條集團 Iron Rules + 任命準 CISO 42001 Clause 5 Leadership commitment
    G1 種子 M2 結束 至少 2 個 BU 各有 5 人在用、無重大 Iron Rules 違反事件 27001 A.6.3 Awareness 已生效
    G2 根據地 M4 結束 至少 2 BU 完成雙 Repo + 分級表 v0.1 + 脫敏字典 + Pre-commit hook 27001 A.5.12-13 + 42001 Data Management
    G3 包圍 M6 結束 Working Group v1 集團 CLAUDE.md + 集團分級表 + 三場核心會議全 done 42001 Clause 6 Planning + AI Policy 落地
    G4 進城 M9 結束 Gateway 上線、雙引擎接入、KPI Dashboard 跑、北極星比例 > 70% 27001 A.8.x + 42001 Clause 8 Operation
    G5 稽核就緒 M12 內部稽核完成、gap 補完、外部稽核機構 walk-through 通過 兩標準 stage 1 audit 通過

    5.1 過 Gate 的紀律

    • G1-G2 沒過,不要進 G3 包圍:沒實戰數據的 Working Group 會回到「法務全判 A 級」失敗模式
    • G3 沒過,不要急著裝 Gateway:沒分級表的 Gateway 是裝飾,只浪費 RD 時間
    • G4 沒過,不要排稽核:北極星 < 70% 表示員工沒採用,稽核員問「實際運作」會答不出來

    六、多場景統一治理框架

    6.1 五個共用元件(全公司一套)

    元件 角色 維護方
    LLM Gateway 所有 AI 流量必經(LLM call + ERP query) 中央 RD + IT
    分級對應表 A/B/C 級資料定義 Working Group 月度 patch
    Audit Log 全程紀錄(誰、何時、查什麼) 中央 SIEM
    Curator 制度 brain 品質把關 + 過時知識淘汰 每 BU 一名
    KPI Dashboard 月度健檢 + 北極星追蹤 中央 RD

    6.2 五種角色 × 四類工具的整合矩陣

    角色 \ 工具 Coding Agent Chat-native Bridge Self-Service HTML
    RD ✅ 主要 輔助 ✅ 出差/移動 輔助
    銷售 不適用 ✅ 主要 不適用 ✅ 主要
    客服 不適用 ✅ 主要 不適用 ✅ 主要
    採購 不適用 ✅ 主要 不適用 ✅ 主要
    管理層 不適用 輔助 不適用 ✅ 主要(儀表板)

    關鍵:不同角色用不同工具,但全部走同一個 Gateway。Gateway 那層的分級 / 脫敏 / audit / 路由規則,所有工具共用。

    6.3 確保「正確 / 安全 / 合規 / 整合」的四個機制

    • 正確:資料不來自 LLM 幻覺,而是來自 ERP via MCP/Gateway。LLM 只是把 ERP 資料整理 + 渲染,不產生資料
    • 安全:三層縱深 — 員工身分(SSO)、Gateway 規則(分級脫敏)、ERP 角色(AD_Role)
    • 合規:每個元件都對應 ISO 控制項,稽核證據自動 export
    • 整合:Single Source of Truth — 不同部門看到的資料一致(因為都來自同一個 ERP)、不同 AI 工具產的回應背後是同一個 Gateway

    七、月度健檢:踏實的可量測指標

    7.1 北極星(唯一最重要)

    本月 Gateway request 數 ÷ (Gateway + 偵測到的網頁版 LLM 流量)
    目標: 90%+
    < 70% = 拉力策略失敗,要查為什麼員工繞過

    7.2 三個關鍵健檢指標

    指標 定義 目標 頻率
    覆蓋率 月活使用 Gateway 員工 / 全公司 80%+
    合規 gap 減少率 本季新發現 gap 數 vs 已修復 gap 數 修復 ≥ 新增
    稽核就緒度 90% 證據可從系統自動 export M9 後達標

    7.3 月度報告(高層用)

    不要丟一堆數字給高層,只回答三個問題:

    1. 「上個月 X% 員工選擇 Gateway over 網頁版」← 北極星
    2. 「員工繞過 Gateway 的 Top 3 原因」← 下個月修哪邊
    3. 「ISO 稽核就緒度 + 安全收益 + 雲端費用」← 投資回報

    八、稽核準備 90% 自動化

    傳統公司 ISO 稽核要花 1-2 個月補資料、做文件、開會。腦子系統的設計讓大部分證據自動產出:

    稽核需要的證據 來源 準備時間
    AI 政策文件 + 變更歷史 company-brain git log 0(隨時可拉)
    分級表執行紀錄 Gateway audit log 0(已存在)
    脫敏執行實證 Gateway pipeline log 0(已存在)
    員工訓練紀錄 HR 既有訓練系統 既有資料
    第三方供應商 DPA 合約管理系統 既有資料
    KPI 持續監控 Dashboard 0(自動產生)
    變更管理 git PR 紀錄 0(已存在)
    事故管理 SIEM ticket 系統 既有系統
    人為監督 Curator 月度 review log 0(已存在)

    結果:RD 投入稽核準備時間從 1-2 個月降到 1-2 週。準備重點變成「整理 + 解釋」,而不是「補資料」。

    九、12 個月時程(對應第三篇 + 本文)

    關鍵交付 Gate
    M1 Iron Rules 三條 + 準 CISO 任命 + 種子 BU 招募 G0
    M2 2 BU 種子員工開始用 AI G1
    M3-M4 BU 各自雙 Repo + 分級表 v0.1 + 脫敏字典 G2
    M5-M6 Working Group 三場核心會議 + 集團 v1 G3
    M7-M9 Gateway 上線 + 雙引擎 + Self-service HTML + iDempiere MCP G4
    M10-M11 Gap 補強 + 內部稽核 + 外部顧問 walk-through
    M12 ISO 27001 + 42001 stage 1 audit G5

    對 80 人公司:可加速到 6-9 個月。對萬人集團:可能延長到 18 個月,但鄉村包圍策略讓每個 BU 看到自己的進度,而不是等全集團一起

    十、結語:從 6 篇到 1 個治理框架

    前六篇是分散的拼圖:Why / How / Scale / Tools / ERP / Self-Service。本篇把它們收成一個整體。

    「合不合 ISO」答案是:大部分天然合,有 5 個 gap 要補強。「鄉村包圍怎麼踏實做完」答案是:5 個 Phase Gate + 月度健檢 + 北極星 KPI。「多場景多用戶多工具怎麼統一」答案是:5 個共用元件 + 角色×工具矩陣

    真正讓系統「正確、安全、合規、整合」的不是任何一個元件,是所有元件都會合在 Gateway 那一層:那是員工、AI、ERP、稽核員看的同一個交集點。設計對了,後面都對。

    對企業 IT 主管的最後一個具體下一步:

    1. 本文的 ISO 控制項對應表存成 git repo 一份檔,作為日後稽核 SoA(Statement of Applicability)的基礎
    2. 下一次 working group 會議,把本文的 5 個 Phase Gate 排進共享日曆
    3. 稽核機構初步接洽:Schellman / TÜV SÜD / BSI / DNV 任選一家,問整合 27001 + 42001 報價
    4. 北極星 KPI 上 dashboard,讓員工看得到(透明度本身是 ISO 42001 的要求)

    延伸閱讀:腦子系統七篇

    可運作的 Reference Links(2026/5 撰文時驗證)

    ISO 標準官方

    Annex A 控制項對照(實作指南)

    業界實戰

    OWASP Top 10 for LLM(對應 A.5.7 Threat Intelligence)

  • 把 ERP 變成 AI 的執行單元:iDempiere OData × MCP Server 整合策略

    重點摘要(TL;DR)

    • iDempiere(開源 ERP)的 REST/OData API 包裝成 MCP server,任何支援 MCP 的 AI 工具(Claude / ChatGPT / Cursor / Claude Code / VS Code)都能直接呼叫 ERP。
    • Microsoft 已經做了 Dynamics 365 ERP MCP server(2026/4 文件更新),三類工具設計:Data tools(OData CRUD)、Form tools(模擬使用者操作)、Action tools(直接呼叫 business class)。這個設計可以直接借鏡到 iDempiere
    • iDempiere REST 已經提供 api/v1/auth(JWT)、api/v1/models(OData CRUD)、api/v1/windowsapi/v1/processes 四類 endpoint — 剛好對應 Microsoft 的三類工具
    • 整合到腦子系統:LLM Gateway + MCP Server 雙軌設計,Gateway 管 LLM 流量,MCP 管 ERP tool calls,各自有 audit log,iDempiere 內建的 AD_Role 直接當權限層,不用自寫 ABAC。
    • 本文是腦子系統四部曲的第五篇延伸(ERP 整合層)。前四篇:Why / How / Scale / Tools

    一、為什麼 iDempiere OData 是腦子系統缺的拼圖

    前四篇文章把 AI 治理系統蓋好了:LLM Gateway、雙引擎、Harness、Chat-native Agent。但有個關鍵問題沒解決 — AI 怎麼安全地讀寫公司的真實業務資料?

    大部分公司現況:業務資料躺在 ERP 裡,AI 透過 prompt 拿不到;或者員工自己貼資料給 AI(踩到 A 級資料禁令)。第一篇的核心哲學「AI 時代不做 UI,做給 AI 安全取資料的入口」需要一個具體載體。

    iDempiere(開源 ERP)的 REST/OData API 剛好就是這個載體 — 它本來就是「給機器讀的標準介面」,而且整套權限、Audit、租戶隔離都已經 30 年累積在 iDempiere 的 AD(Application Dictionary)裡。不用重新造輪子,直接接到 AI

    二、事實核對:iDempiere REST API 真實狀態(2026/5)

    本文涉及的 iDempiere 技術細節都來自官方來源,以下是 2026/5 撰文時的驗證結果:

    事實 驗證來源
    REST plugin 由 BX Service GmbH 維護,GPLv2,used in production iDempiere Wiki
    支援 iDempiere release 12 及 master,plugin 已運作於 v9/v10 GitHub Repo
    官方文件站 idempiere-rest-docs
    Swagger UI 互動式 API 探索 hengsin/idempiere-rest-swagger-ui

    2.1 四個主要 API 端點

    • POST/PUT api/v1/auth/tokens — JWT 認證(token 1 小時有效)
    • api/v1/models/{tableName} — PO(Persistent Object)CRUD,支援 OData filter
    • api/v1/windows/{windowSlug}/tabs/{tabSlug} — Window/Tab 互動(對應 ERP UI 的視窗結構)
    • api/v1/processes/{processSlug} — Process 呼叫(DocAction、報表、自動化流程)

    以及附加端點:檔案存取、Reference 資料、Cache 管理、Workflow、Scheduler 資訊。[來源]

    三、業界典範:Microsoft Dynamics 365 ERP MCP Server

    Microsoft 在 2026/4/27 發表了 Dynamics 365 Finance & Operations 的 MCP server 完整文件 — Microsoft Learn這是目前業界最完整的 ERP × AI 整合範例,值得借鏡。

    3.1 Microsoft 的三類工具設計

    類別 用途 代表工具(Microsoft)
    Data tools OData CRUD operations data_find_entities、data_create_entities、data_update_entities、data_delete_entities
    Form tools 模擬使用者在 UI 上的操作(點按鈕、填表、開分頁) form_click_control、form_set_control_values、form_save_form
    Action tools 直接呼叫 ERP 內部 business logic class api_find_actions、api_invoke_action

    3.2 三個關鍵設計原則(直接可借鏡)

    1. 動態 context:MCP server 每次 tool call 都根據 agent 安全角色和環境配置「動態」回傳 context — 「the security role of the authenticated user for the agent determines which objects are returned in the view model」(原文)
    2. 角色限制 = scope 限制:Agent 只看到自己角色能存取的 menu / entities / API,既是安全也是 prompt 效率(context 不會塞太多無關資訊)
    3. Allowed MCP Clients:Microsoft 預設只允許 Copilot Studio 和 VS Code 兩個 client ID 存取 MCP,其他 agent platform 必須在 Microsoft Entra ID 註冊後加入白名單 — 不是「誰來都能接」

    四、把這個設計搬到 iDempiere

    關鍵 insight:iDempiere REST 的四個 endpoint,剛好對應 Microsoft 的三類工具設計,直接 mapping:

    Microsoft 三分類 iDempiere REST 對應 endpoint 說明
    Data tools api/v1/models/{table} PO CRUD + OData filter,直接套
    Form tools api/v1/windows/{slug}/tabs/{slug} Window/Tab 結構,可模擬「打開視窗、切分頁、設欄位」
    Action tools api/v1/processes/{slug} Process 呼叫(DocAction、報表、自動化)

    結論:你不用設計 MCP server 的工具分類,直接複製 Microsoft 的三分類,把 iDempiere REST 端點包裝進去即可。

    五、MCP 是什麼,為什麼是關鍵

    Model Context Protocol 是 Anthropic 2024/11 發布的開源協議,定義 AI 應用怎麼跟外部資料來源、工具、工作流溝通。官方比喻:「USB-C port for AI applications」。[來源]

    5.1 為什麼是 ERP × AI 的關鍵

    • 標準協議,一次寫多處用:同一個 MCP server 可以同時被 Claude Desktop / Claude Code / Cursor / VS Code / ChatGPT 接([來源])
    • 不是 prompt engineering 的小聰明,是基礎建設層
    • 已成 industry standard:Anthropic / OpenAI / Microsoft 都採納

    5.2 寫 MCP server 的工具(2026/5 驗證)

    • Python SDK:modelcontextprotocol/python-sdk v1.x stable(v2 pre-alpha 開發中)
    • 安裝:uv add "mcp[cli]"pip install "mcp[cli]"
    • Transport:stdio、SSE、Streamable HTTP 三種
    • 認證:OAuth 2.1 resource server 標準

    六、實作範例:iDempiere MCP server v0

    下面是用 FastMCP + httpx 實作的最小可行版本,展示三類工具的骨架。注意:這是教學範例,production 版需要加上錯誤處理、重試、token refresh、審計 log 等。

    # idempiere_mcp_server.py
    from mcp.server.fastmcp import FastMCP
    import httpx
    from typing import Optional
    
    mcp = FastMCP("iDempiere-MCP")
    IDEMPIERE_BASE = "https://idempiere.example.com/api/v1"
    
    # ───────── Auth ─────────
    @mcp.tool()
    async def authenticate(
        username: str,
        password: str,
        client_id: int,
        role_id: int,
        organization_id: int = 0,
        warehouse_id: int = 0,
        language: str = "en_US"
    ) -> dict:
        """One-shot authentication with all parameters.
        Returns session token valid for 1 hour."""
        async with httpx.AsyncClient() as client:
            resp = await client.post(
                f"{IDEMPIERE_BASE}/auth/tokens",
                json={
                    "userName": username,
                    "password": password,
                    "parameters": {
                        "clientId": client_id,
                        "roleId": role_id,
                        "organizationId": organization_id,
                        "warehouseId": warehouse_id,
                        "language": language,
                    }
                }
            )
            resp.raise_for_status()
        return resp.json()
    
    # ───────── Data Tools (OData CRUD) ─────────
    @mcp.tool()
    async def query_records(
        token: str,
        table_name: str,
        filter_expr: Optional[str] = None,
        top: int = 50
    ) -> dict:
        """Query iDempiere PO records via OData.
    
        Filter examples (note iDempiere uses 'neq' not 'ne'):
          - "IsCustomer eq true and contains(Name, 'Acme')"
          - "Created gt 2026-04-01T00:00:00Z"
        """
        params = {"$top": top}
        if filter_expr:
            params["$filter"] = filter_expr
        async with httpx.AsyncClient() as client:
            resp = await client.get(
                f"{IDEMPIERE_BASE}/models/{table_name}",
                params=params,
                headers={"Authorization": f"Bearer {token}"}
            )
            resp.raise_for_status()
        return resp.json()
    
    @mcp.tool()
    async def create_record(token: str, table_name: str, data: dict) -> dict:
        """Create a PO record. Caller must include all mandatory fields.
        Tip: query AD_Column WHERE IsMandatory='Y' to discover them first."""
        async with httpx.AsyncClient() as client:
            resp = await client.post(
                f"{IDEMPIERE_BASE}/models/{table_name}",
                json=data,
                headers={"Authorization": f"Bearer {token}"}
            )
            resp.raise_for_status()
        return resp.json()
    
    # ───────── Action Tools (Process call) ─────────
    @mcp.tool()
    async def run_process(
        token: str,
        process_slug: str,
        parameters: dict
    ) -> dict:
        """Execute an iDempiere Process (e.g. DocAction, scheduled job, report).
    
        Parameters must be FLAT top-level keys, NOT a 'parameters' array:
          Correct:  {"StatementYear": 2026, "StatementPeriod": "2"}
          Wrong:    {"parameters": [{"parameterName": ..., "value": ...}]}
        """
        async with httpx.AsyncClient() as client:
            resp = await client.post(
                f"{IDEMPIERE_BASE}/processes/{process_slug}",
                json=parameters,
                headers={"Authorization": f"Bearer {token}"}
            )
            resp.raise_for_status()
        return resp.json()
    
    if __name__ == "__main__":
        mcp.run(transport="streamable-http")

    這支 script 跑起來後,任何支援 MCP 的 client(Claude Desktop / Claude Code / Cursor / VS Code)都可以連到 http://localhost:8000 並使用上述工具。

    6.1 範例對話(架構驗證)

    員工(在 chat 工具中):
      「幫我查最近 10 筆訂單金額大於 100 萬的客戶」
    
    AI agent(透過 MCP 自動執行):
      1. authenticate(...) → 拿到 session token
      2. query_records(
           token=...,
           table_name="C_Order",
           filter_expr="GrandTotal gt 1000000",
           top=10
         )
      3. 解析結果,回給員工
    
    員工看到:
      「最近 10 筆大於 100 萬的訂單列表如下:...」

    注意:第 1 步的 authenticate 只執行一次,session token 1 小時有效,後續 query 都用同一個 token。

    七、整合進腦子系統:雙軌架構

    員工 chat app (LINE / Mattermost / Telegram / Slack)
        ↓
    Chat-native Agent (QwenPaw) 或 Coding Agent (Claude Code)
        │
        ├─ LLM 流量 ───→ 公司 LLM Gateway (LiteLLM + Portkey)
        │                ├─ 分級/脫敏/路由
        │                └─ → 雲端 frontier 或本地 Ollama
        │
        └─ Tool calls ─→ iDempiere MCP Server (自製)
                          ├─ OAuth 2.1 / Allowed Clients 白名單
                          ├─ Data tools (OData CRUD)
                          ├─ Form tools (Window/Tab 互動)
                          ├─ Action tools (Process call)
                          └─ Audit log → SIEM
                          ↓
                      iDempiere REST API (api/v1/*)
                          ↓ (內建 AD_Role 過濾)
                      iDempiere PostgreSQL

    關鍵設計:

    • LLM Gateway 跟 MCP Server 是兩條平行軌道:Gateway 管 prompt,MCP 管 tool calls。兩者都要 audit log,可獨立縱深防禦
    • 權限不重複設計:iDempiere 內建 AD_Role 直接當權限層,MCP server 帶 user 的 token 進去,iDempiere 自動套 role 過濾資料 — 不用自寫 ABAC 規則
    • Allowed MCP Clients 白名單:借鏡 Microsoft 設計,只允許特定 agent platform 接 MCP server,不是「誰來都能接」

    八、權限層的對應(這是最大紅利)

    員工從 chat app 問問題時的完整權限路徑:

    1. 員工 LINE/Slack ID → Agent 認 ALLOWED_USERS 白名單
    2. Agent → MCP Server,帶員工的 iDempiere session token
    3. MCP Server → iDempiere REST,帶 token
    4. iDempiere 自動套員工的 AD_Role 過濾資料:
       - 業務員角色 → 只看自己的 SalesRep 訂單
       - CFO 角色 → 看全公司
       - RD 角色 → 完全看不到業務資料
    5. 回應只含「員工角色應該看到」的資料

    iDempiere 30 年累積的 AD_Role / AD_Window_Access / AD_Column 權限設計直接拿來用。這比自己在 Gateway 寫 ABAC 簡單一個量級

    九、為什麼這比 Dynamics 365 / NetSuite MCP server 適合中小規模製造業

    特性 Dynamics 365 ERP MCP iDempiere + 自製 MCP
    License Microsoft 訂閱 + Copilot 點數 GPLv2 開源
    Hosting Cloud only(Tier 2+) self-host / air-gapped 可
    Tool 計費 0.1 Copilot Credits per tool call(非 Copilot Studio 環境) 0(自架)
    A 級資料 需透過 Cloud,法規場景受限 完全本地處理
    客製化 透過 ICustomAPI + AI tool framework 直接改 plugin / 加 process

    對製造業中小集團、要 air-gapped 的法規場景、預算有限的公司:iDempiere + 自製 MCP server 是唯一既可離線又能整合 AI 的開源路徑

    十、工程藍圖:漸進式 v0 → v1 → v2

    v0:Read-only Data Tools(2-4 週,1 RD)

    • 實作 authenticate + query_records(本文範例)
    • 支援 5-10 個常用 table:C_BPartner、C_Order、M_Product、M_InOut、M_Movement、AD_User、R_Request 等
    • OData filter 支援 eq / neq / contains / gt / lt
    • 串接 Claude Desktop 或 Claude Code 測試

    v1:加入 Action Tools(2-4 週)

    • 實作 run_process(DocAction、報表、自動化)
    • 實作 create_record / update_record(POST/PUT)
    • 處理 mandatory field 偵測(自動查 AD_Column WHERE IsMandatory=’Y’)
    • token 自動 refresh(1 小時過期)
    • 串接公司 LLM Gateway,流量都過 audit

    v2:Form Tools + 進階 Window 互動(4-8 週)

    • 包裝 api/v1/windows/{slug}/tabs/{slug}
    • 讓 AI 模擬「打開視窗、切分頁、設欄位、按按鈕」
    • 處理複雜流程(發票核銷、應收沖帳等)
    • 整合 Allowed MCP Clients 白名單機制

    對中小企業:v0 可能就夠用 80%。對中大型集團:v0 → v1 → v2 漸進式投資,12-16 週完整版可上線。

    十一、結語:把 AI 變成 ERP 的執行單元

    前四篇腦子系統的 AI 仍然是「跟業務資料分開的工具」 — 員工問問題,AI 回答。

    加上 iDempiere MCP Server,AI 變成能直接動 ERP 的執行單元:查訂單、開請款單、跑 process、生報表。員工從 chat app 一句話完成原本要打開 ERP 點 5 個選單的工作。

    這才是「AI 時代不做 UI,做給 AI 安全取資料的入口」的真實落地。RD 不再被 UI 工單吃掉,而 80% 不寫 code 的員工終於能用一句中文操作 ERP。

    對企業 IT 主管的具體下一步:

    1. 裝 bxservice/idempiere-rest plugin 到既有 iDempiere(若還沒)
    2. 用 Postman 測 4 個主要 endpoint(repo 內有 collection)
    3. 用本文 v0 範例寫 MCP server,跑在開發機 localhost
    4. 掛到 Claude Desktop / Claude Code 試用,驗證權限層運作
    5. 確認可用後,搬上公司內網,接入 LLM Gateway

    延伸閱讀:腦子系統四部曲 + 本篇

    可運作的 Reference Links(2026/5 撰文時驗證)

    iDempiere 官方資源

    MCP 官方資源

    業界 ERP MCP server 參考

    OData 標準

  • Chat-native AI Agent + Harness 設計 + OpenClaw 事件:腦子系統工具中性化

    重點摘要(TL;DR)

    • AI 工具有三類完全不同定位:Coding Agent(Claude Code / OpenCode)、Chat-native General-purpose Agent(OpenClaw / QwenPaw / Nanobot)、Bridge(ccbot / 官方 Channels)。前一版混淆了,本篇修正。
    • OpenClaw 事件(2026/4/4):Anthropic 撤銷 OAuth、訂閱費不再支援第三方工具。對企業最重要的教訓:永遠用 API key 走 Enterprise 合約,不要把員工個人訂閱當公司基建
    • OpenClaw 替代品光譜:QwenPaw(對企業 air-gapped 最優)、Nanobot(輕量)、PraisonAI(low-code multi-agent)、Hermes / grip-ai / Chatbox / Enclave AI 等。
    • Harness 設計(Anthropic 2026/3 三 agent 方法論):Simplicity First / Strip away non-load-bearing / Evaluator 看任務難度。模型升級時主動砍腳手架。
    • 企業整合三版本:A(Claude Code + 官方 Channel)、B(Claude Code + ccbot + Gateway)、C(QwenPaw + Ollama + Gateway 完全 air-gapped)。可同時並存於同一集團不同 BU。
    • 本文是腦子系統四部曲第四篇(Tools 工具中性化),前三篇:Why / How / Scale

    一、修正前篇:三類工具的真實定位

    本文重寫前一個版本,因為前版誤把 OpenClaw 當作 OpenCode 處理。實際上這兩個工具完全不同類,分屬不同層的解決方案。整個生態系應該分成三類來看:

    類別 代表工具 主要任務 介面 目標用戶
    A. Coding Agent Claude Code、OpenCode、Cursor、Aider、Cline、Codex CLI 寫 code、debug、跨檔案 refactor Terminal / IDE RD / DevOps
    B. Chat-native General Agent OpenClaw、QwenPaw、Nanobot、PraisonAI、Hermes email / 行事曆 / 訂機票 / 表單填寫 / 一般行政自動化 原生支援多 chat app(WhatsApp/Telegram/Slack/Signal/iMessage) 全公司員工(含非 RD)
    C. Bridge / Channel ccbot、Anthropic 官方 Channels、CloudCLI 把 Coding Agent 延伸到行動端 Telegram / Discord / iMessage RD(出差/移動中)

    關鍵 insight:B 類(Chat-native)對「萬人集團 80% 不寫 code 的員工」覆蓋面最大 — 業務、客服、行政、HR 不需要 coding agent,他們要的是 email / 行事曆 / 訂機票 / 表單自動化,而且要從原本就在用的 chat app 直接呼叫。

    二、OpenClaw 事件:企業導入的重大警訊

    2.1 事件時間軸

    • 2025/11:作者 Peter Steinberger(奧地利開發者)發布 Clawdbot
    • 2026/2/14:作者宣布加入 OpenAI(這個時間點在後續事件中很微妙)
    • 2026/3:Clawdbot 改名 OpenClaw,支援 50+ integrations
    • 2026/4/4:Anthropic 正式撤銷第三方工具的 OAuth 存取,Claude Pro/Max 訂閱不再支援 OpenClaw 等工具(改算 extra usage)
    • 2026/4/10:Anthropic 短暫封鎖作者本人帳號,輿論發酵後恢復

    2.2 為什麼被封鎖

    Anthropic 的官方說法:違反 Consumer Terms of Service

    • Claude.ai 訂閱(Pro / Max)是個人用 — 「for personal use through Anthropic’s own interfaces
    • 不可 power programmatic workflows(自動化流程、批次處理)
    • OpenClaw 用 OAuth 把訂閱費當 API 用,實質是「訂閱價跑 API 等級流量」 — Anthropic 形同補貼
    • Anthropic 法務頁面明寫:「Using OAuth tokens obtained through Claude Free, Pro, or Max accounts in any other product, tool, or service — including the Agent SDK — is not permitted

    2.3 對企業的四個重大教訓

    1. 永遠用 API key,不要用個人訂閱 OAuth:員工說「我用我的 Claude Pro 帳號接公司工具」聽起來省錢,實際上隨時被切。企業 AI 基建只能架在 Enterprise 合約 + API key 之上。
    2. 「廠商封鎖風險」要納入工具選型:同一家廠商可能因為政策、競爭、法務等原因突然改規則。OpenClaw 的 50 倍成本上漲、不少 OpenAI 第三方工具被封鎖、API rate limit 突調 — 都是真實案例。不要把全公司流量壓在單一廠商
    3. 本地模型 + 開源 chat-native agent 是唯一不被綁的路徑:OpenClaw + Anthropic 訂閱會被切,但 QwenPaw + Ollama + Qwen3-Coder-Next 完全自主,沒有任何第三方可以動你的服務。對 A 級資料 BU 是必選。
    4. 合約條款要求「廠商如改政策提前 90 天通知」:Enterprise 合約 negotiate 時,把「policy stability」寫進去。Anthropic 對個人訂閱可以說改就改,但對 Enterprise 客戶通常得提前通知 — 這個條款要爭取。

    三、OpenClaw 替代工具完整地圖

    OpenClaw 事件後,生態系冒出大量替代品。按企業適用場景分:

    3.1 對企業 air-gapped BU 最理想:QwenPaw

    • 來源:agentscope-ai 開源(原名 CoPaw,2026 改名 QwenPaw 強調 Qwen 生態整合)
    • 特色:本地模型優先(Qwen3-Coder-Next、Qwen3.6 等)+ 多 chat app 介面(DingTalk / Feishu / WeChat / Discord / Telegram)
    • 對台灣企業:中文 chat app 支援度最高,適合製造業 / 集團內部
    • 適合:萬人集團 A 級 BU、要完全 air-gapped、製造業 BOM / 財務 / HR

    3.2 輕量化:Nanobot

    • 來源:香港大學,4,000 行 Python(對比 OpenClaw 的 430K 行)
    • 支援:Telegram / Discord / WhatsApp / Slack / Email out of the box
    • 適合:小團隊、想完全掌控代碼、不需要 50+ integrations 的企業

    3.3 多 agent 編排:PraisonAI

    • 特色:low-code 多 agent 平台,100+ LLM 支援,內建 handoffs / guardrails / memory / RAG
    • 支援:Telegram / Discord / WhatsApp
    • 適合:需要 Anthropic 三 agent harness 設計、但不想自己從頭寫的企業

    3.4 其他主流選項

    工具 特色 適合
    Hermes Agent self-improving 學習迴圈,從複雜任務生 skill 文件 需要長期累積能力的場景
    grip-ai Claude Agent SDK based,31 tools,826 tests 仍想用 Anthropic 但要可控的開發者
    NanoClaw 5 個檔案 vs 430K 行,Linux 容器隔離,WhatsApp focus 資安要求高、要細粒度隔離
    Chatbox 統一介面接 ChatGPT / Claude / Gemini / Ollama 員工想跨多家 LLM 的桌面用戶
    Enclave AI iPhone / Mac 完全本地,語音對話 A 級資料行動端、無雲依賴
    OpenJarvis Ollama / vLLM / SGLang / llama.cpp 整合,有 learning loop 已有本地推理基建的企業
    Moltworker Cloudflare 推出的 self-hosted personal agent 已用 Cloudflare 生態的企業

    四、Harness 設計方法論

    「Harness」(腳手架)是 Anthropic 2026 提出的核心工程概念,指 AI agent 周邊的所有非模型組件:system prompt、memory 機制、tool 定義、context 管理、agent 多步循環、評估迴圈。Anthropic 在 Harness design for long-running application development(2026/3)正式發表了完整方法論。

    4.1 Anthropic 三 agent harness

    Agent 角色 職責 Handoff 產出
    Planner 把模糊的初始 prompt 展開成詳細規格 feature 清單(Anthropic 範例 200+ 條)
    Generator 執行核心工作、實作功能、自我評估進度 code + progress tracking artifact
    Evaluator / QA 用具體 criteria 獨立評估,抓 generator 漏掉的 gap 合格/不合格 + 具體缺漏清單

    三 agent 分離的目的:解決長時間任務的 context overflow。一個 agent 跑 8 小時 context 會爆,三個 agent 用 structured handoff artifact 傳遞狀態,每個 agent 自己 context 重置 — 這就是 Anthropic 講的「maintain coherence across multiple context windows」。

    4.2 公司腦子系統如何映射到 Harness

    Anthropic Harness 元件 公司腦子系統對應 維護方
    System Prompt global/CLAUDE.md(Iron Rules) Working Group
    Memory(persistent) 公司腦 brain markdown + 個人腦 Curator + 員工自己
    Tools / MCP servers Skills(可重用能力包)+ 內部 RAG RD + 部門 Curator
    Context 管理 build.sh 編譯時依目標 model 過濾 RD
    Evaluator agent Curator 月度 review + KPI Dashboard + ISO 稽核 準 CISO + Curator

    4.3 修改 Harness 的三條原則

    1. Simplicity First:找最簡解,需要才增加複雜度。每個 harness 元件都 encode 了一個假設「模型自己做不到 X」 — 這些假設要定期 stress-test。
    2. Strip away non-load-bearing pieces:模型升級時(Opus 4.5 → 4.6 → 4.7),原本必要的腳手架可能變成包袱。Anthropic 觀察 Opus 4.6 比 4.5 需要更少腳手架 — 模型越強,harness 越輕。
    3. Evaluator 看任務難度:「worth the cost when the task sits beyond what the current model does reliably solo」。簡單 CRUD 不需要 evaluator;跨檔案 refactor 才需要。不為對稱加 evaluator,只在它真的攔到問題時保留

    五、行動端通訊三種模式(正確分類)

    模式 對應 機制 適合場景
    A. Coding Agent + 官方 Channel Claude Code + 官方 Channels(2026/3/20) Anthropic 官方 MCP server,連 Telegram/Discord/iMessage 純 Claude Code 用戶、簡單設定
    B. Coding Agent + Bridge Claude Code / OpenCode + ccbot(tmux 之上) tmux thin layer,讀 pane output、送 keystrokes RD 想多 session 平行、跨 coding agent
    C. Chat-native Agent(Native) QwenPaw / Nanobot / OpenClaw 等 自帶 agent + 自帶多 chat app,本機跑 全公司員工(含非 RD),日常自動化

    關鍵差別:

    • A 和 B 後面接 Coding Agent(只做 coding 任務的延伸)
    • C 本身就是 Agent(做廣義自動化:email、行事曆、表單、訂機票)
    • 覆蓋面:A、B 給 RD;C 給全員

    5.1 ccbot 機制深入(B 模式代表)

    ccbot 是 B 模式主流。技術核心:tmux 之上的 thin control layer,不是 SDK wrapper

    • Claude Code 進程原封不動跑在桌機 tmux window
    • ccbot 監聽 JSONL 轉錄檔(每 2 秒 polling)
    • Telegram 訊息 → 送 keystrokes 到 tmux pane
    • terminal output → ccbot 解析後 forward 回 Telegram
    • 1 Telegram topic = 1 tmux window = 1 Claude session

    適配到其他 coding agent(OpenCode / Aider / Cline)需要 fork ccbot 改 transcript parser,核心架構不變,1-2 週可做出 v0。

    六、企業整合架構:三種模式 × Gateway

    6.1 完整流量路徑

    員工手機 (WhatsApp / Telegram / Slack / Signal)
        ↓ chat message
    ┌────────────── 三種入口都進這層 ──────────────┐
    │  A: Coding Agent + 官方 Channel              │
    │  B: Coding Agent + ccbot Bridge              │
    │  C: Chat-native Agent (QwenPaw 等)           │
    └────────────────────────────────────────────┘
        ↓ HTTP request 經 BASE_URL 改寫 (關鍵!)
    公司 LLM Gateway (LiteLLM + Portkey)
        ├─ Layer 1 regex 脫敏 / 分級
        ├─ Layer 2 小模型 fail-safe
        ├─ 路由 + audit log
        └─ ↓               ↓
           雲端 frontier   本地 Ollama
           (B/C 級,API key) (A 級)

    三種模式的共同點:都要把 endpoint 指向公司 Gateway,讓分級 / 脫敏 / audit 都生效。不可以讓員工的 Chat-native Agent 直接連 Anthropic / OpenAI 的 API,即使是 Enterprise 合約也不該繞過 Gateway。

    6.2 安全考量(必看)

    • 訊息 channel 也要分級:Telegram / Discord / WhatsApp 訊息會經過第三方伺服器 → 即使 Gateway 端脫敏,訊息已經先到第三方。建議:
      • Slack(enterprise)/ Mattermost(self-host)→ B/C 級可
      • Signal → B 邊界、C 級可
      • Telegram / Discord / WhatsApp → 僅 C 級
      • iMessage → 視所在地區法規(歐盟禁、台灣彈性)
      • A 級 BU(財務 / HR / BOM 配方 / 法務)禁止任何外部 chat channel,只能 Mattermost self-host
    • 身份驗證:Bridge / Chat-native Agent 必設 ALLOWED_USERS 白名單,綁員工 chat app 帳號;離職立即撤銷
    • 不要用個人訂閱 OAuth:OpenClaw 事件的核心教訓 — 員工說「我用我的 Claude Pro 接公司工具」聽起來省錢,實際上隨時被切;公司基建只能架在 API key + Enterprise 合約

    七、企業導入的三個版本

    A 基礎版:Claude Code + 官方 Channels

    • 適合:80 人以下、已用 Claude Code、員工以 RD 為主
    • 成本:Anthropic Enterprise 合約 + 官方 Channels 免費
    • 工程量:1 人 1 週設定完成
    • 限制:覆蓋率低(只給寫 code 的人)、A 級資料無法處理

    B 開源版:Claude Code + ccbot + 公司 Gateway

    • 適合:80-1000 人、有 RD 維護能力、想多 session 平行
    • 成本:Anthropic Enterprise + ccbot 自架 + 公司 Gateway
    • 工程量:1.5 RD x 2-3 個月
    • 限制:仍綁 Anthropic、覆蓋率仍偏 RD、A 級資料要走 Mattermost self-host

    C 完全本地版:QwenPaw + Ollama + 公司 Gateway ⭐

    • 適合:萬人集團、製造 / 金融 / 國防 / 醫療,有 air-gapped 法規要求
    • 成本:QwenPaw 免費 + GPU 機房(中央 1x H100 + 多台 4090)+ Mattermost self-host + 公司 Gateway
    • 工程量:2-3 RD x 4-6 個月
    • 優勢:
      • 整套 air-gapped,A 級資料完全可處理
      • 不被任何雲端 LLM 廠商鎖死(OpenClaw 事件不會發生在你身上)
      • 覆蓋全公司員工(含 80% 不寫 code 的人)
      • 支援中文 chat app(QwenPaw 原生支援 DingTalk / Feishu / WeChat)

    三個版本可以同時並存於同一集團:RD BU 用 B 版(Claude Code + ccbot)做 coding;業務 / 客服 / 行政用 C 版(QwenPaw)做日常自動化;管理層內部工具用 A 版(官方 Channels)。不同 BU 不同需求,Gateway 是唯一共用層

    八、結語:工具中性化 + 廠商獨立

    不應該把員工綁在某個 AI 工具的某個 UI 上,也不應該把公司基建綁在某家廠商的政策善意上。

    讓員工選工具(Claude Code / OpenCode / QwenPaw / OpenClaw),選位置(桌機 / 手機 / 平板),選通訊頻道(Telegram / Discord / Signal / Slack / WhatsApp / Mattermost)。公司只負責 Gateway 那層的腦子注入和分級路由。

    OpenClaw 事件提醒我們:廠商可以在任何時間用任何理由改規則。本地模型 + 開源工具 + 自有 Gateway 是唯一不會被切的路徑。Bridge 和 Gateway 正交組合,工具汰換不影響腦子系統 — 這才是真正的工具中性化。

    同樣道理:模型升級時,Anthropic 教我們「strip away non-load-bearing pieces」。腦子系統的每季健檢就是這個原則的應用。Harness 不是寫一次就完的,是隨模型演化、隨廠商政策變動而調整的活系統

    延伸閱讀

    2026/5 工具與事件參考

  • 80人AI腦子系統實戰建置:從0到上線的16個步驟

    重點摘要(TL;DR)

    • 把 80 人 AI 腦子系統從 0 蓋起來,共 5 個 Phase、16 個 Step、約 16 週。本文逐步拆解每一步的目標、動作、產出、坑。
    • 每一步都用四維框架檢查:安全(不洩漏)、穩定(不掛)、累積(知識變資產)、好用(員工願意用)。任何一步如果四維都不過,就砍掉。
    • 核心心法:物理保證 > 規則約束、拉力 > 推力、先粗版再精修、安全在前但好用不能放最後
    • 順序很重要,不能跳步。例如沒有 Step 6(分級對應表)就做 Step 9(Gateway),Gateway 規則沒依據;沒有 Step 12(Curator)就累積知識,3 個月後變垃圾堆。
    • 本文是《80人公司的AI腦子系統:從個人腦擴展到全公司不洩密的工程設計》的實作續篇。前篇講為什麼,本篇講怎麼做。

    為什麼要從「順序」談起

    很多公司導入 AI 治理失敗,不是技術不行,是順序錯了。常見錯誤:

    • 先買 Gateway 軟體,再去定資料分級 → 規則沒依據,Gateway 變裝飾
    • 先請大家寫 brain markdown,沒有 Curator 制度 → 3 個月後變過期文件墳場
    • 先做華麗 Dashboard,沒有 audit log 來源 → KPI 是亂編的
    • 先全公司鋪開,沒先試點 → 第一週體驗不好,80 人對系統信任歸零,救不回來

    本文每個 Step 都標「為什麼是這個位置」,讓你看完知道哪些可以平行、哪些必須串行。

    四維檢查框架

    每個 Step 都要回答四個問題。如果一個 Step 四維都打不到 ≥1 分,就砍掉 — 是 nice-to-have,不是 must-have。

    維度 問題 具體判斷
    🔒 安全 這步降低洩漏面積嗎? A 級資料更不會出去?稽核能找到證據?
    🛡️ 穩定 這步可用性夠嗎? 壞了能降級?有災難回復?HA?
    📚 累積 這步留下了什麼長期資產? 員工離職還在?可審計?可移交?
    😊 好用 員工這步以後生活更好嗎? 少打字?少切視窗?少等待?少抱怨?

    Phase 0:基礎準備(W0–W2)

    不要先動程式碼。先把組織結構知識容器建好。

    Step 1 — 召集 Working Group(W0,3 天)

    • 目標:讓 5-7 人(準 CISO + 法務 + IT + 3-4 部門 senior + 老闆 sponsor)成為這套系統的第一批決策者
    • 動作:第一次會議 60 分鐘,議程:同步為什麼要做、確認名單、排定 Phase 0 清單會議、訂下兩週一次例會
    • 產出:一份 working group 章程文件、會議紀錄、共享日曆
    • 四維:🔒 ✅(分級權威來源)、🛡️ —、📚 ✅(決策歷史可追)、😊 ✅(員工知道有人扛責)
    • 常見坑:老闆不到場 → 後面拍板沒人敢動;法務一個人說了算 → 後面所有東西判 A 級

    Step 2 — 建立雙 Repo(W1,2 天)

    • 目標:把「公司腦」和「個人腦」變成兩個物理上分離的 git repo
    • 動作:在公司 GitHub Org 建 company-brain(private)、發給每位員工一份 personal-brain template(github classroom 或 cookiecutter)
    • 產出:兩個 repo + README 說明使用方式 + .gitignore 範本
    • 四維:🔒 ✅✅(個人腦永不 push 中央=物理保證)、🛡️ ✅(git 提供版本+回復)、📚 ✅(每筆變更有 PR)、😊 ✅(員工用熟悉的 git workflow)
    • 常見坑:個人腦放公司 GitHub 而不是員工自己的 → 隱私保證失效;沒有 .gitignore 擋掉 .env / 密碼檔 → 第一週就有人 commit 進去

    Step 3 — Iron Rules v0(W1-W2,1 週)

    • 目標:寫下 3-5 條全公司必守的紅線,變成 company-brain/global/CLAUDE.md
    • 動作:Working Group 開 1 次會議,每個人提 5 條,合併成 3-5 條全體共識
    • 範例:「禁止把客戶合約原文送雲端 LLM」「Bug log 進公司腦前必須脫敏」「所有 brain 修改必須走 PR」
    • 產出:CLAUDE.md v0 commit 進 company-brain/global/
    • 四維:🔒 ✅(底線設定)、🛡️ —、📚 ✅(規則進 git)、😊 ✅(規則少而清楚 > 50 條沒人記)
    • 常見坑:寫成 30 條 → 沒人記得住;寫太抽象(「做正確的事」)→ 不能執行

    Phase 1:同步機制(W3–W4)

    讓「腦子」能流到員工每個 AI 工具。不寫 Gateway,先解決 build & sync

    Step 4 — build.sh 中性編譯器(W3,3-5 天)

    • 目標:一個 script 把 markdown 編譯到所有 AI 工具的格式
    • 動作:寫 bash / Python script,輸入 company-brain/ + personal-brain/,輸出:
      • .claude/CLAUDE.md(Claude Code / Desktop)
      • .cursor/rules/*.mdc(Cursor)
      • .github/copilot-instructions.md(Copilot)
      • ~/chatgpt-system-prompt.md(ChatGPT 用 Custom GPT 貼用)
    • 關鍵設計:每個 brain 檔的 frontmatter 加 tools: [claude, cursor, copilot, gpt],編譯時依目標 model 過濾
    • 產出:可執行的 build.sh + 4-5 種工具的編譯範例
    • 四維:🔒 ✅(可依工具過濾敏感腦)、🛡️ ✅(編譯失敗有錯誤訊息)、📚 ✅(中性格式不被工具鎖死)、😊 ✅✅(員工不用學新格式)
    • 常見坑:編譯太久 → 員工不願意每天 build,設成 git pre-push hook 自動跑

    Step 5 — 種子部門試跑(W4,1 週)

    • 目標:挑 10-15 人的部門(通常是 RD)當第一批用戶,真實流量驗證 Phase 0+1
    • 動作:每天收 1 次回饋(短 Slack 頻道)、每週 1 次 30 分鐘 retro 會議、補 brain
    • milestone:第一週結束,company-brain 有 ≥10 筆 brain markdown(由種子用戶產出)
    • 四維:🔒 —、🛡️ ✅(早期發現問題)、📚 ✅(brain 種子)、😊 ✅(早期使用者教其他員工)
    • 常見坑:挑錯部門 → 行政部根本不寫 brain;挑太大部門 → 回饋處理不過來。挑用 AI 最多的小團隊

    Phase 2:分級與脫敏(W5–W8)

    這是整個系統的核心。沒這 Phase,後面 Gateway 全是空殼。

    Step 6 — 分級對應表 v0.1(W5-W6,2 週)

    • 目標:列出 50-100 種公司會接觸的資料類型,粗分 A/B/C
    • 動作:Working Group 兩次會議,每次 90 分鐘,一次處理 30 種
    • 產出:company-brain/global/data-classification.md 表格化,進 git 管理
    • 原則:不糾結邊界 → 先有 v0.1 → Phase 2 試點時精修
    • 四維:🔒 ✅✅✅(整套架構的權威來源)、🛡️ —、📚 ✅✅(可審計、可移交)、😊 —(員工目前還用不到,但是後續所有 UX 的基礎)
    • 常見坑:法務說「不確定就 A 級」→ 後續 Gateway 90% 流量被擋,系統失效。**邊界 case 預設 B 級**(脫敏後可送雲),不是 A 級

    Step 7 — 脫敏字典 v0(W7,5 天)

    • 目標:三份純文字字典,擋掉 80% 紅字
    • 動作:從 CRM / HR / 專案系統匯出
      • client_names.txt(客戶公司名 + 簡稱)
      • employee_names.txt(員工姓名 + 暱稱 + Slack ID)
      • project_codes.txt(內部專案代號、產品代號、合約格式 regex)
    • 產出:三份 .txt + 每月由 HR / PM 維護的責任分配
    • 進階(可選):接 Microsoft Presidio v2.2.362(2025/3 釋出,2026/5 仍是最新版)當第二層補強。Presidio 是開源 PII 脫敏框架,內建 NER + regex + checksum,支援多語言,還有 image redactor 處理 DICOM 醫療影像。字典擋已知字、Presidio 擋通用 PII(信用卡、身分證、地址等),兩層疊加。
    • 四維:🔒 ✅✅(一次擋掉 80% 洩漏)、🛡️ ✅(純文字,壞不掉)、📚 ✅(離職員工從字典移除有歷程)、😊 ✅(員工不用記哪些字是紅字)
    • 常見坑:字典放 git 中 → 字典本身就是敏感資料(客戶 list)。要放另一個 access-controlled repo,build.sh 用 SSH key 拉

    Step 8 — Pre-commit Hook + Browser Extension MVP(W8,1 週)

    • 目標:在員工提交 brain 時、貼資料到網頁版 LLM 時,第一道防線
    • 動作:
      • Pre-commit hook(.git/hooks/pre-commit):掃 staged 檔案,字典命中就 block commit
      • Browser Extension(Chrome/Edge):偵測 chat.openai.com / claude.ai 的 paste 事件,字典命中跳警告 + 自動替換
    • 產出:兩個工具 + 內部 IT 自助安裝頁
    • 四維:🔒 ✅✅(防呆,擋住 80% 「員工懶得開 IDE」場景)、🛡️ ✅(本地執行,不 break 工作流)、📚 —、😊 ✅(警告比阻擋友善)
    • 常見坑:Pre-commit 跑太慢(掃整個 repo) → 員工 git commit --no-verify 繞過。**只掃 staged diff**,< 1 秒

    Phase 3:Gateway 上線(W9–W16)

    這是工程量最大的 Phase。前面都做完才有意義。

    Step 9 — LLM Gateway 骨架(W9-W11,3 週)

    • 目標:用開源 AI Gateway 做基礎,偽裝 Anthropic / OpenAI API。2026 主流選擇:LiteLLM(unified API 到 100+ providers)、Portkey(內建 guardrails + PII redaction + observability)、Kong AI Gateway。企業常見組合是 LiteLLM 當 proxy + Portkey 做 observability
    • 動作:
      • 架 LiteLLM 在內網(Docker),或用 Portkey self-host
      • 第一版只做 proxy + audit log,不做分級
      • 讓種子部門切過來:ANTHROPIC_BASE_URL=https://company-llm.internal/v1
    • 產出:可用 Gateway + audit log 進 SIEM + 每日 throughput 報告
    • 四維:🔒 ✅(流量集中)、🛡️ ✅✅(HA + 健康檢查)、📚 ✅✅(全程 audit)、😊 ✅(員工只改一行設定)
    • 常見坑:沒做 HA,Gateway 掛 = 80 人不能工作。**第一天就要 HA**,或備用 endpoint 自動切換

    Step 10 — 三層漏斗實作(W12-W14,3 週)

    • 目標:在 Gateway 內加分級 + 路由邏輯
    • 動作:
      • Layer 1:Aho-Corasick 演算法搜字典(< 5ms)
      • Layer 2:fine-tune 小模型做分類(BERT、Qwen3 1.7B、Llama 3.2 3B 都可),0.1-0.3s
      • Layer 3:fail-safe 全部判 B 級走脫敏 + 雲端
    • 產出:三層命中率分布 dashboard
    • 四維:🔒 ✅✅✅(自動分級)、🛡️ ✅(每層獨立可降級)、📚 ✅(每筆分類有紀錄)、😊 ✅(員工無感)
    • 常見坑:一開始就追求 Layer 2 LLM 完美 → 永遠上不了線。**先 Layer 1 + Layer 3 兩層上線**,Layer 2 之後加

    Step 11 — 雙引擎接入(W15-W16,2 週)

    • 目標:把雲端 frontier 和本地頂級開源模型都接進 Gateway
    • 動作:
      • 雲端:簽 Anthropic Enterprise(Claude Opus 4.7)、Azure OpenAI(GPT-5.5)、AWS Bedrock(多家)、Google Vertex AI(Gemini 3.1 Pro)。要 DPA + zero data retention 條款。2026 主流是「routing by task type」:Opus 4.7 跑 multi-file coding、GPT-5.5 跑 terminal/browser、Gemini 3.1 Pro 跑 long-context research。
      • 本地:架 Ollama 或 vLLM(production 用 vLLM,2-4x 並發)+ Qwen3-Coder-Next(80B 總參 / 3B active,MoE,256K context)或 Qwen3.6,給 A 級任務專用。MoE 架構讓消費級 GPU 可跑。
      • Gateway 路由規則:A 級 → 本地、B 級 → 脫敏 + 雲端、C 級 → 直接雲端,並依任務型別選最適合的雲端模型。
    • 產出:完整雙引擎可用、第一張月度安全報告(攔了多少 A 級)
    • 四維:🔒 ✅✅✅(A 級永不出去)、🛡️ ✅(雲端掛了本地頂)、📚 ✅(成本/用量數據)、😊 ✅(員工拿到 frontier 能力)
    • 常見坑:用個人帳號的 Claude / GPT → ISO 27001 第三方供應商不過。**必須 Enterprise 合約有 DPA**,費用貴 30-50% 但這是硬門檻

    Phase 4:治理機制(W13+,與 Phase 3 並行)

    沒這個 Phase,brain 會在 6 個月內變垃圾堆。Gateway 蓋好但沒 KPI,3 個月後沒人知道有沒有效。

    Step 12 — Curator 制度(W13,2 週啟動)

    • 目標:每個 team 一個 Curator,有權合併 / 刪除 brain
    • 動作:
      • 挑選:每 team 一個 senior(自願 + 部門主管同意)
      • 授權:GitHub team admin 權限 + 每週 1 小時 review brain PR
      • 儀式:每季全公司「腦子健檢日」,半天清掃過時 brain
    • 產出:Curator list + review SLA(PR 5 個工作天內處理)
    • 四維:🔒 ✅(防止劣化)、🛡️ —、📚 ✅✅✅(知識保鮮)、😊 ✅(垃圾不會堆)
    • 常見坑:Curator 沒被分配時間 → 永遠不 review。**1 小時/週要正式排進 KPI**,不是「有空就做」

    Step 13 — KPI Dashboard(W14-W16,3 週)

    • 目標:把 North Star + 四象限 KPI 變成可看的 dashboard
    • 動作:
      • 串 Gateway audit log → Grafana / Metabase / 自寫
      • 串 firewall log → 偵測網頁版 LLM 流量
      • 串 git activity → 計算 brain 增長率
      • 每月例會看「3 個問題」:North Star、Top 3 繞過原因、安全收益
    • 產出:每月 dashboard + 月報自動產生
    • 四維:🔒 ✅(可量測)、🛡️ ✅(早期警告)、📚 ✅(歷史趨勢)、😊 ✅(高層願意持續投資)
    • 常見坑:做太多指標(20+)→ 沒人看。**只看 5-7 個**,北極星 + 四象限就夠

    Phase 5:長期演進(M5+,持續)

    系統上線後不是結束。三件事要持續做。

    Step 14 — ISO 對應與稽核準備(M5-M6)

    • 目標:把 Step 1-13 的產出對應到 ISO 27001 / 42001 控制措施
    • 動作:
      • 產出 iso-mapping.md:每條 ISO 控制措施 → 對應的 Step + 證據(git log / Gateway log / Dashboard)
      • 第一次內部稽核(找外部顧問跑一遍)
      • 修正稽核發現的 gap
    • 產出:ISO 對應表 + 稽核 readiness 報告
    • 四維:🔒 ✅✅(對外背書)、🛡️ ✅(壓力測試)、📚 ✅✅(合規資產)、😊 —(這 Phase 員工不會直接受益,但對外贏單時受益)
    • 常見坑:把稽核當一次性活動 → 證書到手就鬆懈,3 年後重審手忙腳亂。**Dashboard 要持續跑**,稽核資料 90% 自動產出

    Step 15 — 第二批工具支援(M5+)

    • 目標:涵蓋第一批沒處理的工具
    • 動作:
      • ChatGPT 透過 Custom GPT Action 串 Gateway HTTP API
      • 移動端 Claude / ChatGPT app(只能靠規則 + 教育,管不到)
      • n8n / Dify / 自建 workflow 接 Gateway
    • 四維:🔒 ✅(更多入口受控)、🛡️ —、📚 ✅、😊 ✅(更多員工享受到拉力)

    Step 16 — 過時知識淘汰機制(M6+)

    • 目標:防止 brain 累積成考古學遺址
    • 動作:
      • 每筆 brain 加 last_verified: 2026-05 frontmatter
      • 用量遙測:90 天無 reference 的 brain 自動標 stale: true
      • 每季 Curator 審 stale list,合併 / 刪除 / 更新
    • 四維:🔒 —、🛡️ ✅(防誤用過期知識)、📚 ✅✅(品質才是知識的本質)、😊 ✅(搜尋更準)

    16 Step 全景表

    Phase Step 時程 產出 主導
    0 基礎 1 Working Group W0 章程 + 例會 準 CISO
    0 基礎 2 雙 Repo W1 git repo x2 IT
    0 基礎 3 Iron Rules v0 W2 CLAUDE.md Working Group
    1 同步 4 build.sh W3 編譯器 RD
    1 同步 5 種子部門試跑 W4 ≥10 brain 部門主管
    2 分級 6 分級對應表 v0.1 W5-W6 A/B/C 表 Working Group
    2 分級 7 脫敏字典 v0 W7 三份 .txt HR + PM
    2 分級 8 Pre-commit + Browser Ext W8 兩個工具 RD
    3 Gateway 9 Gateway 骨架 W9-W11 LiteLLM 上線 RD
    3 Gateway 10 三層漏斗 W12-W14 分級+路由 RD
    3 Gateway 11 雙引擎接入 W15-W16 本地+雲端 RD + 法務(合約)
    4 治理 12 Curator 制度 W13+(並行) Curator list + SLA 部門主管
    4 治理 13 KPI Dashboard W14-W16 月報 準 CISO + RD
    5 演進 14 ISO 稽核準備 M5-M6 對應表 準 CISO
    5 演進 15 第二批工具 M5+ ChatGPT etc. RD
    5 演進 16 知識淘汰 M6+ stale 機制 Curator

    關鍵心法:這 16 步背後的設計原則

    1. 安全在前,但好用不能放最後

    Phase 0-2 都在做安全基礎設施,但每個 Step 的「好用」維度都要 ≥1 分。**安全是必要不充分,沒有好用的安全系統會被員工繞過,等於沒做**。Step 4 的 build.sh、Step 8 的 Browser Extension,都是「安全 + 好用」並重的範例。

    2. 物理保證 > 規則約束

    能用 git 結構保證的(Step 2 雙 Repo),不要靠政策文件。能用 Pre-commit hook 自動擋的(Step 8),不要靠員工自律。能用 Gateway 路由強制的(Step 11),不要靠規範。**規則會被忘記,結構不會**。

    3. 拉力 > 推力

    Step 11 雲端 frontier 接入是「拉力」核心 — 員工為什麼選 Gateway 不選網頁版?因為 Gateway 給他 frontier model + 公司腦自動注入 + 速度更快,**而且不用自己付費**。讓 Gateway 比網頁版好用,員工自然不繞過。

    4. 先粗版上線,真實流量精修

    Step 6 分級表 v0.1、Step 7 字典 v0、Step 9 Gateway 骨架都明確標 v0 / 骨架。**等想清楚才上線 = 永遠不上線**。Phase 2 試點 4-6 週收斂的速度,比關門想 6 個月快 10 倍。

    5. 治理機制與技術建設並行

    很多公司先蓋 Gateway 再想 Curator,結果 Gateway 上線 6 個月後 brain 變垃圾堆。Step 12 Curator 在 W13 啟動,**和 Step 13 KPI Dashboard 並行**,因為 brain 累積速度從 Phase 1 試點就開始,治理不能等。

    常見問題

    16 週太長,3 個月能上線嗎?

    可以,但要砍 Phase 3+4。「3 個月版」=Step 1-8 + 簡化版 Gateway(只做 proxy + audit log,不做分級),Phase 4 治理機制延後。**重點是先把基礎(雙 Repo + 分級表 + 脫敏字典 + 種子部門)立起來**,Gateway 可以 v0.5 上線、v1.0 慢慢迭代。

    16 步可以跳哪幾步?

    可跳:Step 8(Browser Ext)、Step 15(第二批工具)。 不可跳:Step 1(Working Group)、Step 6(分級表)、Step 12(Curator)— 跳了系統會壞。 可緩:Step 14(ISO 稽核)— 等系統穩定再啟動。

    一個人(全職)能撐多少?

    • Phase 0-2(8 週):一個人可獨立完成,主要是文件 + 字典 + 簡單 script
    • Phase 3 Gateway(8 週):**要 1.5-2 個 RD**,因為要做 HA + 規則層 + 雲/本地對接
    • Phase 4-5(持續):0.5 個 RD + 0.3 個 CISO 角色就能維護
    • **最低配置:1 個全職 RD + 1 個準 CISO 兼職,跑 4 個月**

    沒有 ISO 認證需求,還要做這套嗎?

    要,只是 Step 14 可以跳。這套架構即使不認證 ISO,**對「accumulating domain knowledge」「員工生產力」「資安基線」三件事**都有獨立價值。ISO 是副產品,不是目的。

    結語:安全 / 穩定 / 累積 / 好用,缺一不可

    大部分企業 AI 治理失敗,不是某一維崩了,是四維沒有平衡:

    • 只要安全 → 員工地下繞過 → 安全也沒了
    • 只要穩定 → 沒有治理 → 半年後變垃圾堆
    • 只要累積 → 沒有 Gateway → 客戶資料外流
    • 只要好用 → 沒有分級 → 一夕事故

    這 16 步的順序,就是「四維平衡的最小可行路徑」。每一步都至少打中兩維,串起來就是一個能跑、能審、能成長、員工願意用的系統。

    第 0 週要做的事只有一件:打開行事曆,把 Step 1 的 Working Group 第一次會議排進去。其他 15 步都會跟著動起來。

    延伸閱讀:《80人公司的AI腦子系統:從個人腦擴展到全公司不洩密的工程設計》 — 講為什麼這樣設計、雙引擎本地+雲、能管 vs 不能管的邊界、拉力哲學。本文是它的實作續篇。

    2026/5 技術棧時間戳

    本文 Step 9-11 涉及的具體工具版本以撰文時間為準:

    • Gateway:LiteLLM(open source)、Portkey(內建 guardrails + PII redaction + 1600+ LLM)、Kong AI Gateway。企業常見組合 LiteLLM + Portkey 雙搭。
    • 本地 LLM:Qwen3-Coder-Next(80B-A3B MoE,256K context)、Qwen3.6、Kimi K2.6、DeepSeek V4、Llama 3.3 70B。Ollama 為日常 default,production 並發推 vLLM V1。
    • 雲端 frontier:Claude Opus 4.7(2026/4)、GPT-5.5(2026/4)、Gemini 3.1 Pro、DeepSeek V4。各家擅長領域不同,「routing by task type」是 2026 主流架構。
    • PII 脫敏:Microsoft Presidio v2.2.362(2025/3 釋出,2026/5 仍是最新版),含 image redactor + DICOM 支援。
    • 合規認證:ISO/IEC 42001:2023(目前唯一可認證的 AI 管理系統標準)。Schellman、TÜV SÜD、BSI、DNV 都是合格認證機構。
  • 80人公司的AI腦子系統:從個人腦擴展到全公司不洩密的工程設計

    重點摘要(TL;DR)

    • 把個人「腦子系統」(CLAUDE.md + brain markdown + skills)擴展到 80 人公司,核心不是技術,是畫清楚「能管」和「不能管」的邊界
    • 架構=雙 Repo(公司腦+個人腦)+ LLM Gateway 中間人 + 雙引擎(本地 model + 雲端 frontier)。員工感受不到分級存在,系統默默路由。
    • 分級判斷用三層漏斗:regex 5ms 攔 90%、小型分類器 300ms 攔 9%、保守 fail-safe 1%。不要員工自選,他們不可能每次選。
    • 「拉力 > 推力」:讓 Gateway 比網頁版 ChatGPT 好用,員工自然不繞過。唯一最重要的 KPI 是「Gateway request 數 ÷ (Gateway + 偵測到的網頁版流量)」
    • 真正的雙贏:傳統 IT 做永遠改不完的 UI,客戶都嫌不好用。AI 時代轉做「給 AI 安全取資料的入口」,客戶用自己愛的 AI 工具,RD 回去做 ISO、審核、累積 domain knowledge。

    緣起:為什麼個人腦子系統撐不住 80 個人

    過去一年,我在自己的多台電腦之間累積了一套「腦子系統」。它由四件東西組成:全域規則(CLAUDE.md)、領域知識庫(brain markdown,例如 OSGi 踩坑、Kafka 注意事項、Shopee API 陷阱)、可重用的能力包(skills)、自動記憶(MEMORY.md + 各種 user/project/feedback 檔)。同步靠 git repo,個人用 100 分。

    但當需求變成「給一間 80 人公司用,讓所有人都能累積知識、快速成長、自行用 AI 開發小工具,並且不限定 Claude Code,可能員工 A 用 Claude、B 用 Cursor、C 用 ChatGPT」,個人架構幾乎所有環節都會崩。本文把整套放大設計鉅細靡遺寫下來,讓 RD 或 IT 主管可以直接拿去當藍圖。

    你以為的「腦子」其實是四層

    先把概念釐清。很多人講「AI 腦子」其實是把四件不同的東西黏在一起,擴展時要分開看待:

    內容 載體 擴展邏輯
    規則層 Iron Rules、語言、Git 流程、安全紅線 CLAUDE.md / .cursorrules 全公司一致,變動少,PR review 嚴管
    知識層 領域踩坑、API 陷阱、業務眉角 brain/*.md 分部門、分主題、有 curator 治理
    能力層 可重用 skill、自動化腳本、模板 skills/, plugins 員工貢獻 + PR + 用量遙測
    記憶層 個人偏好、進行中工作、context MEMORY.md / 個人 .md 永遠留個人,不上中央

    這四層的擴展方式不一樣。規則層是法律,知識層是百科,能力層是函式庫,記憶層是日記。設計時要分開,不能當一坨處理。

    擴展前必須先回答的三個問題

    不要直接跳進畫架構圖。先把這三題定義清楚,不同答案會走到完全不同的系統。

    Q1:「同時使用」是什麼意思?

    • (a) 員工各挑工具,讀同一份共用知識 ✅ 正確答案,可實作
    • (b) 同一任務同時派 Claude + GPT 工作 ❌ 反模式,幾乎沒實用場景

    Q2:員工貢獻知識的開放程度?

    實務建議:opt-out(預設進公司腦,標記私人才留個人),特別是 bug 經驗 — 踩過的坑是最有價值的共享資產。但 opt-out 強制要配「自動脫敏管道」,不然 raw bug log 一進公司腦就帶四種污染:客戶名、訂單 ID、同事名、合約號。

    Q3:資料敏感度怎麼分?

    分級 例子 處理方式
    A 紅 客戶合約、財務數字、員工個資、未公開合作案 嚴禁所有雲端 AI,只能本地 LLM
    B 黃 bug log、客戶踩坑、商務邏輯、process 設計 脫敏後可送雲端
    C 綠 純技術問題、開源元件、公開文件 直接送雲端 frontier model

    務實話:不要追求 100% 不洩漏,要追求「降低洩漏面積」。100% 在 80 人團隊中不存在,追下去會做出沒人用的合規劇場。

    架構藍圖:雙 Repo + LLM Gateway + 雙引擎

    ┌─ 公司腦 repo (private GitHub Org) ─────────────────┐
    │  global/    Iron Rules(PR + 2 reviewer 才能改)      │
    │  teams/                                              │
    │    backend/  brain/* skills/*                        │
    │    frontend/ ...                                     │
    │  shared/skills/  跨部門通用 skills                   │
    │  build/    編譯器:MD → 各工具格式                    │
    │  redact/   自動脫敏規則 + 字典                       │
    └──────────────────────────────────────────────────────┘
                  │ git pull (每天自動)
                  ↓
    ┌─ 員工本機 ─────────────────────────────────────────┐
    │  公司腦/  ← clone 自上面                            │
    │  個人腦/  ← 自己的另一個 repo,永遠不 push 中央       │
    │  build.sh 把兩者編譯到所有工具:                      │
    │   → .claude/CLAUDE.md  (Claude Code/Desktop)        │
    │   → .cursor/rules/     (Cursor)                     │
    │   → .github/copilot-instructions.md (Copilot)       │
    │   → ~/chatgpt-prompt.md (給 Custom GPT 貼用)        │
    └──────────────────────────────────────────────────────┘
                  │ HTTP / MCP
                  ↓
    ┌─ 公司內網 LLM Gateway ─────────────────────────────┐
    │  攔截 → 分級 → 脫敏 → 路由 → 串流回應                │
    │  本地 Ollama (A 級任務專用)                         │
    │  雲端 frontier (B/C 級脫敏後)                       │
    │  審計 log → SIEM                                    │
    └──────────────────────────────────────────────────────┘

    為什麼是「公司腦 + 個人腦」兩個 repo

    • 員工本機把兩個 repo clone 在一起,build.sh 編譯時個人腦覆寫公司腦(個人偏好優先)
    • 個人腦本機 commit,永遠不 push 到中央 — 這就是「自己選擇要不要上」的物理保證
    • 要分享某筆個人筆記時,員工自己 git mv 進公司腦發 PR
    • 「不上傳」變成預設物理行為,不是靠規則約束

    關鍵概念釐清:Brain ≠ Model

    很多人問「為什麼一定要雲?所有人都用本地 model 配腦子就好了啊?」這個直覺方向是對的,但前提是要把兩件事拆開:

    概念 是什麼 耗 GPU? 在哪
    Brain(腦子) Markdown 文件、規則、踩坑紀錄 ❌ 完全不耗 都本地(git repo)
    Model(推理引擎) LLM(Claude / Qwen / Llama) ✅ 很耗 看你選

    腦子永遠該全本地,這沒有爭議 — 它就是 markdown 檔。爭議只在 model 要不要本地。所以真正的問題是「為什麼推理引擎要用雲」。

    為什麼不能「全本地 model」— 三個誠實的事實

    1. 能力差距是真實的

    2026/5 現況:本地頂級開源這一年大幅追上 — Qwen3-Coder-Next(80B 總參 / 3B active,MoE 架構,256K native context)已能跟 Claude Code、Cline、OpenCode 等 coding agent 直接整合;Qwen3.6、Kimi K2.6、DeepSeek V4是 2026/4 的 open-weight 第一梯隊。MoE 架構讓 80B 總參只啟動 3B per token,消費級硬體加量化可跑。但跟 frontier 雲端(Claude Opus 4.7(2026/4)、GPT-5.5(2026/4)、Gemini 3.1 Pro、DeepSeek V4)比,在 long-context agentic、跨檔案 reasoning、tool orchestration 上還是差一個檔次。差距比一年前縮小很多,但沒抹平。

    2. 80 人「全本地」的硬體成本

    • 中央 inference server(8x A100 80GB):採購百萬人民幣級別 + 機房 + 維運,80 人並發要排隊
    • 每人一台 Mac Studio M3 Ultra 192GB:採購 44 萬美金,出差不能用
    • 對比 80 人用 Claude/GPT API:每人每月 $50-200 美金,年成本 5-20 萬美金
    • 雲端在中小公司階段便宜一個量級

    3. 強制全本地會把員工逼地下

    能力不夠 → 員工抱怨 → 私下偷貼資料到 ChatGPT。把人逼到地下,比讓他在地上用更糟。雲端 ≠ 資料變成 OpenAI 訓練資料,Enterprise 合約(Azure OpenAI / AWS Bedrock / Anthropic Enterprise)是另一回事。

    真正的答案:Local-first, Cloud-when-needed(雙引擎)

    員工的 prompt
        ↓
    ┌─ 本地閘門 (Qwen3-Coder-Next / Qwen3.6) ─────┐
    │  1. 偵測敏感度(A/B/C 級)                     │
    │  2. A 級:本地 model 直接處理,不出去           │
    │  3. B 級:自動脫敏後送雲端                     │
    │  4. C 級:直接送雲端                           │
    └──────────────────────────────────────────────┘
        ↓ (B / C 級才會到這)
    ┌─ 雲端 frontier model ────────────────────────┐
    │  Claude Opus 4.7 / GPT-5.5                  │
    │  Gemini 3.1 Pro / DeepSeek V4               │
    │  各家擅長領域不同,Gateway 依任務型別路由       │
    └──────────────────────────────────────────────┘

    這才是「資料安全」和「員工生產力」雙贏的解。全雲洩漏 A 級、全本地犧牲 B/C 級體驗,雙引擎才永續

    LLM Gateway:員工感受不到的中間人

    員工不可能每次手動選分級,要他們按 🟢🟡🔴 三天就沒人用了。正確做法是系統默默判,員工不感知。員工的 IDE / Claude Code / Cursor 不直接連雲端 API,改連公司內網的 Gateway:

    員工的設定只有一行:
    ANTHROPIC_BASE_URL=https://company-llm.internal/v1
    
    之後做什麼都不變。Cursor 還是 Cursor,Claude Code 還是 Claude Code。

    Gateway 的三個職責:

    職責 在做什麼 用什麼
    分級 判 A / B / C Regex + 本地小型 LLM 分類器
    脫敏 B 級資料抽掉客戶名/同事名/合約號 字典 + regex + 本地 LLM 補刀(Microsoft Presidio 可借力)
    路由 送本地還是送雲端 規則引擎

    三層漏斗:5ms 路由掉 90% 流量

    不是「每個 prompt 都過 LLM 判」,那會塞爆。是三層漏斗:

    1. Layer 1:Regex / 字典比對(< 5ms,攔 90%)
      • 含「大有建設」/「老王」/合約號格式 → 紅,本地
      • 純英文技術詞、無中文人名地名 → 綠,雲端
      • 命中就路由,不過 LLM
    2. Layer 2:小型分類器(0.1-0.3 秒,攔 9%)
      • 用 fine-tune 過的 BERT 或 1B-7B LLM 做專門分類
      • 不是 70B 判分級,是 1B 做分類
      • 100ms 級延遲,員工幾乎感受不到
    3. Layer 3:保守路由(fail-safe,1%)
      • 真模糊的 case,全部判 B 級 → 走脫敏 + 雲端
      • 寧可多脫敏,不要誤送:錯就錯在不便利,不要錯在洩漏

    實際員工體驗:問「這個 process 跑 NPE,客戶大有建設訂單 SO20260415 卡住」→ Gateway 5ms 偵測到「大有建設」「SO\d+」→ 自動改寫成「客戶 [CUSTOMER_A] 訂單 [ORDER_ID]」→ 路由到雲端 Claude → 員工完全不知道發生了什麼,只覺得 AI 答得很好。

    能管的世界 vs 不能管的世界

    追求 100% 覆蓋會害死系統。要清楚畫出邊界,每塊用對應措施:

    範疇 可管性 措施
    Claude Code / Cursor / Continue / Aider ✅ 可改 BASE_URL Gateway 嚴管
    Claude Desktop / 自寫 script / n8n ✅ 可改 endpoint Gateway 嚴管
    公司網路出站流量 ✅ Firewall force proxy Gateway 嚴管
    ChatGPT 網頁 / Claude.ai 網頁 ⚠️ Browser extension 半攔 即時 paste 脫敏 + 警告
    GitHub Copilot inline ❌ MS endpoint 不能改 規則 + 教育
    手機 app / 私人裝置 ❌ 物理上管不到 合約 + 信任 + 事後追溯

    核心心法:不假裝管得到不該管的東西。每塊都有對應措施,沒有「假裝有但實際沒有」的灰區。資安部門能說明、員工能理解、出事能追責。

    「拉力 > 推力」的設計哲學

    對「不能管的世界」,訴諸三層(從硬到軟):

    Layer 1: 用「拉力」把人留在 Gateway 裡(最重要)

    讓 Gateway 比網頁版好用,員工自然不繞過:

    • Gateway 自動注入公司腦(員工不用每次貼 context)
    • Gateway 連 frontier 雲(Claude Opus 4.7、GPT-5.5、Gemini 3.1 Pro、DeepSeek V4),員工不用自己付費,還能依任務路由到最強模型
    • Gateway 整合公司 codebase RAG,網頁版做不到
    • Gateway 串流速度比網頁版快(內網直連)

    這是設計哲學的轉換:不是「禁止你用 X」,而是「Y 比 X 好用」。員工是理性人,會選好用的。80 人裡會有 70 人自動留在 Gateway,不用任何 enforcement。

    Layer 2: Browser Extension(半受控的中間地帶)

    • 偵測員工開啟 chat.openai.com / claude.ai / gemini.google.com
    • input 框 paste 時即時 regex 脫敏
    • 大量 paste(>500 字)跳警告:「這段內含 X 個敏感字,已自動替換 Y 個」
    • 不阻擋、不上報,只做防呆 condom

    Layer 3: 規則 + 教育 + 事後追溯

    • 明確紅字 list 寫進員工守則
    • 每季資安訓練(講具體案例)
    • DLP 遙測不阻擋只記 log,事後可追
    • 離職前 audit log 過一遍

    分級對應表怎麼從 0 開始建

    這是組織問題不是技術問題。沒有這張表,所有 Gateway 規則都是空的。

    誰主導

    • 準 CISO 角色(IT 主管 + 法務 + 老闆都接受的人)
    • 不要 IT 一個人定(太技術)
    • 不要法務一個人定(會把所有東西判 A 級,系統失效)
    • 不要部門主管各說各話

    Working Group(5-7 人)

    • 1 × 準 CISO(主導)
    • 1 × 法務(合規紅線)
    • 1 × IT 實作者(技術可行性)
    • 3-4 × 部門 senior(業務視角,挑會用 AI 的人)
    • 1 × 老闆 sponsor(拍板用,不參與每週會)

    四個 Phase(漸進式,不要追求一次到位)

    Phase 時間 目標
    Phase 0 1 週 列資料種類清單(50-100 種)
    Phase 1 2 週 粗分 A/B/C,先有 v0.1
    Phase 2 4-6 週 挑一部門試點,每週開會精修
    Phase 3 持續 全公司 + 月度 patch

    五個必避陷阱

    • ❌「不確定就 A 級」→ 系統失效,員工全跑網頁版
    • ❌ 追求 100% 完整才上線 → 永遠定不下來
    • ❌ 一次寫完不再動 → 6 個月後過時,員工不信任
    • ❌ 黑盒不公開 → 員工不知道為什麼被判 A 級
    • ❌ 法務一個人說了算 → 變成沒人用的合規劇場

    核心原則:先有粗版上線,再用真實流量精修 > 想清楚再上線

    KPI:唯一最重要的數字

    North Star(唯一最重要)

    本月 Gateway request 數
    ÷
    (Gateway request 數 + 偵測到的網頁版 LLM 流量)

    公司網路 DNS / firewall log 看得到員工開了多少次 chat.openai.com / claude.ai / gemini.google.com(域名級,不看內容,沒有隱私問題)。這個比例 = 「員工選 Gateway 的比例」,目標6 個月內達 90%+。< 70% 代表 Gateway 拉力不夠,要查為什麼。

    四象限 Dashboard

    象限 指標 目標
    採用 月活用戶 / 全員 80%+
    替代 North Star 90%+
    體驗 Gateway p50 延遲 < 500ms
    體驗 月度 NPS(vs 網頁版) 4.0/5+
    健康 Layer 1 regex 命中率 > 85%
    健康 員工申訴誤判率 < 0.5%

    月度報告:三個問題就夠

    1. 「上個月 X% 員工選擇 Gateway over 網頁版」← North Star
    2. 「員工繞過 Gateway 的 Top 3 原因」← 下個月修哪邊
    3. 「Gateway 帶來的安全收益 + 成本」← 攔住多少 A 級洩漏、雲端費用變化

    第一個月 MVP 時程

    不要一次蓋大廟。Phase 0 砍到極簡,先讓 Claude Code + Cursor 用戶跑起來,驗證治理流程能不能撐 80 人,再擴展。

    交付
    W1 公司腦 repo + 3-5 條 Iron Rules + build.sh(支援 Claude Code & Cursor)
    W2 個人腦 repo template + 員工 onboarding 文件 + 第一場培訓
    W3 脫敏字典 v0(client_names.txt + employee_names.txt)+ pre-commit hook 擋紅字
    W4 Curator 制度上線(每 team 一個 + 每週 1 小時 review)

    Brain Server / ChatGPT 整合 / 本地 Ollama / 完整 Gateway → 全部砍到 Phase 1(第 2-4 個月)。樂觀估計:1 個全職工程師 3-4 個月做到可上線 Gateway。悲觀:6 個月 + 2 個工程師。

    結語:這是 AI 時代的雙贏

    傳統 IT 部門做了再美的 UI,客戶都會嫌不好用 — 這是 ERP 行業 30 年的詛咒。AI 時代的反轉是:不要再做永遠改不完的 UI 了,做「給 AI 安全取資料的入口」就好。客戶用自己愛的 AI 工具(ChatGPT、Claude、Cursor),透過你架的 Gateway 安全地取資料、做事情。

    這對 RD 是解放:

    • 不再被「客戶嫌頁面醜」「客戶嫌操作太多步」這類無底洞的 UI/UX 工單吃掉時間
    • 可以回去做真正有複利的工作:ISO 流程符合性、資安審核、業務邏輯正確性
    • 每一個 RD 寫的 brain markdown,都是公司 domain knowledge 的長期資產,不會因員工離職就消失
    • 新進員工從第一天就站在累積的 brain 上工作,onboarding 從 3 個月縮到 3 週

    對員工是賦能:每個人都能用自己最熟的 AI 工具,在公司架好的安全護欄內,自行開發小工具、解決自己的痛點。對公司是護城河:domain knowledge 從個人腦袋變成公司資產,可累積、可審計、可傳承。

    整套設計的核心心法只有四句:

    • 能管的嚴管,不能管的不假裝管
    • 拉力 > 推力,讓 Gateway 比網頁版好用
    • 員工不感知,系統默默路由
    • 先粗版上線,真實流量精修

    剩下的就是把 working group 召集起來,開第一次會。

    2026/5 技術參考時間戳

    本文涉及的具體模型版本、開源工具、ISO 標準以撰文時間為準,LLM 領域變化快,請以最新發布為主:

    • 雲端 frontier(2026/4 發布):Claude Opus 4.7、GPT-5.5、Gemini 3.1 Pro、DeepSeek V4。各家擅長領域不同,「routing by task type」已成為主流架構。
    • 本地頂級開源:Qwen3-Coder-Next(80B 總參 / 3B active,MoE,256K context)、Qwen3.6、Kimi K2.6、DeepSeek V4、Llama 3.3 70B。
    • 本地 LLM 平台:Ollama 仍是預設選擇,production 並發推 vLLM V1(2-4 倍吞吐)。
    • AI Gateway 開源工具:LiteLLM(unified API to 100+ providers)、Portkey(observability + guardrails + PII redaction)、Kong AI Gateway。2026 企業常見組合是 LiteLLM 當 proxy + Portkey 做 observability。
    • PII 脫敏:Microsoft Presidio v2.2.362(2025/3 釋出,2026/5 仍是最新版),含 image redactor 與 DICOM 醫療影像支援。
    • 合規標準:ISO/IEC 42001:2023(AI 管理系統,目前唯一可認證 AI 標準)、ISO 27001:2022、ISO 27701。Schellman、TÜV SÜD、BSI、DNV 都是合格認證機構。
  • Claude Design 實戰拆解:brainstorming/spec/plan 三層流程的必要性與代價

    重點摘要

    • Claude Design 不是一個工具,是 Claude Code 裡由 brainstormingwriting-planssubagent-driven-development 三個技能組成的結構化開發流程,把「想 → 寫規格 → 拆任務 → 做 → 審查」變成可追蹤的步驟。
    • 最大價值是「砍掉不該做的事」——在我的失智症陪伴專案裡,這個流程幫我在寫 code 前砍掉了背景音樂、獨立話題卡、每日心情打卡三個功能,省下至少 3-4 小時重工。
    • 設計原則會在對話中浮出來——使用者一句「照顧者腦子清晰的,可以有期待的方式知道」變成整個系統的「可預期」原則,驅動 45 條提示語都用同一個模板。
    • 但它不適合所有情境——單檔 HTML 原型用 subagent-driven-development 會被 39 次 subagent dispatch 拖到超慢,實測比 inline 慢 3-5 倍。
    • 判斷標準:想事情時用 brainstorming、寫一致內容時用 spec、多檔複雜時用 subagent;單檔改一個函式就直接 inline。
    • 最深的反省:Claude Design 其實就是把 SDD「菜譜化」。人人可以照做,但如果不懂菜譜背後的「為什麼」,遇到菜譜涵蓋不了的變化就卡住。AI 時代最危險的是「永遠繞著菜譜轉、卻以為自己會了」——你的能力上限會被 AI 給的菜譜深度封頂。
    • 用中華一番「大魔術熊貓豆腐」案例說明:對手下黑手、大豆意外變納豆、把汙染當靈感——這三個 AI 結構上做不到的元素。文末附 7 個對抗菜譜化的具體做法,最關鍵是「保留一塊 AI 絕不介入的創作領域」。

    「Claude Design」這個名字其實沒有官方定義,它是 Claude Code 裡一組設計驅動的工作流程技能(superpowers:brainstorming / writing-plans / subagent-driven-development)的總和。我最近用它做了一個失智症陪伴 APP 的重大功能迭代,這篇文章把它在實戰中「什麼時候救了我」跟「什麼時候反而拖慢我」完整拆給你看。

    Claude Design 是什麼?三層流程一次看懂

    Claude Design 是一套讓 AI 助手在動手寫 code 前先「想清楚 → 寫規格 → 拆任務」的結構化流程。它不是任何新工具,而是 Claude Code 內建的三個技能組合使用:

    階段 技能名稱 產出 目的
    1. 發想 brainstorming 設計 spec(Markdown) 用多輪一問一答釐清需求、砍掉不該做的、浮出設計原則
    2. 規劃 writing-plans 實作計畫(含驗證步驟) 把 spec 拆成 10-20 個可個別 commit 的小任務
    3. 執行 subagent-driven-development 每個 task 一個 commit 派 subagent 做、派 subagent 審 spec、派 subagent 審 code quality

    重點不是「三個步驟」這個形式本身,而是每一步強迫你跟 AI 在不同粒度上達成共識:brainstorming 達成「做什麼」、spec 達成「做成什麼樣」、plan 達成「怎麼拆」、subagent 執行時還能雙重審查。

    沒用 Claude Design vs 用 Claude Design 的實際差異

    同樣是「加一個照顧者支援功能」的需求,兩種做法的差別在哪?這是我實測後的對照:

    面向 直接叫 AI 寫 走 Claude Design 流程
    需求釐清 憑 AI 猜,常常做錯方向 多輪問答,需求明確後才動手
    功能範圍 容易做太多(AI 傾向加功能) 在 brainstorming 階段就砍掉不必要項目
    一致性 做到一半風格會漂移 spec 用表格固定內容模板
    可追蹤 一個大 commit 或多個散亂 commit 每 task 一個 commit,可個別 revert
    重工成本 常常寫完才發現方向錯 方向錯在 spec 階段就發現
    速度 單點快、整體容易重工 前期慢、後期穩;不適合微任務

    實戰案例一:砍功能,省下 3-4 小時重工

    Claude Design 最值錢的貢獻不是寫 code,是阻止你寫不該寫的 code。在我的失智症陪伴 APP 迭代過程中,brainstorming 流程實際上幫我砍掉了三個功能:

    砍掉案例 1:背景音樂

    我一開始提議加背景音樂(失智症音樂療法有根據),brainstorming 過程中討論到「單檔 HTML 沒辦法帶 MP3、base64 嵌入會讓檔案爆到 30MB、用 File API 每次要重選」三個技術方案的取捨後,使用者自己說「先不要」。如果沒經過討論直接開寫,我大概會先做 File API + ducking 邏輯寫個兩小時,結果做完發現整個方向不對。

    砍掉案例 2:獨立話題卡

    原本規劃「話題卡」+「遊戲中陪伴提示」是兩個獨立功能。討論到一半,使用者界定:「這個 APP 是玩樂的時候用,真的要純聊天另外開 APP」。這句話直接把「獨立話題卡」功能從 spec 刪除,只保留遊戲情境下的提示。沒有這個界定,我會把話題卡塞進首頁,未來做下一個 APP 會有功能衝突。

    砍掉案例 3:每日心情打卡

    我在 brainstorming 時列過 5 個功能候選,其中「每日狀態簡記」(3 秒打卡心情/精神/食慾)看起來很有價值。使用者沒選這個,理由是「會把 v2 從『打開就用』變成『每天要記得打卡』,失智照顧者已經很累了」——這是使用者比我更懂他的使用情境的典型例子。AI 單獨設計是想不到這層的。

    這三個砍掉的功能合計估計省了 3-4 小時的 coding + 之後的 code review + git 回改。這才是 Claude Design 最值錢的部分——它讓「沒寫到 code 就砍掉」變成可能。

    實戰案例二:「可預期」這個原則如何救了 45 條提示語

    brainstorming 過程中,使用者往往會不經意說出一句話,變成整個系統的設計支柱。這次是這一句:

    「我希望對於照顧者而言,他是腦子清晰的,他可以有期待的方式知道,我可以看到該說什麼。」

    這句話裡面的「可預期」被提煉成整個功能的設計原則,寫進了 spec。然後這個原則驅動了三個具體決策:

    1. 提示固定模板:15 個遊戲 × 3 個時機(開場/答對/完成)= 45 條提示,全部用「情境 → 可以直接說的話」這個同一個格式,照顧者看一次就學會。
    2. 摘要強制預覽:不是一按就複製,而是開 modal 預覽、確認內容,才複製。照顧者對輸出「可預期」。
    3. 按鈕只在完成活動後才出現:有資料才有按鈕,避免使用者按下去才發現「沒東西可傳」。

    沒有 brainstorming 把這個原則浮出來、沒有 spec 把它寫下來,我會寫 45 條有個性的不同句型(AI 本能會追求多樣性)。結果照顧者每次要重新解讀 UI,反而更累。「可預期」這個字沒有出現在原始需求,是對話中自然生成的,但它比任何功能清單更重要。

    實戰案例三:Spec 表格讓語氣不漂移

    Spec 文件裡有一張表格,把 15 個遊戲 × 3 個時機 × 實際內容全部列出來:

    遊戲 開場 答對時 完成時
    顏色辨識 哇,好多顏色,你以前最愛穿什麼顏色? 對!你好厲害 今天陪你看顏色,我也覺得很漂亮
    認字遊戲 這個字你以前就認得吧 對啦,這個字你小時候就會了 今天還認這麼多字,真棒
    呼吸練習 我們一起慢慢呼吸 (改成中段顯示)吸氣…吐氣…不急 輕輕摸摸他的手,這樣就好

    如果不是在 spec 階段一次寫完這張表,而是「做到顏色遊戲時寫顏色的 3 條 → 做到形狀遊戲時寫形狀的 3 條」這樣推進,語氣一定會漂移。寫到第 10 個遊戲的時候我會忘記前面的語氣,變成有些句子很溫暖、有些很乾。表格逼我一次寫完,才有辦法保持「你年輕時、你很厲害」這類一致的溫度。

    這是表格化內容的威力——它讓「一致性」不是靠意志力維持,而是靠資料結構強制。

    反例:Claude Design 不適合的時候

    這次實戰也讓我踩到一個很明顯的坑:subagent-driven-development 對單檔 HTML 原型是殺雞用牛刀

    我一開始對 13 個 task 全部套用標準流程:每個 task 派 1 個 implementer subagent + 1 個 spec reviewer + 1 個 code reviewer,總共 39 次 subagent dispatch,每次 20-130 秒。前幾個 task 都只是「加一個 const、改一個函式」這種改動,triple review 完全是過殺。

    使用者實測後直接問我:「你寫程式變慢很多你用什麼模型」——這是一個誠實的信號。我當下檢討並切換到 inline 執行模式(我自己在 session 裡直接做),後半段 8 個 task 的速度回到正常的 3-5 倍。

    這個教訓很值:流程的 overhead 必須跟 task 粒度匹配。如果你的 task 只是改 20 行 code、不會影響其他模組,triple review 沒有價值,還會讓每個 task 多花 3-5 分鐘在 subagent 啟動/總結上。

    更重要的反省:Claude Design 是「菜譜」,不是基本功

    讀到這裡,你可能會問:「Claude Design 其實不就是 Spec-Driven Development(SDD)嗎?」 沒錯。brainstorming + spec + plan + implement 這四步是 SDD 老方法,不是 Claude Code 發明的。Claude Design 做的事其實是把 SDD 從「一千個人有一千種做法」方法化成「人人可以順暢工具化」的標準流程

    這是好事,也是很危險的事。

    菜譜出現前、出現後

    想像一下麻婆豆腐這道菜:

    • 菜譜出現前:只有師傅會做。每個師傅的麻婆豆腐都不一樣,因為他們從「為什麼要用豆瓣醬、為什麼花椒要後下」這種基本功思考過。客人要求「少辣多麻、加竹筍」這種變化,師傅能即時調整。
    • 菜譜出現後:人人可以照做,麻婆豆腐變得普及。但只會照菜譜的人,遇到「客人對豆瓣醬過敏,要用別的替代」這種問題就卡住了——因為他從來沒問過「為什麼要用豆瓣醬」。

    Claude Design 就是出現了菜譜。它把 SDD 的步驟變成 Skill、把「設計審批」變成 <HARD-GATE>、把 subagent 審查變成標準流程。你不需要知道為什麼要分離「設計」和「實作」,照著 skill 走就有規範的輸出。

    為什麼 AI 時代這件事特別危險

    菜譜時代的廚師,至少還能從菜譜回推原理——多做幾次就知道花椒晚下是為了香氣不揮發。但 AI 時代:

    1. 你問 AI「怎麼做需求分析」→ AI 給你 Claude Design 流程
    2. 你照流程做,產出看起來很漂亮的 spec 和 plan
    3. 你以為你會做需求分析了
    4. 遇到「這個需求太模糊、brainstorming 走 10 輪還是卡住」這種菜譜沒涵蓋的情況
    5. 你再問 AI → AI 給你另一個菜譜
    6. 你永遠繞著菜譜轉,沒有真的建立「為什麼需求會模糊、要怎麼引出使用者的隱藏前提」這種基本功

    最可怕的結果:你的能力上限永遠等於 AI 提供的菜譜深度。菜譜涵蓋不了的變化,你就做不到。而且因為你沒痛過傳統 SDD 的坑,你連「現在這個情境是菜譜解不了的」都判斷不出來——你不知道自己不知道

    SDD 真正的基本功是什麼

    Claude Design 的 skill 不會教你這些,但這些才是真正讓你能判斷、變通、甚至挑戰流程的基本功:

    菜譜只教你「做什麼」 基本功讓你懂「為什麼」
    brainstorming 要一次問一個問題 人的認知頻寬有限,多問題並排會讓使用者選擇癱瘓而隨便回答
    spec 要寫 45 條提示的表格 分批生成會有語氣漂移,但為什麼會漂移?因為 LLM 每次 context 都重新「感覺」一次
    實作前要設計審批 因為修改 code 的成本遠高於修改文字,越晚發現方向錯越貴
    subagent 要 triple review 多視角審查降低單一 agent 的盲點,但前提是 task 複雜到值得這個 overhead
    每 task 一個 commit Git bisect 的粒度等於 debug 速度,太粗的 commit 追 bug 要多花 10 倍時間

    懂了「為什麼」,你才能在菜譜斷裂的地方自己接住。例如:brainstorming 走不下去,你會知道這是因為使用者自己也沒想清楚,你要換一個方式(給他看 mockup 而不是繼續問字)而不是換另一個菜譜。

    給讀者的反省題

    每次用 Claude Design 之前,自問一句:「如果沒有這個菜譜,我會怎麼做這件事?」

    • 如果你答得出來 → 你用 Claude Design 是省時間
    • 如果你答不出來 → 你該先花時間讀 SDD 的原理,而不是依賴 skill 的自動化

    這不是反對 Claude Design。菜譜是好事,讓一道菜普及化。我想提醒的是:Claude Design 方便到你可能永遠不會問「為什麼」。而一個工程師的上限,取決於他問過多少個「為什麼」

    什麼時候用、什麼時候跳過?判斷決策表

    情境 建議流程 理由
    有多個可能方向、還在猶豫 brainstorming 避免選錯方向重工
    要改 15+ 個相似位置、要寫一致的內容 brainstorming + spec 用表格強制一致性
    多檔複雜後端、有 test framework、多人協作 完整三層 + subagent triple review 能防止衝突跟回歸 bug
    單檔 HTML、改一個函式、加一個按鈕 直接 inline,跳過流程 overhead 大於價值
    修 bug 已經知道怎麼修 直接改,不派流程 問題明確時流程是拖累
    重構一個模組的架構 brainstorming + spec(可能跳過 subagent) 要想清楚新架構但執行可以快

    3 個給讀者的實作建議

    1. 開工前先問自己一句話:「這個 task 的粒度適不適合走流程?」如果是「修一個 bug」「改一個顏色」,直接做;如果是「加一個新功能」「重構一個模組」,走 brainstorming。
    2. brainstorming 時刻意引導 AI 砍東西,不是加東西。AI 本能傾向加功能,你要主動問「這個是不是另一個 APP 的事?」「這個能不能先不要做?」。砍掉的功能是最值錢的產出。
    3. Spec 一定要用表格呈現重複性內容。如果你有 10+ 個相似的東西(15 個遊戲的 3 條提示、20 個 API 端點的 error message、12 個表單欄位的 placeholder),強制用表格一次寫完,不要分批生成。

    中華一番案例:AI 結構上做不到的創新

    講到這裡都還是抽象論述。讓我用一個具體案例把「AI 為什麼結構上做不到某些創新」講清楚——1997 年日本動畫《中華一番》第 43 集「大魔術熊貓豆腐」。

    劇情背景:小當家與黑暗料理界的邵安,在樓麟艦上進行豆腐對決。評委要求不能用現成豆腐,必須從黃豆開始做。比賽中:

    1. 對手下黑手:黑暗料理界的向恩把稻草偷偷放進小當家的大豆裡
    2. 意外發生:稻草上的納豆菌讓大豆發酵,大豆變成了納豆(日本傳統發酵食品)
    3. 認知翻轉:小當家看到黏糊牽絲的納豆,不是當成「比賽被破壞」丟掉,而是把這個意外當成靈感起點
    4. 創新誕生:從納豆的特性衍生出做法與工具,最終做出「大魔術熊貓麻婆豆腐」擊敗邵安

    (資料來源:萌娘百科納豆條目,ACGN 中的納豆相關劇情段落)

    這故事裡有三個 AI 結構上做不到的元素

    劇情元素 AI 為什麼做不到
    對手下黑手破壞材料 AI 的 brainstorming 永遠假設「正常情境」,不會模擬「比賽中有人陷害你」這種社會性干擾
    辨識大豆已變納豆 需要跨文化背景知識在當下湧現。一個四川廚師要有人把日本發酵食品的視角帶進來,AI 知道但不會主動從「邊緣」冒出來
    把失敗當靈感起點 AI 被訓練避免失敗、給成功解。被汙染的食材應該丟掉重做——這是 AI 的強勢模式。把 contamination 翻轉成創新起點是訓練資料裡的反模式

    我把這個對比叫做「紹安路 vs 小當家路」

    • 紹安路:精修技術、重組既有元素、走正統菜譜 → AI 擅長
    • 小當家路:個人記憶 + 意外事件 + 跨文化知識 + 重新定義失敗 → AI 做不到

    紹安在豆腐三重奏對決中輸得更深:他自以為原創的料理,其實 7 年前師父陳邦鈴就做過一樣的。他切斷了有意識的傳承,但無意識的傳承切不斷——他走遍中國、投奔黑暗料理界研發的「自創」菜,結構上還是師承的重組。

    用 Claude Design 久了的人可能遇到比紹安更慘的處境:紹安至少還是在複刻真實的師父,你在複刻 AI 訓練資料——但你不會知道,因為沒人會告訴你「這個東西 AI 在 2023 年就生成過一模一樣的了」。

    7 個對抗紹安化的具體做法(可以從下個 task 開始)

    如果你接受「菜譜化是現實、不會回頭」這個前提,那問題就不是「要不要用 Claude Design」,而是「怎麼用但不被它吃掉」。以下是我經過這次專案後整理的 7 個具體做法:

    1. 先離線想 10 分鐘,再開 AI

    用紙筆或純文字檔,在沒有 AI 的狀態下先寫下你對這題的想法——即使亂七八糟、半句話、只有關鍵字。寫完才來找 AI。這 10 分鐘的差別,是你有沒有在對話開始前建立自己的立場。

    2. 刻意加入 AI 絕對不會建議的約束

    AI 傾向推薦「平均來說最好的解」。你主動加怪條件逼自己走不一樣的路。例:做失智症陪伴工具時,不要說「做陪伴 APP」,說「做一個只能給老花眼、色盲、聽障照護者用的工具」——限制是創新的助產士。

    3. 每週跟一個「四郎」講一次話

    不是讓他們給你解決方案,是把他們的「意外知識」放進你生活。失智照護協會的阿姨、你媽或阿嬤(上一代的照護記憶)、會日文的朋友、幼稚園老師(他們跟認知差異的小孩互動方式跟失智照顧很像)⋯⋯讓他們隨口說的話在你腦裡發酵,像稻草丟進黃豆

    4. 把「bug / 意外 / 失敗」當創作材料,不是要避免的事

    開一個 inspirations-from-failures.md,每次遇到意外事件,先不要問怎麼解,先寫三句話:這個意外讓我看到什麼我原本沒看到的?這個限制如果我接受它,會變成什麼新東西?如果我把這個「bug」當成功能,會是什麼?AI 的訓練資料裡「bug 要修」是強勢模式,你要刻意反抗這個傾向。

    5. 對 AI 使用「反向問法」

    每次 AI 給你答案,下一句問:「這答案的相反是什麼?」「80 歲阿嬤會怎麼想這件事?」「如果這是錯的,錯在哪?」「這答案看起來合理,可是我錯過了什麼?」——這會強迫 AI 跳出訓練資料的中心,去邊緣抓東西。AI 不會主動做這件事,你得逼它。

    6. 保留一塊「AI 絕不介入」的創作領域

    不是「少用 AI」,是完全禁止。具體例子:照顧長輩的手寫日記(絕不給任何 AI 看)、一個嗜好(煮菜、種花、學樂器)、每週一天完全不開 Claude / ChatGPT。這塊領地是你保持「能產生小當家型靈感」的保護區。失去這塊,你永遠只能是紹安。

    7. 跟 AI 約定「小當家模式」信號詞

    當你要創新、不要優化時,直接跟 AI 說:「這次我要小當家模式,不要 Claude Design」。你的 AI 應該立刻做三件事:關閉所有 brainstorming/spec/plan 流程建議、不給業界做法、反過來問你的個人史跟身邊的人。這是你跟 AI 之間的信號詞。沒有它,AI 會把菜譜當成預設。

    優先順序:如果只能選一個開始

    選第 6(AI 禁區)。沒有這個,其他六個遲早會被 Claude 侵蝕回去。禁區是你維持「小當家能力」的物理基礎。

    結論:不是流程多就好,是流程跟 task 匹配才好

    Claude Design 不是一個「你該永遠用」的聖杯,也不是一個「多此一舉」的噱頭。它是一套當你面對真正需要思考的問題時,把你跟 AI 之間的對話規則化的工具。

    我這次失智症陪伴 APP 專案裡,Claude Design 救了我的前半段(brainstorming 砍功能 + spec 寫一致的 45 條提示),拖慢了我的後半段(subagent-driven-development 對單檔 HTML 過殺)。能分清這條線,是下次用它用得更好的關鍵。

    如果你的下一個 task 真的很簡單、你已經知道怎麼做——直接做。但如果你正在「想不清楚這功能該不該做」或「要做 15 個相似的東西怕語氣不一致」,那就值得花 20 分鐘先走 brainstorming。這 20 分鐘會幫你省下 3-4 小時。

    延伸閱讀

  • Claude 4.7 Memory 與 Agent Team 實戰:自建 Brain 系統的真正價值

    重點摘要

    • Claude 4.7 的 memory 改進本質是「檔案使用得更好」,不是新增神奇的跨 session 記憶機制 — session 之間仍然完全隔離,靠 MEMORY.md 等檔案橋接。
    • 自建 Brain 系統 = 精煉版 cross-session memory:機制相同(檔案 + CLAUDE.md 宣告載入),差別在手動 curate、domain 分類、顯式載入,品質遠勝 auto-memory。
    • Named sub-agent 真正的價值在「單一任務多輪延續」,不是 Team A/B/C 那種多工並行 — 兩者是互補的兩個層次。
    • Bug 追查 = PUA 方法論 × Named agent 容器 × Brain 更新,三層缺一不可,且要對「無法中斷的頻道(如 Bot)」具備韌性。
    • 模型版本升級 ≠ 知識管理升級:Brain 系統是 model-agnostic 設計,換任何 LLM 都能搬過去。

    Anthropic 在 2026 年 4 月發布的 Claude Opus 4.7 在 memory 和 Agent Team 兩塊都有顯著改進。但這些「改進」對已經自建知識架構的開發者來說,究竟是關鍵升級還是錦上添花?本文整理一天的深度討論,對比 Claude 原生機制和自建 Brain 系統,並落地一套可跨機器攜帶的 bug 追查框架。

    Part 1:Memory 系統 — 4.7 改了什麼,對我有什麼用

    Claude 4.7 的三個 memory 改進

    Claude Opus 4.7 在 memory 方面的改進可以拆成三個層次:

    1. 檔案式 memory 變「一等公民」:4.7 特別訓練用檔案系統當 memory(scratchpad、notes、structured store),能主動寫筆記且下次對話時知道去讀筆記。
    2. Cross-session 穩定性提升:跨多 session、多小時的工作流程一致性更好,模型會依 brain 和 memory 的指引從上次停下的地方接續。
    3. 1M context 無長 context 溢價:原生百萬 token context window,不另收費。以前 200K+ 要 /compact 的場景現在一口氣吃完。

    Cross-session memory 的真相:沒有魔法,只有檔案

    很多人以為 Claude 4.7 的 cross-session memory 是某種「核心系統」幫你串起過去對話。真相是:session 之間仍然完全隔離,模型本身沒有跨 session 的任何 state。所謂 cross-session,是 Claude Code 在新 session 開啟時自動注入:

    • CLAUDE.md(你寫的指令)
    • MEMORY.md 和 topic files(auto-memory 累積的筆記)
    • 過往 session summary(Claude Code 自動寫的摘要檔)

    這些全是檔案,不是隱藏的 cloud memory。4.7 改進的不是機制,而是對這套檔案機制的使用熟練度:知道什麼該寫、該去哪讀、讀到後如何套用。

    自建 Brain 系統 vs Claude 原生 auto-memory

    如果你已經有自建的 Brain 系統(跨專案的技術 domain 知識庫),對比 Claude 原生 auto-memory 會發現:本質是相同機制,差別在淬煉程度

    面向 Claude 原生 auto-memory 自建 Brain 系統
    範圍 單專案(綁 cwd) 跨專案(按技術 domain 分類)
    載入時機 Claude Code 自動注入 CLAUDE.md 宣告 Domain Brain: 主動載入
    curation 模型自動(容易塞流水帳) 手動規則過濾(Why / How to apply 格式)
    外部知識 僅記錄當前對話 支援 [source: external] 納入社群/文章的坑
    配套 memory 單打獨鬥 Brain + Skill 配對(坑 vs 對的做法)

    4.7 對自建 Brain 的實際收益

    對已經有成熟 Brain 系統的開發者,Claude 4.7 的 memory 改進主要體現在兩個地方:

    • Context 吞更多(70% 的價值):1M context 可以同時載入所有相關 brain + CLAUDE.md + 當前 code,不再被切斷。多個 brain 同時載入 5000+ 行也不爆。
    • 維護判斷力(30% 的價值):叫 Claude 整理 memory 時,4.7 會主動去讀 brain 檢查重複、按規則格式寫,而不是無腦 append。4.6 可能直接塞、不去重。
    • 自動 cross-session 對自建系統無感:已經有 Brain + CLAUDE.md 宣告機制的用戶根本不依賴 auto cross-session,品質比自動版高。

    關鍵洞察:模型版本升級 ≠ 知識管理升級。Anthropic 再怎麼升級內建 memory,都在解決「模型如何維護筆記」。但「什麼知識該存、怎麼結構化、跨專案怎麼轉移」是架構設計問題,不是模型能力問題。

    Part 2:Agent Team — Named sub-agent 真正解決什麼

    4.7 的四個 Agent Team 改進

    • Named sub-agents:spawn 時給名字,後續用 SendMessage({to: name}) 續接,不用重跑 context
    • Permission 繼承修正:user-level permissions 現在會正確傳給 teammate,不再每個 teammate 都跳一堆授權 prompt
    • 個別 teammate 可調 mode:spawn 後可以用 Shift+Tab 單獨切換某個 teammate 的 permission mode
    • /team-onboarding:自動分析使用歷史產生 ONBOARDING.md,幫新隊友快速上手

    前置條件:要啟用 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1,否則 SendMessage 工具根本不存在。

    Named sub-agent 和 Team A/B/C 的差異

    很多人以為 named sub-agent 是在取代自組 Team 的做法,其實兩者是不同層次的機制,互補而非競爭

    面向 Team A/B/C(宏觀) Named sub-agent(微觀)
    解決什麼 多工平行 單工延續
    邊界 不同 task 之間 同 team 內部 agent 之間
    Context 燒法 每個 team 獨立燒一份 同 agent 只燒一次,後續增量
    適用場景 早上開 3 件不相干的事 追一條長 bug / 深入一個模組

    最佳組合是兩者混用:宏觀 Team 隔離不同主題,微觀 named agent 讓每個 teammate 有連續記憶。等於開三家公司並行做不同案子,每家公司裡的同一個員工連續給你服務,不是每次都新人上場。

    已知限制:teammate 之間不能互喊

    目前 Claude Code 有個已知 bug(GitHub issue #48160):subagent 本身不能 originate SendMessage。意思是 teammate A 想主動找 teammate B 協作做不到,所有通訊必須經過 team lead 路由,變成星形拓撲(hub-and-spoke)而非 mesh。

    另外 delegate mode 有個連帶效應:lead 切到 delegate mode 後,它的權限限制會傳給 teammate,導致 teammate 也不能讀檔、跑命令,整個 team 卡住。解法是 spawn teammate 時明確放寬權限。

    Part 3:實戰落地 — Bug 追查框架

    為什麼開發和修正要用不同的 agent 拓撲

    對話中得到一個清晰的洞察:「開發」和「修正」性質不同,應該用不同的 agent 拓撲。

    Case 啟動策略
    開發(新 feature) Team A/B/C 並行,短 context agent,各管一塊
    修正(bug / fix) 單一 named agent + PUA,多輪深挖
    重構(無新功能) 單一 named agent,多檔追蹤 side effect

    認真追 bug 的 agent 應該有的樣子

    一個 bug 不是「修好就算了」。它有根本原因(root cause)、爆炸半徑(blast radius)、和教訓(lesson)。停在第一個看似合理的修補是 bug 改頭換面回來的最快路徑。認真的 bug-hunting agent 應該有三層結構:

    1. 方法論(如何思考):PUA 式修辭壓力 — 從不接受第一個假設、永遠挑戰自己的推理、窮盡所有替代方案。
    2. 延續性(如何記住):Named 長壽 agent 跨輪次攜帶 context,不要每輪重新 spawn 新 agent 失去歷史。
    3. 事後教訓(如何教未來):每個修好的 bug 都要更新 brain,否則知識死在這個專案。

    三層缺一不可:沒方法論 → 停在第一個合理原因、出 bandaid;沒延續性 → 每輪重講 context、走回原路;沒事後教訓 → 同一個 bug 六個月後在別專案又出現。

    頻道韌性:為什麼要假設「無法中斷」

    有些 channel(Bot wrapper、API-based tools、async chat)無法真正中斷正在跑的 turn,用戶的輸入只能排進下一輪。框架設計時要把這當前提:

    • 每個 hunter 步驟要快速 return 控制權,不要 chain 10 個 tool call
    • 長任務用 run_in_background: true 讓 lead 儘快 ready
    • 在自然 checkpoint 回報進度,讓用戶在下一輪調整方向
    • 把用戶輸入當戰略路線修正,不是即時操舵

    如果頻道可中斷(CLI)那是 bonus,不是前提。框架不該依賴可中斷性。

    Skill fallback:沒有 PUA 也要能跑

    如果你在多台機器工作,可能某台有 pua:pua-debugging skill、某台沒有。框架要具備graceful degradation

    • Skill 優先:有 PUA / systematic-debugging skill 時,讓 hunter 載入 — skill 是維護中的、品質更新快
    • Brain 兜底:把 PUA 的核心精神內嵌到 brain 檔,確保沒 skill 的機器也能按內建規則運作

    內嵌的規則例如:「假設你的第一個假設是錯的,立刻列出兩個會產生同樣症狀的替代方案」、「修好了 trigger 下一個問題:為什麼以前會壞?」、「症狀只能『大致』解釋 = 沒被解釋,真正的 root cause 能解釋所有觀察,包含奇怪的那些」。這套 inline rule 讓 brain 成為 skill 缺席時的 safety net。

    結案 checklist

    一個 bug 追查只有在全部滿足以下條件才算完:

    • Bug 可重現(或明確記錄為何無法重現)
    • 根本原因以白話講清楚
    • 修復已驗證(重現原 failure → 套用 fix → 確認 failure 停止)
    • 爆炸半徑評估(同一個 root cause 還可能壞掉什麼?)
    • Brain 檔已更新(domain 對、[source: project] tag 已加)
    • Commit message 以 fix: 開頭,而且 brain 更新發生在開始下一個 task 之前

    為什麼這套設計 model-agnostic

    整套 Brain + Skill + Agent Team 設計最大的優勢是 model-agnostic:未來換 Opus 5.0、換 Gemini 3、換 GPT-5,只要該模型支援讀檔案 + 自訂 instruction 機制,整套可以直接搬過去。

    Auto cross-session memory 綁在 Claude Code 內建機制上,換 tool 就沒了。自建 Brain 是把架構設計前置到模型之外 — 模型只負責執行,架構你自己定。結果是:

    • 4.7 再強,沒 Brain 也是亂塞
    • 4.6 再弱,有 Brain 也能跑
    • 未來換任何 LLM,這套設計直接移植

    這其實很接近個人化 RAG 系統的雛形 — 只是沒用 vector DB,用人類可讀的 markdown + 手動路由。反而更可控、更可維護。

    結論

    Claude 4.7 的 memory 和 Agent Team 改進都是實實在在的能力提升,但對已經有自建知識架構的開發者來說,真正的護城河不在追著升級模型,而在建立 model-agnostic 的架構設計

    • Memory:用 Brain 做跨專案長期記憶、用 MEMORY.md 做專案短期筆記、用 Skill 存對的做法 — 三者分工明確。
    • Agent Team:宏觀 Team A/B/C 並行處理不同主題 + 微觀 Named sub-agent 保持任務延續性 — 互補使用最強。
    • Bug 追查:方法論(PUA)× 容器(Named agent)× 事後教訓(Brain 更新)三層結構,對頻道韌性和 skill 缺席都要有 fallback。

    模型會一代代升級,但你累積的 Brain 不會過時 — 因為它記錄的不是模型能力,是你自己踩過的坑和學到的道理。