内容
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./apps/busabase/public/icon-dark.svg" />
<img src="./apps/busabase/public/icon.svg" alt="Busabase" width="96" height="96" />
</picture>
<h1>Busabase</h1>
<p><b>首款本地优先的 AI 生成内容、商业数据、数据集及多模态知识审查数据库。</b><br/>
AI 可以生成无尽的数据 — Busabase 是您 <b>审查、批准和合并</b> 可信数据的地方。</p>
<p>
<a href="./apps/busabase/docs/README_zh-CN.md">中文</a> ·
<a href="./apps/busabase/docs/README_ja.md">日本語</a> ·
<a href="./apps/busabase/docs/README_ko.md">한국어</a>
</p>
<p>
<a href="https://www.npmjs.com/package/busabase"><img src="https://img.shields.io/npm/v/busabase?logo=npm&label=busabase&color=3fb950" alt="npm busabase" /></a>
<a href="https://www.npmjs.com/package/busabase-cli"><img src="https://img.shields.io/npm/v/busabase-cli?logo=npm&label=busabase-cli&color=3fb950" alt="npm busabase-cli" /></a>
<a href="https://hub.docker.com/r/busabase/busabase"><img src="https://img.shields.io/docker/image-size/busabase/busabase/latest?logo=docker&label=docker" alt="Docker image" /></a>
<a href="https://busabase.com/download"><img src="https://img.shields.io/badge/Desktop-Download-1f6feb?logo=tauri&logoColor=white" alt="Download Busabase Desktop" /></a>
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License MIT" /></a>
<a href="https://github.com/busabase/busabase/stargazers"><img src="https://img.shields.io/github/stars/busabase/busabase?style=social" alt="GitHub stars" /></a>
</p>
<p>
<a href="#quick-start"><b>快速开始</b></a> ·
<a href="#screenshots">截图</a> ·
<a href="#use-cases">使用场景</a> ·
<a href="#api-surface">API</a> ·
<a href="#how-busabase-compares">比较</a> ·
<a href="#roadmap">路线图</a>
</p>
<br/>
<a href="#screenshots"><img src="./apps/busabase/public/assets/readme/busabase-hero.gif" alt="Busabase — review AI-proposed changes before they become trusted data" width="100%" /></a>
</div>
Busabase 是一个 **免费开源**(遵循 [MIT](https://opensource.org/licenses/MIT) 许可)的应用程序,旨在解决一个简单的问题:
**AI 可以生成无尽的内容和数据,但仍需要有人决定哪些是足够好的可信数据。**
Busabase 为此提供了一个审批流程 —— 一个审批优先的数据库和知识库,适用于 AI 代理。它是一个私有的 CMS、项目数据库和结构化真实来源,内置变更请求、操作、评论、审计轨迹和用于应用程序和 AI 代理的简单 API。

**免费开源。本地优先。审查优先。代理就绪。**
您可以自行运行 —— 无需 SaaS,无需账户,无需供应商。您的数据永远不必离开您的机器。
## 快速开始
选择您喜欢的方式 —— 它们都能为您提供相同的审查优先数据库。
### ⚡ 立即运行 — 一个命令,零设置
```bash
npx busabase server
```
打开 **http://localhost:15419/dashboard/inbox**。这就是整个设置:一个完整的本地实例,带有**嵌入式 PGlite 和本地文件存储** —— 无需运行数据库,无需配置。Busabase 在首次请求时播种示例库、记录和变更请求,以便您立即检查审查工作流。
```bash
npm i -g busabase # 安装一次,然后直接运行:busabase server
npx busabase-cli --help # 独立的 API 客户端(与任何 busabase 服务器通信)
```
### 🐳 Docker
```bash
docker run --rm -p 3000:3000 busabase/busabase
```
打开 **http://localhost:3000/dashboard/inbox**。默认为本地 PGlite 持久性 —— 无需外部服务。镜像发布到 Docker Hub (`busabase/busabase`) 和 GHCR (`ghcr.io/busabase/busabase`)。
### 🖥️ 桌面应用程序
喜欢原生应用程序吗?在 **<a href="https://busabase.com/download">busabase.com/download</a>** 下载 Busabase,支持 **macOS、Windows 和 Linux**。完全原生,完全离线 —— 所有数据都保留在您的计算机上,永远不会在线。
### 🔧 从源码编译
```bash
pnpm install
cp apps/busabase/.env.example apps/busabase/.env
pnpm --filter busabase dev
```
打开 **http://localhost:15419/dashboard/inbox**。本地启动检查首先运行:如果缺少依赖项、`PG_DATABASE_URL` 或 `STORAGE_URL`,则会失败,并显示设置消息而不是空白仪表盘。默认 `.env.example` 在 `.data/busabase` 下使用 PGlite,在 `.data/busabase-storage` 下使用本地文件存储。
---
**启动后您将获得:**
- 一个用于审查变更请求的收件箱
- 示例库和记录
- 记录级历史和审计轨迹
- `.data/busabase` 下的本地 PGlite 持久性
- 用于应用程序、工作流和 AI 代理的 REST API 端点
## 截图
| | |
| :---: | :---: |
|  |  |
| 带有待处理变更请求、审查者状态和批准操作的收件箱 | 代理提出的更改在合并前,包括字段差异和审查操作 |
|  |  |
| 带有字段、评论、审查历史和血统的记录详情页 | 显示结构化记录和丰富字段的库表 |
|  |  |
| 库中的记录 —— 类型字段、丰富的值和一目了然的审批状态 | 显示库中记录之间的关系的图谱视图 |
## 为什么存在
大多数数据库擅长存储数据。大多数 CMS 工具擅长发布内容。大多数代码平台擅长审查文件。
Busabase 适用于 AI 密集型团队现在需要的中间层:
| 需求 | Busabase 提供 |
| --- | --- |
| AI 起草博客文章 | 在发布前审查它 |
| 人类清理 QA 数据 | 在训练或评估前批准高质量的示例 |
| 代理标记视频 | 在进入数据集之前检查多模态元数据 |
| 代理更新项目或 ERP 数据 | 在记录系统更改前,人类审查者批准更改 |
| 本地 AI 工具需要内存 | 通过批准的知识公开私有、审计的 API |
| 数据更改应触发工作 | 在批准合并后触发 webhook、自动化或外部代理 |
| 有人更改记录 | 跟踪谁提出、审查、合并、查看或删除它 |
它默认优先审批,由设计支持代理,仍然足够小,可以本地运行。
## 概念
核心概念:
| 概念 | 含义 |
| --- | --- |
| 库 | 类似表格的记录集合 |
| 字段 | 库上的类型属性 |
| 记录 | 批准的数据行 |
| 变更请求 | 可审查的更改提案 |
| 操作 | 变更请求内的创建、更新、删除或变体操作 |
| 提交 | 操作背后的不可变数据快照 |
| 评论 | 附加到记录、变更请求、操作或提交的讨论 |
| 审计事件 | 重要读取、写入、审查、合并和删除的轨迹 |
## 使用场景
任何代理可以编写的库 —— 审查优先。人们在 Busabase 上构建的几个用例:
| 使用场景 | 您审查的内容 |
| --- | --- |
| **[Next.js 博客 CMS](./apps/busabase/docs/use-cases.md#blog-cms-for-nextjs)** | AI 起草的帖子,在发布前审查 |
| **[SEO 登陆页面](./apps/busabase/docs/use-cases.md#seo-landing-pages)** | AI 生成的登陆页面,在上线前批准 |
| **[配置管理](./apps/busabase/docs/use-cases.md#configuration-management)** | 服务 YAML/JSON 在部署前审查 |
| **[财务和发票审查](./apps/busabase/docs/use-cases.md#finance-and-invoice-review)** | 自动财务条目由人类签署 |
| **[数据管理和 CRM 卫生](./apps/busabase/docs/use-cases.md#data-stewardship-and-crm-hygiene)** | 审查队列以保持业务数据清洁 |
| **[合规性和审计检查清单](./apps/busabase/docs/use-cases.md#compliance-and-audit-checklists)** | 具有证据和审计轨迹的定期检查 |
| **[QA 和训练数据集](./apps/busabase/docs/use-cases.md#high-quality-qa-and-training-datasets)** | 用于训练/评估/RAG 的精选批准示例 |
| **[多模态内容审查](./apps/busabase/docs/use-cases.md#multimodal-content-review)** | 图像/音频/视频元数据先审查 |
| **[市场情报](./apps/busabase/docs/use-cases.md#market-intelligence-and-research-monitoring)** | 人工审查的研究和监控源 |
| **[内容工厂流水线](./apps/busabase/docs/use-cases.md#content-factory-pipeline)** | 想法 → 草稿 → 批准的资产,端到端 |
| **[数据集标注流水线](./apps/busabase/docs/use-cases.md#dataset-labeling-pipeline)** | 代理优先标注,人类审查 |
| **[项目管理和 ERP](./apps/busabase/docs/use-cases.md#approval-based-project-management-and-erp)** | 审批门控的运营数据更改 |
| **[规范记录系统](./apps/busabase/docs/use-cases.md#canonical-system-of-record)** | 批准的规范数据单一来源 |
| **[本地个人知识库](./apps/busabase/docs/use-cases.md#local-personal-knowledge-base)** | 私有、审计的数据库,用于您和您的 AI 工具 |
| **[验证例行工作](./apps/busabase/docs/use-cases.md#verified-routine-work)** | 已完成、审查和记录的例行工作 |
| **[字段类型实验室](./apps/busabase/docs/use-cases.md#field-type-lab)** | 每个字段类型和审查操作在一个本地场景中 |
**[→ 查看所有 16 个使用场景,附截图](./apps/busabase/docs/use-cases.md)**
## 自动化和 ACP 代理
Busabase 可以成为数据工作流的事件源。
在审查过程中,人类可以要求兼容 ACP 的代理在合并前改进变更请求:
- 清洁字段
- 丰富缺失的元数据
- 规范化类别
- 重写草稿
- 生成摘要或标签
- 检查策略、质量或一致性
合并后,批准的数据可以触发下游自动化:
- 发送 webhook
- 更新外部系统
- 通知审查者或频道
- 刷新 Next.js 站点
- 启动 ETL 或数据集导出
- 调用外部 ACP 代理继续工作流
这使得 Busabase 不仅仅是一个存储数据的地方。它成为人类、应用程序和代理之间的受控交接点。
## 本地代理操作您的知识库
Busabase 旨在由已经在您的计算机上运行的代理驱动。
由于 API 是本地且受信任的,您可以直接指向您的 Busabase 实例的编码和自动化代理 —— **OpenClaw、Codex、Claude Code、Hermes** 和类似的本地技能。他们可以读取批准的知识,在其上运行技能,并将更改提案作为变更请求。
Busabase 可以做什么:
- 读取您的私有、批准的知识作为基础上下文
- 运行查询或总结您库的本地技能
- 提出新的记录或编辑作为可审查的变更请求
- 在无控制的写入访问的情况下丰富、清理或标记数据
- 在任何内容成为受信任之前等待人类批准
模式很简单:
```txt
本地代理读取批准的知识 ->
提出变更请求 ->
您在自己的机器上审查 ->
批准 -> 合并到您的本地真实来源
```
这将循环完全保留在您的硬件上。代理获得一个真实的结构化内存来对抗,您保留对成为受信任内容的控制权 —— 您的任何数据都不需要为此离开您的计算机。
> 如果 OpenClaw 是 **代理** 在您的本地计算机上的革命,那么 BusaBase 就是 **数据库和知识库** 在您的本地计算机上的革命。
## Busabase 关心的问题
Busabase 不仅仅是询问“行中的最新值是什么?”
它还询问:
- 谁提出了这些数据?
- 为什么应该更改?
- 哪些字段更改了?
- 这是创建、更新、删除还是变体操作?
- AI 代理在接受之前产生了什么?
- 谁审查了代理输出?
- 人类是否要求代理修订?
- 提案被合并还是拒绝了?
- 合并后运行了什么自动化?
- 我们可以稍后跟踪决策吗?
这使得 Busabase 对 AI 代理工作特别有用。代理可以生成草稿、标签、汇总、协调或操作更新,但 Busabase 为这些输出提供了一个预览层,然后它们成为受信任的数据。
## Busabase 比较
Busabase 与熟悉的工具重叠,但它针对不同的工作进行了优化:**AI 代理编写数据,人类在信任之前批准。**
| 工具 | 擅长 | Busabase 添加的内容 |
| --- | --- | --- |
| [Airtable](https://www.airtable.com/) | 灵活的云表格,用于人类团队 | 本地所有权 + 审批门控:代理提出,人类批准,具有差异预览、历史和审计轨迹 |
| [APITable](https://github.com/apitable/apitable) | 开源、API-first Airtable 替代品 | API-first **加** 审查层,介于提案和受信任记录之间 |
| [NocoDB](https://nocodb.com/) | SQL 数据库上的电子表格 UI | 每个写入都是可审查的变更请求,而不是直接行编辑 |
| [Baserow](https://baserow.io/) | 自托管的无代码数据库 | 变更请求、审计轨迹和代理钩子 |
| [Notion](https://www.notion.com/) | 云文档、数据库和团队知识 | 一个纯粹的本地结构化知识库,具有内置的审查流程 - 无供应商云 |
| [Confluence](https://www.atlassian.com/software/confluence) / [Lark](https://www.larksuite.com/en_sg/) | 供应商托管的团队 wiki | 在您的机器上运行;数据永远不会离开它 |
| [Obsidian](https://obsidian.md/) | 本地 Markdown 笔记,用于人类本地笔记库 | 本地 - 但结构化数据库,用于代理:变更请求、审批和审计,而不是自由形式笔记 |
| [PostgreSQL](https://www.postgresql.org/) | 可靠的存储和查询 | 人类可读的变更请求、审查、评论和自动化围绕每个更改 |
| [GitHub Pull Requests](https://docs.github.com/en/pull-requests) | 文件差异的代码审查 | 基于记录的内容、数据集、CRM 行、任务和多模态数据的审查 |
大多数这些假设编写者是受信任的(或您编写的脚本)。Busabase 假设编写者通常是 **AI 代理** - 而不是每个代理编写的内容都应该自动信任。所以它添加了:
- **提案层** - 代理提交变更请求而不是直接编辑行。
- **合并前的预览** - 代理生成的内容的预览,字段字段。
- **修订循环** - 询问代理修复提案之前接受的内容。
- **审计轨迹** - 每个读取、写入、审查、合并和删除都是可追踪的。
- **本地受信任的 API** - 为您的机器构建,用于代理。```txt
Airtable / APITable:数据库供人编辑。
Busabase:数据库供代理提出,人类批准。```
**本地优先,不基于云。** 默认情况下,您的数据保留在您的机器或私有网络上。需要远程或代理访问?打开一个 **隧道** 以公开选定的端点,而不是复制所有内容到中央云数据库。自托管、免费和开源。## 功能
- 本地优先的开源应用
- 审查工作流
- 变更请求,支持多种操作
- 创建、更新、删除和变体操作
- 变更提交的历史记录
- 记录和审查对象上的评论
- 读取和写入的审计事件
- Markdown、HTML、链接、文件、关系字段和丰富的字段类型
- 可搜索的索引字段值
- 用于应用、工作流和 AI 代理的 REST API
- 代理提出变更的人机协作
- 变更合并前的 AI 代理输出预览
- 批准的运营记录的单一真实来源
- 批准的数据变更后的自动化触发器
- 审查和合并后的 ACP 代理钩子
- 本地 PGlite 持久化
- 友好的 Docker 部署
## API 表面
Busabase 公开了一个简单的本地 REST API,用于仪表盘客户端、应用程序和 AI 代理。
典型资源包括:
- 库和节点
- 记录
- 搜索
- 评论
- 变更请求
- 审查
- 合并操作
- 活动和审计事件
API 设计用于在开源版本中进行本地或私有网络使用。
### 代理提案示例
这是核心代理循环:读取模式,提交提案,在 UI 中审查,然后在合并后读取规范记录。
```bash
# 1. 查找 Blog Posts 库。
BLOG_BASE_ID=$(curl -s http://localhost:15419/api/v1/bases \
| jq -r '.[] | select(.slug == "blog") | .id')
# 2. 让代理提出一个新记录。 这会创建一个变更请求,而不是规范数据。
CHANGE_REQUEST_ID=$(curl -s -X POST \
"http://localhost:15419/api/v1/bases/$BLOG_BASE_ID/change-requests" \
-H 'content-type: application/json' \
-d '{
"fields": {
"title": "代理市场笔记",
"body": "由代理起草,等待人类审查。",
"channel": "blog"
},
"message": "代理提出了市场笔记",
"submittedBy": "local-agent"
}' | jq -r '.id')
# 3. 在仪表盘中审查它。
echo "Review: http://localhost:15419/dashboard/inbox/$CHANGE_REQUEST_ID"
```
# 4. 可选自动化:合并并读取规范记录。
```bash
curl -s -X POST "http://localhost:15419/api/v1/change-requests/$CHANGE_REQUEST_ID/merge" \
| jq '.record.id, .record.headCommit.fields.title'
curl -s "http://localhost:15419/api/v1/records?baseId=$BLOG_BASE_ID" \
| jq '.[].headCommit.fields.title'
```
有关可供机器读取的端点文档,请打开:
```txt
http://localhost:15419/api/v1/doc
```
## 何时使用 Busabase
在以下情况下使用 Busabase:
- 人工智能生成内容,但人类审批后内容才被视为可信。
- 人工智能代理提出更新建议,但人类保留最终决策权。
- 您需要基于审批的项目管理、客户关系管理、 企业资源规划或运营数据库。
- 您有常规的运营工作需要完成、审查和记录。
- 您的团队需要具有审查历史的高质量数据集。
- 您需要人类在人工智能代理输出成为可信记录之前进行预览。
- 您想要一个内容管理系統(CMS),将内容视为结构化记录。
- 您需要一个私有本地数据库,人工智能可以安全读取。
- 您希望数据保留在不同人员的本地工作空间中,并在需要时进行选择性共享。
- 您需要一个单一的、权威的业务数据来源。
- 您希望批准的数据更改能够触发网络钩子、工作流或外部代理。
- 您希望代理帮助在人类批准之前完善变更请求。
- 您的数据是多模态的,而不仅仅是纯文本行。
- 您关心谁查看、更改、审查、合并或删除了数据。
不要将 Busabase 作为您的主要代码审查系统。对于代码,请使用 GitHub 拉取请求。
## 路线图
Busabase 从本地开始,然后向外扩展。
### 本地 Busabase
开源版本在本地运行,并在您的控制下存储数据。
在以下情况下使用它:
- 您的数据应保存在本地机器上。
- 人工智能代理需要一个私有的、批准后的知识 API。
- 个人或团队工作流程需要审查和审计跟踪。
- 您需要一个可以在没有托管云帐户的情况下工作的数据库。
### Busabase 隧道
未来的隧道模式可以将本地的 Busabase 实例暴露给公共互联网或受控网络,而无需将所有数据移动到中央云数据库中。
在以下情况下使用它:
- 外部人工智能代理需要调用您的本地 Busabase API。
- 协作者需要对选定的本地数据进行临时访问。
- 您的公司希望在不同人员的机器上分布式数据所有权。
- 数据应保持本地,但某些批准的记录或端点应可访问。
这与 Notion 或 Airtable 等云优先工具不同。Busabase 可以让数据与拥有它的个人或团队保持分布式,同时提供受控的 API 访问、审查、自动化和审计跟踪。
## 开源形态
本地开源版本故意保持小巧:
- 默认无登录
- 一个本地工作区
- 应用本地 Drizzle 架构
- `.data/busabase` 下的 PGlite 持久性
- `/dashboard/inbox` 仪表盘
- 用于本地应用和受信任代理的 REST API
目标是创建一个任何人都可以运行的私有、可审查的数据工作空间。
## 安全注意事项
Busabase 设计用于受信任的本地或私有网络部署。
在没有反向代理、令牌层或其他访问控制层的情况下,请勿将写入端点暴露给公共互联网。
## 贡献
Busabase 在开放状态下构建,欢迎错误报告、功能想法、文档和拉取请求。
```bash
pnpm install
pnpm --filter busabase dev # http://localhost:15419/dashboard/inbox
```
在发送拉取请求之前,请运行 `pnpm --filter busabase typecheck && pnpm --filter busabase lint`。发现了错误或有想法?[打开一个问题](https://github.com/busabase/busabase/issues) 或开始一个[讨论](https://github.com/busabase/busabase/discussions)。
## 社区
- ⭐ **如果 Busabase 对您有帮助,请给仓库加星** - 这真的有助于其他人找到它。
- 🐛 [问题](https://github.com/busabase/busabase/issues) · 💬 [讨论](https://github.com/busabase/busabase/discussions) · 🌐 [busabase.com](https://busabase.com)
## 星级历史
<a href="https://star-history.com/#busabase/busabase&Date">
<img src="https://api.star-history.com/svg?repos=busabase/busabase&type=Date" alt="Busabase 星级历史" width="600" />
</a>
## 许可证
[MIT](./LICENSE) © Busabase
连接信息
猜你喜欢
暂无推荐服务器