Agent 栈的四层被标准化了:Agent Skills、Open Responses、OpenEnv、OpenSandbox 进入 AAIF

·阅读约12分钟·Evergreen Tools Team

2026 年 10 月 22 日,在硅谷圣何塞的 AGNTCon + MCPCon North America 上,Agentic AI Foundation(AAIF)宣布了四个新项目:Anthropic 贡献的 Agent Skills、OpenAI 贡献的 Open Responses、Hugging Face 贡献的 OpenEnv、阿里巴巴贡献的 OpenSandbox。这四笔捐赠让 AAIF 在成立第一年内从 3 个托管项目涨到 10 个。它们分别落在 Agent 栈的四个不同层面:Agent 怎么获得新能力、应用怎么跨厂商和模型对话、Agent 怎么被训练和评测、以及 Agent 的代码在哪里安全执行。这四个项目又恰好来自四家互为竞争对手的公司,这一点比项目本身更值得注意。本文不吹标准,只回答三个问题:这四层分别解决什么、你今天的代码要不要动、以及「厂商中立」在工程上怎么验证。

互联的全球网络与开放标准

四层栈,四个贡献方,一个中立的托管地

一、这次到底宣布了什么

官方公告写得很清楚:AAIF 新增四个托管项目,分别由 Anthropic、OpenAI、Hugging Face 和阿里巴巴贡献,AAIF 因此在其第一年内达到 10 个托管项目,而 2025 年 12 月成立时只有 3 个。这四个新项目将与已有的 Agent2Agent(A2A)协议、Agent Router、agentgateway、AGENTS.md、goose 以及 Model Context Protocol(MCP)一起,在 AAIF 开放、厂商中立的治理下运作。公告同时点明了发布场合:AGNTCon + MCPCon North America,10 月 22 日至 23 日在圣何塞 McEnery 会展中心举行。AAIF 联合创始人兼 CTO Manik Surtani 的说法是:一年前他们带着三个项目和一个赌注成立——代理式 AI 需要一个中立的家才能长起来;今天他们托管着 10 个项目,而四家不同的公司选择把它们交给中立治理。

# 1) Agent Skills: a skill is a folder, not a prompt.
#    Instructions, scripts and resources ship together and load on demand.
deploy-helper/
  SKILL.md                 # name, description, when to use it
  scripts/rollback.sh
  references/runbook.md
# SKILL.md front matter (shape of the open format):
#   name: deploy-helper
#   description: Promote or roll back a staging deploy. Use for deploy questions.
# Body: the steps, the guardrails, and what to do when a check fails.
# Keep it short. The agent reads this every time the skill triggers.

二、四层分别是什么

第一层是能力层。Agent Skills 是一个开放格式,用来给 Agent 增加新能力和领域知识:它把指令、脚本和资源打包成可复用的单元,Agent 按需加载,从而让专业知识可以跨产品、跨平台移植。注意它的定位——不是提示词模板,而是一个可以被加载的目录,里面除了文字还有可执行脚本。第二层是模型接口层。Open Responses 是一个开放规范,用于构建多厂商、可互操作的 LLM 接口,它基于 OpenAI 的 Responses API,定义了共享的 schema、一致的流式事件和可扩展的工具调用,让开发者只描述一次请求和输出,就能以最小的转换成本在多个模型厂商上运行。第三层是训练与评测层。OpenEnv 是开源框架与社区中心,用于创建强化学习环境,围绕一个容器化服务暴露统一的 Agent 接口、MCP 与训练用的 Gym 协议;在线环境的项目文档里,交互契约是 Gymnasium 风格的 reset、step、state。第四层是执行层。OpenSandbox 是面向 Agent 的安全执行环境,在隔离沙箱里跑任意代码、操作文件、装包、访问网络,而不影响宿主机或同机其他沙箱;项目以 Apache 2.0 开源,在本次捐赠之前就已经公开。

