项目研究:agent-native

> 仓库:<https://github.com/BuilderIO/agent-native>
> 作者:Builder.io(商业公司,做无头 CMS + Figma 转代码)
> Star / Fork:2,296 / 220(截至 2026-06-25)
> 创建:2026-03-12(约 3.5 个月大)
> 语言:TypeScript
> Topics:agents · ai · react
> License:README 自称 MIT,但仓库无 LICENSE 文件(GitHub API 返回 null)⚠️
> 自家站点:<https://agent-native.com>
> 工程规模:114MB、2,012 commits、14 个子包、6 个开箱即用 skills
「这是什么」一句话定性
把"Agent 不再只是个聊天框"这件事变成一套有工程结构的框架——你写一次 action,UI、Agent、HTTP API、MCP、A2A、CLI 六种入口全部能用,让 Agent 像真实员工一样住在你的 SaaS 应用里,而不是挂在你 App 旁边的装饰品。
它不是 Agent SDK,它是"Agent-First 应用操作系统"。
「它怎么转」逻辑全景图

agent-native 运转链
│
├─ 触发层:什么时候会想到用它?
│ ├─ 做了个 SaaS,想让 Agent 能操作它的数据(不是只能问"营业额多少")
│ ├─ 同时想给 AI 编程工具(Cursor / Claude Code / Codex)一套自家项目的 skill
│ ├─ 想给 SaaS 加"AI 协作"功能,但每次新需求都得重写一套工具注册
│ ├─ 内部工具想统一:UI 按钮、Agent tool、API、MCP server 都用同一份逻辑
│ └─ 想用 SQL 数据库作为唯一可信源(不是 vector DB、不是 KV)
│
├─ 核心层:做了什么?
│ │
│ │ ★ 核心抽象:Action
│ │ 一个 defineAction({ schema, run }) 同时驱动:
│ │ ├─ UI 按钮(点击)
│ │ ├─ Agent tool(自然语言)
│ │ ├─ HTTP API(程序调用)
│ │ ├─ MCP server(外部 Agent 接入)
│ │ ├─ A2A(Agent 互相呼叫)
│ │ └─ CLI(脚本/调试)
│ │
│ │ ★ 内置能力(package 一览)
│ │ ├─ core Agent runtime(chat / tools / skills / memory / jobs / handoffs)
│ │ ├─ frame 浏览器外壳(Cmd+I 选中调 Agent、实时多人协作)
│ │ ├─ dispatch 任务调度
│ │ ├─ scheduling 定时/计划任务
│ │ ├─ pinpoint 调试定位(agent 知道你在看哪个元素)
│ │ ├─ embedding 向量嵌入
│ │ ├─ migrate 数据迁移工具
│ │ └─ 多端适配 desktop-app / mobile-app / vscode-extension
│ │
│ │ ★ 开箱即用 skills
│ │ /visual-plan → 写代码前先出可视规划(带 wireframe、文件改动图、批注)
│ │ /visual-recap → PR/diff 转成可视化复盘
│ │ 还有 assets / content / context-xray / design-exploration
│ │
│ │ ★ 集成生态
│ │ ├─ 数据库:任意 Drizzle 支持的 SQL(Postgres/MySQL/SQLite…)
│ │ ├─ 部署:任意 Nitro 兼容主机(Vercel/Netlify/Cloudflare/Node…)
│ │ ├─ 模型:BYO(Anthropic/OpenAI/本地 Ollama…)
│ │ ├─ 编程工具:Claude Code / Codex / Cursor / Pi / OpenCode / Copilot
│ │ └─ 前端:React(先支持)
│ │
│ └─ 自带模板(6+ 个完整 SaaS 模板)
│ Clips(录屏+Agent 修 bug)/ Plans(可视化规划)/ Design(HTML 原型)
│ Content(Obsidian for MDX)/ Slides(演示文稿)/ Analytics(看板)
│
├─ 输出层:怎么判断做对了?
│ ├─ 写一个 action,UI、Agent、API、CLI 四端立刻可用
│ ├─ Agent 能改自己的代码(self-improving)
│ ├─ Agent 和人共同编辑同一个 document(real-time multiplayer)
│ ├─ 数据库是唯一可信源,UI 和 Agent 都基于它
│ └─ 你拥有全部代码(不像 SaaS 工具是租的)
│
└─ 卡点层:新手最容易在哪里翻车?
├─ ❌ 把它当"AI 聊天框"用——你只用了 1/10 的能力
├─ ❌ 期待它替你写前端——它要的是 action 层、不是组件库
├─ ❌ 不懂 Drizzle SQL 就上手——会被 schema 拖住
├─ ❌ 忽视 Nitro 部署假设——某些 edge runtime 不支持全部能力
├─ ❌ 把 skills 当营销噱头——/visual-plan 是真能省 PR review 时间的
└─ ❌ 没看清 License——README 说 MIT,仓库却没 LICENSE 文件
「怎么升级」三段位路线图
├─ 入门段(能用,30 分钟)
│ → 跑通两件事:
│ 1. npx @agent-native/core@latest create my-app
│ → 选 Headless → 跑通 CLI 调用第一个 action
│ 2. npx @agent-native/core@latest skills add visual-plan
│ → 在你的 Claude Code / Cursor 里体验 /visual-plan
│ → 验收:写一个 defineAction,UI 按钮能点、Agent 能调、CLI 也能跑
│
├─ 进阶段(用好,1–3 天)
│ → 需要补 3 个认知:
│ 1. action 是"原子操作"——所有 UI / Agent / API 都从这里长出来
│ → 先把业务拆成 action,再让 Agent 反向消费它们
│ 2. state 一律走 SQL——不要在 Agent 里塞 JSON KV
│ → Drizzle schema 定义即契约
│ 3. skills 是"项目记忆"——不是 prompt 模板
│ → 写自己的 skill,让 Agent 记住你们项目的代码规范
│ → 习惯:每加一个 UI 按钮前,先写 action;再让 UI/Agent/API 共用
│
└─ 高手段(用活,做自己的)
→ 高手和普通人的差距在三件事:
1. 让 Agent 改自己的代码——self-improving 模式
业务跑通后,让 Agent 读 issues 自己提 PR
2. 多 Agent 协作——A2A 协议 + handoffs
客服 Agent → 转人工 Agent → 转账单 Agent,全靠 action 互联
3. 把 skills 当作"团队 Onboarding 手册"
新人入职不是读 wiki,是 npx 一行装上所有项目经验
→ 进阶动作:把你公司的"知识资产"沉淀为 skill 仓库
像 document 一样每个新项目装一份
「能用在哪」场景迁移
底层逻辑:把"用户界面"和"Agent 能力"统一在同一个原子上(action),让任何 UI 改动天然就是 Agent 能力的扩展。
这个模式可以平移到任何"Agent 要深度融入业务系统"的场景:
场景 1:企业内部管理系统
- ERP / CRM 的每个按钮都是 action → Agent 就能"代你点"
- 迁移注意:权限校验必须放进 action 内部,不能依赖 UI 隐藏;Agent 看不见禁用按钮
场景 2:SaaS 的"AI 增值功能"
- 用户原来点 5 次按钮填表,Agent 一次对话搞定
- 不需要再写一套"AI 专用的接口",原 action 直接暴露
- 迁移注意:rate-limit 一定要区分"人点击"和"Agent 调用",防止 Agent 误操作刷爆
场景 3:AI 编程工作流
- /visual-plan 这种 skill 让 Agent 在写代码之前先出可视规划
- PR review 变成看 wireframe 而不是看 diff
- 迁移注意:skill 是项目级的,不要做成人人通用——每个 monorepo 装自己那份
部署这个项目的收益 & 风险

