2026年6月28日 2 分钟阅读

Dinobase 完全指南:用 SQL 统一 AI Agent 的百个数据源,跨应用 JOIN 让准确率从 35% 飙升到 91%

tinyash 0 条评论

你的 AI Agent 能同时回答「上季度哪些客户流失了、使用量在下降、还开着支持工单?」这个问题吗?

传统的 Agent 架构在每个数据源上挂一个 MCP 工具——Stripe 一个、HubSpot 一个、Zendesk 一个。Agent 一个个调用,把分页的 JSON 塞进上下文窗口,再自己拼凑答案。结果呢?准确率 35%,平均耗时 106 秒,每次正确回答要花 $0.445。这不是模型的问题,这是架构的问题。

Dinobase 用一种极简的思路解决了它:把每个数据源变成 SQL Schema,Agent 用一句 SQL 跨所有源 JOIN。101 个连接器覆盖 SaaS API、数据库、文件、MCP Server,数据统一为 Parquet 格式由 DuckDB 引擎查询。在 11 个 LLM 的基准测试中,Dinobase 方案准确率达 91%(提升 56 个百分点),速度快 3 倍,每次正确回答仅 $0.027(便宜 16–22 倍)。

一分钟上手:连接、同步、查询

安装只需一条命令,支持 uv、pip、pipx 三种方式:

uv tool install dinobase

连接你的第一个数据源:

dinobase add stripe --api-key sk_test_...
dinobase add hubspot --api-key pat-...
dinobase sync

同步完成后,直接用 SQL 查询跨源数据:

dinobase query "SELECT s.customer_id, s.status, h.last_contact 
FROM stripe.subscriptions s 
JOIN hubspot.contacts h ON s.customer_id = h.email 
WHERE s.status = 'past_due'"

就这样——Agent 不再需要逐个调用工具,一条 SQL 完成全部工作。

核心架构:为什么 SQL 比工具调用更适合 Agent 查数据

Dinobase 的架构非常清晰:

Agent (Claude, GPT, 等)
    │
    ├── MCP Server (工具调用)
    └── CLI (bash 命令)
            │
        Query Engine (DuckDB SQL)
            │
    ┌───────┴───────┐
    │               │
  crm.*        billing.*
 (已同步)      (已同步)

每个连接器是一个独立的 Schema。API 源同步到 ~/.dinobase/data/ 下的 Parquet 文件;文件型源(CSV、Parquet)通过 DuckDB 视图直接读取,无需复制。跨 Schema 的 JOIN 通过共享字段(如 email、customer_id)完成。

这种架构的优势在于:Agent 的上下文窗口只消耗一次查询的结构化结果,而不是多个工具调用返回的冗余 JSON 数据。基准测试清晰地展示了差距:

指标Dinobase (SQL)逐个 MCP 工具
准确率91%35%
平均延迟34 秒106 秒
每次正确回答成本$0.027$0.445

56 个百分点的准确率差距、3 倍的速度优势、16–22 倍的成本优势——在所有 11 个测试模型上表现一致。

连接器生态:101 个源全覆盖

运行 dinobase sources --available --pretty 查看完整列表。核心类别包括:

  • CRM 与销售:Salesforce、HubSpot、Pipedrive、Attio
  • 支付与计费:Stripe、Paddle、Chargebee、Lemon Squeezy
  • 支持与成功:Zendesk、Intercom、Freshdesk、Gainsight
  • 开发者工具:GitHub、GitLab、Jira、Linear、Sentry
  • 沟通工具:Slack、Discord、Twilio、SendGrid
  • 数据库:Postgres、MySQL、Snowflake、BigQuery、DuckDB、MongoDB 等 16 种
  • 流式数据:Kafka、Kinesis
  • 基础设施:Datadog、PagerDuty、Cloudflare、Vercel

特别值得一提的是 MCP Server 支持——任何 MCP 协议的服务器都可以自动发现只读工具,同步为 SQL 表:

dinobase connector create posthog_mcp --transport stdio \
  --command "npx -y @posthog/mcp-server"
dinobase sync posthog_mcp
dinobase query "SELECT * FROM posthog_mcp.list_projects LIMIT 10"

MCP 查询与 Python SDK:给 Agent 双重访问路径

除了 CLI 的 SQL 查询,Dinobase 还提供 MCP 工具,让 Agent 可以直接发现和调用连接器中的能力:

dinobase mcp servers --pretty

dinobase mcp search "dashboard"

dinobase mcp call posthog_mcp.dashboard-get '{"id": 1118504}'

Python SDK 提供相同的接口:

from dinobase.mcp import call, search, servers

result = call("posthog_mcp.dashboard-get", id=1118504)
matches = search("feature flag")

Agent 还可以通过 exec_code MCP 工具执行 Python 代码链式调用——合并数据、条件判断、批量更新都可以在一个调用中完成:

from dinobase.mcp import call

flags = call("posthog_mcp.list-feature-flags")
for flag in flags:
    if not flag["active"]:
        call("posthog_mcp.update-feature-flag", id=flag["id"], active=True)

语义层:让 Agent 理解数据含义

数据同步前,Dinobase 的可选语义层自动用 Claude 分析每张表——生成表描述、字段说明、PII 标记和关系图谱:

export ANTHROPIC_API_KEY=***

同步后,Agent 可以这样查询表的结构和含义:

dinobase describe stripe.subscriptions --pretty

反向 ETL:Agent 不只是读数据

Dinobase 支持 SQL 写回(Mutations),Agent 修改数据时会经过预览/确认流程,防止误操作:

dinobase query "UPDATE stripe.subscriptions 
SET status = 'canceled' 
WHERE customer_id = 'cus_xxx' AND status = 'past_due'"

dinobase confirm mut_abc123def456

dinobase cancel mut_abc123def456

这种「先预览、再确认」的模式非常适合需要 Agent 执行操作的场景——比如自动取消过期订阅、更新联系人信息。

云存储与框架集成

数据可以存储在 S3、GCS 或 Azure Blob 而非本地磁盘:

dinobase init --storage s3://my-bucket/dinobase/

Dinobase 天然兼容主流 Agent 框架:CrewAI、LangChain / LangGraph、LlamaIndex、Pydantic AI、Vercel AI SDK、Mastra 等,每个框架都有独立的集成文档。

总结

Dinobase 用一种出奇简单的思路解决了 AI Agent 数据查询的结构性难题——用 SQL 的 JOIN 能力替代工具调用的手动拼凑。101 个连接器、内置语义层、MCP 工具支持、反向 ETL,构成了一套完整的 Agent 数据基础设施。如果你正在构建需要跨多个 SaaS 工具查询数据的 Agent 应用,Dinobase 值得一试。

相关链接

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。