BaseAI
TypeScript 原生 AI Agent 框架,通过 Pipe+Memory+Tools 组合构
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
TypeScript 原生 AI Agent 框架,通过 Pipe+Memory+Tools 组合构
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:BaseAI 项目图标
想象这样一个场景:你是一名全栈工程师,产品经理要求你在 24 小时内上线一个「文档摘要 Agent」,需要支持流式输出、工具调用(调用内部 API 查数据)和记忆(上下文跨会话保留)。传统做法是翻文档、写 SDK、调 API、躲坑——光是 token 计数和消息格式就够折腾半天。
BaseAI 想解决的问题正是这个:把 AI 应用的「管道搭建」变成一种声明式的开发体验。开发者不需要关心 OpenAI SDK 的具体调用细节,不需要手写函数调用解析器,也不需要为 RAG(检索增强生成)写自定义的数据分块代码——这些在 BaseAI 里都是开箱即用的 primitive(基础组件)。
⚠️ 重要提示:BaseAI 已在 2025 年正式归档(archived),项目维护者明确表示「AI 框架在当前快速迭代的 AI 工程领域反而会成为束缚」,推荐开发者迁移到 Langbase AI Primitives(https://langbase.com/docs)继续使用同类能力。
BaseAI 由 Ahmad Awais(Node.js 领域知名开发者,ESLint 和 VSCode 插件生态的活跃贡献者)及其团队创建。Ahmad 在开源领域有深厚积累,曾主导 Shades of Code 等知名项目。BaseAI 的定位从一开始就非常明确:做面向 Web 开发者的 AI 框架,让 TypeScript 工程师无需切换技术栈就能构建 AI Agent 应用。
框架最早期的版本聚焦于「Pipe」(管道)概念——这是 BaseAI 对 AI Agent 的核心抽象。一个 Pipe 等价于一个带配置的 LLM 实例,包含系统提示词、模型选择(支持 OpenAI / Anthropic / Google Gemini / Cohere / Groq / Mistral / Perplexity / xAI 等多提供商)、工具集、记忆配置和流式响应开关。
BaseAI 采用 pnpm workspace monorepo 结构,整个项目分为三层:
1. @baseai/core(核心逻辑包)
这是整个框架的引擎,体积最轻,仅依赖 openai SDK 和 zod。核心模块包括:
pipes/:Pipe 实例的运行时实现,包含流式响应的 runner(基于 Web Streams API)react/:React Hooks 封装,方便在 React 应用中调用 Pipeutils/ / helpers/:通用工具函数(token 计数、消息格式化等)data/:内置数据处理(PDF 解析、Excel 读取等,对应代码中的 unpdf 和 xlsx 依赖)2. @baseai/baseai(CLI 工具包)
提供命令行交互界面(基于 @clack/prompts,即 Node.js 版本的 chalk-prompts),包含:
npx baseai@latest init:初始化项目结构(创建 baseai/ 目录)npx baseai@latest pipe:交互式创建新 Pipenpx baseai@latest dev 启动3. apps/baseai.dev(文档站)
基于 Next.js + TailwindCSS + shadcn/ui 构建的官方文档网站,部署在 Cloudflare Pages(wrangler.toml)。这也是 BaseAI 开发者体验的重要组成部分——文档质量本身是框架成熟度的体现。
Pipe 是 BaseAI 最核心的抽象。用 TypeScript 代码声明一个 Agent,示例:
const pipeSummary = (): PipeI => ({
name: 'summary',
description: 'AI Summary agent',
model: 'openai:gpt-4o-mini',
stream: true,
store: true, // 自动存储对话历史
moderate: true, // 内容审核
tool_choice: 'auto',
parallel_tool_calls: true,
messages: [{ role: 'system', content: 'You are a helpful AI agent.' }],
memory: [], // RAG 记忆配置
tools: [] // Agent 工具集
});
这种「声明即配置」的模式极大降低了 AI Agent 的开发门槛。开发者不需要了解 Function Calling 的底层协议,不需要手写 JSON schema 验证——zod 已经在框架层面做了类型安全保证。
BaseAI 的 Memory 模块封装了 RAG(检索增强生成)的全链路:
js-tiktoken 做 token 级别切分,保证语义完整性compute-cosine-similarity 做实时向量计算lowdb 做本地 JSON 文件存储(无需额外部署数据库)这意味着开发者可以在本地完成完整的 RAG 开发调试,零配置、零数据库依赖。生产环境则可以对接 Langbase 平台提供的云端存储。
BaseAI 的 Tools 机制让 Agent 可以调用外部 API 和本地函数。框架内建了 @clack/prompts 风格的 CLI 表单工具集,同时也支持接入任意 REST API。对于需要调用内部系统的企业场景,这是一个实用的能力。
TypeScript 原生:整个框架以 TypeScript 编写,类型定义完整(PipeI、ToolI 等接口)。IDE 自动补全体验良好,错误提示精准。对于已有 TypeScript 经验的团队,几乎没有学习曲线。
多模型支持:通过统一接口调用十余家 LLM 提供商,切换模型只需改一个配置项。在做模型对比评测时,这个特性非常实用。
流式响应:基于 Web Streams API 的流式实现,支持 runner.on('content', ...) 事件模式,与现代前端框架(Next.js、Remix 等)的 SSR/CSR 模型无缝衔接。
文档质量高:baseai.dev 文档站结构清晰,有完整的 Quick Start、概念解释和 API 参考。这对一个实验性框架来说尤为重要。
项目已归档:维护者明确表示「框架不是 AI 工程的正确抽象层级」。这意味着 BaseAI 不会再有新功能开发、Bug 修复或安全补丁。对于生产项目,这是重要的风险因素。
CLI 强依赖:Pipe 的创建和管理依赖交互式 CLI,不适合无头(headless)自动化场景。如果你需要程序化地批量创建 Agent,体验会受限。
记忆模块简化:Memory 的向量计算基于本地 cosine similarity,在百万级文档规模下性能会明显下降。官方也建议生产环境使用 Langbase 云端存储。
缺乏生产级部署方案:没有 Dockerfile、没有 docker-compose,monorepo 结构在容器化时需要自行处理 pnpm workspace 的构建逻辑。对于习惯用 Docker 部署的团队,这增加了迁移成本。
BaseAI 代表了 2024-2025 年 AI 开发框架的一个流派:把 AI Agent 抽象为「管道 + 记忆 + 工具」的组合。类似的设计思路在 LangChain、LlamaIndex、Dify、Flowise 等项目中都有体现,但 BaseAI 的差异化在于其 TypeScript-First 定位和 CLI 驱动的开发体验。
框架的「归档决定」本身也值得思考:当 AI 模型和 SDK 的迭代速度超过框架维护速度时,框架反而会成为技术债务的来源。这种「Less is More」的产品哲学,在 AI 工程领域有其合理性——用 primitives(原子能力)组合替代框架约束,给开发者更多选择权。
| 维度 | 详情 |
|---|---|
| 编程语言 | TypeScript(主)+ Node.js |
| 许可证 | Apache-2.0 |
| 核心依赖 | openai SDK、zod、Hono、@clack/prompts |
| 包管理器 | pnpm(workspace monorepo) |
| 最低 Node.js | >= 18 |
| 主要 AI 提供商 | OpenAI / Anthropic / Gemini / Cohere / Groq / Mistral / Perplexity / xAI |
| 存储方案 | 本地 lowdb JSON(开发)/ Langbase 云端(生产) |
| 框架状态 | 已归档(推荐迁移至 Langbase AI Primitives) |