首页 文章 精选 留言 我的

精选列表

搜索[智能体框架],共10000篇文章
优秀的个人博客,低调大师

通用 AI 智能体 Manus 核心组件“Sandbox”的技术解析

Manus 官方发布了其核心组件 Manus Sandbox 的技术解析,该组件是一个为每个任务分配的全隔离云端虚拟机,旨在让 Agent 具备执行任务的“手”。 Manus Sandbox 具备完整的网络、文件系统、浏览器及各种软件工具,支持 Agent 通过编写代码实现 24⁄7 自动化执行。该环境采用 Zero Trust 安全架构,用户和 Agent 拥有 root 等完全控制权限。 针对生命周期管理,Sandbox 具备休眠唤醒机制,并根据用户层级设定了 7 天或 21 天的闲置回收周期。在协作模式下,系统会自动禁用 Connectors 以防止隐私泄露。 以下内容来自 Manus 官方博客:《了解 Manus Sandbox - 您的云计算机》 正如 Manus 名称的出处"Mens et Manus"(Mind and Hand)所说的,Manus 希望让 AI 模型不仅只是思考,更可以帮你做出行动。而在我们给 AI 模型赋予的"手"中,最强大的莫过于一台真正的云计算机 —— Manus Sandbox。 什么是 Manus Sandbox? Manus Sandbox 是 Manus 为每一个任务分配的完全独立的云虚拟机。每个 Sandbox 在自己的环境中运行,互不影响,可以并行执行任务。 Sandbox 的强大之处在于它的完整性——就像你手上使用的个人电脑一样,它拥有完整的能力:网络、文件系统、浏览器、各种各样的软件工具。我们的 AI Agent 经过设计与训练,可以很好地选择并正确使用这些工具帮助你完成任务。不仅如此,有了这台计算机,AI 可以通过自己最擅长的方式——编写代码来解决问题,甚至可以帮你制作一个完整的网站和移动端 App。这一切都发生在 Manus 背后的虚拟化平台上。这些 Sandbox 可以 7x24 小时工作,完成你下发的任务而不占用你的本地资源。 Manus Sandbox 的特性 Sandbox 里面有什么 Manus Sandbox 里存放了任务执行过程中所需要的文件,包含如下类型: 1.用户上传的附件 2.Manus 运行过程中创建、编写的文件和产物 3.Manus 为了执行特定任务所需的配置(如用户上传的密钥、Manus 给用户分配的用于调用相关接口的密钥) 你可以通过右上角的"View all files in this task"入口查看 Sandbox 中的所有产物文件。 当然,你也可以直接向 Manus 发送消息询问当前 Sandbox 的状态和其中的内容,比如"把当前写的所有代码打包发给我",Manus 会自行访问 Sandbox 满足你的要求。 Sandbox 的生命周期 Sandbox 遵循一个可预测的生命周期,在资源效率和持久性之间取得平衡: •创建: Sandbox 会在新会话中按需创建 •休眠/唤醒: 在 Sandbox 不活跃时(没有操作、文件编辑等),会自动进入休眠状态。当你回到任务,Manus 需要操作 Sandbox 时会自动唤醒。在休眠/唤醒周期内,Sandbox 中的文件数据保持不变 •回收/重新创建: 连续休眠超过一定期限的 Sandbox 会被回收(免费用户:7 天;Manus Pro:21 天)。Sandbox 被回收后再次访问时,会自动重新创建一个新的沙盒。Manus 会自动恢复之前沙盒中的部分文件到新的沙盒:Manus 的产物、上传的附件、Slides/WebDev 等重要文件会被自动恢复;运行过程中的中间代码、临时文件等不会被恢复 由于 Sandbox 存在休眠机制,如果你需要部署长时间运行的后台服务,可以使用 Manus 的网页开发能力创建前后台服务并部署到公网。 Sandbox 的安全性 我们对 Manus Sandbox 的设计遵循 Zero Trust 原则。就像你在云服务厂商购买的一台云虚拟机那样,你和 Manus 对这台电脑拥有绝对的掌控权,可以不受限制地进行任何操作(例如获取 root 权限,修改系统文件,甚至是格式化整个磁盘)。这使得 Manus 可以尽最大的可能帮你完成任务而不受权限的约束。 不用担心:任何对 Sandbox 的操作只会影响 Sandbox 本身,不会影响到 Manus 服务的安全和稳定性,你的会话、账号等数据也无法被 Sandbox 访问。一旦出现不可恢复的错误,Manus 会自动创建一个新的沙盒来进行替换,确保能继续为你提供服务。 避免意外共享 Sandbox 中的敏感数据 Sandbox 作为你的私人电脑,可能存放有你的个人敏感信息和数据。Manus 有着严格的隐私保护政策和措施,不会在未经用户授权的情况下读取或分享任何用户数据,但你仍然需要采取措施以避免 Sandbox 中的数据被意外共享。 我们需要区分"分享"和"协作"两个场景。 分享 对于任务的分享(通过 Manus 右上角的"Share"按钮),被分享者只会看到任务对话中的消息和输出的产物。Sandbox 对他们是完全不可见的。因此,你只需要关心对话中是否包含敏感信息即可,无需担心 Sandbox 中的内容被泄露。 协作 对于任务的协作(通过 Manus 右上角的协作按钮,邀请特定的用户参与),协作者加入会话后即获得了参与此任务的权限。这意味着协作者可以向 AI 发送指令,控制任务的执行。此时 Sandbox 对协作者也同样开放——他们可以通过 AI 访问或者修改 Sandbox 中的文件、数据,可能会造成预期外的数据泄露。 另外,Connectors 会在会话开启协作后自动禁用,无需担心 Connectors 被协作者访问。 你可以通过上面的表格了解不同情况下其他用户对于任务内容的可访问性,在进行共享、协作操作前确认不会泄露你的隐私数据。 保护隐私的最佳实践 •由于 Sandbox 相当于你的私人电脑,添加协作者前请二次确认 Sandbox 中是否有敏感内容不便于协作者访问 •如果已经有敏感内容,可以新建一个 task,只复制必要的内容和产物到该 task,再邀请协作 •避免在协作会话中发送个人敏感信息 可用性 Manus Sandbox 是我们平台的核心组件,所有用户均可使用,适用于所有订阅层级。 常见问题 问:Sandbox 被回收后,我的文件会怎样? 答:Manus 会自动恢复你最重要的文件——产物、上传的附件以及 Slides/WebDev 等项目文件——到新的 Sandbox。中间代码和临时文件不会被恢复。 问:Sandbox 多久会被回收? 答:免费用户的保留期为 7 天,Manus Pro 用户在 Sandbox 不活跃 21 天后才会被回收。 问:协作者能否通过 Sandbox 访问我的 Connectors? 答:不能。协作开启后,Connectors 会自动禁用,确保协作者无法访问你连接的服务。 Manus Sandbox 代表了 Manus 代你行动的基础。通过提供一个持久、安全、功能完整的云计算环境,我们正在开启一类新的 AI 驱动工作方式——从对话走向真正的执行。

