摘要: 本文介绍了Browser Use公司如何从浏览器代理发展到现在的全功能代理系统。最初,代理在AWS Lambda上运行,每个调用都是隔离的,可即时扩展,且无需担心秘密。随着代码执行功能的加入,代理能够编写和运行Python代码、执行shell命令、创建文件等,这些操作都在隔离的沙箱中运行以确保安全性。然而,由于代理循环仍然在同一个后端上运行,导致重新部署时所有运行的代理都会死亡,内存消耗大的代理会导致API变慢。文章提出了两种隔离模式:一是将工具隔离,二是将代理隔离。Browser Use最终选择了第二种模式,即整个代理都在沙箱中运行,并通过控制平面与外部世界通信。沙箱使用Unikraft微虚拟机在生产环境中运行,而在本地开发和评估环境中则使用Docker容器。沙箱在执行任何代理代码之前会进行字节码执行、权限降级和环境剥离等安全措施。控制平面作为一个代理服务,处理所有外部请求和操作。文章还介绍了如何通过控制平面进行LLM调用和文件同步等操作。最后,文章讨论了系统的扩展性和运营复杂性。
讨论: 这段内容主要讨论了关于Unikraft设置和代理沙箱的安全性和实用性。用户yakkomajuri提到Unikraft的设置很标准,并希望了解更多关于其优化的细节。jeremyjacob回忆了之前使用Unikraft云服务的体验,并对其性能印象深刻,但指出当时存在许多用户体验问题。orf对某些安全措施提出了质疑,认为它们过于简单且不安全。cedws强调了在LLM(大型语言模型)容易受到提示注入攻击的情况下,沙箱技术的重要性有限。Bnjoroge表示对Unikernels的应用场景感兴趣。mcpmarketplace则指出MCP生态系统中存在安全漏洞,建议进行预安装扫描来提高安全性。
原文标题:Building secure, scalable agent sandbox infrastructure
原文链接:https://browser-use.com/posts/two-ways-to-sandbox-agents
讨论链接:https://news.ycombinator.com/item?id=47181316