支持私有云部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


manus没有秘密?沙盒代码逆向完成,开源~

发布日期:2025-03-17 18:28:52 浏览次数: 1542 来源:探索AGI
推荐语

深入揭秘Manus沙盒代码,揭开智能体的秘密。

核心内容:
1. Manus沙盒代码的破解和开源
2. 沙盒代码的作用和系统架构解析
3. 项目关键组件及FastAPI服务层介绍

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

嘿,大家好!这里是一个专注于前沿AI和智能体的频道~

上周,manus的沙盒代码被诱导之后,可以打包下载。

manus没有护城河?已被破解,可下载所有代码!

但是下载完成打开,虽然start_server.py确实可以直接运行起来,但是整个代码项目是加密的~

代码是pyarmor加密的,这个正常逆向是很麻烦的。所以之前留言,我都回复了等大佬开源就好了。然后他来了~

接下来简单看看这个项目的实现逻辑!

现在都是明文了

首先需要注意的是,沙箱代码并不是manus的真实代码。他只是提供一个安全、隔离的容器给大模型,让它可以与终端、浏览器交互。充当大模型与资源之前的桥梁,使得AI可以自主运行终端命令、浏览器操作、编辑文本等等。

系统架构

┌───────────────────────────┐                ┌─────────────────┐      ┌────────────────────────────────────────────┐
│                           │                │                 │      │              Sandbox Container             │
│    AI Agent (e.g. Claude) │                │  API Proxy      │      │                                            │
│                           │                │                 │      │ ┌──────────┐  ┌─────────┐  ┌────────────┐  │
│         MANUS             │  API Requests  │  - Auth check   │      │ │          │  │         │  │            │  │
│                           │◄──────────────►│  - Rate limiting├─────►│ │ Terminal │  │ Browser │  │ File/Text  │  │
│                           │  & Responses   │  - Routing      │      │ │ Service  │  │ Service │  │ Operations │  │
│                           │                │                 │      │ │          │  │         │  │            │  │
│                           │                │                 │      │ └────┬─────┘  └────┬────┘  └─────┬──────┘  │
└───────────────────────────┘                └─────────────────┘      │      │             │             │         │
                                             x-sandbox-token          │      │             │             │         │
                                             authentication           │      v             v             v         │
                                                                      │ ┌──────────────────────────────────────┐   │
                                                                      │ │               FastAPI                │   │
                                                                      │ │      (app/server.py + router.py)     │   │
                                                                      │ └──────────────────────────────────────┘   │
                                                                      │                                            │
                                                                      └────────────────────────────────────────────┘

整个项目主要包含以下几个关键组件:

1. API服务层

项目使用FastAPI构建了一个HTTP服务(app/server.py),作为AI与沙盒交互的主要入口点。所有来自AI的请求都会经过这一层处理,然后路由到对应的功能模块。

2. 终端服务

终端服务允许AI直接执行shell命令,并实时获取输出结果。对于需要持续交互的场景,它还提供了基于WebSocket的实时通信(app/terminal_socket_server.py)。

这部分功能使得大模型可以:

  • 运行Linux/Unix命令
  • 安装软件包
  • 操作文件系统
  • 执行编程语言(Python、Node.js等)

3. 浏览器自动化

browser_use库的集成。这是一个经过修改的开源库,让AI能够通过API控制浏览器行为。

browser_use主要包含以下功能模块:

Agent类 (browser_use/agent/service.py)

class Agent:
    def __init__(
        self,
        task: str,
        llm: BaseChatModel,
        browser: Browser | None = None,
        # 其他参数...
    )
:

        # 初始化组件
        
    async def run(self, max_steps: int = 100) -> AgentHistoryList:
        # 主执行循环
        # 处理LLM输出并执行动作

这个类是浏览器自动化的核心,负责将AI的指令转化为具体的浏览器操作。

浏览器上下文

在context.py里边 提供了一系列方法让AI与网页交互:

  • 导航到特定URL
  • 点击页面元素
  • 在表单中输入文本
  • 页面滚动
  • 提取网页内容

system prompt(browser_use/agent/prompts.py)

这部分应该是跟原始仓库一样的,没有仔细对比。 定义了告诉AI如何与浏览器交互的指令集,包括:

  • 响应格式规范(JSON结构)
  • 与浏览器元素交互的规则
  • 导航和错误处理指南
  • 任务完成标准

AI如何与沙盒通信?

AI与沙盒之间的通信流程:

  1. AI制定请求

  • AI决定执行某个动作(如运行终端命令、浏览网页)
  • 根据API规范构建适当的请求
  • 请求传输

    • AI发送HTTP请求到代理服务(https://api.manus.im/apiproxy.v1.ApiProxyService/CallApi
  • 认证

    • 请求包含API令牌(x-sandbox-token头)
    • 令牌会与存储在$HOME/.secrets/sandbox_api_token中的值进行验证
  • 请求处理

    • 沙盒的FastAPI服务器接收并处理请求
    • 将请求路由到相应的服务(终端、浏览器、文件操作)
  • 返回响应

    • 将操作结果格式化为JSON或二进制数据
    • 将响应发送回AI

    例如,AI执行一个shell命令的流程是这样的:

    ┌─────────────┐                 ┌───────────────┐              ┌──────────────────┐
    │             │ 1. HTTP请求     │               │ 2. 路由到    │                  │
    │  AI 代理    │────────────────►│ 沙盒API       │─────────────►│ 终端服务         │
    │             │                 │ (FastAPI)     │              │                  │
    │             │◄────────────────│               │◄─────────────│                  │
    └─────────────┘ 4. JSON响应     └───────────────┘ 3. 执行命令  └──────────────────┘

    实际应用场景

    通过这个沙盒环境,Claude等大模型可以执行如网页自动化、开发调试代码、执行系统指令、管理文件进程等操作。

    逆向开源项目地址:https://github.com/whit3rabbit/manus-open

    搭配完整的manus system prompt、tool description食用更佳: https://gist.github.com/jlia0/db0a9695b3ca7609c9b1a08dcbf872c9

    好了,这就是我今天想分享的内容。如果你对构建AI智能体感兴趣,别忘了点赞、关注噢~



    53AI,企业落地大模型首选服务商

    产品:场景落地咨询+大模型应用平台+行业解决方案

    承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

    联系我们

    售前咨询
    186 6662 7370
    预约演示
    185 8882 0121

    微信扫码

    添加专属顾问

    回到顶部

    加载中...

    扫码咨询