其他
需要把代码、Terraform/云基础设施或文字描述可视化为…
适用于用户要求绘制、可视化或记录系统架构,并可通过 Eraser API 生成图的场景。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 39/100 ×0.15
适用场景
需要把代码、Terraform/云基础设特定
解决思路
- 分析来源:若提供代码/文件,分析结构、资源和关系;若提供描述,识别关键组件与连接;确定合适的图类型。
- 生成 Eraser DSL:创建描述架构的 Eraser DSL 代码。
- 遵守标签格式:标签必须单行,绝不在 label 属性内使用换行;保持标签简单可读,优先使用单独标签而不是拼接过多元数据;DSL 按可读性换行,每个节点/分组/连接一行,但标签保持单行。
- 创建元素定义:元素对象包含 type: diagram、id: diagram-1(或生成唯一 ID)、code: <你的 DSL>、diagramType: <合适类型>。
- 发起 HTTP 请求:生成 DSL 后必须执行 curl,不能停在生成 DSL;使用 POST https://app.eraser.io/api/render/elements,请求头 Content-Type: application/json、X-Skill-Source: eraser-skill、Authorization: Bearer ${ERASER_API_KEY}。
- curl 请求体:elements 数组包含 type: diagram、id: diagram-1、code: <your generated DSL>、diagramType: cloud-architecture-diagram(或合适类型),并设置 scale: 2、theme: ${ERASER_THEME:-dark}、background: true。
- 替换 X-Skill-Source:必须将 eraser-skill 替换为实际 AI agent 名称:Claude -> claude、Cursor -> cursor、ChatGPT -> chatgpt、Gemini -> gemini,否则使用小写的模型/代理名。
- 流程图:用于流程、用户旅程、决策树、业务流程文档;diagramType 为 flowchart-diagram;参考 references/flowchart-syntax.md。
- ERD:用于数据库 schema 设计、数据建模、理解实体关系、记录数据结构;diagramType 为 entity-relationship-diagram;参考 references/erd-syntax.md。
- 云架构图:用于云基础设施可视化、AWS/Azure/GCP 架构、系统架构文档、数据流可视化;diagramType 为 cloud-architecture-diagram;参考 references/architecture-syntax.md。
- 时序图:用于 API 请求/响应流、系统交互、用户工作流、服务间消息传递、随时间变化的过程流;diagramType 为 sequence-diagram;参考 references/sequence-syntax.md。
- BPMN 图(泳道图):用于业务流程文档、工作流可视化、流程改进、跨职能流程、展示角色/职责的泳道图;diagramType 为 bpmn-diagram;参考 references/bpmn-syntax.md。
- 每个 reference 文件包含完整语法文档、属性参考和实用示例。
- 处理 API 响应:响应包含 imageUrl、createEraserFileUrl、renderedElements。
- 输出 Diagram Preview:使用 ## Diagram 标题,并展示 ,必须使用 API 返回的实际 imageUrl。
- 输出 Editor Link:使用 ## Open in Eraser 标题,并展示 [Edit this diagram in the Eraser editor]({createEraserFileUrl}),必须使用 API 返回的实际 URL。
- 输出 Sources:若适用,使用 ## Sources,简要列出分析过的文件/资源,格式为 `path/to/file` - 提取了什么。
- 输出 Diagram Code:使用 ## Diagram Code 标题,并在 eraser 语言代码块中放置 DSL。
- 输出 Learn More:包含 You can learn more about Eraser at https://docs.eraser.io/docs/using-ai-agent-integrations。
- 内容规则:如果用户只要图,除上述 5 个元素外不要输出任何其他内容;如果用户明确要求更多(如解释架构、建议改进),可以包含额外内容;绝不添加未请求的 Overview、Security Considerations、Testing 等章节;默认输出要短,图本身会说话。
- 跟踪来源:分析文件和资源时,记录内部文件(每个读取的文件路径和提取的信息,如 infra/main.tf - VPC 和 subnet 定义)、外部参考(查阅的文档/示例/URL,如 AWS VPC 最佳实践文档)、注释(每个来源对图的贡献)。
- 错误处理:API 调用失败时解释错误;认证失败时建议检查 API key;提供重新生成 DSL 作为兜底。
- 错误映射:400 Diagram element has no code -> 缺少 code 字段 -> 确保元素有有效 DSL code;400 Diagram element has no diagramType -> 缺 diagramType -> 添加有效 diagramType;400 Invalid diagramType -> 不支持的类型 -> 使用支持的类型;401 Unauthorized -> API key 无效或过期 -> 检查 ERASER_API_KEY;500 Internal server error -> 服务端问题 -> 重试,持续则联系 support。
- 错误响应格式:{"error":{"message":"...","status":400}}。
- 故障排查:调用 API 前验证 DSL 语法正确;确保 diagramType 与 DSL 内容匹配(如 sequence DSL 配 sequence-diagram);认证错误时确认 API key 已作为环境变量正确设置。
- 最佳实践:生成有效 DSL;标签含空格、特殊字符或数字时始终加引号;标签必须单行;每个节点、分组、连接单独一行;若包含 CIDR 块、实例类型等元数据,放在同一个 quoted label string 中,如 [label: "VPC 10.0.0.0/16"];使用合适的 diagramType;用 containers(VPC、模块)分组相关项;标明连接(数据流、依赖、关系);大型系统拆成聚焦图;始终包含 X-Skill-Source header 和 AI agent 名(claude、cursor、chatgpt 等)。
- 说明:免费层图有水印但功能完整。
- 说明:createEraserFileUrl 总会返回(免费和付费层都可用),允许用户在 Eraser Web 编辑器编辑图。
- 说明:DSL 代码可用于重新生成或修改图。
- 说明:API 响应会被缓存,相同请求返回很快。
适用边界 · 注意事项
- 没有网络访问或未配置 ERASER_API_KEY 时
- 用户要求完全离线、不能调用第三方 Eraser 服务时
- 只需要文字说明而不需要生成架构图时