在开发 AI 应用时,我们通常需要处理多轮对话和上下文管理,这会增加很多复杂性。Claude Code 和 OpenCode 本身就能够自动管理上下文和记忆,让 agent 记住历史对话和状态。
为了让开发者能够方便、安全地使用这些 agent,我开源了 @sandagent/sdk —— 一个 TypeScript/JavaScript SDK,可以:
- 在 sandbox 环境中安全运行 agent(本地或云端)
- 自动管理上下文和记忆,无需开发者手动维护多轮对话
- 提供 Vercel AI SDK 兼容的流式输出,方便前端或 Node.js 接收消息
- 可选 React 聊天 Hooks,轻松在前端显示实时对话
- 将 agent 暴露为 SDK 兼容模型,便于二次集成
功能亮点
-
自动管理上下文和记忆的 Agent
- 集成 Claude Code / OpenCode
- 聊天时无需手动管理 session 或上下文
-
安全 Sandbox
- 保护 API Key 和数据安全,可在本地或云端运行
-
流式消息支持
- 完全兼容 Vercel AI SDK 流协议,可实时获取 agent 输出
-
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,不需要手动管理多轮对话和记忆
- 提供安全 sandbox、Vercel AI SDK 流式输出 和 React Hooks
- 开发者只需要决定是否存储消息用于展示或分析
- 让你专注于业务逻辑和应用开发,而不用操心上下文管理