// 2) Open Responses: one request shape, many providers.
//    Wrap the call once so streaming events and tool calls stop being
//    provider-specific at every call site.
type ResponsesRequest = {
  model: string;
  input: Array<{ role: "user" | "assistant"; content: string }>;
  stream: boolean;
};

async function send(baseUrl: string, apiKey: string, body: ResponsesRequest) {
  const res = await fetch(baseUrl + "/v1/responses", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer " + apiKey,
    },
    body: JSON.stringify(body),
  });
  if (!res.ok) throw new Error(baseUrl + " returned " + res.status);
  return res;
}

// The point is not abstraction for its own sake. It is that a second
// provider becomes a baseUrl change instead of a second implementation.

三、为什么「谁贡献的」比「托管在哪」更值得注意

托管在基金会这件事本身不新鲜,有意思的是这四个项目的来源构成了一个闭环:Anthropic 交出了 Agent 的能力打包格式,OpenAI 交出了模型调用规范,Hugging Face 交出了训练环境,阿里巴巴交出了执行沙箱。四家公司里没有任何一家能靠单方面控制这些标准获得压倒性优势,所以把它们交给中立治理是理性的——尤其是在 MCP 已经走通这条路之后。Anthropic 的 MCP 联合创建者 David Soria Parra 在公告里的表述很直白:没有正确的上下文,再聪明的 Agent 也发挥不出来;他们一年前推出 Agent Skills,现在把它捐给 AAIF,是为了让任何构建 skill 的人都能参与塑造下一步。OpenAI 的 Steve Coffey 则强调简单、干净、统一的接口。对开发者来说,可操作的含义是:这些层正在从「各家的实现细节」变成「可以写进技术选型文档的规范」,你为迁移预留的成本可以少留一点,但你得先确认自己依赖的实现到底跟不跟规范。

# 3) OpenEnv: the training and evaluation layer.
#    Gymnasium-style contract - reset, step, state - so a run is replayable.
#    Import names are a sketch; check the project docs for the real API.
from openenv import Client

env = Client("https://huggingface.co/spaces/you/calendar-admin")
obs = env.reset()

done = False
while not done:
    action = your_policy(obs)            # your agent, unchanged
    obs, reward, done, info = env.step(action)

print(env.state())                       # inspect the end state, not a vibe

# Same env, same seed, same reward function, two model checkpoints:
# that is the only way an eval number means anything.

四、对普通开发者意味着什么

先泼一点冷水:标准成立不等于生态成立。AAIF 现在有 10 个项目,你的技术栈大概一个都没用上,这不是问题;问题是别把「中立治理」当成「质量保证」。一个规范的生死取决于实现数量:有多少厂商实现了 Open Responses、有多少环境进了 OpenEnv 的 Hub、有多少运行时嵌了 OpenSandbox,这些数字才决定你换厂商时到底要不要重写。所以现实的动作是三个:第一,把四层画进你的架构图,标清每一层现在用谁;第二,给每一层写一句「如果这家明天涨价或下线,我换成谁」;第三,如果你正在做 Agent 产品,优先把能力层做成可加载的目录,因为这一层最容易迁移,也最容易变成技术债。至于要不要现在就把模型调用层切到 Open Responses——看你的痛点:只接一家,不动;要接三四家并且受够了各家流式事件格式不一致,那就值得。

# 4) OpenSandbox: the execution layer - untrusted code in, artifacts out.
#    Someone else's generated code never runs on your host.
import asyncio
from opensandbox import Sandbox

async def run_generated_code(code: str):
    box = await Sandbox.create("python:3.12-slim")
    try:
        await box.files.write("/tmp/task.py", code)
        result = await box.commands.run("python /tmp/task.py")
        return result.logs.stdout, result.exit_code
    finally:
        await box.destroy()      # never leave a sandbox running

asyncio.run(run_generated_code("print(sum(range(10)))"))

五、代码:四层各一段最小示例

