ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Agent 技能跑不起来?从 DSec 看执行环境该怎么设计

Agent 技能跑不起来?从 DSec 看执行环境该怎么设计 Agent 的 demo 能跑一上真实环境就崩 —— 文件状态丢了、依赖装不上、GUI 点不了、成本压不住。问题往往不在模型而在执行层。一、技能和文本生成本质是两件事模型生成 “删除第 3 行” 很容易。但真的执行删除、再跑一遍测试、观察环境变化、接着下一步操作 —— 每一步都在改变环境状态下一轮必须接着上一轮的状态继续。这决定了技能执行层不能像传统云负载那样 “用完即焚”也不能 “预先铺满资源”。它要同时满足三件互相矛盾的事状态要连续上一轮改的文件下一轮还得在创建要快技能调用的等待时间以秒计成本要低大量沙盒大部分时间在空转DeepSeek 在 arXiv 公开的 DSecDeepSeek Elastic Compute就是一个生产级答案。规模数据先摆出来单分片约 160 台服务器、3 万 CPU 核心、250TB 内存单日服务约 300 万个沙盒峰值并发超 38 万每秒创建 5000 多个沙盒。下面不聊抽象定义直接拆它的四个设计。二、后端选型先给技能分形态不同技能的运行形态完全不同。DSec 用统一 SDK 对外提供四种后端FnCall适合在线评测等短任务。特点一次函数调用生命周期最短Container适合软件工程、工具调用。特点读写文件、装依赖、跑命令隔离够用、创建快MicroVM适合更不可信环境、需要硬性资源边界的场景。特点隔离更强Full VM适合 GUI、Android 应用。特点完整操作系统选型逻辑一句话技能越短、越可信越用轻后端技能越长、越要隔离越用重后端。这里最常见的坑是图省事把所有技能都塞进同一个执行环境。短任务用 Full VM创建慢、成本高GUI 任务用 FnCall根本跑不起来。后端选型不是技术偏好是技能形态决定的。三、环境管理分层、按需、快照1. 环境分层更新只做增量如果每个代码仓库或工具包更新都触发镜像重建成本是灾难。DSec 把环境拆三层base image操作系统和基础软件workspace任务代码和依赖toolkit工具包三层独立管理版本创建沙盒时组合。工具更新只重建工具层不用从头重做整个环境。这一招的收益和规模关系不大。哪怕你只有几十个沙盒分层也能让 “改一个工具包” 从 “重做整个镜像” 变成 “只动一层”。2. 按需加载真正用到的数据很少统计显示Agent 运行时真正访问的数据只占整个镜像的 4.2% 到 13.3%。也就是说预拉完整镜像90% 左右的数据是白拉的。DSec 的做法镜像数据放分布式文件系统本地只存元数据按需读取。实验数据很直观8192 个 Container 集中创建从 “预拉完整镜像 60 多分钟” 变成 “按需加载约 35 分钟”提速约 1.71 倍磁盘写入减少约 57%把 tar.gz 解压改成挂载 EROFS 层总耗时从 79 分钟降到 45 分钟磁盘写入只剩原来的约五分之一3. 快照复用技能调试的核心加速器这是最值得抄的一招。Agent 在沙盒里把环境配置好后用pack_diff机制生成增量快照保存当前状态。下次要相同环境直接恢复。再进一步Agent 执行到第 k 步有多个方案可选时在第 k 步存一次快照从相同状态恢复出多个沙盒分别探索 —— 前面环境数据共享只有后续变化单独记录。对强化学习来说等于把同一条轨迹的环境状态变成可复用数据。调试 Agent 最痛苦的就是 “每次都要从头配环境”。快照复用直接把这个成本砍掉。四、成本模型承认稀疏性然后超卖Agent 沙盒的稀疏性非常明显约 90% 的沙盒平均 CPU 使用量不到申请资源的 5%。如果按申请量分配资源绝大部分资源在浪费。DSec 的资源超卖率做到 50 倍以上路径有三条内存共享通过 virtio-pmem 和 DAX 让同宿主机的 MicroVM 共享宿主页缓存宿主机峰值内存占用比基线降 40.2%空闲页回收借助 DAMON 和 balloon 回收暂时不用的内存累计内存消耗再降 21.2%CPU 分级调度时延敏感任务优先。实验中同机其他任务已占用 50% CPU 时时延敏感任务的延迟影响从 45.2% 降到 17.3%这里的启示不是 “你也要做 50 倍超卖”而是先承认沙盒大部分时间在空转再决定资源怎么分。如果按峰值申请量做容量规划成本一定压不住。五、安全边界技能会自己找漏洞当 Agent 真的能在环境里自由操作它会为了拿奖励走捷径。生产环境已观察到读取残留答案伪造 RPC 请求覆盖 /bin/bash 注入命令甚至调用 XFSIOCSWAPEXT 绕过访问控制DSec 的防御两层AppArmor限制文件和 Socket 访问即使 Agent 拿到管理员权限规则仍生效eBPF 网络白名单给每个沙盒限定地址、端口和协议但要承认对内核漏洞这类风险目前仍缺少通用防御。安全设计必须前置不能上线后补。六、如果我来落地会先做哪两步DSec 的规模不是每个团队都能复刻但它的设计思路可以拆开用。如果只能先做两件事我会选环境分层把 base /workspace/toolkit 拆开工具更新只动工具层。收益直接和规模无关快照复用用增量快照保存环境状态调试和轨迹分叉都用得上这两步做完再考虑按需加载和资源超卖。安全则从一开始就要按 “Agent 会主动找漏洞” 来设计而不是等出了事再补。
返回列表