慢请求慢了 3 秒?用 Archify 时序图追平整条 API 调用链

慢请求慢了 3 秒?用 Archify 时序图追平整条 API 调用链

【免费下载链接】archify Agent skill for beautiful, verifiable architecture, workflow, sequence, data-flow, and lifecycle diagrams—self-contained HTML with motion and crisp export. 【免费下载链接】archify 项目地址: https://gitcode.com/GitHub_Trending/arch/archify

昨晚的值班工单:首页 Dashboard 打开要 3 秒,日志只说"慢",到底卡在哪一跳?这种问题靠日志猜是猜不出来的,需要一张时序图——而 Archify 时序图干的就是这件事。Archify 是一个面向 AI Agent 的图表技能(Skill),把代码库或系统描述变成可验证的交互式图表,覆盖架构、工作流、时序、数据流、生命周期五种类型,输出自带动画和高清导出的自包含 HTML。这篇拿它自带的"缓存缺失请求"示例,把一次完整的 API 调用链从头追到尾。

先回答一个问题:这张图画的是"谁调谁"

架构图回答"谁和谁相连",时序图回答"谁在什么时候调用了谁"。排查慢请求时你要看的恰恰是后者:

  • 请求走了几跳,每一跳的激活条有多长;
  • 缓存是命中还是缺失,缺失后回源数据库付出了什么代价;
  • 哪些调用阻塞主路径,哪些只是异步旁路(比如 trace 埋点)。

这也是 Archify 技能路由表里 sequence 的定位:API call chains、request lifecycles、async traces、returns。别急着套模板——拿不准用哪种图时,可以直接问内置的场景指南:

# 在 archify 目录下执行
node bin/archify.mjs guide "展示带 Redis 缓存未命中的 API 请求" --json --lang zh

指南会返回推荐类型和配方,但图本身仍然要你和 Agent 亲手描述——配方只是起点。

三行命令把 Archify 跑起来

Archify 是 Node.js 渲染与校验系统,适配 Cursor、Claude Code、Codex CLI 和 OpenCode。安装就一行:

npx skills add tt-a1i/archify -g

不想安装就先试一次:

npx skills use tt-a1i/archify@archify --agent codex

装好后对 Agent 说一句话就能开工:"Use archify to trace this API request with a cache miss."

7 站、3 幕:拆一张缓存缺失示例

仓库里自带教科书级示例 cache-miss-request.sequence.json,渲染成品在 sequence-cache-miss-request.html。时间从上往下走,7 个参与者横向排开:User → Web App → API → Auth → Redis → Postgres → Trace

Archify 缓存缺失时序图:用户、Web App、API、Auth、Redis、Postgres、Trace 七个参与者的 API 调用链

整条链被 3 个 segment 背景色带切成三幕:Request(打开页面、完成 JWT 鉴权)、Fallback(读缓存 miss、回源 Postgres)、Response + trace(写回缓存、异步上报、响应返回)。你注意看 set cacheemit trace 这两条紫色虚线——它们是异步旁路,不阻塞主路径,这是整张图里最容易被误读成"主流程变长"的部分。

图例把消息风格分成五类,这套约定直接决定了读图效率:

风格(variant)在图里的角色本例中的消息
emphasis主请求路径,最醒目GET /dashboardquery profile + metrics
security鉴权、权限类调用,单独着色verify JWT
return返回消息,画得安静一些claims okmissrows200 JSONrender
dashed异步、非阻塞的旁路工作set cacheemit trace
default其余普通消息open pageread cache

这套规则的效果是:用户感知的延迟和可观测性开销在同一张图上自然分离,一眼能看出主路径其实只有 Web App → API → Postgres 这么短。具体设计规则可查 sequence 渲染器文档

调用链就 4 个 JSON 字段