好处
- ✅ 统一抽象:一个 action 6 种入口,DRY 做到极致
- ✅ 自带 observability / memory / jobs:开箱即用,不重复造轮子
- ✅ 商业公司背书:Builder.io 有 5 个万 Star 仓库(mitosis 13.8k、qwik-react 8.7k…),不会烂尾
- ✅ 完整 SaaS 模板:6 个完整可商用的应用直接克隆,节省数月原型工作
- ✅ SQL 一等公民:数据可控、可审计、不被框架绑架
注意事项
- ⚠️ License 存疑:README 说 MIT,但 GitHub 仓库无 LICENSE 文件。商用前需向 Builder.io 书面确认
- ⚠️ 生态锁定 Builder.io:核心 API 是 Builder.io 设计,未来迁移成本高
- ⚠️ 学习曲线陡:必须懂 Drizzle(SQL 框架)+ Nitro(部署框架)+ Action schema 三件套
- ⚠️ React-only:Vue/Svelte 暂时不支持,要等社区
- ⚠️ 3.5 个月项目:API 还在快速演进,breaking change 风险高
风险
- 🚨 Vendor 风险:框架高度抽象于 Builder.io 的世界观,如果公司调整方向,迁移成本巨大
- 🚨 复杂度风险:114MB、2,012 commits、14 子包——一个"hello world"项目会很大
- 🚨 License 风险:LICENSE 文件缺失是事实,不能仅凭 README 一行字当合同
- 🚨 Skill 质量风险:开箱即用的 skills 也许够 demo,但生产环境可能需要大量调优
- 🚨 商业化压力:Builder.io 是商业公司,未来可能收费或限制某些能力
一句话灵魂
agent-native 把"Agent 是 SaaS 的一部分"这件事,写进了一个 action 抽象里——你不写 Agent 接口,你写业务 action;Agent 能力是免费的副产品。
如果说 LangChain 是"Agent 的工具箱",agent-native 是"Agent 住进你 App 的购房合同"——区别是后者让你搬家后还能继续住(own the code),而不是被房东涨租。