Rivet推出了Sandbox-Agent SDK,旨在解决Agent API碎片化的问题。
Rivet沙箱代理SDK提供了一种通用的API,用于开发各种代理程序。这使得开发 … Read More
Socrates
Rivet沙箱代理SDK提供了一种通用的API,用于开发各种代理程序。这使得开发者无需为每种代理程序重新编写集成代码,就能使用Claude Code、Codex、OpenCode和Amp等不同的代理运行时环境。该SDK有效解决了以往代理API之间的不兼容性问题,以及会话处理和数据流格式方面的差异,这些因素一直以来都使得代理程序的集成变得复杂且难以维护。
根据Rivet的联合创始人兼首席技术官Nathan Flurry的说法,构建代理系统的难点主要在于三个核心问题:API的不兼容性、临时状态的管理,以及不同服务提供商之间的部署差异。
开发代理程序确实非常困难。Claude Code使用一种API,而Codex则使用另一种API;OpenCode和Amp的功能实现方式也各不相同。即使你选择了其中某一种代理程序,也会遇到进程崩溃时会话状态丢失、需要为不同的沙箱服务提供商编写不同的集成代码,以及无法将对话记录数据流式传输回应用程序等问题。
每种代理程序都拥有自己独特的事件格式、会话模型和权限系统。例如,Claude Code通过stdout输出JSONL格式的数据,而Codex则使用JSON-RPC协议,因此开发者必须为这两种代理程序分别编写不同的集成代码。此外,由于Daytona、Vercel和E2B等平台都提供了自己定制的API,部署过程也增加了额外的复杂性。
相比之下,Rivet的沙箱代理SDK允许开发者使用统一的API进行开发,只需通过配置更改就能切换不同的代理程序。以下是一个使用该SDK创建代理会话的简单示例:
import { SandboxAgent } from "sandbox-agent";
const client = await SandboxAgent.start();
await client.createSession("my-session", {
agent: "claude", // 或 "codex", "opencode", "amp"
permissionMode: "auto",
});
for await (const event of client.streamEvents("my-session")) {
console.log(event.type, event.data);
}
该SDK还采用统一的会话格式,所有与代理程序相关的事件——包括会话生命周期、数据流传输、人工干预请求、工具执行结果以及错误信息等——都遵循相同的格式,因此开发者无需为每种代理程序编写自定义的处理逻辑。
在X.com上,Gianfranco P.这样评论道:
这就是编码代理生态系统迫切需要的抽象层。API的不兼容性问题确实严重阻碍了人工智能驱动的开发工具的构建。如果能够通过一次配置更改就能切换不同的代理程序,那么测试哪种模型效果最好就变得非常简单了。
有一位Hacker News的读者询问,是否可以将“Rivet的沙箱代理SDK视为基于HTTP的代理客户端协议”。Flurry澄清说,虽然这种类比在很大程度上是正确的,但“代理客户端协议主要针对编辑器所需的功能提供通用API”,而Rivet的沙箱代理SDK则功能更为全面,其目标是完全实现代理程序的自动化。
Sandbox Agent SDK是一款体积小巧的二进制文件,大小仅为15MB,它是使用Rust语言编写的,且不依赖于任何运行时环境。只要是可以执行Linux二进制文件的系统环境,就可以安装这款SDK,例如Daytona、E2B、Vercel沙盒环境、Docker等等。该项目在GitHub上可供下载。
相关文章
Agoda的API代理功能能够将任何类型的API转换为MCP格式,而且整个转换过程无需编写任何代码,也无需进行任何部署操作。
Agoda的工程师们开发了API Agent——这一无需编写任何代码也无需进行任 … Read More
阅读全文
在代理式机器学习运维中采用分层协议策略,并结合点对点通信与多中心协调机制
关键要点 通过将模型上下文协议(MCP)与代理间通信协议(A2A)相结合,可以构 … Read More
阅读全文
十六名克劳德式的程序员在没有任何人为干预的情况下共同开发出了一款编译器……几乎可以说是这样的。
为了探索自主软件开发的极限,Anthropic的研究员Nicholas Carl … Read More
阅读全文