时序图源文件是一份带类型的 JSON IR,骨架只有四块:

  • participants:参与者列表,每项含 id、语义 typefrontend/backend/database/security 等)和标签,如 { "id": "redis", "type": "database", "label": "Redis", "sublabel": "cache" }
  • messages:消息箭头,指定 fromto、垂直坐标 yvariant 风格,缓存缺失就是一行 { "id": "cache-miss", "from": "redis", "to": "api", "label": "miss", "variant": "return" }
  • segments:背景分段,from/to 是 y 像素区间,用来把时间线切成三幕;
  • activations:激活条,相当于参与者"忙不忙的指示灯"——Postgres 只有一小段激活条,直观说明回源窗口很短。

想要更精细的展示,meta.views 里最多可配 5 个命名章节(示例配了 3 章:Request and identity、Cache fallback、Return and trace),再开 meta.animation: "trace" 让箭头按调用顺序逐段点亮。完整字段约束见 sequence.schema.json

渲染器很"严":宁报错,不画坏图

写好后管线会先做 schema 校验,再做布局检查——参与者放不下、消息间距过密、箭头越界,都会直接报错而不是产出一张坏图:

# 单文件渲染(仓库根目录执行,内置校验器,无需装依赖)
node archify/renderers/sequence/render-sequence.mjs examples/cache-miss-request.sequence.json output.html

# 进入 archify 目录:探索期校验 + 交付期终检(showcase 级别要求 0 错误 0 警告)
cd archify
node bin/archify.mjs validate sequence examples/cache-miss-request.sequence.json --quality showcase --json
node bin/archify.mjs deliver sequence examples/cache-miss-request.sequence.json examples/sequence-cache-miss-request.html

validate 报错时别急着整图重画,先看诊断定位到具体的 subject:通常是某一个参与者放不下、两条消息间距小于 28px 这类单点问题。deliver 会把规格文件字节级冻结成快照再渲染,输出 HTML 附带 SHA-256 回执——你分享给同事的那个文件,和它背后的 JSON 是对得上的。

整个管线是"从语义到像素"的确定性编译:自然语言或 Mermaid → Agent 推断空间关系 → JSON IR + Schema 校验 → 类型化渲染器 + 布局规则检查 → 独立 HTML + 多倍率导出。

Archify 时序图渲染管线:从自然语言到独立 HTML 的五步编译流程

打开渲染出来的 HTML:别只看不玩 🎬

用浏览器打开成品,缓存缺失时序图并不只是张静态图:

  • 分章讲解:顶部 3 个章节按钮逐章聚焦相关参与者,Play story 可以自动播放整条调用链,演示时特别好用;
  • 路由追踪:选中 Web App 到 Postgres 的路径后,面板显示 "3 nodes · 2 directed hops · shortest authored route",还能一键复制深链、导出 1200×630 的路由分享卡片;
  • 主题与导出:右上角 Dark/Live 切换深浅色,Export 菜单可复制 PNG 到剪贴板、下载静态图、带运动的 WebM 或社交分享卡。

Archify 时序图路由追踪:Web App 经 API 到 Postgres 的最短路径面板

换成你自己系统的 API 链

把示例换成你的系统,四步就行:

  1. 列出这条请求链的参与者(网关、鉴权、缓存、主库……),语义 type 各归其位;
  2. 按时间顺序写下每条消息:主路径 emphasis、返回 return、鉴权 security、旁路埋点 dashed
  3. 用 2–3 个 segment 切分时间线,给关键服务加激活条;
  4. validatedeliver,再让 visual-check 确认多档桌面分辨率下不溢出:
node bin/archify.mjs visual-check output.html --json

这条命令会在 1440×900 到 2048×1320 多档分辨率下测量内容是否完整包含在视口内,退出码就是结论。更多字段约定查 authoring-contract.md 和中文版 authoring-cookbook.zh-CN.md

那 3 秒的慢请求,从此不用再翻日志猜了——一张时序图,每一跳、每一条旁路都摆在明面上。

【免费下载链接】archify Agent skill for beautiful, verifiable architecture, workflow, sequence, data-flow, and lifecycle diagrams—self-contained HTML with motion and crisp export. 【免费下载链接】archify 项目地址: https://gitcode.com/GitHub_Trending/arch/archify

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值