当前位置: 首页 > article >正文

YOLO-Master 与 YOLO 开始涡

AI Agent 时代的沙箱需求从 Copilot 到 Agent执行能力的质变在生成式 AI 的早期阶段应用主要以“Copilot”形式存在AI 仅作为辅助生成建议。然而随着 AutoGPT、BabyAGI 以及 OpenAI Code Interpreter现为 Advanced Data Analysis的出现AI 开始扮演“Agent”的角色。Agent 被赋予了目标并能自主规划步骤、使用工具来达成目标。这种质变的核心在于代码执行Code Execution。为了回答“分析这层楼的销售数据并绘制趋势图”这样的请求LLM 不再只是生成一段 Python 代码文本而是需要在一个真实的 Python 环境中运行这段代码并获取绘图结果。同样为了“帮我预订一张去东京的机票”Agent 可能需要在一个无头浏览器Headless Browser中模拟用户点击。不可信代码的安全隐患当 LLM 生成代码并执行时这段代码在本质上是不可信的Untrusted。如果直接在应用服务器或用户的本地设备上运行将面临灾难性的安全风险系统破坏AI 生成的代码可能无意或恶意地包含 rm -rf / 等破坏性指令或者修改关键系统配置文件。数据泄露代码可能尝试读取环境变量中的 API Key或者扫描内网数据库将敏感数据发送到外部服务器。资源耗尽死循环或内存泄漏代码可能导致宿主机崩溃影响其他租户的服务。网络攻击恶意 Prompt 注入Prompt Injection可能诱导 AI 将执行环境作为跳板Jump Box对内部网络发起 DDoS 攻击或端口扫描。Agent 场景面临的独特挑战除了基础的安全性AI Agent 的交互特性还给沙箱环境带来了前所未有的工程挑战这也是传统沙箱如简单的 Docker 容器或虚拟机难以应对的状态保持与传统的“请求-响应”模式不同Agent 往往需要进行多轮对话。上一轮定义的变量如 df load_data()需要在下一轮df.plot()中继续可用。这就要求沙箱环境必须具备上下文记忆能力而非每次请求都重置环境。极速启动用户无法忍受每次交互都等待数秒甚至数十秒的虚拟机启动时间。为了保证流畅的对话体验Time to First Token沙箱必须具备毫秒级的冷启动能力。环境依赖多样性不同的 Agent 任务可能需要完全不同的依赖库如 Pandas、Scipy 用于数据分析Puppeteer 用于网页操作。沙箱需要支持灵活的自定义镜像或动态依赖加载同时不能影响启动速度。资源成本控制Agent 的调用往往具有稀疏性和突发性例如一天只用几次但一次用很久。长期运行独占的虚拟机VM成本高昂且资源利用率低而传统的 FaaS 虽然便宜但往往缺乏状态保持能力。如何在低成本和高性能之间找到平衡点是一个巨大的挑战。因此构建一个沙箱Sandbox——一个与宿主机、内网以及其他用户数据严格隔离同时具备高性能、低成本、有状态的封闭执行环境——成为了 AI Agent 沙箱落地的前提条件。AgentRun Sandbox专为 Agent 设计的工程化方案为了解决上述挑战我们推出了 AgentRun Sandbox。这是一个以高代码为核心开放生态、灵活组装的一站式 Agentic AI 基础设施平台。AgentRun 并非从零构建传统的虚拟机集群而是基于阿里云函数计算FC这一强大的 Serverless 底座构建。通过充分利用 Serverless 的按需付费、极致弹性以及免运维NoOps 特性AgentRun 解决了一直困扰沙箱领域的成本与效率难题并在此基础上通过工程化封装提供了面向 Agent 场景的专业能力。为什么选择函数计算作为 Sandbox Infra在构建 Agent 沙箱时我们坚定地选择了函数计算FC作为底层基础设施这主要基于以下核心优势的考量强安全隔离 沙箱的核心诉求是安全。函数计算底层采用神龙裸金属与 RunD 安全容器技术每个执行环境都运行在独立的 MicroVM 中。这种基于虚拟化技术的内核级隔离相比传统的 Docker 容器隔离具有更高的安全性能有效防止恶意代码逃逸为不可信代码执行提供了坚实屏障。极致弹性与冷启动优化 Agent 的调用往往具有突发性。函数计算具备毫秒级的弹性伸缩能力结合 RunD 技术对启动速度的极致优化使得沙箱能够在数秒甚至毫秒内完成创建和启动。这不仅满足了高并发场景下的需求也保证了 Agent 交互的流畅性避免了传统虚拟机启动慢带来的延迟感。成本效益自建虚拟机集群通常需要为峰值流量预留资源导致低谷期资源浪费。函数计算采用按需付费Pay-as-you-go模式且 AgentRun 利用了 FC 的空闲自动回收机制真正做到了“有请求才计费”。对于稀疏调用的 Agent 场景这种模式能显著降低基础设施成本。免运维 基于 Serverless 架构开发者无需关心底层服务器的操作系统补丁、网络配置及集群维护。AgentRun 团队可以将精力集中在沙箱的核心逻辑与业务体验上而非底层基础设施的繁琐运维。会话能力函数计算围绕 AI Agent Sandbox 场景推出了会话亲和、隔离以及管理能力。在一次会话生命周期内相同会话的请求均会被亲和路由到同一个实例中并独占该实例保证了会话交互的连续性、上下文完整性以及多租安全性同时提供完整的管理接口来主动对会话生命周期进行控制降低了开发门槛。AgentRun 的核心运行机制传统的 Serverless 通常是无状态的难以满足 Code Interpreter 这类需要上下文保持的场景。AgentRun 借助函数计算的会话产品能力在无状态的计算底座上构建了有状态、会话级的沙箱体验。1. 沙箱请求亲和AgentRun 允许开发者显式地创建一个具有生命周期的执行环境解决了传统 Serverless“用完即走”导致的上下文丢失问题。会话亲和AgentRun 依赖函数计算会话亲和机制。当开发者创建沙箱后AgentRun 会维护一个唯一的 SessionID。后续所有携带该 ID 的请求都会被精准路由到同一个底层的计算实例。这意味着用户在第一步定义的 df pd.read_csv(...) 对象在第二步 df.plot() 时依然存在于内存中完美复刻本地开发体验。MCP 协议原生支持针对模型上下文协议Model Context Protocol, MCPAgentRun 提供了 MCP SSE 及 MCP Streamable HTTP 会话亲和支持。AgentRun 可以直接作为 MCP 网关让 LLM 与外部工具的交互更加顺滑。2. 多层次安全隔离在多租户 SaaS 平台中安全性是 AgentRun 的基石。计算隔离AgentRun 利用底层基础设施的神龙裸金属与 RunD 安全容器技术确保每个沙箱实例在内核级别进行隔离。通过强制将会话并发度设置为 1AgentRun 保证租户 A 的进程空间、内存数据与租户 B 物理分离防止容器逃逸。网络隔离网络隔离完全由用户控制。用户可以根据安全需求灵活配置选择开启或关闭沙箱的公网访问权限或者将沙箱接入指定的 VPC 网络环境从而在满足业务连通性的同时防止恶意代码对内网发起攻击。3. 灵活的生命周期控制AgentRun 通过函数计算的会话能力接管了底层计算资源的生命周期为上层应用提供精细化管理自动闲置回收Idle Timeout为了通过 Serverless 架构降低成本AgentRun 支持设置空闲超时例如 5 分钟。如果 Agent 在这段时间内没有新指令底层实例会自动销毁并停止计费完美适配 AI 交互“突发性强、稀疏度高”的特点。状态暂停与恢复即将上线针对长时间的任务间歇AgentRun 能够将沙箱的内存与磁盘状态快照保存在用户回归时通过快照快速恢复现场既节省成本又保留了上下文。4. 会话粒度存储隔离即将上线代码执行需要隔离数据存储更需要隔离。AgentRun 创新性地规划了会话粒度存储粘性。动态绑定AgentRun 允许用户为每个沙箱环境中动态分配一个存储挂载点的专属子目录。逻辑沙箱通过底层的挂载技术沙箱内部只能看到属于自己的 /workspace物理上无法访问其他租户的文件如 ../../tenant-b/secret.txt从文件系统层面根除了数据交叉风险。AgentRun 开箱即用的沙箱能力AgentRun 不仅提供了底层隔离环境还预置了经过工程化调优的标准化模版让开发者开箱即用Code Interpreter代码解释器预装 Python/Node.js/Java 等环境支持文件上传下载、数据分析、图表绘制及命令行操作。Browser User浏览器沙箱提供基于 CDP over WebSocket 协议的浏览器环境兼容 Puppeteer / Playwright让 Agent 能够安全地访问互联网进行网页操作。All In One集成了代码解释器与浏览器环境的全能型沙箱满足复杂 Agent 任务需求。这些模版镜像具备高度的灵活性AgentRun 未来将开放镜像定义允许用户基于标准镜像定制私有依赖库或安全策略。AgentRun 沙箱架构详解image.pngAgentRun 网关这是 AgentRun 的门户负责接收来自 AI Agent如 LangChain 应用、ChatGPT Plugin的 HTTP 请求除了标准的身份验证、鉴权以及协议转换如将 HTTP 转为 WebSocket之外其核心能力便是沙箱管理以及沙箱请求路由的功能它屏蔽了底层 Serverless 基础设施的复杂性实现了如下能力沙箱管理管理沙箱资源维护业务层沙箱 ID 与底层计算资源 SessionID 的映射关系状态维护监控沙箱的活跃状态基于沙箱超时配置以及底层资源情况及时对状态进行更新资源调度根据用户指定的计算规格CPU、Memory向底层申请相应的资源。函数计算沙箱环境主要由函数计算作为底层算力来承载沙箱的运行。AgentRun 利用函数计算提供的极致弹性能力实现在分钟内启动成三万个独立的沙箱环境每个环境都运行在独立的 MicroVM 中搭配自研开箱即用的沙箱镜像模版在功能以及性能上为用户提供了双重保障。典型工作流从指令到结果以“用户让 Agent 根据上传的 Excel 文件绘制图表”为例AgentRun 的工作流程如下。阶段一模板创建用户请求Agent 接收到用户指令后由 LLM 决策使用 Python 来实现该需求。Agent 工具调用AI Agent 会向 AgentRun 网关发送 Code Interpreter 沙箱模板的创建请求。模板创建AgentRun 网关会调用函数计算接口创建一个 Code 沙箱模板函数镜像配置为前文提到的自研 Code Interpreter 沙箱模板该函数需要同时配置会话亲和以及会话隔离。阶段二沙箱创建Agent 工具调用模板创建完成后Agent 继续进行沙箱创建创建时传入已有的模板 ID标识沙箱实例运行时的配置和镜像沙箱创建AgentRun 收到沙箱创建请求后会调用 FC 的 CreateSession 接口来创建一个沙箱实例该沙箱会有一个合适的闲置超时时间最长可存活 24h创建完成AgentRun 会保存 FC 返回的会话 ID并生成沙箱业务 ID 与之对应最终将沙箱业务 ID 返回给用户阶段三任务执行上传文件Agent 通过 Code Interpreter 的文件上传接口将 Excel 文件上传。若想将该文件持久化可以在创建沙箱时配置持久化存储 NAS将其挂到沙箱中并将文件上传到 NAS 挂载的目录上。绘制图表Agent 生成代码 import pandas as pd; df pd.read_excel(data.xlsx)并调用 Code Interpreter 的 run_code 接口执行代码。会话亲和Agent 所有发往 Code Interpreter 的请求中都必须带上对应的沙箱 ID 才能保证请求都路由到同一个沙箱实例。内存驻留代码执行完毕变量 df 驻留在内存中.二次代码执行Agent 根据数据列名生成绘图代码 df.plot()。再次发送代码运行请求上下文复用请求再次到达同一实例直接使用内存中的 df 对象进行绘图生成图片文件。结果回传图片被写入 NAS下载链接返回给 Agent。阶段四资源销毁空闲检测Agent 完成任务不再发送请求。自动回收达到 SessionIdleTimeout如 5 分钟后函数计算会自动销毁该沙箱实例此时除了持久化到 NAS 上的数据其余环境相关数据均被销毁。文件回收如果 NAS 上的文件是会话隔离的当用户会话结束后NAS 上文件需要进行主动或者定时自动清除。工作时序图image.pngAgentRun 的核心设计原则AgentRun 的工程化实践遵循以下五大核心原则这构成了其安全、高效、可扩展的基石原则一配置即代码AgentRun 将沙箱环境定义环境变量、资源规格、健康检查等封装为标准化模版。这种设计实现了沙箱配置的版本化管理使得 Agent 环境可以像代码一样进行复制和回滚。原则二会话即沙箱AgentRun 将“会话”作为沙箱的唯一实体。通过 SessionID 绑定底层的计算实例与上下文状态实现了真正的按需分配与状态保持。沙箱的创建与销毁完全独立于底层物理设施对用户透明。原则三生命周期可编程AgentRun 不仅提供创建Create和删除Delete接口还引入了“暂停”、“恢复”和“自动超时”机制。这种可编程性让上层应用能根据业务价值最大化资源利用率实现成本与性能的最优平衡。原则四网络接入标准化AgentRun 抹平了底层网络的差异提供标准化的 HTTP/WebSocket 接口并支持 Server-Sent EventsSSE。无论底层如何升级上层 Agent 沙箱始终通过标准的 Header 或 Cookie 携带 SessionID 进行交互降低了集成复杂度。原则五存储隔离细粒度化即将上线AgentRun 不仅支持模版粒度的文件系统共享同时也能够配置沙箱粒度目录级动态挂载。每个沙箱单独挂载一个目录从根源上杜绝了多租户环境下的数据越权访问风险。总结与展望AgentRun Sandbox 是 Serverless 技术在 AI Agent 领域的最佳工程化实践。坛廊拼巡