优秀的个人博客,低调大师

🔥 Java AI(智能体)编排开发就用 Solon Flow

本例参考 dify 的 chatFlow 的效果,模拟实现视频内容: https://www.toutiao.com/video/7455114080131482152/ Solon Flow 是一个通用流编排引擎。可用于计算(或任务)的编排场景; 可用于业务规则和决策处理型的编排场景; 可用于办公审批型(有状态、可中断,人员参与)的编排场景; 可用于长时间流程(结合自动前进,等待介入)的编排场景。同时支持:java8,java11,java17,java21,java24。 <dependency> <groupId>org.noear</groupId> <artifactId>solon-flow</artifactId> <version>最新版本</version> </dependency> 主要特点有: 使用 yaml 格式做编排 表达式与脚本自由 元信息配置,为扩展提供了无限空间(每个流程,相当于自带了元数据库) 事件广播与回调支持 支持“无状态”、“有状态”两种需求分类 驱动定制(是像 JDBC 有 MySql, PostgreSQL,还可能有 Elasticsearch) 下面提供两种处编排风格以可供参考 1、使用 “元信息” + 任务组件“ 风格 (更利于可视界面配置) id: demo1 layout: - title: "开始" type: start - title: "文件提取" meta.input: "file" # 可视界面的配置(通过元信息表示) meta.output: "fileTxt" task: @FileLoaderCom - title: "LLM" meta.model: "Qwen/Qwen2.5-72B-Instruct" # 可视界面的配置(通过元信息表示) meta.input: "fileTxt" meta.messages: - role: system content: "#角色\n你是一个数据专家,删除数据的格式整理和转换\n\n#上下文\n${fileTxt}\n\n#任务\n提取csv格式的字符串" task: @ChatModelCom - title: "参数提取器" meta.model: "Qwen/Qwen2.5-72B-Instruct" # 可视界面的配置(通过元信息表示) meta.output: "csvData" task: @ParamExtractionCom - title: "执行代码" meta.input: "csvData" task: | import com.demo.DataUtils; String json = DataUtils.csvToJson(node.meta().get("meta.input")); //转为 json 数据 String echatCode = DataUtils.jsonAsEchatCode(json); //转为 echat 图表代码 context.result = echatCode; //做为结果返回 - title: "结束" type: end 这种风格,更适合可视界面的编译。设计是,可以预选设计好很多组件,经过管理配置后,可提供界面选择。 @Component("FileLoaderCom") public class FileLoaderCom implements TaskComponent { @Override public void run(FlowContext context, Node node) throws Throwable { ... } } @Component("ChatModelCom") public class ChatModelCom implements TaskComponent { @Override public void run(FlowContext context, Node node) throws Throwable { ... } } @Component("ParamExtractionCom") public class ParamExtractionCom implements TaskComponent { @Override public void run(FlowContext context, Node node) throws Throwable { ... } } @Controller public class DemoController { @Mapping("demo") public Object input(UploadedFile attachment, String message) throws Throwable { FlowEngine flowEngine = FlowEngine.newInstance(); flowEngine.load("classpath:flow/demo1.chain.yml"); FlowContext ctx = new FlowContext(); ctx.put("file", attachment); flowEngine.eval("demo1"); return context.result; } } 2、比较原始的风格(能表达内在的大概过程): id: demo1 layout: - title: "开始" type: start - title: "文件提取" meta.input: "file" # 可视界面的配置(通过元信息表示) meta.output: "fileTxt" task: | import org.noear.solon.ai.loader.*; var loader = FileLoader.of(file); var fileTxt = loader.load(); context.put(node.meta().get("meta.output"), fileTxt); //推入上下文(后续节点可用) - title: "LLM" meta.model: "Qwen/Qwen2.5-72B-Instruct" # 可视界面的配置(通过元信息表示) meta.input: "fileTxt" meta.messages: - role: system content: "#角色\n你是一个数据专家,删除数据的格式整理和转换\n\n#上下文\n${fileTxt}\n\n#任务\n提取csv格式的字符串" task: | import com.demo.ModelUtils; //根据业务封装,可快速获取配置的模型 import com.demo.MessageUtils; //根据业务封装,可快速构建消息 var chatModel = ModelUtils.get(node.meta().get("model")); var chatMessages = MessageUtils.get(node.meta().get("messages"), context); var resp = chatModel.prompt(chatMessages).call(); context.put("resp", resp); - title: "参数提取器" meta.model: "Qwen/Qwen2.5-72B-Instruct" # 可视界面的配置(通过元信息表示) meta.output: "csvData" task: | context.put(node.meta().get("meta.output"), resp.getMessage().getContent()); - title: "执行代码" meta.input: "csvData" task: | import com.demo.DataUtils; String json = DataUtils.csvToJson(node.meta().get("meta.input")); //转为 json 数据 String echatCode = DataUtils.jsonAsEchatCode(json); //转为 echat 图表代码 context.result = echatCode; //做为结果返回 - title: "结束" type: end 这个风格比较原始,不过不需要 java 组件参与。可以像低代码一样(或可执行程序一样),直接运行配置文件。 @Controller public class DemoController { @Mapping("demo") public Object input(UploadedFile attachment, String message) throws Throwable { FlowEngine flowEngine = FlowEngine.newInstance(); flowEngine.load("classpath:flow/demo1.chain.yml"); FlowContext ctx = new FlowContext(); ctx.put("file", attachment); flowEngine.eval("demo1"); return context.result; } }

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册