draw.io 免费跨平台,但从 visio 迁过来的人常在 .vsdx 导入这一步卡壳。要搞清这些细节,我用 TaoToken 的一把 Key 同时接了 Codex 和 Claude Code:注册、创建 Key 都在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 完成,两个工具填同一个 Base URL https://taotoken.net/api,同一份余额就能轮流问 draw.io 导入 visio 的边角问题。
这篇不聊抽象概念,只解决一件事:你手上已经有一份画了好几年的 Visio 工程图,现在想搬到 draw.io 里继续维护,怎么让两个 AI 工具帮你把导入细节讲明白,以及它们俩谁讲得更清楚。
1. draw.io 免费跨平台,.vsdx 导入却先给你一个下马威
1.1 从 visio 搬家的真实流程
draw.io 的吸引力很直接:网页端打开就能画,不用装客户端,Chrome 有插件、VS Code 有插件,界面干净,多语言支持到位。对比 visio 的授权费用,它几乎是零门槛的选择。我第一次把旧工程搬过去,走的就是网页端那条路:打开站点,选择「导入已有工程」,把本地 .vsdx 拖进去,几秒钟后就看到了画布。
从 visio 用户的角度看,最省心的是操作习惯没变。左侧是图形库,右边是样式面板,右上角能切语言,连线方式和 visio 基本一致,几乎不用重新学。导出格式也很全,PNG、SVG、PDF、HTML 都支持,本地保存和云端保存都能选。单看这些,搬家似乎没什么成本。
问题就出在「几乎」两个字上。搬家不是终点,把一张复杂的工程流程图完整还原才是终点,而这一步的坑全藏在导入之后。
1.2 导入之后对不上的地方,才是最耗时间的
一份典型的 Visio 工程图里会有:自定义模具形状、跨页连接线、泳道容器、图层、嵌入的 Excel 表格、特定字体、按英寸排版的页面尺寸。导入 draw.io 之后,这些元素不会都原样保留。常见的现象包括:第三方模具形状变成空白矩形、容器里的子形状掉出边界、连接线从「动态连接」退化成普通直线、文字块位置整体偏移、换页后页面尺寸被重新缩放。
这些现象不是 draw.io 的 bug,而是两种工具的形状模型和渲染方式本来就不同。Visio 的 .vsdx 本质是一包 XML,draw.io 解析这些 XML 后要映射到自己的形状体系,映射不上的部分只能降级处理。所以真正需要花时间的地方,是搞清楚「哪些能保留、哪些注定丢、丢了之后怎么补救」。这正是我决定同时用 Codex 和 Claude Code 来提问的原因——同一个问题问两遍,看谁给的答案更接近我实际看到的现象。
1.3 为什么用一把 Key 分别接两个工具
很多人以为对比两个 AI 工具要注册两个账号、维护两份额度。其实不必。TaoToken 提供的是统一 API 通道,一把 Key 可以同时给 Codex 和 Claude Code 用,两个工具消费的是同一份 Token 余额。这样对比的成本几乎为零:不用重新注册、不用切换账号,只需要在两个工具各自的配置文件里把地址指向同一个 Base URL。
需要说明的是,AI 工具在这里的角色是「读代码、讲原理、解释报错」,它不会替你操作 draw.io。真正的导入动作永远是你自己在浏览器里点出来的,AI 给出的结论要拿回本地去验证。把这条边界记牢,后面的配置和使用就不会跑偏。
2. 让 Codex 和 Claude Code 用同一把 TaoToken Key 回答同一题
2.1 先去官网创建 Key,再分清两个地址的分工
整个流程的第一步在浏览器里完成:打开 TaoToken,注册登录后进入控制台创建 API Key。Key 只会显示有限次数,复制后先存到本地密码管理器里,后面两个工具都要用。拿到之后你会看到两类地址,它们的用途完全不同,混用就会报错:
| 用途 | 地址 | 说明 |
|---|---|---|
| 注册、创建 Key、看模型广场、看用量 | https://taotoken.net/?utm_source=taotoken_aicg_blog_end | 给人点的页面 |
| 填进 Codex / Claude Code 的 Base URL | https://taotoken.net/api | 给程序用的接口地址,末尾不加 /v1 |
这个区分很关键。落地页是让你在浏览器里完成注册和取 Key 的,接口地址才是写进配置文件的那一行。把带查询参数的落地页地址填进base_url,工具会直接 404。
2.2 模型 ID 到模型广场抄,别自己拼日期后缀
配置里还有一个必填项是模型 ID。这里不要凭印象写,也不要在网上抄别人截图里的字符串,因为模型列表会变。正确做法是回到 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 打开模型广场,找到你打算用的那个对话模型,复制它当前的 ID 直接粘贴。本文所有配置里的YOUR_MODEL_ID都只是占位符,实际填写以模型广场当时列表为准。
准备阶段还有一件事:手动建一个环境变量存 Key,别把明文 Key 直接写进会被提交到 Git 的文件。后面 Codex 用env_key引用环境变量,Claude Code 也可以用环境变量覆盖配置文件,这样即使配置被同步走,泄露的也只是一个变量名。
3. Codex 侧:把 ~/.codex/config.toml 的 model_provider 指到 TaoToken
3.1 一份可以直接改的 config.toml
Codex 走的是 TOML 配置,默认路径是~/.codex/config.toml。核心是两件事:声明一个自定义 provider,然后把默认模型指到它。下面这份可以直接照着改,把YOUR_MODEL_ID换成模型广场里的真实 ID:
model = "YOUR_MODEL_ID" model_provider = "taotoken" [model_providers.taotoken] name = "TaoToken" base_url = "https://taotoken.net/api" env_key = "TAOTOKEN_API_KEY" wire_api = "chat"然后在终端里把 Key 塞进环境变量,注意这里的值就是你从官网复制的那串:
export TAOTOKEN_API_KEY=YOUR_API_KEY如果你用的是 Windows PowerShell,写法换成$env:TAOTOKEN_API_KEY="YOUR_API_KEY"。这个变量只在当前终端会话有效,想长期生效就写进 shell 的启动文件。
wire_api这一项建议先按chat试,如果 Codex 报协议不匹配,再换成responses重试。两个值的差异在请求体结构上,改一个词就能试出来,不用重新装工具。
3.2 用 Codex 追问 .vsdx 导入的丢失点
配置生效后,问 Codex 的第一类问题要具体到文件格式,而不是「draw.io 好用吗」这种泛问。可以这样组织提问:
draw.io 导入 Visio 的 .vsdx 文件时,哪些元素是明确不会保留的? 请按形状、连接线、文字、页面四个维度分别说明, 并指出哪些情况下需要我在 Visio 里先做预处理再导出。这类问题的答案通常偏结构化,Codex 会把「Visio 自定义模具」和「第三方 stencil」分开讲,也会提醒你 .vsd 老格式的支持程度弱于 .vsdx。就我自己的感受,Codex 在「按维度罗列」这件事上表现稳定,适合先用来搭一个检查清单。
但要注意,Codex 给的是通用规律,不是对你那份文件的具体诊断。想让它看得更准,可以把某个形状在 Visio 里的属性面板截图描述出来,或者把导出后的 XML 片段贴进去让它对照。这里不涉及任何自动执行,代码和 SQL 都只是「生成和解释」,实际导入始终由你在 draw.io 里点。
4. Claude Code 侧:ANTHROPIC_BASE_URL 填 https://taotoken.net/api
4.1 环境变量与 ~/.claude/settings.json 两种写法
Claude Code 用的是ANTHROPIC_*一组变量,这一点和 Codex 完全不同,千万不要把 TOML 里的字段名套过来。最简单的写法是在 shell 里 export:
export ANTHROPIC_BASE_URL=https://taotoken.net/api export ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY export ANTHROPIC_MODEL=YOUR_MODEL_ID如果你希望配置持久化,写进~/.claude/settings.json的env段,格式如下:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY", "ANTHROPIC_MODEL": "YOUR_MODEL_ID" } }ANTHROPIC_BASE_URL后面不要手动补/v1,Claude Code 会自己拼接路径。多写一段路径是最常见的手滑,症状是启动后一直报连接错误,但 Key 本身没问题。
改完配置后重开一个终端,让环境变量重新加载。两个工具可以同时开着,因为它们指向同一个 Base URL,用的是同一把 Key,只是消费同一份余额。
4.2 用 Claude Code 把 Visio 形状清单读一遍
Claude Code 的优势在长上下文和追问。第二个问题可以换个思路:把问题从「哪些会丢」变成「怎么补救」。
我在 Visio 里有一批自定义模具形状,导入 draw.io 后变成空白矩形。 请给我一套排查顺序: 先确认什么、再确认什么,最后给出三种替代画法。 每一步说明我在 draw.io 界面里的哪个入口操作。Claude Code 通常会先让你确认这些形状是不是来自第三方 stencil,再建议在 Visio 里把它们「组合后另存」或「转成图片再导入」,最后给出用 draw.io 自带图形重画的方案。它的回答更偏流程化,会分步骤、带前置条件,适合当作操作手册来对照。
两边都问完之后,你手里就有两份不同风格的答案:一份是维度清单,一份是排查流程。接下来的问题才是关键——哪一份更贴合你真实看到的画面。
5. 同一问题双开对比:谁把 draw.io 导入细节讲清楚了
5.1 三个必问的导入问题
为了让对比有意义,问题本身必须一致。我固定问这三个:
- Visio 的容器和泳道导入 draw.io 后,为什么子形状会掉出边界,怎么在原文件里规避?
- Visio 里用了 Calibri 的文本框,导入后为什么文字溢出,是字体替换还是行高问题?
- 一份多页 .vsdx 导入后页面尺寸变大,打印和导出 PDF 时怎么保持原比例?
这三个问题分别覆盖结构、排版、页面三个层面,也都是导入后最容易肉眼发现的现象。把同一段提问分别粘贴给 Codex 和 Claude Code,注意不要在其中一个里追加额外背景,否则对比就不公平了。
5.2 回答差异怎么记,别凭印象
对比不要靠「感觉谁更强」。我的做法是记三列:是否说明原因、是否给出可操作步骤、是否需要我补充信息才能继续。比如第一个问题,如果一方只回答「容器支持有限」就结束,那它就少了可操作步骤;另一方如果给出「在 Visio 里先把容器解除组合再导出」这样的动作,那就多一步。
需要强调的是,这类对比结论没有普适性,换个问题、换个模型版本都可能反转。所以别把某一次的对比结果写成定论,用同一把 Key 多问几轮,看趋势更靠谱。模型 ID 换了之后回答风格也会变,这一点以模型广场当时列表为准,自己实测才有意义。
6. draw.io 导入 visio 的典型报错与排查
6.1 导入后形状变成灰方块或空白矩形
这是最典型的降级现象。原因是 Visio 的 master 形状在 .vsdx 里是带行为的自定义对象,draw.io 找不到对应实现,只能画一个占位框。排查顺序:先在 Visio 里看这些形状是不是来自第三方 stencil 或公司内部模具;如果是,把它们复制成普通图形或组合后另存,再重新导出 .vsdx。
另一条路是直接在 draw.io 里用自带图形替代。draw.io 的流程图、网络图、UML 图形库覆盖度足够高,重画一个矩形加几条线的成本,往往低于折腾导入映射。
6.2 连接线断开、文字串位、页面尺寸变大
连接线退化通常和「动态连接」有关。Visio 的自动路由连接线导入后会变成普通直线,拐点消失。补救方式是在 draw.io 里重新连一次,让它接管路由。文字串位多半是字体替换:Visio 默认字体在 draw.io 里没有同名字体,行高和字宽都变了,把文本框的字体统一改成 draw.io 自带字体可以缓解。页面尺寸变大则是单位换算问题,Visio 按英寸排版,draw.io 按像素渲染,导入后勾选「适应页面」再手动调一次页面属性。
这三类问题都不需要改代码,操作入口都在 draw.io 的菜单里。AI 工具的作用是告诉你「去哪一步动手」,动手永远是你自己。
6.3 Codex 与 Claude Code 两侧的配置报错
配 Key 阶段的报错和导入本身的报错要分开看。Codex 这边最常见的是模型 ID 写错,症状是启动时报模型不存在,解决办法是回 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 的模型广场核对当前列表。第二常见的是model_provider拼错,导致它回落到默认 provider,请求其实没走通道。
Claude Code 这边九成问题出在ANTHROPIC_BASE_URL上:要么冒号后面的地址写成了带参数的落地页,要么末尾补了/v1。把这两个细节改回来,重启终端就能恢复。如果两边同时报鉴权失败,先检查环境变量有没有在新终端里生效,echo $ANTHROPIC_AUTH_TOKEN一看就知道。
7. 同一把 Key 的用量,去控制台核对这次 draw.io 问答
配置跑通、问题问完,最后一步是核对账目。两个工具用的都是同一把 Key,所以它们的调用会汇总到同一个用量视图里。回到控制台就能看到这段时间的请求记录,确认 Codex 和 Claude Code 确实走了同一条通道,没有哪一边悄悄回落到默认 provider。查用量的入口在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end ,登录后进控制台即可。
如果你打算长期用 Claude Code 写代码,可以先在 模型对话 里用同一把 Key 发一条测试消息,确认模型 ID 和 Base URL 都对,再去 Coding Plan 看套餐额度是否够用;Key 的创建和轮换在 控制台 API Keys 里操作,Claude Code 的变量对照表可以翻 接入文档。
最后提醒一句:draw.io 的导入细节会随版本更新,Visio 的导出选项也在变,任何一份清单都只是当时的快照。真正稳的做法是把「问 AI」变成习惯——同一份 .vsdx 换台机器导入之前,先用同一把 Key 让 Codex 和 Claude Code 各过一遍,谁的答案更贴近你眼前的画面,就用谁的思路往下走。