🧩 机制演示 · 沙箱执行全景(一个页面看完整套)
板块①主链路(请求怎么走)· 板块②可靠性(任务怎么跑完)
① 架构与流转(主链路 · 10 步)
② 执行工程化(可靠性 · 7 幕)
0 / 10
🏗 系统架构图(结构层 · 静态)—— 播放时 ⚡光点沿路径流动 = 请求流转
接入层多端·信任边界
👤 多渠道入口Web / IM / App(用户侧·外部)
🔌 接入适配层统一消息模型·IM 网关
▼ 统一消息 → 进 Agent 服务(框架大脑)
Agent 服务框架大脑
Agent Loop意图识别·Skill·ReAct
LangGraph / Spring AI
⇅ 旁路(虚线):Agent Loop 与 LLM 对话,LLM 只返回 tool_calls JSON(无状态)
推理服务
(旁路
不参与主链路)
🤖 LLM 推理vLLM / 云端 API(GPU 集群)
⇄ 只跟 Agent Loop 对话 · 不碰网关 · 不碰沙箱
▼ 框架(Agent Loop)解析 tool_calls JSON → 以框架身份发起工具调用 → 工具网关(LLM 不直接连网关)
工具网关唯一进出口
Allow / Ask / Deny权限审批 + MCP 路由
🗂 工具注册表tool→executor 绑定
tool_calls 解析
⚖️ 路由依据 = 「工具注册表」:每个工具注册时绑定执行器(bash→沙箱 / read_file→本地 / browser→沙箱)。LLM 只吐中立 JSON,本地 or 远程由注册表 + 策略决定——本地与远程都先过网关
本机
📦 本地执行器进程内 / CLI / 文件 / MCP stdio
结果直接回填
云端
☁️ 远程沙箱通道需隔离/云端 → 调度创建 Pod
执行=网关直连 Pod API
路由表 (调度服务内 · session→Pod 映射 · TTL) 查「沙箱会话路由表」: ✓ 命中 → 网关直连 Pod API 执行(不碰 K8s) ✗ 未命中 → 通知调度层创建 ▼
══ 执行路径(每次工具调用):网关按路由表 直连 沙箱 Pod 的 Sandbox API,不走 K8s ══
沙箱 Pod按类型池化·session 粘性映射
🧩 Sandbox API Server/exec /fs /browser /run
运行时gVisor/Kata
工作区卷PVC /workspace
工具集code/PPT/浏览器
📤 产物上传→ 外部对象存储 OSS/S3
工具集:code / 浏览器 / 渲染
🔄 双向文件链路:下载=沙箱产物→OSS→预签名 URL→用户;上传=用户→预签名直传 OSS→沙箱按需拉取到 /workspace 加工。两条都走 OSS,沙箱与用户解耦、可审计
┄┄ 生命周期路径(低频):调度器调 K8s 创建/回收/重建 Pod,Ready 后写回路由表 ┄┄
调度层仅生命周期·控制面
沙箱调度器创建/回收/重建 Pod
资源池CPU/GPU/内存共用
预热池冷启动→<1s
🛡 崩溃重建Pod 崩→K8s 重建+PVC 保留
K8s 控制面(不在请求路径上)
🔒 安全横切镜像/依赖扫描 · 网络隔离 · 密钥托管 · 全链路审计
💾 存储横切工作区持久卷(不随 Pod 销毁)· 对象存储 · 镜像仓库
📊 可观测横切全链路 trace · 指标 · 日志(OTel 统一)
🛡 容错横切Pod 崩溃→重建+卷保留→任务重试/断点续跑 · 内存配额 · 节点漂移
🔐 沙箱互信网关 ↔ Pod 的 Sandbox API 走 mTLS / 短期 token;网络策略防外部直调
↯ 会话一致性Pod 重建/IP 变更 → 路由表心跳更新;多网关副本经 Redis 同步 session→Pod 映射
🧮 治理横切多租户配额/超卖上限 · 空闲回收(idle 超时) · 产物 TTL + 合规清理
🔀 请求流转详情(行为层 · 当前步骤)—— 请用"帮我写个爬虫"跟随
- - -
⚙️ 在哪个应用里执行
-
🏠 在哪个环境里执行
-
👤 谁在做
-
💾 数据落点
-
⤵ 输入-
⤴ 输出-
💡 点击左侧架构图上的组件可查看其职责与技术栈;播放/步进沿架构图看请求流转。
⚡ 加载完成 · 播放或 ⏮⏭ 步进,光点沿架构图流动
👤 用户侧
⚙️ 框架侧
🤖 LLM 侧
🗄 调度侧
📦 沙箱侧