相关文章:

YOLO-Master 与 YOLO 开始涡

AI Agent 时代的沙箱需求 从 Copilot 到 Agent:执行能力的质变 在生成式 AI 的早期阶段,应用主要以“Copilot”形式存在,AI 仅作为辅助生成建议。然而,随着 AutoGPT、BabyAGI 以及 OpenAI Code Interpreter(现为 Advan…...

SEATA分布式事务——AT模式挠

简介 AI Agent 不仅仅是一个能聊天的机器人(如普通的 ChatGPT),而是一个能够感知环境、进行推理、自主决策并调用工具来完成特定任务的智能系统,更够完成更为复杂的AI场景需求。 AI Agent 功能 根据查阅的资料,agent的…...

从数据采集到回放验证:ADTF 适配 ROS 的 ADAS 测试实践邢

一、简化查询 1. 先看一下查询的例子 /// /// 账户获取服务 /// /// /// public class AccountGetService(AccountTable table, IShadowBuilder builder) { private readonly SqlSource _source new(builder.DataSource); private readonly IParamQuery_accountQuery b…...

信道估计实战:从LS、MMSE到LMMSE的性能演进与工程权衡

1. 信道估计:无线通信的"导航系统" 想象一下你在一个陌生的城市开车,GPS信号时强时弱。信道估计就像是通信系统中的GPS,帮助接收端"看清"信号传输路径上的各种变化。在无线通信中,电磁波经过反射、折射、衍射…...

MCP4728 vs AD569:四通道DAC芯片选型与Linux驱动开发对比

MCP4728与AD569四通道DAC芯片深度对比与Linux驱动实战指南 在嵌入式系统开发中,数字模拟转换器(DAC)的选择往往决定了整个信号链路的精度与稳定性。当项目需要同时控制多路模拟输出时,四通道DAC芯片如MCP4728和AD569便成为工程师的首选。这两款芯片虽然功…...

Calico IPIP 使用指南境

本课概览 Microsoft Agent Framework (MAF) 提供了一套强大的 Workflow(工作流) 框架,用于编排和协调多个智能体(Agent)或处理组件的执行流程。 本课将以通俗易懂的方式,帮助你理解 MAF Workflow 的核心概念…...

从CTF靶场到实战:手把手教你用Fenjing和SSTImap自动化检测Jinja2模板注入漏洞

从CTF靶场到实战:手把手教你用Fenjing和SSTImap自动化检测Jinja2模板注入漏洞 在渗透测试和CTF竞赛中,模板注入漏洞(SSTI)正成为越来越常见的攻击面。特别是使用Jinja2模板引擎的Web应用,由于开发人员对用户输入过滤不…...

值类型与引用类型:别再只背“栈和堆”了,看这 个实际影响节

基础示例:单工作表 Excel 转 TXT 以下是将一个 Excel 文件中的第一个工作表转换为 TXT 的完整步骤: 1. 加载并读取Excel文件 from spire.xls import * from spire.xls.common import * workbook Workbook() workbook.LoadFromFile("示例.xlsx"…...

MySQL进阶-索引深度原理与设计

一、索引底层结构:为什么索引能让查询“飞起来”?我们常说“索引是数据库的指南针”,但很少有人想过:这个“指南针”到底是怎么工作的?MySQL的索引底层,核心是「B Tree」结构(InnoDB引擎默认&am…...

AI时代新型的项目管理应该是什么样的?儋

AI训练存储选型的演进路线 第一阶段:单机直连时代 早期的深度学习数据集较小,模型训练通常在单台服务器或单张GPU卡上完成。此时直接将数据存储在训练机器的本地NVMe SSD/HDD上。 其优势在于IO延迟最低,吞吐量极高,也就是“数据离…...

终极指南:5个简单步骤免费解锁Cursor Pro完整AI编程体验

终极指南:5个简单步骤免费解锁Cursor Pro完整AI编程体验 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your t…...

FastAPI项目半夜报警吵醒你?聊聊告警这事儿怎么搞!囤

Issue 概述 先来看看提交这个 Issue 的作者是为什么想到这个点子的,以及他初步的核心设计概念。?? 本 PR 实现了 Apache Gravitino 与 SeaTunnel 的集成,将其作为非关系型连接器的外部元数据服务。通过 Gravitino 的 REST API 自动获取表结构和元数据&…...

别再只用XML-RPC了!Odoo 18里用Python requests库调用JSON-RPC接口的完整指南

别再只用XML-RPC了!Odoo 18里用Python requests库调用JSON-RPC接口的完整指南 在Odoo集成开发领域,XML-RPC长期以来都是开发者首选的通信协议。但当我们进入Odoo 18时代,JSON-RPC凭借其轻量级、易解析的特性正在成为更优选择。本文将带你全面…...

nRF5340双核实战:从Zephyr环境搭建到蓝牙协议栈部署

1. 认识nRF5340双核架构 第一次拿到nRF5340开发板时,我盯着芯片规格书看了半天——这个北欧半导体最新推出的多核处理器确实有点特别。和之前用过的nRF52系列不同,nRF5340采用了双核异构设计:一个240MHz的Arm Cortex-M33应用核(CP…...

、SEATA分布式事务——XA模式遣

MySQL 中的 count 三兄弟:效率大比拼! 一、快速结论(先看结论再看分析) 方式 作用 效率 一句话总结 count(*) 统计所有行数 最高 我是专业的!我为统计而生 count(1) 统计所有行数 同样高效 我是 count(*) 的马甲兄弟…...

Python3.10镜像使用全解析:Jupyter和SSH两种方式,满足不同开发需求

Python3.10镜像使用全解析:Jupyter和SSH两种方式,满足不同开发需求 1. Python3.10镜像概述 Python3.10镜像是一个基于Miniconda的轻量级Python环境管理工具,它提供了Python 3.10的核心运行环境以及常用的开发工具。这个镜像特别适合需要快速…...

【大模型公平性工程化落地指南】:20年AI架构师亲授3大可量化评估框架与5个避坑实战案例

第一章:大模型工程化中的模型公平性评估 2026奇点智能技术大会(https://ml-summit.org) 大模型在招聘筛选、信贷审批、司法辅助等高风险场景中部署前,必须系统性验证其对不同人口统计学群体(如性别、种族、年龄)的预测一致性。公…...

C++模板元编程理论基础简介

C模板元编程理论基础简介 一、数学理论基础 1.1 λ演算与函数式编程 模板元编程本质上是编译时的函数式编程,其理论基础源于λ演算:纯函数性:模板实例化是纯函数过程 相同输入总是产生相同输出无副作用(在编译时环境中&#xff09…...

手把手教你用CAPL脚本精准测量UDS 0x11复位服务的执行时间(附完整代码)

手把手教你用CAPL脚本精准测量UDS 0x11复位服务的执行时间(附完整代码) 在汽车电子控制单元(ECU)的开发与验证过程中,精确测量诊断服务的执行时间是确保系统性能达标的关键环节。UDS(Unified Diagnostic Se…...

JSON-RPC 2.0与REST API在微服务架构中的实战选型指南

1. JSON-RPC 2.0与REST API的本质区别 第一次接触微服务架构时,很多人都会被各种协议搞得晕头转向。我自己在2015年搭建第一个分布式系统时,就曾在JSON-RPC和REST之间反复纠结。这两种协议看似都能实现服务间通信,但骨子里的设计哲学完全不同…...

torchsparse安装指南:从基础到排坑全解析

1. torchsparse简介与环境准备 torchsparse是MIT Han Lab开发的高效点云处理神经网络库,特别适合处理3D点云数据。它通过稀疏张量表示大幅提升计算效率,在自动驾驶、机器人导航等领域应用广泛。我第一次接触这个库是在开发一个室内场景重建项目时&#…...

Photon-GAMS光影包:让Minecraft方块世界拥有电影级光影效果的终极指南

Photon-GAMS光影包:让Minecraft方块世界拥有电影级光影效果的终极指南 【免费下载链接】Photon-GAMS Personal fork of Photon shaders 项目地址: https://gitcode.com/gh_mirrors/ph/Photon-GAMS 还在为Minecraft的单调画面感到乏味吗?想要一键将…...

BOTW-Save-Editor-GUI:让《塞尔达传说:旷野之息》存档编辑变得简单直观

BOTW-Save-Editor-GUI:让《塞尔达传说:旷野之息》存档编辑变得简单直观 【免费下载链接】BOTW-Save-Editor-GUI A Work in Progress Save Editor for BOTW 项目地址: https://gitcode.com/gh_mirrors/bo/BOTW-Save-Editor-GUI 对于《塞尔达传说&a…...

手把手教你用STM32H743+FreeRTOS+LWIP搭建一个能跑GUI和联网的嵌入式系统

从零构建STM32H743FreeRTOSLWIP全功能嵌入式系统实战指南 在智能家居中控、工业HMI等场景中,高性能MCU与实时操作系统的组合正成为开发者的首选方案。STM32H743凭借其Cortex-M7内核和丰富外设,配合FreeRTOS的实时调度能力,能够轻松应对图形渲…...

ES6——Module详解

Module详解1、严格模式2、export命令3、import命令4、模块的整体加载5、module命令6、export default命令7、模块的继承8、ES6模块加载的实质9、循环加载ES6的Class只是面向对象编程的语法糖,升级了ES5的构造函数的原型链继承的写法,并没有解决模块化问题…...

别再让CPU拖后腿!用CUDA Graph优化PyTorch/TensorFlow推理,实测性能提升5倍

解锁GPU潜能:用CUDA Graph重构深度学习推理流水线 当你的AI服务在高峰期响应延迟飙升时,很可能是CPU正在拖累GPU的算力发挥。想象一下这样的场景:每秒处理数百张图片的识别API,GPU利用率却始终徘徊在30%以下;或者一个本…...

避开LD_LIBRARY_PATH陷阱:在RV1103 Buildroot里成功编译V4L2库的实战记录

避开LD_LIBRARY_PATH陷阱:RV1103 Buildroot中V4L2库编译的深度解析 在嵌入式开发中,交叉编译环境下的库依赖问题往往成为阻碍开发进度的"隐形杀手"。最近在LuckFox Pico SDK环境中编译V4L2库时,一个看似简单的环境变量设置问题——…...

Z-Image-Turbo_Sugar脸部Lora一文详解:Lora微调原理、基础模型关系与使用边界

Z-Image-Turbo_Sugar脸部Lora一文详解:Lora微调原理、基础模型关系与使用边界 你是不是也遇到过这样的烦恼:想用AI生成特定风格的人像,比如那种清透甜美的“糖系”脸蛋,但用通用的大模型试了半天,出来的效果总是不对味…...

Google 迎来「DeepSeek 时刻」:TurboQuant算法实现bit无损、×加速、×压缩、零预处理舅

从 UI 工程师到 AI 应用架构者 13 年前,我的工作是让按钮在 IE6 上对齐; 13 年后,我用 fetch-event-source 订阅大模型的“思维流”,用 OCR 解锁图片中的文字——前端,正在成为 AI 产品的第一道体验防线。 最近&#x…...

深入解析Unity NavMeshSurface组件|动态导航网格生成与应用

1. NavMeshSurface组件入门:从零认识动态导航网格 第一次接触Unity的NavMeshSurface组件时,我被它的动态烘焙能力惊艳到了。传统导航网格需要在编辑器里预先烘焙好,运行时无法修改,这给很多需要动态改变地形的游戏带来了巨大限制。…...