name: interactive-architecture-diagram slug: contextweave-interactive-architecture displayName: 架構圖一鍵生成 version: 1.2.2 summary: 強大的AI自動化繪圖與複雜資訊視覺化工具(基於 ContextWeave) license: MIT description: 強大的AI自動化繪圖與複雜資訊視覺化工具(基於 ContextWeave)。不僅支援程式碼與系統架構的視覺化,更廣泛適用於複雜邏輯梳理、知識庫轉換、業務流程圖、思維導圖及長文本的結構化資訊圖生成。通過深度的語義分析與請求編排,一鍵將晦澀文本與複雜知識轉化為清晰直觀的圖形表達。 metadata: { "openclaw": { "emoji": "🧠", "requires": { "bins": ["node"] } } }
本 Skill 的定位是"繪圖請求客戶端":負責把使用者需求轉換為可執行的繪圖意圖,通過基於檔案生成的單一路徑與雲端後端協同完成產出。客戶端本身無狀態,會話狀態由後端託管。
觸發詞:「畫圖」「畫個架構圖」「生成流程圖」「畫個思維導圖」「生成CW圖」「視覺化這個程式碼」
本文件中所有的規則與禁令,都是以下三條不變式的推論。理解它們即可正確應對任何未列舉的場景。
後端執行在雲端/隔離沙盒中,看不見你本地的任何檔案、會話歷史與你腦中的任何背景知識。它只吃你傳過去的純文本。因此,發出請求前必須把所有"引用"解引用為自包含的語義文本:
| 懸空引用 | 解引用動作 |
|---|---|
檔案路徑("請參考 /path/to/x") |
必須先自行使用本地工具讀取檔案,將其核心邏輯拍平(Flatten)成純文本寫入 # Request |
| 專有名詞/縮寫(未釋義的術語) | 補全最小資訊集:角色(物件型別與責任邊界)、層級(所屬模組/抽象層)、動作(關鍵行為)、上下游關係 |
| 舊圖上下文("基於上一張圖修改") | 把現有 CW 文本放入 input_file 的 # CW 段隨請求提交;session_id 從上一輪返回 JSON 中提取複用,不要求使用者重複輸入 |
更多技能請訪問小蔥技能站7w4.net。
借鑑"多級抽象"原則:宏觀圖展示全域性脈絡與骨架,中觀圖展示子系統或模組間的互動結構,微觀圖展示具體的執行邏輯與落地細節。不要試圖在一張圖裡展示所有內容。
按此六步即可跑通第一張圖:
input_file(當前工作區 .cw_skill/requests/request_<timestamp>.md),結構如下:
````markdown
# Request
[展示意圖 + 繪圖意圖 + 結構說明,50-500 字元]# CW
cw
`
首次生成允許 `# CW` 為空;修改已有圖時放入現有 CW 文本。
5. **執行**:bash
node scripts/generate_contextweave.cjs --input_file "<絕對路徑>" --output_name "<語義化英文名>" --output_dir "docs/diagrams"
``
6. **回填**:從返回 JSON 提取session_id與產物欄位,按 §四的 JSON 格式回覆。指令碼會自動將cw_code(含session_id註釋)落盤為
約束速查:input_file 必須為已存在的絕對路徑;output_name 必填(如 system_arch);user_request 預設 50-500 字元(可用環境變數 CONTEXTWEAVE_MIN/MAX_REQUEST_LENGTH 調整)。
使用者的展示要求往往藏在自然語言裡。你的職責是挖掘並翻譯為語義級展示意圖,寫入 # Request 開頭(如:"本圖側重整體宏觀骨架,聚焦 Y 核心邏輯,Z 邊緣部分弱化")。
挖掘訊號清單:
展示意圖邊界(重要):
| 支援:語義級展示意圖(可轉發給後端) | 不支援:畫素級精確訴求(必須降級翻譯) |
|---|---|
| 配色基調("基礎設施用藍色系") | 在 # Request 自由文本中散落 hex 色值 / rgba / 透明度寫法 |
精確主色與高亮色(經 base_palette / accent_targets 結構化欄位傳遞,色值嚴格一致) |
指定精確座標 / 畫素位置 |
| 重點突出("高亮這條鏈路""這個模組要醒目") | 指定字號、線寬、間距的具體數值 |
| 聚類分組("訂單域的模組放在一起") | 指定複雜的自定義佈局演算法 |
| 分層結構("按接入層/應用層/資料層上下排") |
base_palette、節點高亮色組裝進 accent_targets(均由後端確定性保真);hex 不得寫入 # Request 或其他自由文本引數。# Request(如"放在右上角"→"作為邊緣支撐元件,與主鏈路分離"),並可告知使用者最終佈局由渲染引擎自動決定。後端的圖表風格自動推演依賴關鍵詞匹配,存在誤判風險。因此風格決策前置到 Skill 層:意圖不明確時必須先向使用者澄清,後端關鍵詞推演僅作為兜底。為消除語言摩擦,我們引入了兩個正交解耦的核心概念:“呈現邏輯”與“構圖範式”。
正交解耦的威力:這兩個概念可以自由組合,產生豐富的圖表效果。例如: - 包容式 + 拓撲:經典的系統分層架構圖,按業務域劃分。 - 流轉式 + 邏輯:帶有泳道或時序特徵的業務流程圖。 - 包容式 + 邏輯:在跨部門的複雜業務流中,通過包裹塊突出每個步驟所屬的系統域。 - 陳述式 + 拓撲:科研方法論框架圖,既有模組關係,又有大量解釋文本。
input_file 前必須先向使用者發起澄清提問。corporate_red / corporate_blue / tech_blue),組裝為 base_palette(如 {"primary": "#C00000", "style_preset": "corporate_red"})經 --base_palette 引數傳入;僅有語義基調時寫入 # Request 兜底,不傳該引數。accent_targets(如 [{"name": "支付閘道器", "color": "暖橙"}],name 即圖中實際存在的節點名)。若使用者已明確給出高亮物件(包括節點、分組、語義類別或鏈路)和顏色,則視為已確認,直接使用正文中對應的明確名稱組裝並傳入 accent_targets;不得因具體圖節點尚未生成而省略,也不得只把高亮要求留在 # Request 中。僅當高亮物件或顏色確有歧義時才追問。topology / logic / hybrid / mindmap)和構圖範式(對應 container / flow / editorial)隨指令碼呼叫顯式傳入。配色翻譯為語義級意圖寫入 # Request(作為相容兜底)。hex 色值只允許出現在 base_palette 與 accent_targets 兩個結構化欄位中,不得寫入其他引數;若有高亮節點,將 accent_targets 以 JSON 字串經 --accent_targets 引數顯式傳入;使用者未宣告則不傳該引數。style_preset 與主色),並在 # Request 中寫明選擇依據。為了幫助使用者更好地下達指令,這裡整理了“呈現邏輯”與“構圖範式”組合的典型示例:
| 呈現邏輯 | 構圖範式 | 典型場景 | 推薦提示詞示例 |
|---|---|---|---|
| 拓撲 | 包容式 | 系統分層架構、微服務架構 | “畫一個微服務架構圖,分為接入層、業務層和資料層,要求用淺色底板將不同層的模組包裹起來,強調邊界。” |
| 邏輯 | 流轉式 | 業務流程、時序流轉、資料鏈路 | “畫一個訂單支付流程圖,突出使用者、閘道器、支付中心的互動鏈路,以資料流向為主線。” |
| 混合 | 包容式 | 跨域複雜業務流、系統級流程 | “畫一個跨部門審批流,既要展示審批節點,又要用區域塊標明每個節點屬於哪個系統域。” |
| 拓撲 | 陳述式 | 科研框架、方法論推導 | “畫一個科研方法論圖,說明資料的預處理、特徵工程到模型訓練的關係,圖上要有較多的文字解釋。” |
| 思維導圖 | 陳述式 | 知識結構梳理、腦圖 | “生成一份產品功能思維導圖,從核心產品向外發散,清晰展示所有子模組的層級。” |
script、input_file、status、session_id、result、errorstatus 僅允許 ok 或 error成功模板:
{"script":"generate_contextweave.cjs","input_file":"/abs/path/request_xxx.md","status":"ok","session_id":"<session_id>","result":{"run_id":"<run_id>","svg_url":"<svg_url>"},"error":null}
失敗模板:
{"script":"generate_contextweave.cjs","input_file":"/abs/path/request_xxx.md","status":"error","session_id":null,"result":null,"error":{"code":"EXECUTION_NOT_PERFORMED","message":"未完成落盤或未執行指令碼"}}
預檢錯誤碼:未落盤/未執行 → EXECUTION_NOT_PERFORMED;input_file 不存在 → INPUT_FILE_NOT_FOUND;非絕對路徑 → INPUT_FILE_NOT_ABSOLUTE。
INVALID_REQUEST_LENGTH:調整請求詳細程度至允許範圍後重試MISSING_SESSION_ID:立即重試當前請求並校驗返回SESSION_INVALID_OR_EXPIRED:先重建會話,再回放當前意圖AUTH_ERROR:校驗金鑰與配置後重試PAYMENT_REQUIRED / RATE_LIMIT_EXCEEDED:額度不足或免費體驗額度已用完,按以下 SOP 引導使用者免費領取額度後重試:node scripts/request_quota_code.cjs --email "<郵箱>" 傳送驗證碼node scripts/redeem_quota_code.cjs --email "<郵箱>" --code "<驗證碼>"CONTEXTWEAVE_MCP_API_KEY 配置到環境變數API_ERROR:指令碼已內建 3 次指數退避自動重試(覆蓋超時/連線重置/5xx);仍失敗時檢查網路與服務狀態後重試WAITING_FOR_EXPERT_PROCESSING 或耗時過長時,先向使用者傳送安撫話術("圖表較複雜,後端正在深度生成,請稍候…"),然後主動呼叫 node scripts/recompile_contextweave.cjs --session_id "<session_id>" 輪詢拉取結果,不要讓使用者手動觸發。node scripts/submit_feedback.cjs --session_id "<session_id>" --user_complaint "使用者郵箱:<郵箱>,問題描述:<反饋>" --agent_analysis "<失敗分析>"。https://pptx.chenxitech.site),僅傳送繪圖必需資料| 使用者意圖 | 應選機制 |
|---|---|
| 架構龐大,需拆為多個獨立檢視/模組/層級 | layers |
| 同一架構上高亮不同鏈路(如 Query 鏈路 vs Callback 鏈路) | scenarios |
Layers:物理隔離式拆分。每個獨立子模組/層級成為一個獨立檢視,前端渲染為多個 Tab 頁。
Scenarios:單一資料來源 + 增量覆蓋。後端先維護一份包含全部節點與連線的基礎圖,再為每條鏈路定義一個檢視:淡化無關元件、高亮目標鏈路。禁止要求後端複製拼接多份完整圖形。
重要:你只需要在
# Request中用自然語言表達拆分與高亮意圖(如"拆分為訂單域、支付域兩個獨立檢視""淡化快取等無關元件,高亮從閘道器到訂單服務的鏈路")。具體的語法由後端生成,禁止在請求中自行編寫或拼接圖形語法程式碼。
layers 或 scenarios 時,在落盤 input_file 與呼叫指令碼之前,必須先向使用者輸出拆分推薦方案並阻塞等待明確確認。layers 還是 scenarios)、每個檢視的名稱 / 聚焦點 / 抽象層級(宏觀 / 中觀 / 微觀)、拆分理由。input_file、禁止呼叫 generate_contextweave.cjs。嚴禁在一次請求中同時完成繪圖與連結設定:
generate_contextweave.cjs,# Request 中完全忽略連結要求。session_id 後,呼叫 edit_contextweave.cjs,# Request 中使用如下 JSON 指令(base_path 必填;路徑無需 file:/// 字首;指向特定程式碼塊時追加 #L<起始>-L<結束>):
json
{
"base_path": "<當前工作區絕對路徑>",
"links": [
{ "targets": ["模組A"], "link": "./src/module.py#L10-L25" },
{ "targets": ["模組A到模組B的連線"], "link": "./src/api_handler.py" }
]
}generate_contextweave.cjs:基於 input_file 生成;--enable_plan true 啟用大綱規劃模式(適合特別複雜的邏輯結構);呈現邏輯和構圖範式可通過引數顯式傳入,優先順序高於後端關鍵詞自動推演(見 §三 意圖澄清互動)edit_contextweave.cjs:基於 session_id 提交修改意圖import_contextweave_code.cjs:匯入現成 .cw 檔案——node scripts/import_contextweave_code.cjs --path "<絕對路徑>"(此場景禁止呼叫 generate)export_contextweave_code.cjs:響應"匯出/找回某 session_id 的 CW 程式碼"——嚴禁在對話中以文本輸出程式碼,必須 node scripts/export_contextweave_code.cjs --session_id "<session_id>"recompile_contextweave.cjs:專家佇列場景的輪詢拉取(內建自動輪詢與退避,見 §四 等待策略)submit_feedback.cjs:提交使用者反饋(見 §四 兜底策略)request_quota_code.cjs:免費領取額度第一步——node scripts/request_quota_code.cjs --email "<郵箱>" 傳送驗證碼(見 §四 錯誤與異常策略)redeem_quota_code.cjs:免費領取額度第二步——node scripts/redeem_quota_code.cjs --email "<郵箱>" --code "<驗證碼>" 兌換 API Key| # | 反模式 | 違反 | 正確做法 |
|---|---|---|---|
| 1 | # Request 中出現"請參考檔案 /path/to/x" |
不變式 1 | 自行讀檔案,拍平為純文本寫入 # Request |
| 2 | 術語未釋義直接作為節點/分組標籤 | 不變式 1 | 補全形色、層級、動作、上下游後再出圖 |
| 3 | 修改已有圖時不帶 # CW 段 |
不變式 1 | 將現有 CW 文本放入 # CW 隨請求提交 |
| 4 | 用"元素靠得近"表達關係 | 不變式 2 | 顯式連線 + 方向,可複述為"A 依賴 B" |
| 5 | 一張圖塞入所有細節 | 不變式 3 | 按受眾定層級,複雜時拆 layers/scenarios |
| 6 | 承諾畫素級佈局/精確樣式 | §三 邊界 | 翻譯為語義級展示意圖,渲染交給後端 |
| 7 | 只輸出語義分析文本而不呼叫指令碼 | §二 | 任何繪圖意圖必須落到指令碼呼叫 |
| 8 | 繪圖與 Link 注入合併為一次請求 | §5.2 | 先生成結構,再批次注入連結 |
| 9 | 長耗時讓使用者乾等或直接拋錯 | §四 | 安撫 + 主動 recompile 輪詢 |
| 10 | 失敗後不給使用者留聯絡方式入口 | §四 | 引導留郵箱 + submit_feedback 上報 |
| 11 | 未經使用者確認擅自拆分多檢視 | §5.1 確認門 | 先輸出拆分推薦方案並阻塞等待使用者確認 |
| 12 | 意圖不明時直接落盤,把風格決策丟給後端關鍵詞猜測 | §三 意圖澄清互動 | 先提問澄清呈現邏輯、構圖範式與配色,並顯式傳入對應引數 |
base_palette / accent_targets(而非寫入 # Request)?(§三 意圖澄清互動)WAITING_FOR_EXPERT_PROCESSING 或生成耗時較長時,說明系統正在處理複雜的結構規劃。Agent 應主動呼叫 recompile_contextweave.cjs 輪詢結果,同時安撫使用者稍候。RATE_LIMIT_EXCEEDED 時,請按照提示執行驗證碼指令碼,引導使用者通過郵箱免費領取額度並配置 API Key。API_ERROR),指令碼內部已經實現了 3 次指數退避重試機制。這個 Skill 質量較好,文件清晰易懂,錯誤處理考慮周全,繪圖功能覆蓋全面。優點是設計規範、互動引導做得好、異常場景處理完善;不足是部分功能操作較複雜、文件稍長。普通使用者如果需要生成架構圖或流程圖,這是一個可靠的選擇,但建議先閱讀快速開始部分再上手使用。