iT邦幫忙

2026 iThome 鐵人賽

DAY 14
0
自我挑戰組

用 AI + draw.io MCP 建立可重複使用的流程圖工作流系列 第 14

# Day 14|Project Instructions(上):什麼都不裝,只把指令貼進 Claude Project

  • 分享至 

  • xImage
  •  

昨天測完 Assistant Plugins,四種整合方式已經走過三種。今天進入最後一種:Project Instructions。它是四種裡唯一不需要安裝任何東西的做法——不裝套件、不設 MCP、不裝外掛,只要把官方寫好的指令貼進 Claude Project 就能開始用。今天先完成設定並看懂這段指令在做什麼,實際產圖留到明天。

沒有工具,只有指令

前三種方式雖然形式不同,但骨架是一樣的:AI 呼叫某個工具,工具負責把圖表內容變成 draw.io 看得懂的東西。App Server 和 Tool Server 是 MCP 工具,Assistant Plugins 是外掛帶進來的指令與程式。

Project Instructions 沒有這一層。它的做法是:把一段夠詳細的指令放進 Claude Project 的專案指令裡,教會 Claude 自己算出一個 draw.io 網址。整件事靠的是 Claude 本身的程式碼執行能力,而不是外接的工具。

這也決定了它的適用範圍:官方明確標示它是 Claude.ai 搭配 Projects 的做法,前三種可以在 Claude Code、Codex CLI 等環境使用,這一種不行。換句話說,它不是前三種的替代品,而是「什麼都不能裝的環境」下還能用的方案——公司電腦不給裝 npm 套件、不給改設定檔的情況,這種做法就有意義。

要貼的是兩份文件

官方把指令放在 repo 的 project-instructions/ 資料夾。設定方式是把兩份文件的內容,一起貼進 Claude Project 的專案指令欄位:

  1. claude-project-instructions.txt:主指令,教 Claude 怎麼判斷格式、怎麼產生網址、怎麼輸出結果。
  2. shared/xml-reference.md:draw.io XML 的參考資料,涵蓋連線走向、容器、圖層、標籤、metadata、深色模式等寫法。

第二份文件值得多看一眼。它的存在是為了讓 Claude 知道 draw.io 的 XML 應該怎麼寫。今天先注意一件事:官方之所以要附這份參考,等於承認了「AI 知道 draw.io 是什麼」和「AI 寫得出正確的 draw.io XML」是兩回事,中間需要有人把規則寫下來。這個結構,跟這個系列後面要做的事情其實是同一套邏輯。

這段指令在教 Claude 做什麼

讀過主指令後,它的運作流程大致是三段:選格式 → 用程式算出網址 → 輸出成 HTML

第一段是選格式。 指令給了 Claude 一張對照表,讓它依圖表類型挑輸入格式:Mermaid 適合流程圖與循序圖,CSV 適合階層式資料,XML 則用在版面較複雜、需要精細控制的場合。這三種輸入格式,和 Day 10 提到 MCP Tool Server 支援的三種是同一組。

第二段是把圖表內容變成網址。 指令要求 Claude 執行 Python,依序做三件事:先用 zlib 壓縮圖表內容,再做 base64 編碼,最後把格式、壓縮標記與資料組成參數,接在 draw.io 網址的 # 之後。

這裡的技術細節和 Day 11 是一致的:圖表內容編碼在 # 之後,這段內容不會隨請求送到伺服器,瀏覽器載入 draw.io 時才在本地還原成圖面。所以 Day 11 提過的那個雙面性也一樣成立——資料不進伺服器,但網址本身就帶著整張圖,轉傳連結等於把圖表內容一併傳出去。

第三段是輸出。 Claude 不會把網址打在回覆裡,而是產生一個內含按鈕的 HTML 頁面,讓使用者點按鈕開啟 draw.io。

為什麼要繞 HTML 這一圈

第三段初看有點多此一舉——算出網址直接貼出來不就好了?

指令裡寫得很直接:語言模型會默默地把 base64 字串弄壞,而這種字串只要錯一個字元,整條連結就報廢。所以指令明文禁止 Claude 在回覆中輸入、重打或重現產生出來的網址,改用 HTML 產出物把連結送出去,讓網址「永遠不經過 Claude 的文字生成」。

這一段我覺得是今天最值得記下來的部分。它處理的不是 draw.io 的問題,是 AI 本身的問題:AI 產生長字串時會出錯,所以要設計一條路徑讓那段字串繞過 AI 的輸出。這是一種很典型的約束思路——不是要求 AI 更小心,而是把容易出錯的環節從 AI 手上拿走。

同一份指令裡還有幾條類似性質的規則,例如 XML 裡絕對不能出現任何註解、特殊字元必須跳脫。它們共同說明了一件事:即使是官方提供的做法,也需要靠一長段明確的規則,才能讓產出穩定。這正好呼應 Day 17 要開始談的失敗模式——AI 畫圖會出什麼錯,以及為什麼需要約束。

設定步驟

實際操作的步驟不多:

  1. 到 draw.io 官方 GitHub 的 project-instructions/ 資料夾,取得 claude-project-instructions.txtshared/xml-reference.md 兩份文件的內容。
    https://ithelp.ithome.com.tw/upload/images/20260816/20181834FaoZOTynRi.png
  2. 登入 Claude.ai,建立一個新的 Project(或使用既有的)。
    https://ithelp.ithome.com.tw/upload/images/20260816/20181834PejvlRfNQF.png
  3. 進入該 Project 的專案指令設定,把兩份文件的內容貼進去。
    https://ithelp.ithome.com.tw/upload/images/20260816/20181834O65okWf6dW.png
  4. 在這個 Project 底下開新對話,即可請 Claude 產生圖表。
    https://ithelp.ithome.com.tw/upload/images/20260816/20181834OZilAZ9ari.png

需要留意的是,這種做法依賴 Claude 執行 Python 來完成壓縮與編碼,因此設定完成後值得先確認這個 Project 的程式碼執行功能可以正常運作,否則指令走到第二段就會卡住。

今天完成了什麼

到這裡完成了兩件事:把官方的兩份指令貼進 Claude Project,並看懂這段指令的運作邏輯——選格式、用 Python 壓縮編碼算出網址、再用 HTML 把連結送出去。

跟前三種比,這是設定門檻最低的一種:沒有安裝、沒有設定檔、沒有環境依賴,複製貼上就結束。但它也是最「靠 prompt 撐著」的一種——沒有工具保證行為,一切取決於那段指令寫得夠不夠明確。這個取捨值得實測過再下結論。

明天進入下篇,一樣用「電商購物網站登入」子流程實際產圖,看看網址與 HTML 按鈕的呈現方式,整理 Project Instructions 的優點與限制,並把四種整合方式放在一起做總結,說明我最後為什麼選了其中一種。


上一篇
# Day 13|Assistant Plugins(下):產出本機檔案、切換匯出格式與優缺點
下一篇
# Day 15|Project Instructions(下):網址呈現與優缺點
系列文
用 AI + draw.io MCP 建立可重複使用的流程圖工作流16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言