今天在 GitHub Trending 上看到一个有意思的项目:fireworks-tech-graph,它是一个 AI Agent Skill,能用自然语言描述直接生成几何精准的 SVG 技术图、高分辨率 PNG、动画 GIF 和离线 HTML,完美解决了技术写作者和架构师"脑子里有画面但画不出来"的痛点。

一、项目概述

fireworks-tech-graph 是专门为 CodexClaude Code 这两个 AI Agent 运行时设计的图表生成 Skill。开发者只需用自然语言描述想要的图表场景,就能获得经过几何验证的专业级图形输出。相比 Mermaid 和 draw.io,它的最大优势在于无需编写 DSL 语法或手动操作 GUI,真正做到了"说即所得"。

核心特性一览:

  • 12 种视觉风格:包括 Flat Icon、Dark Terminal、Blueprint、Notion Clean、Glassmorphism、Claude Official、OpenAI Official、Dark Luxury(AI 创作),以及 4 种工程语义风格(C4 Review Canvas、Cloud Fabric、Event Transit、Ops Pulse)
  • 14 类 UML 图:Class、Component、Deployment、Package、Composite Structure、Object、Use Case、Activity、State Machine、Sequence、Communication、Timing、Interaction Overview、ER Diagram 全部覆盖
  • 几何安全路由:确定性正交路由、自动避让、标签区域保护、跨桥跳跃检测,确保每条连接线都清晰美观
  • 语义 GIF 动效:接受生成的 SVG 输入,输出经过语义验证的 GIF 动画,连接线按语义顺序依次绘制
  • 离线 HTML 导出:一键生成带缩放、主题切换、源码复制和多分辨率下载的离线 HTML 文件
  • AI/Agent 领域内置模式:Mem0、RAG、Agentic Search、Multi-Agent、Tool Call Flow 等模式开箱即用

二、技术原理

架构设计

项目遵循代理驱动、边界验证反馈循环的设计哲学,而非一次性生成。完整渲染流程如下:

自然语言 Prompt
  → 图表合约(Diagram Contract)
  → 语义 IR(Semantic IR)
  → 风格规格(Style Spec)
  → 路由规划(Route Planner)
  → SVG 构建
  → 结构验证(XML / 标记 / 几何 / 碰撞)
  → PNG 视觉回读
  → 定向修订
  → 验证通过 → 最终 SVG + PNG

五大设计原则保证了输出的可信赖性:

  1. 评估而非断言:完成状态必须有验证器和渲染证据支撑
  2. 确定性检查优先:XML 结构、路径几何、箭头-组件碰撞等优先于视觉判断
  3. 感知验证其次:PNG 回读检查裁剪、标签碰撞、层级、留白和路由质量
  4. 定向修正:每轮只改变诊断出的标签、坐标、路径或间距,再重新验证
  5. 边界收敛:视觉审查默认最多两轮定向修正,防止无限自我编辑循环

语义形状词汇表

项目定义了一套跨风格一致的语义形状系统:

概念形状
LLM / Model双边框圆角矩形 + ⚡
Agent / Orchestrator六边形
向量数据库带内环的圆柱体
图数据库三圆簇
Tool / Function带 ⚙ 的矩形
异步事件水平管道/流
决策菱形

箭头语义系统

颜色和虚线模式共同编码连接含义:

流类型描边虚线含义
主数据流2px 实线主请求/响应
控制/触发1.5px 实线系统 A 触发 B
内存读取1.5px 实线从存储检索
内存写入1.5px5,3写入/存储操作
异步/事件1.5px4,2非阻塞
反馈/循环1.5px 曲线迭代推理

版本化图表 IR

项目采用 JSON Schema v1 作为中间表示层(IR),历史 JSON 格式会自动归一化到最新 schema,且在渲染前检查重复 ID、悬空引用、格式错误的路径点和无穷几何值,确保输入可靠性。

三、安装与快速开始

环境要求

  • Python 3.9+(必需,核心脚本依赖)
  • cairosvg(推荐,用于高质量 SVG→PNG 渲染):python3 -m pip install cairosvg
  • rsvg-convert(备选,系统包,CSS 支持较弱)
  • FFmpeg + Puppeteer(可选,仅 SVG→GIF 动效导出需要)

安装 Skill

为 Codex 和 Claude Code 同时安装完整 Skill:

npx -y [email protected] add \
  yizhiyanhua-ai/fireworks-tech-graph/skills/fireworks-tech-graph \
  --agent codex claude-code -g -y --copy

或使用 Git 方式可编辑安装:

# 为 Codex
mkdir -p ~/.agents/skills
git clone https://github.com/yizhiyanhua-ai/fireworks-tech-graph.git ~/.agents/skills/fireworks-tech-graph

