deer-flow chart-visualization 技能generate_venn_chart 维恩图参数规范、示例与生成链路源码解析【免费下载链接】deer-flowAn open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of tasks that could take minutes to hours.项目地址: https://gitcode.com/GitHub_Trending/de/deer-flow本文围绕 deer-flow 仓库skills/public/chart-visualization技能中的维恩图Venn Chart工具generate_venn_chart展开完整梳理其输入字段规范、默认值、JSON 载荷示例与命令行生成方式并结合 scripts/generate.js 的源码说明该工具从参数提取到返回图表 URL 的完整实现链路。读完后你可以直接为 DeerFlow 智能体配置、调试或扩展维恩图可视化能力。一、技能定位chart-visualization 的四步工作流generate_venn_chart是 chart-visualization 技能 提供的 26 种图表生成工具之一。该技能面向“将数据转化为可视化图表”的场景SKILL.md 定义了统一的四步工作流智能选图Intelligent Chart Selection分析数据特征选择图表类型。维恩图的选图依据是Relationships Flow类别下的generate_venn_chartoverlap重叠/交集关系用于展示多个集合之间的交集、并集与差异。参数提取Parameter Extraction读取references/目录下对应图表的规范文件维恩图即 generate_venn_chart.md识别必填与可选字段把用户输入映射为约定的args格式。图表生成Chart Generation以 JSON 载荷调用 scripts/generate.js。结果返回Result Return脚本输出生成图表的 URL技能要求向用户返回图片 URL 以及生成时使用的完整args规格说明。该技能要求 Node.js 18.0.0见 SKILL.md 的 frontmatter因为 generate.js 依赖 Node 18 引入的全局fetch发起 HTTP 请求。二、输入字段规范必填与可选参数以下内容完整继承自 generate_venn_chart.md 的官方规范并补充了结构化说明。2.1 必填字段datadata:arrayobject每条记录包含valuenumber该集合组合即一组sets的交集区域对应的数值/权重setsstring[]该记录所归属的集合名称列表。仅包含单个集合表示该集合的独立区域包含多个集合表示它们的交集区域labelstring记录级可选为该区域附加文字标注。维恩图的数据模型本质是“按集合组合枚举区域”图中每一个由曲线围成的区域都对应data中一条sets组合记录其面积/权重由value决定。2.2 可选字段字段类型默认值说明style.backgroundColorstring未指定设置图表背景色style.palettestring[]未指定定义配色列表控制各集合区域的着色方案style.texturestringdefault纹理风格可选default/roughrough 为手绘粗糙风themestringdefault主题可选default/academy/darkwidthnumber600画布宽度像素heightnumber400画布高度像素titlestring空字符串图表标题这些可选字段与同技能下其他图表工具如饼图、柱状图保持同一套style/theme/ 尺寸约定便于在多个图表类型之间复用渲染风格参数。三、完整示例从 JSON 载荷到生成命令按照 SKILL.md 的载荷格式维恩图的调用载荷为{ tool: generate_venn_chart, args: { data: [ { sets: [移动端用户], value: 520 }, { sets: [Web 端用户], value: 380 }, { sets: [移动端用户, Web 端用户], value: 150 }, { sets: [移动端用户, Web 端用户, 平板端用户], value: 60, label: 三端重叠 } ], title: 三端用户重叠分析, theme: default, width: 600, height: 400, style: { texture: default } } }在技能目录下执行相对路径来自 SKILL.md 的执行命令说明node ./scripts/generate.js payload_json脚本会将图表 URL 打印到标准输出。从 generate.js 的main()实现还可以看到两种扩展用法批量生成specArg解析后若为数组Array.isArray(spec) ? spec : [spec]会逐条遍历生成一次命令可生成多张维恩图或其他图表从文件读取载荷若第一个参数是一个已存在的文件路径fs.existsSync(specArg)分支脚本会读取文件内容再解析为 JSON 载荷适合载荷较长不便内嵌在命令行中的场景。若tool字段缺失或取值不在工具映射表中脚本会打印错误并跳过该条记录Error: tool field missing/Error: Unknown tool其余记录不受影响。四、源码链路generate.js 如何生成维恩图结合 scripts/generate.js 源码generate_venn_chart的实际调用链如下工具名到图表类型的映射。CHART_TYPE_MAP中明确登记了generate_venn_chart: venn该映射表注释说明其与前端src/utils/callTool.ts保持一致。这一步把技能层的长工具名转换为渲染服务侧的短类型名venn。选择非地图类的生成分支。维恩图不属于三个地图类工具generate_district_map/generate_path_map/generate_pin_map因此走generateChartUrl(chartType, args)分支而非generateMap分支地图分支会额外携带SERVICE_ID环境变量维恩图不需要。构造请求并 POST。generateChartUrl将请求发送到渲染服务端点优先取环境变量VIS_REQUEST_SERVER未设置时回退到代码内置的 AntV 渲染服务默认地址。请求体为{ type: venn, source: chart-visualization-creator, ...args }即以args字段全量展开进载荷——这解释了为什么第二节的data、theme、style等字段可以直接平铺在args下。校验响应。httpPost对非 2xx 响应抛出HTTP status: body错误业务层则检查响应 JSON 中的success字段失败时抛出errorMessage兜底为Unknown error成功时取resultObj即图表 URL最终由console.log(url)输出。可测试性设计。文件末尾以module.exports { generateChartUrl, generateMap, httpPost, CHART_TYPE_MAP }导出核心函数便于在测试中 mock HTTP 依赖后对生成逻辑做单元验证。从源码结构看维恩图的几何绘制并不发生在本地 Node 进程内而是由远端渲染服务完成本地脚本负责参数组装、传输与结果提取这也意味着网络可达性或自行部署并通过VIS_REQUEST_SERVER指向自建的渲染服务是该工具正常工作的前提。五、使用建议与返回结果5.1 数据构造建议继承自 generate_venn_chart.md 的官方建议集合数量建议 ≤ 4维恩图每增加一个集合区域组合数按 2^n 增长超过 4 个集合后区域会变得狭长、难以阅读缺少精确权重时可根据大致占比填写近似value维恩图的定性展示能力使其对近似值相对宽容集合命名保持简洁明确如“移动端用户”“付费用户”避免长句或专业术语堆砌因为名称会直接渲染在图面上。5.2 返回结果脚本输出维恩图图片 URL按 SKILL.md 的结果返回约定需要同时向用户返回生成时使用的完整args即_meta.spec规格说明以便后续复现或微调图表。5.3 相关参考技能规范入口skills/public/chart-visualization/SKILL.md维恩图字段规范skills/public/chart-visualization/references/generate_venn_chart.md生成脚本实现skills/public/chart-visualization/scripts/generate.js技能目录26 种图表规范可横向对比字段约定skills/public/chart-visualization/references/前端技能文档技能体系说明frontend/src/content/zh/harness/skills.mdx后端技能目录测试覆盖 chart-visualization 技能注册backend/tests/test_skill_catalog.py需要说明的适用前提本文参数默认值与取值范围以当前仓库中 generate_venn_chart.md 的记载为准渲染行为最终由远端渲染服务实现如服务端点VIS_REQUEST_SERVER指向自建服务实际可用主题与纹理以该服务支持的范围为准。【免费下载链接】deer-flowAn open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of tasks that could take minutes to hours.项目地址: https://gitcode.com/GitHub_Trending/de/deer-flow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考