数据截至 (上游 commit 0f23e3c9395c)
MCP Hub、Skills 与代理
本章讲三件把沙箱「接到 agent 生态」的事:MCP Hub(统一工具入口)、Skills(可复用的能力包)、代理(入站预览 + 出站)。
1. MCP Hub:把所有能力聚合成一组工具
agent 不想为「跑命令」「读文件」「开浏览器」各连一个服务。MCP Hub 的作用就是把这些聚合到一个 /mcp 端点,以标准 Model Context Protocol 暴露(website/docs/en/guide/basic/mcp.md:3-9):
The Model Context Protocol (MCP) Hub in AIO Sandbox provides a centralized interface for AI agents to access multiple services through a single endpoint.
预置的服务器(website/docs/en/guide/basic/mcp.md:13-35):
| MCP 服务器 | 能力 |
|---|---|
| Browser | 网页浏览、页面交互、截图 |
| File | 文件系统操作、搜索、内容处理 |
| Terminal | shell 命令执行、进程管理 |
| Markitdown | 文档转换、markdown 处理 |
协议形态: /mcp 走 streamable HTTP(website/docs/en/guide/basic/mcp.md:39-41),用标准 MCP 的 tools/call 调工具:
# 示意,基于 website/docs/en/guide/basic/mcp.md:48-66
resp = await client.post("http://localhost:8080/mcp", json={
"method": "tools/call",
"params": {"name": "browser_navigate", "arguments": {"url": "https://example.com"}}
})
MCP 子系统也有 REST 面。 SDK 的 mcp 子客户端(sdk/python/agent_sandbox/mcp/raw_client.py)暴露:GET v1/mcp/servers(列服务器)、GET v1/mcp/{server_name}/tools(列某服务器的工具)、POST v1/mcp/{server_name}/tools/{tool_name}(调具体工具)。这让你能在不走 MCP 协议握手的情况下,用普通 HTTP 直接枚举和调用 MCP 工具。
为什么这层重要: 同一套底层能力(browser/file/shell)既能用 /v1/... 细粒度 REST 调,也能通过 /mcp 当成「LLM 工具」调。前者给写集成代码的人,后者给 LLM 直接 function-calling。 沙箱把两种消费方式都备好了。
2. Skills:可注册的能力包
Skill 是一个自包含的「指令 + 脚本」目录,注册进沙箱后能被 agent 工作流发现并使用(website/docs/en/guide/basic/skills.md:3)。典型结构:
my-skill/
SKILL.md # 入口:frontmatter 元数据 + markdown 指令
scripts/ # 重活放脚本里,别塞进 markdown
templates/
requirements.txt
package.json
SKILL.md 的 frontmatter 用 name + description 描述「这技能是什么、何时用」(website/docs/en/guide/basic/skills.md:23-33)。注册、列举、读取、删除都有端点(sdk/python/agent_sandbox/skills/raw_client.py):
| 操作 | 端点 |
|---|---|
| 注册(已存在目录或上传 zip) | POST v1/skills/register |
| 列出元数据 | GET v1/skills/metadatas |
| 读内容 | GET v1/skills/{name}/content |
| 删除 | DELETE v1/skills/{name} |
注册既可以指向沙箱内已存在的目录,也可以上传 zip 解压到目标目录(website/docs/en/guide/basic/skills.md:40-56)。最佳实践是 description 简短动作化、重代码放 scripts/ 而非 markdown、依赖显式、别在 skill 里埋密钥(website/docs/en/guide/basic/skills.md「Best Practices」)。
这是「能力即文件」的思路: 一个 skill 就是文件系统里的一个目录,沙箱把它索引成 agent 可发现的能力——和「共享文件系统」这条主线一脉相承。