# 为 Claude Code
mkdir -p ~/.claude/skills
git clone https://github.com/yizhiyanhua-ai/fireworks-tech-graph.git ~/.claude/skills/fireworks-tech-graph

安装完成后重启 Agent 运行时即可发现 Skill。

验证安装

SKILL_ROOT="${CLAUDE_SKILL_DIR:-$HOME/.claude/skills/fireworks-tech-graph}"
python3 "$SKILL_ROOT/scripts/fireworks.py" doctor

四、使用方法与实战

基础用法

在 Claude Code 或 Codex 中直接发送自然语言描述即可:

Draw a RAG pipeline flowchart
Generate a Mem0 memory architecture diagram with vector store and graph DB
Draw a microservices architecture diagram, style 3 (blueprint)

指定风格与输出路径

Generate a multi-agent collaboration diagram --style glassmorphism --output ~/Desktop/

使用 Unified CLI

安装后也可通过命令行直接使用:

SKILL_ROOT="${CLAUDE_SKILL_DIR:-$HOME/.agents/skills/fireworks-tech-graph}"

# 健康检查
python3 "$SKILL_ROOT/scripts/fireworks.py" doctor

# 验证图表
python3 "$SKILL_ROOT/scripts/fireworks.py" validate architecture "$SKILL_ROOT/fixtures/api-flow-style7.json"

# 渲染图表
python3 "$SKILL_ROOT/scripts/fireworks.py" render architecture "$SKILL_ROOT/fixtures/api-flow-style7.json" diagram.svg --report layout.json

# 检查 SVG
python3 "$SKILL_ROOT/scripts/fireworks.py" check diagram.svg

# 导出离线 HTML
python3 "$SKILL_ROOT/scripts/fireworks.py" export-html diagram.svg diagram.html --title "Agent Runtime Architecture"

# 生成 GIF 动效
python3 "$SKILL_ROOT/scripts/fireworks.py" animate diagram.svg diagram.gif

风格选择速查表

场景推荐风格
AI/Agent 系统架构Style 2 (Dark Terminal) 或 Style 5 (Glassmorphism)
内存架构图Style 3 (Blueprint)
云原生部署Style 10 (Cloud Fabric)
事件流 / KafkaStyle 11 (Event Transit)
SRE / 可用性分析Style 12 (Ops Pulse)
C4 架构评审Style 9 (C4 Review Canvas)
GitHub README 配图Style 2 (Dark Terminal)
博客文章配图Style 1 (Flat Icon)

生成 GIF 动效的触发词

以下任一表述均可触发 GIF 生成:

  • “Generate a GIF” / “Animate this diagram”
  • “生成 GIF” / “制作 GIF” / “让这张图动起来”
  • “把 SVG 转成 GIF”

默认参数:960px 宽、5.75 秒、20fps、115 帧,连接线在前 36 帧绘制完成后保持 2 秒流动动画再重置。

五、常见问题与解决方案

Q: PNG 导出后为空白或全黑? A: 可能是 SVG 中含有 @import url() 外部字体引用,cairosvg 和 rsvg 无法抓取外部资源。解决方案:移除 @import,改用系统字体栈。

Q: 图表内容被截断? A: ViewBox 的高度设置不够。增大 viewBox="0 0 960 <height>" 中的高度值。

Q: 如何获得最高质量的 PNG? A: 安装 Puppeteer 依赖,使用 scripts/svg2png.js 脚本路径渲染,而非 cairosvg。参考 references/png-export.md

Q: 能生成中文标签的图表吗? A: 支持自然语言中文描述作为 prompt 输入,SVG 中的文字标签取决于使用的字体是否包含对应 Unicode 字符。建议在 SVG 生成后手动替换标签文字。

Q: GitHub Trending 上这个项目为什么值得关注? A: 它将 AI Agent 的自然语言理解能力与工程级图表生成质量结合,在 AI/Agent 开发工具领域填补了"描述即所得"图表的空白,尤其适合技术博客写作、架构文档和演示材料制作。

六、总结

fireworks-tech-graph 是一个定位清晰、工程扎实的 AI Agent 图表 Skill。它的核心价值在于:将技术图表生成从"手动画图/写 DSL"的繁琐中解放出来,同时通过几何验证和视觉回读保证了输出质量。对于需要频繁产出技术文档、架构图和流程图的技术写作者和开发者来说,这是一个值得纳入工作流的效率工具。

  • GitHub 地址:https://github.com/yizhiyanhua-ai/fireworks-tech-graph
  • 支持 Codex 和 Claude Code,即装即用
  • MIT 许可证,代码完全开源