1. 项目定位与用途
Open Agent SDK 是一个开源的 TypeScript 代理开发工具包,核心定位是提供进程内(in-process)运行的 AI 代理解决方案,无需任何本地 CLI 或子进程依赖。它允许开发者通过简单的 API 创建能够自主执行任务的智能代理,支持与 Anthropic 和 OpenAI 兼容的模型进行交互。主要用途包括构建自动化编码助手、文件操作代理、网络搜索工具以及任何需要 LLM 驱动工具调用的应用场景。项目完全开源(MIT 许可证),并提供 Go 语言版本作为跨语言选择。
2. 解决的问题
传统 Agent SDK 通常依赖本地 CLI 工具或子进程管理,导致部署复杂、环境依赖性强且难以集成到无服务器或容器化环境。Open Agent SDK 通过纯进程内设计消除了这些痛点,代理循环直接在宿主进程中运行,简化了资源管理和错误处理。同时,它作为 claude-agent-sdk 的开源替代,避免了供应商锁定,并提供统一的抽象层支持多种 LLM 提供商(Anthropic 消息 API 和 OpenAI 补全 API),使模型切换更加灵活。
3. 适用场景
该 SDK 适用于多种 AI 代理应用场景:构建能读写文件、执行 shell 命令、搜索网络的自主编码代理;集成自定义业务逻辑工具(如天气查询、计算器)到 LLM 工作流;通过 Model Context Protocol (MCP) 连接外部工具和服务;实现多轮对话与长期会话记忆的交互式应用;以及部署到云平台(AWS Lambda、Vercel)、Docker 容器或 CI/CD 管道的自动化任务。示例代码覆盖了简单查询、多轮对话、自定义工具、MCP 服务器集成和 OpenAI 兼容模型使用等典型用例。
4. 安装方式
安装步骤基于 package.json 和 .env.example 文件:首先使用 npm 安装包:`npm install @codeany/open-agent-sdk`。然后设置环境变量,必需变量为 `CODEANY_API_KEY`(LLM API 密钥)。可选配置包括 `CODEANY_MODEL`(覆盖默认模型)、`CODEANY_BASE_URL`(自定义 API 端点,如第三方代理)和 `CODEANY_API_TYPE`(指定 API 类型,默认为 anthropic-messages)。Node.js 版本要求 >=18.0.0,TypeScript 编译后输出到 dist 目录。仓库未明确给出其他包管理器(如 yarn)的安装命令,但 npm 是官方示例使用的工具。
5. 使用方式
使用方式从 README 和 examples 目录可见:基础流式查询使用 `query` 函数,指定提示词、允许工具列表和权限模式;阻塞式单轮对话使用 `createAgent` 创建代理实例并调用 `prompt` 方法;多轮会话通过重复调用 `agent.prompt` 并管理 `agent.getMessages()` 实现。支持 OpenAI 兼容模型时,设置 `apiType: 'openai-completions'` 并配置 baseURL 和 apiKey。自定义工具可通过 `tool` 函数(基于 Zod schema)或 `defineTool`(低级别)定义,并集成到代理或 MCP 服务器(`createSdkMcpServer`)。内置技能(如 simplify、commit、review)通过 `skills` 模块注册和调用。
6. 实现特点与架构
从源代码结构可见核心架构:providers 目录提供 LLM 提供者抽象,通过工厂函数 `createProvider` 根据 apiType 创建 AnthropicProvider 或 OpenAIProvider;tools 目录包含 30+ 内置工具(如 read、write、bash、web-search),支持按允许/禁用列表过滤;skills 目录实现可复用提示模板系统,包含 5 个捆绑技能(commit、debug、review、simplify、test);mcp 目录集成 Model Context Protocol SDK,支持连接外部 MCP 服务器;agent 和 engine 模块驱动代理循环,协调 LLM 调用与工具执行,支持流式响应。项目严格类型化,使用 Zod 进行输入验证,并依赖 @anthropic-ai/sdk 和 @modelcontextprotocol/sdk。