@sandagent/sdk:在 Sandbox 中运行 Claude Agent 并支持 Vercel AI SDK 流式协议

4 阅读2分钟

在开发 AI 应用时,我们通常需要处理多轮对话和上下文管理,这会增加很多复杂性。Claude CodeOpenCode 本身就能够自动管理上下文和记忆,让 agent 记住历史对话和状态。

为了让开发者能够方便、安全地使用这些 agent,我开源了 @sandagent/sdk —— 一个 TypeScript/JavaScript SDK,可以:

  • 在 sandbox 环境中安全运行 agent(本地或云端)
  • 自动管理上下文和记忆,无需开发者手动维护多轮对话
  • 提供 Vercel AI SDK 兼容的流式输出,方便前端或 Node.js 接收消息
  • 可选 React 聊天 Hooks,轻松在前端显示实时对话
  • 将 agent 暴露为 SDK 兼容模型,便于二次集成

功能亮点

  1. 自动管理上下文和记忆的 Agent

    • 集成 Claude Code / OpenCode
    • 聊天时无需手动管理 session 或上下文
  2. 安全 Sandbox

    • 保护 API Key 和数据安全,可在本地或云端运行
  3. 流式消息支持

    • 完全兼容 Vercel AI SDK 流协议,可实时获取 agent 输出
  4. React Hooks 集成

    • 提供聊天 Hooks,可快速在前端显示实时消息
    • 如果希望在 UI 中展示历史聊天,开发者可以自行存储消息

快速上手

安装 SDK:

npm install @sandagent/sdk

示例使用:

import { SandAgentClient } from "@sandagent/sdk";

async function main() {
  const client = new SandAgentClient({ apiKey: process.env.SANDAGENT_API_KEY });

  // 创建 sandbox 会话
  const session = await client.createSession("example-session", {
    model: "claude-code",
  });

  // 流式获取消息
  const stream = client.streamMessages(session.id, { prompt: "帮我总结这个库的功能" });
  for await (const chunk of stream) {
    console.log(chunk);
    // 如果想在前端展示历史聊天,需要自己保存 chunk
  }
}

main().catch(console.error);

这个示例展示了如何启动一个文件系统型 agent,并通过 SDK 的流式接口获取输出。agent 会自动管理上下文和记忆,开发者只需要决定是否存储消息用于展示或日志。


适用场景

  • 快速集成 Claude Code / OpenCode 等 自动管理上下文的 agent
  • 构建 实时聊天 UI 的 React 应用
  • 将 agent 暴露为 SDK 兼容模型,便于二次开发

总结

@sandagent/sdk 的核心价值在于:

  • 零负担启动 agent,不需要手动管理多轮对话和记忆
  • 提供安全 sandboxVercel AI SDK 流式输出React Hooks
  • 开发者只需要决定是否存储消息用于展示或分析
  • 让你专注于业务逻辑和应用开发,而不用操心上下文管理