深色
风格
视觉表达
S 循环切换
经典
稳定的技术默认风格
信号流
突出动态流向
蓝图
工程评审
编辑风格
适合发布与上线说明
动态
演示
导出
导出图表
便携、整洁的输出
E
分享
分享卡片
1200×630 PNG
路径分享卡片
1200×630 PNG
可达范围分享卡片
1200×630 PNG
复制分享卡片
复制 PNG 到剪贴板
复制图表
复制 PNG 到剪贴板
图像
PNG
无损图像
JPEG
紧凑图像
WebP
现代图像格式
矢量与动效
SVG
可编辑矢量图
WebM
6 秒动效
Hook 与拦截器链:可改写的拦截 + 只读观察
←
引导视图
探索此系统
沿精选路径逐步查看,而不改变源图表。
节点
下一步
→
▶
播放故事
#
复制此刻
显示全部
Hook 与拦截器链:可改写的拦截 + 只读观察
由 Archify 生成的架构图。
用户输入 · raw input · 架构组件
用户输入
raw input
PromptInterceptor · beforePrompt → 决策 · 拦截链(决策能改变行为) · intercept
PromptInterceptor
beforePrompt → 决策
intercept
AgentRuntime · ReAct 步循环 · 架构组件
AgentRuntime
ReAct 步循环
ToolInterceptor · before/afterToolCall · 拦截链(决策能改变行为) · intercept
ToolInterceptor
before/afterToolCall
intercept
ToolExecutor · 工具/MCP 实执行 · 架构组件
ToolExecutor
工具/MCP 实执行
ModelRequestHook · beforeModelRequest · 拦截链(决策能改变行为) · intercept
ModelRequestHook
beforeModelRequest
intercept
LLM · AgentModelClient · 架构组件
LLM
AgentModelClient
沙箱执行 · routeTo → Sandbox SPI · 拦截链(决策能改变行为) · intercept
沙箱执行
routeTo → Sandbox SPI
intercept
LifecycleDispatcher · 按事件类型广播 · 观察链(fire-and-forget) · observe
LifecycleDispatcher
按事件类型广播
observe
AgentLifecycleHook · observe-only 列表 · 观察链(fire-and-forget) · observe
AgentLifecycleHook
observe-only 列表
observe
AgentHooks · 命名式门面 · applyTo · 架构组件
AgentHooks
命名式门面 · applyTo
① beforePrompt
② 放行/改写
③ beforeModelRequest
④ 改写后 prompt
⑤ tool_call
⑥ allow/modify→执行
⑦ routeTo→沙箱
⑧ output→afterToolCall
⑨ 生命周期事件
dispatch
applyTo 装配
拦截链(决策能改变行为)
观察链(fire-and-forget)
图例
前端
后端
云服务
安全
消息总线
就绪
章节 01 / 01
引导章节
图表指南
探索此系统
×
正在检查已编译语义
01
查找任意节点
搜索标签、职责、类型和稳定 ID。
/
02
追踪路径
查看两个语义节点如何按编写方向连接。
R
03
查看完整系统
打开带实时视口和稳定节点的语义雷达。
M
04
比较语义类型
统计角色、显示流量并比较直接编写的连接。
L
05
播放引导故事
浏览已编写的章节和真实关系。
P
06
进入演示模式
让实时图表占满视口,同时不改变导出。
F
E
导出
T
主题
S
风格
0
重置
+
放大
-
缩小
Esc
关闭
查找节点
×
⌕
/
没有匹配的节点
语义护照
已验证来源
编写可达范围
上游
0
下游
0
×
复制链接
关系
路径探测
选择起点节点
查找起点
复制链接
清除
在图表中选择两个语义节点
←
▶
旅程
→
总览
先选择来源,再选择目标;方向很重要。
语义透镜
比较系统角色
×
最多选择两种语义类型。选择一种可显示其真实流量;选择两种只比较直接编写的关系。
选择一种类型以检查其节点和相连关系。
复制链接
清除
语义雷达
正在构建总览
打开雷达
×
点击节点
拖动平移
语义雷达需要更多地图可见空间。
路径
地图
透镜
阅读
100%
ToolCallDecision 四种裁决
• allow() 放行 / block(reason) 否决——原因作为工具结果回喂模型(Claude Code 式 exit-code-2 语义)
• modify(call) 改写名称/参数后执行 / routeTo(sandbox) 把这次调用改派到 Daytona/E2B 沙箱执行
拦截 vs 观察
• 拦截器(Tool/Prompt/ModelRequest)返回决策:首个非 allow 生效,能改写输入、prompt 或工具调用
• AgentLifecycleHook.onEvent 只读:dispatcher 按 AgentLifecycleEventType 广播,所有 handler 都会跑,异常记为 AgentLifecycleHookError
AgentHooks 门面
• preToolUse/postToolUse/userPromptSubmit/beforeModelRequest + 按事件类型的 observe——命名注册、编译期安全
• applyTo 把各槽位组合进 builder 的单拦截器位;pre/post 合成同一个 ToolInterceptor,两者可并存