从不浪费时间的人,没有工夫抱怨时间不够。——杰弗逊
Tambo AI:让 React 界面“根据对话自动长出来”的 Generative UI SDK
如果你的用户不该学会使用你的应用,而是应用该学会理解用户,那么 Tambo 的理念会让你眼前一亮。Tambo 是一套专为 React 打造的“Generative UI” SDK:你注册可用的组件,AI 会在自然语言对话中决定渲染哪些组件、以什么参数渲染。对新手和高手呈现出不同的界面,对“我想要的就是那张按地区分组的上季度销售图”这类自然指令,自动生成正确的交互与视图。
- 仓库:tambo-ai/tambo
- 官网与文档:tambo.co · docs.tambo.co
- 包:@tambo-ai/react
- 许可:MIT(部分工作空间为 Apache-2.0,见各自 LICENSE/NOTICE)
它是什么
- 一套针对 React 的生成式界面 SDK
- 让你“注册”组件及其 props schema,然后由 AI 决定何时以及如何渲染
- 支持一次性渲染的“生成式组件”和可持续交互更新的“可交互组件”
- 通过 Provider、Hooks、MCP 集成、Local tools 等机制形成完整的开发体验
为什么这么做
- 大多数软件都以“统一心智模型”来组织界面,但并不适合每个用户
- 对话式 UI 让用户更自然地表达需求;AI 把需求翻译成界面和操作
- 初学者与资深用户可以看到不同的东西;流程不必“点到第 5 步”,而是“直接说出你要的”
快速上手:创建项目与启动
1 | |
- Tambo Cloud:免费托管后端
- Self-hosted:在你自己的基础设施上运行(MIT)
也可以直接使用官方模板与组件库:
工作原理:两类组件
- 生成式组件(Generative):对消息作出一次性响应,渲染图表、摘要、可视化等
- 可交互组件(Interactable):随用户迭代更新,持久化并按 ID 管理(购物车、表格、任务板等)
注册组件:用 Zod 定义 props
1 | |
同一个项目里既可以有生成式组件,也可以把组件包装为可交互组件:
1 | |
文档:
- 生成式组件定义:Defining Tambo Components
- 可交互组件:Interactable Components
Provider:把能力注入到 App
1 | |
如果你的 App 有登录态,可以把用户的 userToken(OAuth access token)传给 Provider,实现端到端鉴权与身份关联。文档:Provider Options
Hooks:消息、线程与流状态
- 输入与发送:
useTamboThreadInput - 线程管理与流式返回:
useTamboThread - 流状态与 props 渲染状态:
useTamboStreamStatus
示例:
1 | |
1 | |
1 | |
文档:
- 线程与消息:Message Threads
- 组件流状态:Streaming Status
MCP 集成:把外部系统接进来
原生支持 MCP 协议(工具、提示、引导、采样等),可以连接 Linear、Slack、数据库或自定义 MCP 服务器。
1 | |
本地工具:在浏览器里执行
定义浏览器侧可执行的工具(DOM、鉴权请求、React 状态访问等),让 AI 能调用它们:
1 | |
文档:Adding Tools
Context、Auth 与 Suggestions
给 AI 提供额外上下文(用户状态、应用设置、当前页面等),以及基于身份的鉴权;还可启用建议(Suggestions)功能。
1 | |
1 | |
文档:
- 额外上下文:Additional Context
- 用户鉴权:User Authentication
- 建议功能:Suggestions
支持的 LLM 提供商
OpenAI、Anthropic、Cerebras、Google Gemini、Mistral,以及所有 OpenAI 兼容提供商。完整列表见:docs.tambo.co/models
对比同类(简述)
- 组件选择:Tambo 由 AI 决定渲染哪些组件;许多 SDK 仍需手动映射工具与组件
- MCP:Tambo 内置支持;部分 SDK 处于实验或新近支持状态
- 可交互持久化:Tambo 支持;部分产品侧重纯聊天或无状态组件
- 客户端工具执行:Tambo 声明式自动;有的需要手工 onToolCall 或仅限 Agent 侧
- 自托管与云:Tambo SDK+后端开源(MIT),同时提供 Tambo Cloud
定价与部署
-
Self-hosted:永久免费,MIT 许可;5 分钟 Docker 初始化
1
2npx tambo init
# Select "Self-hosted" -
Tambo Cloud:免费层起步,然后按量付费
- Free:每月 10,000 条消息
- Growth:$25/月,200k 消息 + 邮件支持
- Enterprise:自定义量、SLA、SOC 2、HIPAA
详见:Pricing
开发者体验与仓库结构
-
要求:Node.js 22+、npm 11+,可选 Docker
-
运行:
1
2
3
4git clone https://github.com/tambo-ai/tambo.git
cd tambo
npm install
npm run dev # apps/web + apps/api -
常用命令:
1
2
3
4npm run build
npm run lint # lint:fix 可自动修复
npm run check-types
npm test -
数据库(Docker):
1
2
3npm run db:generate
npm run db:migrate
npm run db:studio -
结构:
- apps/:Web(Next.js)、API(NestJS)、MCP 服务
- packages/:共享代码(Drizzle schema、LLM helpers、工具等)
- 根目录:react-sdk/、cli/、showcase/、docs/、create-tambo-app/
-
CLI 独立文档(tambo-cli):支持
init、add、update等命令,能自动把组件安装到你的 Next.js 项目里
详见:cli/README.md
Devcontainer 与并行工作流(加分项)
- 支持用 git worktree 为每个分支创建独立 devcontainer,适合多 Agent/多开发者并行
- 端口自动处理(8260–8263 及冲突转移),容器内的 Web/API/Docs 可独立启动
- 容器自动挂载宿主的认证:SSH、Git、GitHub CLI、Claude Code 等,减少重复登录
详见:.devcontainer/README.md
适合用在什么场景
- 面向终端用户的“对话式导航 + 生成式界面”,少点击更直达
- 数据分析与可视化:让用户用自然语言请求图表、分组、筛选
- 管理工具与仪表盘:持久交互组件(任务板、笔记、购物车)按需生成与更新
- 与第三方系统整合(Linear、Slack、DB、文件系统):用 MCP 统一接入数据面
- 自托管或云端部署都可;本地与生产统一 SDK
小结
Tambo 并不是“另一套聊天组件”,而是把“界面即功能”的思想往前推了一步:你把可用的 UI 能力注册清楚,AI 在对话中自动选择合适的组件与参数,形成对任务的即时界面响应。生成式组件让结果即时可视化,可交互组件让任务持续演进。与 MCP、Local Tools、Context/Auth、Suggestions 合作,就成了让产品“学会用户”的完整工具链。
想试试?用 CLI 初始化一个项目,注册几个组件,把 Provider 套上,再用 Hooks 提交一条“自然语言需求”。你会看到界面从对话里“长出来”。