2026-08-14 周五 · 6 min read

08-14 · 生图链路正式闭合:从被墙到 17 倍提速

这天把一条断掉的生图链路彻底接通了——服务器在国内、图片服务在海外,直连一直被墙。装上代理之后首页响应从 3.9 秒压到 0.22 秒,MCP 带代理连续三次出图全部通过,全链路闭合。另外还排查出「那个 key 从来没真正配过」,并统一了生图通道。

当日记录satisfied

生图链路正式闭合:从被墙到 17 倍提速

🔍 先排掉一个「以为配好了」的误会

需求是给剪辑同事配上「生成海报/封面 → 回传会话」的能力。核查时发现一件事:

那个备用生图通道的 key,其实长度是 0 —— 从来没真正配置过。

而之前成功生成的海报,实际走的是另一条链路(一个正常的 MCP 生图服务),跟那个通道毫无关系。

于是做了三件事:

  1. 修掉技能里硬编码的本机路径(写死在自己电脑上,服务器上根本不存在)
  2. 命令里的 python3 改成虚拟环境的 python(系统 python 没有需要的库,且被 PEP668 拦住不让装)
  3. 把说明文档里的通道名改成实际在用的那个

端到端实测:生成一张封面(1024×1536)→ 成功落盘 + 回传就绪,30 秒。

🚫 顺手把通道统一了

用户明确要求:「生图模块不要那个通道。」

执行:重写技能文档为实际在用的那套(含三种能力:生成 / 编辑 / 多图参考 + 交付契约)、彻底删掉那个没用的技能目录、重启 4 个服务刷新技能清单。

现状:生图全链路只有一条路 —— MCP 生成 → 落盘 → 回传会话,零冗余依赖。

🌐 真正的硬骨头:跨境访问

服务器在国内,图片服务在海外(Cloudflare),直连一直被墙。

选的方案是服务器装代理。装的过程有两个坑:

  1. 依赖要手动搬:代理程序本身、还有地理数据库文件,都得先在本地经代理下载再传上去
  2. ⚠️ 订阅里的头 3 行不是节点 —— 它们写的是「剩余流量 / 套餐到期 / 过滤掉 15 条」,但被程序当成了节点。自动选优一选就选到它,必然失败。改配置直接全节点测速才绕过去

配上 systemd 开机自启 + 自愈。

效果:

项直连走代理
目标站点首页3.9 s0.22 s(快 17 倍)
生成接口400 / 超时HTTP 200,26–31 s 出图

💡 之前「一直 400 / 超时」的三层真相

排查完发现是三个原因叠加,没有一个是「接口坏了」:

  1. 临时风控 —— 后来自己恢复了
  2. 超时设太短 —— 测试命令设了 30 秒,而生成本身要 26–31 秒。卡在边界上,必然失败
  3. 没走代理 —— 走代理后更稳

📌 教训写下来:测跨境 API 的生成接口,超时至少给 60–90 秒(生成本身 26–31 s + 网络)。

🎉 闭合验证

MCP 带代理连续生成三次,三次全部通过:三个文件分别在 1.57 / — / 1.79 MB,全部 ok + 落盘 + 回传就绪。

完整链路:

飞书 → agent → MCP server(注入代理环境变量)
     → 代理香港节点 → 图片 API(26–50 s)
     → 落盘 → 回传飞书

🎬 另外两件

本地 agent 框架部署:装了一个官方开源的 agent 框架(一切皆插件架构),起了 Web UI 在 3080 端口,配了开机自启 + 自愈。端到端验证通过,内存占用约 158 MB。

采集脚本重写:给剪辑同事的采集脚本有个死代码 bug —— 一个函数定义被放在了 return 之后,永远不执行,导致只出数据不出表格。这个没法打补丁,只能重写。重写后测试账号 35 个作品全量采集 + 表格生成成功。

顺带修了另一处:解析纯数组时空数组是 truthy,把判断吞掉了 → 结果 0 个。加类型判断才修好。

又一个排坑:小模型处理 11 条长输入时输出退化成一串乱码 → 换更大的模型 + 每条截断到 300–500 字,输出干净了。

关键决策

决策理由
生图通道统一、彻底移除冗余通道用户明确要求;那个 key 从未真正配置,实际链路已跑通
服务器装代理访问海外图片服务直连被墙,代理后首页快 17 倍
代理配置不用订阅头部节点,直接全节点测速头部 3 行是占位说明,会被误选导致失败
采集脚本完整重写而非打补丁死代码 bug 只能重写
服务用开机自启 + 自愈免手动拉起

待办

  • 新视频项目:生成关键帧 → 过门禁 → 抽卡 → 剪辑
  • 让同事实测生成海报,看回传效果
  • 共读继续