Skill: ftois/generate-mindmap (version 1.0.2)

--- name: mindmap description: 生成交互式思维导图，支持从文本/摘要构建层级结构，直接输出 HTML、PNG、JPG、SVG、PDF、XMind 格式。所有图片格式仅需 pillow（pip install pillow），无需任何系统级C库。当用户要求生成思维导图、脑图、可视化结构图时调用。 user-invocable: true metadata: {"openclaw": {"requires": {"bins": ["python3"], "pip": ["pillow"]}}} --- # Mind Map Generator — 思维导图生成器 ## 触发时机 - 用户说"生成思维导图"、"画脑图"、"做一个思维导图" - 用户总结文章/内容后说"帮我做成思维导图" - 用户说"把这些内容可视化"、"帮我梳理结构" - 用户说"导出为 XMind / PNG / JPG / PDF"等格式 --- ## 输出格式与依赖 **所有平台（Windows / macOS / Linux）统一依赖，只需 `pip install pillow`：** | 格式 | 说明 | 依赖 | |------|------|------| | `html` | **默认**。交互式网页，支持拖拽/折叠/缩放/右键编辑/8种布局切换 | 无 | | `svg` | 矢量图，无限缩放不失真 | 无 | | `xmind` | XMind 8 / 2020+ 格式，可继续编辑 | 无 | | `png` | 高清位图，适合嵌入文档/PPT/分享 | pillow | | `jpg` | JPEG 位图，体积小 | pillow | | `pdf` | PDF 文档 | pillow | > **不需要安装任何系统级 C 库。** 如果 Pillow 未安装，脚本会**自动执行 `pip install pillow`**。 ### 首次安装（一行命令） ```bash pip install pillow ``` --- ## 推荐的多格式输出策略 用户要求生成思维导图时，**默认同时输出 HTML + PNG + XMind 三种格式**，除非用户明确指定只要某种格式： ```bash DATA='{ "central": "核心洞见", "branches": [ {"label": "🔬 维度1", "color": "#4A90D9", "children": ["证据A", "证据B"]} ] }' # 1. HTML（交互式，浏览器查看/编辑） python3 {baseDir}/generate_mindmap.py \ --title "标题" --format html \ --output ~/.openclaw/workspace/标题.html --data "$DATA" # 2. PNG（高清图片，直接分享） python3 {baseDir}/generate_mindmap.py \ --title "标题" --format png --scale 2.0 \ --output ~/.openclaw/workspace/标题.png --data "$DATA" # 3. XMind（专业思维导图软件中编辑） python3 {baseDir}/generate_mindmap.py \ --title "标题" --format xmind \ --output ~/.openclaw/workspace/标题.xmind --data "$DATA" ``` 参数说明： - `--format html/png/jpg/svg/pdf/xmind`（默认 html） - `--output` 输出路径（可省略，默认保存到 `~/.openclaw/workspace/`） - `--scale` PNG/JPG/PDF 的像素密度（默认 2.0，建议 1.0–3.0） - `--quality` JPG 质量 1–100（默认 92） --- ## 认知科学基础：为什么这样做思维导图 以下原则基于四大认知理论，指导 AI 生成高质量思维导图： ### 放射性思考（Buzan）— 结构原则 Tony Buzan 提出思维导图模拟大脑神经元的放射状结构：从中心向外发散，每条分支是一个独立的联想链。 **对生成的要求：** 中心节点是唯一的焦点，所有分支从它辐射而出，不存在"并列的两个中心"。 ### 双重编码理论（Paivio）— 记忆原则 Allan Paivio 发现：同时通过语言通道和视觉通道编码的信息，记忆率提升约 32%。具体词（可想象的）比抽象词记忆效果好得多。 **对生成的要求：** 1. **每个主分支必须带 emoji**（激活视觉通道）—— 如 `"🔬 技术演进"` 而非 `"技术演进"` 2. **优先使用具体词**而非抽象概括 —— 如 `"训练成本降至 6 万"` 而非 `"成本下降"` 3. **颜色即编码** —— 每个分支的颜色应与语义一致，同色系 = 同语义域 ### 认知负荷与米勒定律（Miller）— 容量原则 工作记忆同时处理的信息块为 7±2 个。Beel & Langer 对 19,379 张思维导图的实证研究发现：典型思维导图平均 31 个节点，每节点 1-3 个词。 **对生成的硬约束：** - 主分支 **3–6 个**（不超过 7） - 每个分支的子节点 **2–5 个** - 每个节点 **4–12 字**，叶节点不超过 15 字 - **全图总节点数 ≤ 40 个**（超过则拆分为多张图或合并子节点） - 全图最多 **4 层**深度 ### 语义网络（Quillian & Collins）— 关联原则 知识在大脑中以语义网络形式存储：概念是节点，关系是连线。**节点间的距离代表语义距离**——相关的概念应该在视觉上靠近。 **对生成的要求：** 语义相近的子节点应聚合在同一个分支下（聚类原则），而不是按原文出现顺序排列。 --- ## 第一步：确定中心节点（最重要） 中心节点决定整张图的质量。它是**核心洞见**，不是话题标签。 **错误示范（话题标签）：** - ❌ "AI 发展趋势" - ❌ "产品发布计划" - ❌ "Python 学习" **正确示范（核心洞见）：** - ✅ "AI 正从工具变为协作者" - ✅ "产品成功 = 用户价值 × 执行速度" - ✅ "Python 的价值在于生态而非语法" **判断方法：** 1. 问自己"关于这个内容，最重要的一件事是什么？" 答案就是中心节点。 2. 如果中心节点换成另一个话题，现有分支还能成立 → 说明太泛，需要更精确。 --- ## 第二步：设计主分支（维度而非章节） 主分支是"理解中心洞见的独立视角"，不是原文的章节目录。 ### 按内容类型选择维度框架 | 内容类型 | 分支维度框架 | 推荐布局 | |----------|-------------|----------| | 分析/研究类 | 是什么 · 为什么 · 怎么做 · 结果如何 | ⇆ 左右均衡 | | 问题解决类 | 根因 · 影响 · 方案 · 评估 | 🐟 鱼骨图 | | 学习知识类 | 核心概念 · 运作机制 · 适用场景 · 常见误区 | ⇆ 左右均衡 | | 产品/项目类 | 目标 · 策略 · 执行 · 风险 | → 树形 | | 比较分析类 | 相同点 · 差异点 · 各自优势 · 选择建议 | ⇆ 左右均衡 | | 叙事/报告类 | 背景 · 发现 · 影响 · 行动 | → 树形 | | 历史/阶段/流程 | 按时间或步骤顺序排列 | ⏩ 时间线 | | 概念分解/归类 | 整体 → 部分1 + 部分2 + ... | } 括弧图 | | **头脑风暴/创意发散** | **自由联想，不预设框架** | **✶ 辐射 或 ⚡ 力导向** | ### 分支设计原则 **原则 1：分支之间必须相互独立**（语义网络的聚类原则） 每个分支回答关于中心节点的一个不同问题。语义相近的内容聚合在同一分支下。 **原则 2：所有分支必须共同服务于中心节点** 反问："去掉这个分支，对理解中心节点有损失吗？" 无损失 → 该分支冗余，删除。 **原则 3：分支数量 3–6 个**（米勒定律） 不以"原文有几节"为准。超过 7 个分支时必须合并。 **原则 4：同级分支的抽象层次必须一致** ❌ 错误：同级出现"技术原理"（抽象）和"GPT-4"（具体实例） ✅ 正确：同级都是维度（"技术路线"、"商业模式"、"社会影响"） ### 每个主分支必须带 emoji（双重编码） emoji 的作用是激活视觉编码通道，使分支在记忆中形成"图像锚点"。选择规则： - emoji 应直观反映该维度的语义核心 - 同一张图内 emoji 不重复 - 置于 label 最前面：`"🔬 技术演进"` `"💰 商业模式"` `"⚠️ 风险挑战"` | 语义域 | 推荐 emoji | |--------|-----------| | 技术/科学 | 🔬 🧪 ⚙️ 🔧 💻 | | 商业/金融 | 💰 📈 🏦 💼 🎯 | | 人物/用户 | 👤 👥 🧑‍💻 🎓 | | 风险/问题 | ⚠️ 🚧 ❗ 🔴 | | 趋势/时间 | 📅 🔮 📊 🕐 | | 成果/价值 | ✅ 🏆 💡 ⭐ | | 流程/步骤 | 🔄 📋 🗺️ 🛤️ | | 背景/历史 | 📖 🏛️ 🌍 🗂️ | --- ## 第三步：填充子节点（证据而非子话题） 子节点不是"这个分支下还有哪些话题"，而是"**让这个分支成立的具体依据**"。 ### 优先使用具体词（双重编码） 具体的、可想象的词比抽象词记忆效果好 1.5-2 倍（Paivio 实验数据）。 | 子节点类型 | 示例 | 作用 | |------------|------|------| | 具体机制 | "注意力机制使模型聚焦关键词" | 解释"为什么" | | 量化数据 | "GPT-4 训练成本超 1 亿美元" | 使声明可信 | | 典型案例 | "Copilot 使代码效率提升 55%" | 使抽象具体 | | 对比参照 | "vs 传统搜索：主动生成 vs 被动检索" | 揭示差异 | | 行动指南 | "先用小数据集验证再扩规模" | 指导实践 | | 关键限制 | "幻觉率随任务复杂度非线性上升" | 防止误用 | ### 层级深度规则 ``` 中心节点（1 个） └── 主分支（3–6 个） ← 理解维度，带 emoji，抽象词组 └── 子节点（2–5 个） ← 支撑证据，具体词组或短句 └── 叶节点（可选，1–3 个） ← 最具体的事实/数据/步骤 ``` - 全图最多 4 层，**总节点 ≤ 40 个** - 每个主分支至少 2 个子节点（1 个说明未充分挖掘） - 叶节点不超过 3 个（太多说明需要再拆一层） --- ## 第四步：节点文字规范 | 规则 | 正确 | 错误 | |------|------|------| | 使用原文关键词，不过度意译 | "联邦学习" | "一种保护数据的分布式方法" | | 动词短语比名词堆砌更有力 | "降低推理延迟 40%" | "推理延迟优化相关内容" | | 长度 4–12 字 | "本地训练不传原始数据" | 过长的完整句子 | | 并列内容拆成独立节点 | 三个节点："医疗" / "教育" / "金融" | 一个节点："医疗教育金融" | | 越深层越具体（认知负荷递减） | 叶节点写具体数字/步骤/案例 | 叶节点写抽象标签 | --- ## 第五步：质量自查（生成后必检） 生成 JSON 后，逐条检查，不合格立即修改： **容量检查（米勒定律）：** - [ ] 总节点数是否 ≤ 40？（超过则合并或拆分） - [ ] 主分支是否 3–6 个？ - [ ] 每个节点是否 ≤ 12 字？ **必要性检查（认知负荷）：** - [ ] 删去任意一个主分支，对理解中心节点的损失是否明显？（不明显 → 删除该分支） - [ ] 每个子节点是否使其父分支更可信/更具体？（否 → 删除或替换） - [ ] 是否存在"正确的废话"节点？（如"需要进一步研究" → 删除） **双重编码检查：** - [ ] 每个主分支是否带了 emoji？ - [ ] 叶节点是否用了具体的、可想象的词？（抽象标签 → 替换为具体事实） - [ ] 颜色是否与语义一致？（同类维度同色系） **结构检查（放射性思考）：** - [ ] 中心节点是核心洞见还是话题标签？ - [ ] 同级分支的抽象层次是否一致？ - [ ] 是否有只含 1 个子节点的分支？（合并或补充） --- ## 第六步：构造 JSON 并执行 > **⚠️ 强制规则：每个主分支的 label 必须以 emoji 开头。** > 格式：`"label": "🔬 技术演进"` —— emoji + 空格 + 文字。 > 这是基于双重编码理论的硬性要求，不可省略。 ```json { "central": "核心洞见（不超过 15 字）", "branches": [ { "label": "🔬 维度1（emoji 必须有）", "color": "#4A90D9", "children": [ "具体证据A（可想象的词）", "量化数据B", { "label": "需要展开的证据C", "children": ["最具体的事实1", "最具体的事实2"] } ] } ] } ``` **颜色分配建议（按分支语义选色）：** | 颜色 | 适用维度 | 搭配 emoji | |------|----------|-----------| | `#4A90D9` 蓝 | 机制/原理/方法论 | 🔬 ⚙️ 🧪 | | `#27AE60` 绿 | 成果/价值/应用 | ✅ 💡 🏆 | | `#E86C3A` 橙 | 问题/挑战/风险 | ⚠️ 🚧 ❗ | | `#9B59B6` 紫 | 背景/趋势/上下文 | 📖 🔮 🌍 | | `#F39C12` 黄 | 资源/工具/要素 | 🔧 📦 💼 | | `#1ABC9C` 青 | 流程/步骤/路径 | 🔄 🛤️ 📋 | | `#E74C3C` 红 | 警告/限制/禁忌 | 🔴 ⛔ 🚫 | 脚本路径：`{baseDir}/generate_mindmap.py` --- ## 完整示例 ```bash DATA='{ "central": "技术壁垒正被成本竞争取代", "branches": [ { "label": "🔬 技术门槛变化", "color": "#4A90D9", "children": [ {"label": "训练成本下降", "children": ["GPT-3 成本 460万刀", "同能力模型降至 6 万"]}, "开源模型追平闭源", "微调替代全量训练" ] }, { "label": "💰 主流盈利路径", "color": "#27AE60", "children": [ "API 按 token 计费", {"label": "垂直行业定制", "children": ["医疗合规要求高溢价", "法律文档审核替代人工"]}, "订阅制 Pro 用户" ] }, { "label": "⚔️ 竞争驱动力", "color": "#E86C3A", "children": ["价格战压缩利润空间", "算力即竞争壁垒", "数据飞轮强者愈强"] }, { "label": "📜 监管不确定性", "color": "#9B59B6", "children": [ {"label": "欧美监管分歧", "children": ["EU AI Act 强制备案", "美国行业自律为主"]}, "中国实名制与内容审核", "合规成本影响中小玩家" ] } ] }' python3 {baseDir}/generate_mindmap.py --title "大模型商业化" --format html --output ~/.openclaw/workspace/大模型商业化.html --data "$DATA" python3 {baseDir}/generate_mindmap.py --title "大模型商业化" --format png --output ~/.openclaw/workspace/大模型商业化.png --data "$DATA" python3 {baseDir}/generate_mindmap.py --title "大模型商业化" --format xmind --output ~/.openclaw/workspace/大模型商业化.xmind --data "$DATA" ``` **执行成功后告知用户（必须包含完整的绝对路径，方便用户查找文件）：** > 思维导图已生成三种格式，保存在以下位置： > - **HTML**：`<绝对路径>/大模型商业化.html` —— 用浏览器打开，支持交互查看、编辑节点、切换 8 种布局 > - **PNG**：`<绝对路径>/大模型商业化.png` —— 高清图片，可直接嵌入文档或分享 > - **XMind**：`<绝对路径>/大模型商业化.xmind` —— 可在 XMind 软件中打开继续编辑 > > 其中 `<绝对路径>` 替换为脚本实际输出的路径（从脚本的 stdout 中获取，格式为 `[mindmap] ✅ HTML → /完整/路径/文件名.html`）。 --- ## 内置示例文件 `{baseDir}/examples/` 目录中包含可直接打开的示例： | 文件 | 说明 | |------|------| | `examples/ai_trends.html` | AI 发展趋势（5 主分支，3 层嵌套） | | `examples/product_launch.html` | 产品发布计划 | | `examples/python_learning.html` | Python 学习路径 |


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)