第一段是 skill 的目录形态:一个文件夹,一个带 name 与 description 的 SKILL.md,加上脚本和参考资料。写 skill 的诀窍不是写得多,而是写得让 Agent 一眼知道什么时候该用——description 就是触发条件。第二段是 Open Responses 调用的一层薄封装:请求形状固定,厂商只体现在 baseUrl 和 key 上,这样第二个厂商是一次配置变更,而不是第二份实现。第三段是 OpenEnv 的交互骨架:reset、step、state,同一个环境、同一个种子、同一个奖励函数跑两个 checkpoint,评测数字才有意义。第四段是 OpenSandbox 的执行封装:代码写进沙箱、在沙箱里跑、无论如何 finally 销毁——永远不留一个跑着的沙箱,这是执行层最容易犯的错。第五段不是代码,是一条评审规则:这四个层的每个依赖,都要写清怎么被替换。写不出来的,就别合。

# 5) Neutral governance only exists if you can actually swap pieces.
#    Track which layer each dependency occupies, and require an exit plan.
layers:
  skills:       [agent-skills]
  model_api:    [open-responses]
  environments: [openenv]
  execution:    [opensandbox]

review_rule: |
  A new dependency in these layers must document how it would be replaced
  by a different implementation. No exit plan, no merge. A standard you
  cannot swap out of is just a vendor with better marketing.

六、一年后怎么判断这套标准是真赢了

看四个信号,都不看新闻稿。其一,实现数量:同层的独立实现有没有出现第三、第四个,只有一家的规范是产品文档,不是标准。其二,迁移成本:把一个真实的 Agent 从一个沙箱运行时换到另一个、从一个模型厂商换到另一个,工时是几小时还是几周。其三,治理动作:AAIF 的技术委员会是否真的在否决提案,还是在盖章通过——OpenEnv 的公开技术委员会名单里能看到 Meta-PyTorch、Reflection、Unsloth、Modal、Prime Intellect、Nvidia、Mercor、Fleet AI 与 Hugging Face,这种多方结构才可能否决。其四,你自己的架构:一年后你的能力层是不是目录、执行层是不是沙箱、模型层是不是可替换的封装。前三个不由你决定,第四个完全由你决定。标准给的是机会,不是保障。

代码与协议规范

标准只有落到仓库里才算数

📌 常见问题 FAQ

AAIF 是什么?

Agentic AI Foundation,在 2025 年 12 月以三个项目成立,如今托管 10 个项目,包括 A2A、Agent Router、agentgateway、AGENTS.md、goose、MCP,以及 2026 年 10 月 22 日新增的 Agent Skills、Open Responses、OpenEnv 和 OpenSandbox,均在开放、厂商中立的治理下运作。

Agent Skills 和 MCP 有什么区别?

按公告的描述,Agent Skills 是给 Agent 增加能力与领域知识的开放格式,把指令、脚本与资源打包成可按需加载的单元;MCP 是模型与外部工具、数据之间的连接协议。两者互补:MCP 解决「能连到什么」,Skills 解决「知道怎么做」。二者现在都托管在 AAIF。

Open Responses 和 OpenAI 的 Responses API 是什么关系?

Open Responses 基于 OpenAI 的 Responses API,但被定义为面向多厂商的开放规范:它规定共享 schema、一致的流式事件和可扩展的工具调用,让开发者描述一次即可在多个模型厂商上运行,尽量减少转换工作。

OpenEnv 和 OpenSandbox 是不是重复了?

不重复,位于不同层。OpenEnv 面向训练与评测:提供 Gymnasium 风格的 reset、step、state,以及容器化环境服务和在线环境 Hub。OpenSandbox 面向生产执行:在隔离沙箱里跑 Agent 生成的代码、操作文件与网络,保护宿主机。一个用来练,一个用来跑。

我现在就要迁移到这些标准吗?

不必。判断标准是你的痛点:只接一家模型厂商、只有一个执行环境的情况下,迁移收益很低;但如果你正在多厂商路由、或者被流式事件格式差异反复消耗,那么把调用层收敛到一个共享 schema 是值得的。能力层(skill 目录)最容易先做,也最容易被后来的迁移省下时间。