name: visual-diagram-suite description: 統一圖表生成套件。使用者只需描述問題/場景/需求,無需記圖表名,AI 自動按意圖路由。覆蓋 40+ 類專業圖表,四種渲染:show_widget HTML/CSS(複雜圖首選、佈局自動、跨模型相容)、show_widget SVG(簡單圖、含動畫)、Mermaid(零依賴、技術文件首選)、Draw.io XML(UML/泳道/DFD 最佳)。典型自動路由舉例(使用者話 → 自動選圖):「為什麼出這個問題/根因在哪」→魚骨圖/5why/FTA;「A vs B 選哪個/方案對比」→SWOT/決策樹/雙氣泡圖;「緊急程度/先做哪個/優先順序」→艾森豪威爾/影響力矩陣;「戰略分析/怎麼擴張」→SWOT/安索夫/BCG;「專案排期/要多久」→甘特圖/時間線;「系統怎麼設計/架構」→分層架構/C4/洋蔥/六邊形;「多角色協作/審批流」→泳道圖;「呼叫關係/誰先呼叫誰」→時序圖;「狀態怎麼流轉」→狀態機圖;「對比下 X 和 Y」→雙氣泡圖/對比表;「彙報用/PPT 用」→show_widget SVG 優先;「寫文件」→Mermaid 優先。觸發:畫圖、視覺化、梳理、拆解、對比、畫一下、流程、架構、排期、優先順序、對比下、畫個圖、根因、why、彙報用、寫文件、diagram、visualize、chart、show、draw。 version: v3.1.0
不需要記圖表名。說出你想幹什麼,自動匹配最合適的圖。
| 你想幹什麼 | 可以這樣說 | 自動生成 |
|---|---|---|
| 對比選擇 | "對比一下A和B" / "選A還是B" / "A和B哪個好" | SWOT / 雙氣泡圖 / 對比矩陣 |
| 梳理流程 | "幫我梳理X的步驟" / "X的完整流程" / "從A到B的順序" | 流程圖 / 泳道圖 / 階段遞進 |
| 找根因 | "為什麼出這個問題" / "什麼原因造成的" / "找根因" | 魚骨圖 / 5why / 決策樹 |
| 排期規劃 | "幫我排個期" / "這個專案要多久" / "梳理時間線" | 甘特圖 / 時間線 |
| 頭腦風暴 | "幫我整理一下思路" / "拆解這個概念" / "系統梳理" | 思維導圖 / 金字塔 / 5W2H |
| 戰略分析 | "分析X的戰略" / "X的市場定位" / "X的優先順序" | SWOT / BCG / 艾森豪威爾 |
| 系統設計 | "設計X的架構" / "X的分層" / "模組怎麼劃分" | 分層架構 / C4 / 洋蔥架構 |
| 佔比展示 | "X的份額多少" / "構成比例" / "佔比圖" | 環形圖 / 餅圖 |
| 資料對比 | "對比下X的資料" / "X的排名" / "季度對比" | 柱狀圖 / 進度儀表盤 |
| 轉化分析 | "從A到B的轉化率" / "X的漏斗" / "流失分析" | 漏斗圖 |
| 彙報配圖 | "做個彙報用的" / "給老闆看" / "PPT配圖" | SVG優先 |
| 寫文件 | "寫文件用的" / "嵌入Markdown" / "GitHub用" | Mermaid優先 |
提示:描述越具體,出圖越精準。加上關係詞(對比/流程/根因)比只說"畫個X的圖"效果好10倍。
所有出圖請求,HTML/CSS 模板第一順位。 14 類别範本覆蓋所有高頻場景——Flexbox/Grid 自動佈局、零座標計算、視覺統一。SVG/Mermaid/Draw.io 僅作兜底(模板無法匹配的特殊場景)。
出圖請求 → 匹配 14 類 HTML/CSS 模板 → ✅ 直接套模板
→ 模板無法匹配 → SVG自繪 / Mermaid / Draw.io 兜底
BOSS鐵律:出圖不是羅列資訊,是展示邏輯框架。簡單卡片拼湊 = 平庸。必須有分析結構——決策鏈、階段對齊、維度量化、因果推導。
這些模板天然承載分析邏輯,能展示"為什麼不同"而不僅是"有什麼":
| 模板 | 框架邏輯 | 典型場景 |
|---|---|---|
| 模板二(流程鏈路) | 因果鏈、步驟推導 | 決策樹、5why、審批路徑 |
| 模板六(對比矩陣) | 維度交叉定位 | SWOT、BCG、風味矩陣 |
| 模板七(並行分支) | 多路並行對比 | 工藝對比、A/B方案、多角色 |
| 模板十(泳道圖) | 統一階段軸對齊 | 跨職能流程、工藝階段矩陣 |
單一模板不夠時,多模板疊加以形成分析鏈條:
決策樹(模板二) → 階段對齊矩陣(模板十改編) → 維度量化對比(模板六改編)
↑ ↑ ↑
為什麼分叉? 每個階段差異在哪? 最終結果差多少?
這是咖啡工藝圖從"平庸"升級為"框架級"的核心改造——從四張獨立卡片(模板八)改為決策樹+泳道矩陣+維度條的三段式分析結構。
規則:使用者說"對比/分析/為什麼不同"時,禁止單獨使用模板八。優先從框架級模板中選,必要時組合使用。
核心理念:從"關鍵詞匹配圖表名"升級為"四維度結構分析→決策樹→組合策略"。Agent 分析使用者描述背後的關係結構,而非匹配表面詞語。
收到出圖請求後,先對使用者描述做四維度拆解:
| 維度 | 選項 | 說明 |
|---|---|---|
| 關係型別 | 對比 / 流程 / 因果 / 層級 / 時序 / 組合 | 核心關係是什麼? |
| 主體數量 | 二元(2) / 多元(3-8) / 大量(9+) | 有幾個物件參與? |
| 複雜度 | 線性串聯 / 分支分叉 / 網狀反饋 | 關係鏈有多複雜? |
| 對比深度 | 陳列級 / 流程級 / 因果級 | 只是羅列特徵?還是分析為什麼不同? |
示例:「咖啡豆四種處理工藝有什麼不同」→ 關係=對比+流程 / 數量=多元(4) / 複雜度=分支 / 深度=因果級 → 觸發組合策略
關係型別
│
├─ 對比
│ ├─ 深度=陳列級(羅列特徵) → 模板八(卡片組圖)
│ ├─ 深度=流程級(流程對比,維度≤2) → 模板七(並行分支)
│ ├─ 深度=流程級(含統一階段軸) → 模板十(泳道對齊矩陣)
│ └─ 深度=因果級(為什麼不同+量化差異) → 組合:模板二+六+十
│
├─ 流程
│ ├─ 單流程、線性串聯 → 模板二(流程鏈路圖)
│ ├─ 單流程、分支分叉(決策節點) → 模板二(決策樹變體)
│ ├─ 多流程並行、含統一階段軸 → 模板十(泳道對齊矩陣)
│ └─ 多流程並行、無統一軸 → 模板七(並行分支圖)
│
├─ 層級(整體-部分、上層-下層) → 模板四(分層架構圖)
│
├─ 因果(原因→結果)
│ ├─ 單鏈推導 → 模板二(流程鏈路 / 5why)
│ ├─ 多因素匯聚 → 模板一(中心輻射 / 魚骨圖)
│ └─ 網狀反饋迴路 → SVG自繪(CLD因果迴路)兜底
│
├─ 時序(時間軸上的事件)
│ ├─ 里程碑/歷史 → 模板九(時間線)
│ └─ 階段遞進/演化 → 模板三(階段遞進圖)
│
├─ 矩陣定位(二維四象限) → 模板六(對比矩陣)
│ └─ SWOT / BCG / 安索夫 / 艾森豪威爾 / 影響力-努力
│
├─ 資料視覺化(數值驅動)
│ ├─ 佔比/份額/構成 → 模板十一(環形圖/餅圖)
│ ├─ 對比/排名(多專案數值比較) → 模板十二(柱狀圖)
│ ├─ 轉化率/遞減階段 → 模板十三(漏斗圖)
│ └─ KPI指標/完成率 → 模板十四(進度儀表盤)
│
└─ 模板無法覆蓋(CLD/洋蔥/六邊形/DFD...) → SVG自繪 / Mermaid / Draw.io 兜底
快速決策口訣: - 羅列特徵 → 模板八(卡片) - 流程步驟 → 模板二(鏈路) - 四象限定位 → 模板六(矩陣) - 多層架構 → 模板四(分層) - 階段遞進 → 模板三(遞進) - 並行對比(含統一軸) → 模板十(泳道)或 模板七(分支) - 因果鏈 → 模板二(鏈路) - 網狀反饋 → SVG 兜底 - 佔比份額 → 模板十一(環形/餅圖) - 資料排名 → 模板十二(柱狀圖) - 轉化漏斗 → 模板十三(漏斗圖) - KPI指標 → 模板十四(儀表盤)
單模板不足以表達完整分析邏輯時,多模板組合形成分析鏈條:
| 組合模式 | 模板序列 | 適用場景 |
|---|---|---|
| 決策→對比→量化 | 模板二(決策樹入口)+ 模板十(泳道對齊)+ 模板六(維度量化) | 多工藝/方案對比分析 |
| 結構→差異 | 模板四(分層架構)+ 模板六(維度卡) | 系統對比、架構差異 |
| 歸因→傳導 | 模板一(魚骨/因果)+ 模板二(流程鏈) | 根因分析 + 傳導路徑 |
| 定位→策略 | 模板六(矩陣定位)+ 模板三(階段遞進) | SWOT分析 + 行動路線 |
原則:框架級模板(二/六/七/十)優先組合。展示級模板(八/九)僅用於純陳列場景,禁止單獨用於對比/分析類需求。
當用戶描述無法明確分析結構時,不要猜測——列出 2-3 個候選讓使用者確認,並解釋每個選擇的後果:
「您的需求有幾種理解: 1. 流程對比(展示各方案的步驟差異)— 會生成泳道對齊矩陣,按階段逐行對比 2. 因果分析(分析為什麼不同導致結果不同)— 會生成決策樹+量化維度,深層歸因 3. 特徵羅列(簡單列出各項特點)— 會生成卡片組圖,但只展示不做分析 哪種更適合?」
規則:每次推薦必須附帶「選A會生成什麼圖 → 適合什麼場景 → 不適合什麼場景」的解釋鏈,讓使用者做知情選擇而非盲猜。
為複雜問題提供 結構化、視覺化、專業級 的圖表生成能力。v2.0 升級覆蓋 40+ 類圖表,按 4 大類組織:思維框架、業務架構、流程分析、邏輯推理。所有圖表遵循統一視覺規範,輸出具有以下特徵:
1. 智慧意圖識別(自動) → 2. 查路由表 → 3. 選輸出方式 → 4. 呼叫模板生成
重要:Step 1 已由「智慧意圖路由器」自動完成。使用者無需告訴 Agent 圖表名——只需描述問題/場景,Agent 自動識別並選擇最合適的圖表。
| 大類 | 典型場景 | 常用圖表 |
|---|---|---|
| 思維框架 | 頭腦風暴、問題梳理、知識點整理、結論先行 | 思維導圖、金字塔(SCQA)、5W2H、八大思維圖 |
| 業務架構 | 戰略規劃、產品組合、組織分工、對比決策 | SWOT、BCG、安索夫、艾森豪威爾、影響力、BSC |
| 邏輯推理 | 複雜因果、決策評估、風險分析、根因挖掘 | 魚骨圖、多重流程、FTA、ETA、5why、Issue Tree、決策樹、CLD |
| 流程分析 | 業務審批、系統互動、狀態流轉、專案排期 | 標準流程、泳道/審批、活動圖、狀態機、時序、甘特、時間線、Git |
| 系統設計 | 架構設計、UML 建模、資料建模 | 分層架構、洋蔥、六邊形、C4、DFD、用例、類圖、元件、部署 |
| 資料展示 | 佔比、份額、視覺化資料 | 餅圖 |
完整路由詳見 references/scenario-routing.md。下表為速查(嚴格 4 大類組織,與 scenario-routing.md 一致):
| 大類 | 圖表型別 | 主模板 | 輸出方式 |
|---|---|---|---|
| 思維框架 | 思維導圖 | Mermaid mindmap / SVG / HTML 輻射 |
show_widget HTML / SVG / Mermaid |
| 思維框架 | 金字塔原理(SCQA) | SVG 自繪(梯形堆疊)/ HTML 鏈式卡片 | show_widget HTML / SVG |
| 思維框架 | 5W2H 七何分析法 | SVG 自繪(七維卡片)/ HTML 中心輻射 | show_widget HTML / SVG |
| 思維框架 | 八大思維圖(圓圈/氣泡/雙氣泡/流程/多重流程/括號/橋型/樹形) | SVG 自繪 / Mermaid / HTML 卡片 | show_widget HTML / SVG / Mermaid |
| 業務架構 | SWOT 矩陣 | SVG 自繪 2×2 / HTML 對比矩陣 | show_widget HTML / SVG |
| 業務架構 | 波士頓矩陣 BCG | SVG 自繪 2×2 氣泡 / HTML 對比矩陣 | show_widget HTML / SVG |
| 業務架構 | 安索夫矩陣 | SVG 自繪 2×2 / HTML 對比矩陣 | show_widget HTML / SVG |
| 業務架構 | 艾森豪威爾矩陣 | SVG 自繪 2×2 / HTML 對比矩陣 | show_widget HTML / SVG |
| 業務架構 | 影響力-努力矩陣 | SVG 自繪 2×2 / Mermaid quadrantChart / HTML 對比矩陣 |
show_widget HTML / SVG / Mermaid |
| 業務架構 | 平衡計分卡 BSC | SVG 自繪 四象限 / HTML 中心輻射 | show_widget HTML / SVG |
| 業務架構 | 組織架構樹 | Mermaid flowchart TB |
Mermaid / SVG |
| 業務架構 | 資料血緣圖 | Mermaid flowchart LR |
Mermaid |
| 業務架構 | 微服務架構拓撲 | Mermaid flowchart + subgraph |
Mermaid |
| 業務架構 | ER 圖 | Mermaid erDiagram |
Mermaid |
| 邏輯推理 | 魚骨圖(石川圖) | SVG 自繪 / HTML 分層 | show_widget HTML / SVG |
| 邏輯推理 | 多重流程圖(Multi-Flow) | SVG 自繪(三欄:流程/原因/結果)/ HTML 並行分支 | show_widget HTML / SVG |
| 邏輯推理 | FTA 故障樹 | Draw.io XML | Draw.io |
| 邏輯推理 | ETA 事件樹 | Draw.io XML | Draw.io |
| 邏輯推理 | 5why 五問法 | Mermaid flowchart 階梯 / HTML 流程鏈 |
show_widget HTML / Mermaid / SVG |
| 邏輯推理 | 邏輯樹 / Issue Tree | Mermaid flowchart TB / HTML 卡片組 |
show_widget HTML / Mermaid / SVG |
| 邏輯推理 | 決策樹(含機率/收益) | Mermaid flowchart 菱形 / HTML 流程鏈 |
show_widget HTML / Mermaid / SVG |
| 邏輯推理 | 因果迴路圖 CLD / 飛輪 | SVG 自繪(節點+極性+/-) | show_widget SVG |
| 資料展示 | 雷達圖 / 蜘蛛網圖 | SVG 自繪(Python 極座標計算 + rsvg-convert PNG) | show_widget SVG |
| 流程分析 | 標準流程圖(GB/T 1526) | Mermaid flowchart |
Mermaid |
| 流程分析 | 泳道圖 / 流程審批 | Draw.io XML 泳道 / HTML 泳道簡化版 | Draw.io / show_widget HTML |
| 流程分析 | UML 活動圖 | Mermaid flowchart fork/join |
Mermaid |
| 流程分析 | 狀態機圖(UML 狀態圖) | Mermaid stateDiagram-v2 |
Mermaid |
| 流程分析 | 時序圖 | Mermaid sequenceDiagram |
Mermaid |
| 流程分析 | 甘特圖 | Mermaid gantt |
Mermaid |
| 流程分析 | 時間線 | Mermaid timeline / HTML 時間線 |
show_widget HTML / Mermaid |
| 流程分析 | Git 分支圖 | Mermaid gitGraph |
Mermaid |
| 系統設計 | 分層架構圖 | Mermaid flowchart TB + classDef / HTML 分層架構 |
show_widget HTML / Mermaid / SVG |
| 系統設計 | 洋蔥架構 | SVG 自繪(同心圓) | show_widget SVG |
| 系統設計 | 六邊形架構 | SVG 自繪(中心 + 埠) | show_widget SVG |
| 系統設計 | DDD C4(Context/Container/Component) | Mermaid C4Context C4Container C4Component |
Mermaid |
| 系統設計 | DFD 資料流圖 | Draw.io XML / HTML 資料流 | Draw.io / show_widget HTML |
| 系統設計 | 用例圖(Use Case) | Draw.io XML | Draw.io |
| 系統設計 | 類圖(Class Diagram) | Draw.io XML / Mermaid classDiagram |
Draw.io / Mermaid |
| 系統設計 | 元件圖(Component Diagram) | Draw.io XML | Draw.io |
| 系統設計 | 部署圖(Deployment Diagram) | Draw.io XML | Draw.io |
| 資料展示 | 餅圖 | Mermaid pie |
Mermaid |
| 場景 | 推薦方式 | 理由 |
|---|---|---|
| 複雜圖(>8 節點 / 多層巢狀 / 長文本) | show_widget HTML/CSS | Flexbox/Grid 自動佈局,避免座標錯位,跨模型相容 |
| 簡單圖(≤8 節點)/ 彙報 / PPT 配圖 / 方案展示 | show_widget SVG | 動畫 + 高觀賞性 + 主題色 |
| 技術文件 / Markdown / README | Mermaid 程式碼塊 | 零依賴、可編輯、GitHub 原生渲染 |
| 複雜審批流 / UML 類圖 / DFD / ETA / FTA / 用例圖 | Draw.io XML | 符號支援最佳、可二次編輯 |
| 使用者無明確偏好 | HTML/CSS 優先(複雜)→ SVG(簡單) | 跨模型穩定性最高 |
關鍵規則:當目標模型不是 GLM-5.2 時,強制使用 HTML/CSS 模板(見
references/html-chart-templates.md),不要從零寫 SVG 座標。
詳見 references/output-formats.md。
每個圖表型別都有現成模板和最佳實踐,按需載入:
references/scenario-routing.md(40+ 類關鍵詞清單 + 推薦理由)references/visual-style-guide.md(配色、字號、留白、陰影、對齊)references/html-chart-templates.md(17 類圖表 HTML 骨架 + 模型適配指引)references/css-variable-replacement.md(模板維護工作流:硬編碼→變數,含 patch 工具模糊匹配陷阱)references/design-system-v4.md(三層陰影/漸變系統/3主題/間距字號/premium工具類)references/mermaid-templates.md(20+ 類 Mermaid 圖表模板 + 主題)references/svg-self-draw-guide.md(16 類 SVG 圖表的畫法與程式碼模板,含雷達圖)references/drawio-templates.md(泳道/FTA/DFD/UML/類圖/部署圖/用例圖/ETA 等的 XML 模板)references/radar-chart-example.py(Python 極座標計算 → SVG → rsvg-convert → PNG,修改資料即複用)references/radar-chart-example.py(Python 極座標計算 → SVG → rsvg-convert → PNG)當滿足以下任一條件時,必須使用 HTML/CSS 模板(而非 SVG 自繪): - 節點數量 > 8 - 存在多層巢狀(如"圖中含子圖") - 文字內容較長(>6 箇中文字元/節點) - 目標模型不是 GLM-5.2(強制)
視覺風格(配色/形狀/陰影/圓角等)一律以所選 HTML/CSS 模板自身的 CSS 定義為準,不額外預設偏好。
| 模型 | HTML 策略 | 注意事項 |
|---|---|---|
| GLM-5.2 | 自由生成,信任其 CSS 能力 | 可省略模板,直接描述需求 |
| DeepSeek V4 Pro | 載入 html-chart-templates.md 對應模板骨架,只要求填充內容 |
不要讓它從零寫 CSS,提供完整骨架 |
| MiniMax M3 | 強制使用模板,限制修改範圍 | 只允許修改文字內容和顏色類名,禁止改結構 |
<div> 正確閉合(用計數法驗證開閉標籤數量一致)#fff/#1F2937 等基礎色)word-break: break-word)min-width)'PingFang SC', 'Microsoft YaHei', sans-serif詳見 references/visual-style-guide.md。核心要素:
/* 主調 */
--c-primary: #2563EB; /* 藍 — 主結構 / 決策 */
--c-success: #10B981; /* 綠 — 優勢 / 正向 / 增強 */
--c-warning: #F59E0B; /* 橙 — 風險 / 機會 / 注意 */
--c-danger: #EF4444; /* 紅 — 威脅 / 關鍵 / 負向 */
--c-violet: #8B5CF6; /* 紫 — 創新 / 輔助 / 抽象 */
--c-neutral: #6B7280; /* 灰 — 中性 / 註釋 / 待定 */
/* 淺色(用於背景填充) */
--c-primary-light: #DBEAFE;
--c-success-light: #D1FAE5;
--c-warning-light: #FEF3C7;
--c-danger-light: #FEE2E2;
--c-violet-light: #EDE9FE;
--c-neutral-light: #F3F4F6;
每類圖表選 2-3 主題色,對比度 ≥ 4.5:1。
rx=8、膠囊 rx=20<filter>(feGaussianBlur + feOffset),停用 CSS box-shadow(visualizer 9 ramp 硬約束)最重要的一條:使用者永遠不需要記圖表名。Agent 應主動承擔"識別 → 選擇 → 解釋"全流程。
當用戶說「引導我」「不知道怎麼畫」「幫我選」或首次使用本技能時,進入引導模式。
Step 1: 問意圖
「你想做什麼?
A. 對比分析(兩個東西選哪個 / 優劣勢對比)
B. 流程梳理(步驟順序 / 審批流 / 排期)
C. 找根因(為什麼出問題 / 分析原因)
D. 架構設計(系統怎麼搭 / 模組怎麼分)
E. 資料展示(佔比 / 排名 / 進度)」
Step 2: 問規模和深度
「涉及幾個物件?」(比如對比2個方案 / 梳理5個步驟 / 4個維度)
「需要多深?」(簡單羅列特徵 / 對比流程差異 / 深層歸因分析)
Step 3: 推薦並確認
「我建議用【XX圖】,因為...」+ 一句話解釋為什麼選這個
使用者確認 → 直接出圖
使用者不滿意 → 列出備選 + 各自優劣
優先順序:意圖動詞(為什麼/對比/流程/…)> 圖表名(魚骨圖/SWOT/…)
Agent 優先匹配使用者的「意圖描述」,圖表名僅作為補註(使用者已知名時直接呼叫)。
思維框架:思維導圖、mindmap、金字塔、SCQA、5W2H、圓圈圖、氣泡圖、雙氣泡圖、流程圖、多重流程圖、括號圖、橋型圖、樹形圖、SWOT
業務架構:波士頓矩陣、BCG、安索夫矩陣、艾森豪威爾、影響力矩陣、BSC、平衡計分卡、組織架構圖、資料血緣圖
邏輯推理:魚骨圖、石川圖、FTA、故障樹、ETA、事件樹、5why、五問法、Issue Tree、問題樹、決策樹、因果迴路圖、CLD、飛輪圖
流程分析:流程圖、泳道圖、活動圖、狀態機、狀態圖、時序圖、呼叫鏈、甘特圖、時間線、Git 分支
系統設計:分層架構、洋蔥架構、六邊形架構、C4、DDD、DFD、資料流圖、用例圖、類圖、元件圖、部署圖、ER 圖
英文:diagram、chart、flowchart、mindmap、fishbone、SWOT、pyramid、sequence、architecture、tree、cause、effect、state、use、case、class、component、deployment、hexagonal、onion、layered、microservice、impact、effort、eisenhower、ansoff、bcg、bsc、visualize、show、draw
| 錯誤 | 處理 |
|---|---|
| Mermaid 語法錯誤 | 改用 SVG 重畫同一概念 |
| Draw.io XML 解析失敗 | 改用 Mermaid swimlane subgraphs |
| 使用者未指定圖表型別 | 根據場景關鍵詞自動推薦 2-3 種 |
| show_widget 渲染失敗 | 改用 Mermaid 程式碼塊輸出 |
| 節點過多(>20) | 拆分為多個子圖或用分組著色 |
所有出圖預設達到 2560×1440(2K) 有效解析度,微信可直接讀取顯示且細節清晰。
# 標準渲染引數(Playwright — 2K)
viewport={'width': 1280, 'height': 720}, device_scale_factor=2 # 2560×1440 有效解析度
# 等價於 device_scale_factor=1 時 viewport 2560×1440,但 1x 的 HTML 佈局更易控
解析度對照表:
| 場景 | viewport | DPI | 輸出尺寸 | 適用 |
|---|---|---|---|---|
| 標準 2K(預設) | 1280×720 | 2x | 2560×1440 等效 | 微信直髮,細節清晰 |
| 彙報/PPT/列印 | 1280×720 | 3x | 3840×2160 等效 | 高精度展示 |
| 長圖/資訊密集型 | 1280×720 | 2x | 2560×N | 多內容對比圖 |
| SVG 直轉 | — | rsvg 2700px | 2700×N | SVG 原始檔 |
出圖過程中的 HTML/SVG 原始檔寫入
/tmp/vds-session/會話專用目錄。 雲伺服器/tmp/由系統定期清理(tmpreaper/tmpwatch),無需手動維護。 $HOME 下的 PNG 交付檔案在會話結束後即被 MEDIA: 傳送,伺服器上不長期留存。
清理規則:
- 出圖完成後,/tmp/vds-session/ 目錄內的 HTML/SVG 原始檔已打包進 zip,可隨 HTTP server 結束一併清理
- PNG 交付檔案寫入 $HOME/,MEDIA 傳送後即完成使命,系統定期清理或下一輪出圖覆蓋
- 不會在伺服器上持續堆積大檔案
每次出圖輸出的交付物:
1. MEDIA:/path/to/chart.png ← 高畫質PNG,微信直接顯示(≥2K, 2560×1440)
2. MEDIA:/path/to/chart-sources.zip ← 本輪原始檔打包(.html 或 .svg),可二次編輯
原始檔打包規則:
- 僅打包本輪對話生成的原始檔,不碰其他會話的歷史檔案
- 原始檔格式 = 實際出圖使用的格式:HTML/CSS 模板出圖 → 打包 .html;SVG 自繪出圖 → 打包 .svg
- 每次出圖前建立專用會話目錄(如 /tmp/vds-<主題>/),所有原始檔寫入該目錄
- 檔名:chart-sources-<主題>.zip(不硬編碼 svg,如實反映源格式)
- 使用 Python zipfile(比系統 zip 更可靠)
交付流程(標準四步):
# Step 0: 建立會話專用目錄
mkdir -p /tmp/vds-<主題>/
# Step 1: 啟動 HTTP server,服務該目錄
cd /tmp/vds-<主題>/ && python3 -m http.server 8888 --bind 127.0.0.1 &
# Step 2: Playwright 2K 渲染(1280×720 × 2x DPI = 2560×1440)
~/your-agent/skills/visual-diagram-suite/.venv/bin/python << 'PYEOF'
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True, args=['--no-sandbox'])
page = browser.new_page(viewport={'width': 1280, 'height': 720}, device_scale_factor=2)
page.goto('http://127.0.0.1:8888/<chart>.html', wait_until='networkidle')
page.screenshot(path='/home/agentuser/<chart>.png', full_page=True)
browser.close()
PYEOF
# Step 3: 只打包本輪會話的檔案
cd /tmp/vds-<主題>/ && python3 -c "
import zipfile, os
with zipfile.ZipFile('/home/agentuser/chart-sources.zip', 'w', zipfile.ZIP_DEFLATED) as zf:
for f in os.listdir('.'):
if f.endswith(('.svg', '.html')):
zf.write(f)
" && kill %1
# Step 4: 雙交付
# MEDIA:/home/agentuser/<chart>.png
# MEDIA:/home/agentuser/chart-sources.zip
呼叫 Skill 後典型輸出結構:
## [圖表標題]
[圖表 PNG — 2560×N 高畫質圖]
**說明**:
- 圖表型別:XXX
- 表達關係:XXX
- 關鍵洞察:XXX(1-2 句話)
- SVG 原始檔已打包:chart-sources-XXX.zip
| 使用者意圖 | 主交付 | 附加交付 | 渲染方式 |
|---|---|---|---|
| 畫圖/出圖(預設) | PNG 2K | sources.zip | Playwright HTTP full_page |
| 彙報用/PPT | PNG 4K (3x) | sources.zip | Playwright HTTP 3x DPI |
| 寫文件 | Mermaid 程式碼塊 | PNG 2K(備選) | Mermaid → 嵌入文件 |
| 需要二次編輯 | PNG 2K | sources.zip(重點) | Playwright + rsvg |
references/scenario-routing.md(40+ 類關鍵詞 + 觸發示例 + 推薦理由)references/visual-style-guide.md(配色變數、字號、留白、陰影、動畫)references/html-chart-templates.md(17 類圖表 HTML 骨架 + 模型適配指引)references/css-variable-replacement.md(模板維護工作流:硬編碼→變數,含 patch 工具模糊匹配陷阱)references/design-system-v4.md(三層陰影/漸變系統/3主題/間距字號/premium工具類)references/mermaid-templates.md(20+ 類 Mermaid 程式碼模板 + 主題變數)references/svg-self-draw-guide.md(15+ 類 SVG 圖表畫法 + 完整程式碼示例)references/drawio-templates.md(泳道/FTA/DFD/UML/類圖/部署圖/用例圖/ETA/BSC 的 XML 模板)references/output-formats.md(四種方式對比 + 效能/相容性/可編輯性)references/examples-gallery.md(每個模板 2-3 個完整 HTML 示例,可直接複製貼上)scripts/setup.sh(自動檢測→映象→安裝→驗證渲染管線)scripts/render_with_retry.py(三階降級:Playwright→rsvg→Mermaid)scripts/validate_params.py(節點數/顏色檢查 + 超出自動建議)⚠️ 2026-07-04 雷區復盤:snap chromium 的 AppArmor 沙箱在
file://協議下停用 CSS background——所有背景色不渲染,導致 99.7% 白屏。必須走 HTTP server + Playwrightfull_page=True自動適配高度。
# Step 1: 建立會話專用目錄 + 啟動 HTTP server
mkdir -p /tmp/vds-session/ && cd /tmp/vds-session/ && python3 -m http.server 8888 --bind 127.0.0.1 &
# Step 2: Playwright 2K 標準渲染(1280×720 × 2x DPI = 2560px 有效寬度)
~/your-agent/skills/visual-diagram-suite/.venv/bin/python << 'PYEOF'
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True, args=['--no-sandbox'])
page = browser.new_page(viewport={'width': 1280, 'height': 720}, device_scale_factor=2)
page.goto('http://127.0.0.1:8888/<your-file>.html', wait_until='networkidle')
page.screenshot(path='/home/agentuser/<output>.png', full_page=True)
browser.close()
PYEOF
# Step 3: 只打包本輪生成的檔案 + 停掉 HTTP server + 雙交付
cd /tmp/vds-session/ && python3 -c "
import zipfile, os
with zipfile.ZipFile('/home/agentuser/chart-sources.zip', 'w', zipfile.ZIP_DEFLATED) as zf:
for f in os.listdir('.'):
if f.endswith(('.svg', '.html')):
zf.write(f)
" && kill %1
# MEDIA:/home/agentuser/<output>.png
# MEDIA:/home/agentuser/chart-sources.zip
export PLAYWRIGHT_DOWNLOAD_HOST=https://npmmirror.com/mirrors/playwright/ .venv/bin/playwright install chromium小蔥技能7w4.net持續更新中。
# rsvg-convert:SVG 直轉 PNG(零依賴,秒級)
rsvg-convert -w 2700 -b white input.svg -o output.png
| 陷阱 | 症狀 | 修復 |
|---|---|---|
file:// 協議 |
CSS background 不渲染 → 99.7% 白屏 | 必須走 HTTP server |
--window-size 過高 |
內容只佔 35%,其餘空白 | Playwright full_page=True |
| snap 沙箱路徑 | 截圖寫到 snap 私有目錄 | 輸出到 $HOME/ 下 |
| 源格式 | 首選方案 | 備選方案 | 備註 |
|---|---|---|---|
| SVG | rsvg-convert -w 2700 -b white in.svg -o out.png |
Playwright + HTTP server | rsvg 零依賴、秒級出圖、穩定可靠 |
| HTML | Playwright HTTP server + full_page=True |
rsvg-convert(SVG 轉換後) | HTML 必須瀏覽器渲染;SVG 直接用 rsvg 更快 |
| 圖表已含 SVG | rsvg-convert 優先 | — | 實測 rsvg 2700px寬 零失敗 |
--screenshot 方案⚠️ 已棄用。 以下僅作為歷史遺留記錄保留。現統一使用 Playwright HTTP server 管線。 棄用原因:snap AppArmor 停用
file://CSS background +--window-size無法自適應高度。
集中列出新手最容易踩的坑和解決方案,避免散落各處反覆查詢。
| 坑 | 症狀 | 解法 |
|---|---|---|
| 用卡片圖做對比分析 | 生成一堆獨立卡片,看不出差異 | 對比/分析必須用框架級模板(流程鏈/矩陣/泳道),卡片只用於純展示 |
| 選了不適合的圖表型別 | 出的圖表達不了你想說的邏輯 | 選之前看「智慧意圖路由器」的決策樹,它會告訴你每種圖適合什麼場景 |
| 節點太多(>15個) | 圖擠成一團、文字重疊 | 拆分多個子圖或用分組著色。說"這個圖太大了,幫我拆成2張" |
| 架構/概念圖堆滿技術細節 | 使用者看不懂結構,反饋「邏輯不夠清晰」 | 先講「幾層、做什麼、資料怎麼流」。檔案路徑/位元組數/計數放表格或副文本。用比喻或一句話講清核心關係 |
| 坑 | 症狀 | 解法 |
|---|---|---|
| 描述太模糊 | 出的圖不是你想要的型別 | 加上關係詞:說清楚是"對比X和Y"還是"梳理X的流程"還是"找X的根因" |
| 模板引數填錯格式 | 顏色錯亂或佈局坍塌 | 模板中的--val填0-100數字,--pct填百分比整數,顏色用CSS變數名 |
| 忘記設viewport寬度 | HTML內容被截斷或擠到一側 | 始終用900px初始寬,full_page=True自動適應高度 |
| 坑 | 症狀 | 解法 |
|---|---|---|
| 出圖後白屏/大片空白 | 圖表內容看不清或全白 | 見下方「渲染異常自救」——換HTTP+Playwright重試 |
file://渲染CSS不生效 |
所有背景色消失→99.7%白屏 | snap chromium必須走HTTP server中轉,不能用file:// |
| 視口太高內容懸空 | 圖上下都有大量空白 | 用Playwright的full_page=True替代手動--window-size |
| 截圖寫到snap私有目錄 | ls找不到生成的PNG |
輸出到$HOME/而非/tmp/,或用Playwright(路徑可控) |
1. Playwright HTTP渲染失敗?
→ 等2秒自動重試(最多3次)
→ 仍失敗:切 rsvg-convert(僅SVG源可用)
→ 仍失敗:我給你一段可編輯的 Mermaid 程式碼,你貼上到 GitHub/Notion 就能看
2. 出圖後白屏自檢
→ 自動檢測白屏率 >95% → 重新渲染
→ 自動檢測內容佔比 <30% → 調整視口重渲
→ 自動檢測字號過小 → 縮放重渲
3. 臨時降級:直接讓我輸出 Mermaid 程式碼塊
→ 告訴它「改用 Mermaid 畫」
以下場景不建議使用本套件,或需額外注意:
| 場景 | 原因 | 替代方案 |
|---|---|---|
| 超大規模圖(>15節點) | 節點擁擠、文字重疊 | 拆分為多張子圖,或改用專業繪圖工具 |
| 高精度資料視覺化 | HTML/CSS圖表不適合精確資料定位 | 用 Python matplotlib / ECharts |
| 非中文環境 | 字型回退到系統預設,效果打折扣 | 替換CSS中的'PingFang SC'為你的系統字型 |
| 互動式圖表 | 本套件輸出靜態PNG | 用D3.js / Plotly / ECharts |
| 非技術使用者 | 需要安裝Playwright+Chromium | 用scripts/setup.sh一鍵安裝,或改用Mermaid降級 |
| 非常規圖表型別 | 不在40+類覆蓋範圍內 | 描述需求,AI會嘗試SVG自繪兜底 |
每個渲染失敗都有自動降級路徑,不會卡住或白屏:
使用者請求出圖
│
├─ Playwright HTTP渲染
│ ├─ 成功 → 出圖後白屏自檢(白屏率>95%→重渲,≤3次)
│ └─ 失敗 ↓
│
├─ 自動重試(延遲2s,最多3次)
│ ├─ 成功 → 白屏自檢
│ └─ 3次皆敗 ↓
│
├─ rsvg-convert 降級(僅SVG源可用)
│ ├─ 成功 → 交付PNG
│ └─ 失敗/不可用 ↓
│
└─ Mermaid 兜底
→ 使用者收到可編輯的 Mermaid 程式碼塊
→ 可貼上到 GitHub/Notion 原生渲染
輸入異常處理: - 收到模糊請求 → 列出 2-3 個候選圖表 + 各自適用場景 + 選A會怎樣/選B會怎樣 - 節點數超過模板上限 → 提示"該模板最多X個節點,你給了Y個,建議拆分或換模板Z" - 引數值超出範圍 → 截斷到合法值 + 提示"已自動調整X從Y到Z"
PLAYWRIGHT_DOWNLOAD_HOST=npmmirror.com 環境變數加速安裝,直連 cdn.playwright.dev 超時問題徹底解決。Playwright 渲染管線 E2E 驗證通過。rsvg-convert(零依賴秒級);Chromium snap 截圖路徑陷阱 + 正確寫法;雷達圖參考指令碼 references/radar-chart-example.py(Python 計算 → SVG → PNG,改資料即複用)。references/html-chart-templates.md(10 類高頻圖表 HTML 骨架模板)+ 模型適配指引段 + 路由表雙模式標註。核心改進:複雜圖從 SVG 自繪(座標計算易錯)改為 HTML/CSS(Flexbox/Grid 自動佈局),跨模型相容性提升 150%+這是一個質量優秀的圖表生成工具,最大的優點是“會猜需求”——你說“畫個對比圖”它就能自動匹配SWOT或矩陣,不需要你懂圖表專業知識。模板設計精美(17種模板+3套主題),輸出效果專業。缺點是文件內容偏多,入門需要花時間理解路由邏輯,安裝依賴略繁瑣。適合經常需要做圖表、有一定AI使用經驗的使用者。