






















今天在 GitHub Trending 上看到一个有意思的项目:Agent-Native(by BuilderIO),它提出了一个很有说服力的观点——不要再在"丰富的用户界面"和"自主 Agent"之间做选择题,每一个 Agent-Native 应用两者兼备。
Agent-Native 是一个开源框架,用于构建你真正拥有的 Agentic 应用。它的核心主张是:Agent 和 UI 应该是同一系统的平等公民,每一个操作都双向可用——既可以直接点击,也可以用自然语言告诉 Agent 来执行。
典型使用场景:
Cmd+I,直接对 Agent 说"把这段改写成更专业的语气"——Agent 知道你选中了什么,因为 UI 和 Agent 共享状态/visual-plan slash 命令让 Coding Agent 在写代码前先打开一个可审查的结构化计划文档,而不是输出一堵文字墙核心特性一览:
| 特性 | 说明 |
|---|---|
| Everything syncs | Agent 和 UI 共享一个数据库和状态,任何一方的变更即时反映在另一方 |
| Real-time multiplayer | 基于 CRDT 的实时协作,支持人类和 Agent 同时编辑,含光标、选区等 Presence 信息 |
| Context-aware | Agent 知道用户当前正在看什么、选中了什么 |
| Per-user workspace | Skills、Memory、Instructions、Sub-agents、MCP Servers 均支持按用户隔离,SQL 支持 |
| Agents call agents | 通过 A2A 协议,Agent 之间可以互相发现并跨应用执行操作 |
| Three shapes | 同一套原语可部署为 Headless API / Rich Chat / 完整应用 |
| Apps that improve themselves | Agent 可以自主添加功能、修复 Bug、优化 UI |
| Backend agnostic | 支持任何 Drizzle 兼容的 SQL 数据库,任何 Nitro 兼容的 Host |
Agent-Native 最核心的设计是 defineAction。一个 Action 定义,同时服务于 UI、Agent、HTTP API、MCP、A2A 和 CLI,彻底消除了"前端调接口、Agent 调工具"的重复定义问题。
// 一次定义,多端复用
export default defineAction({
schema: z.object({
emailId: z.string(),
body: z.string(),
}),
run: async ({ emailId, body }) => {
await db.insert(replies).values({ emailId, body });
},
});
这个 Action 会自动获得以下能力:
Agent-Native 的架构设计允许开发者在同一套原语基础上,选择三种不同的产品形态:
| 形态 | 交付形式 | 适用场景 |
|---|---|---|
| Headless | 纯 API,无 UI | 被代码、CLI、MCP、A2A 调用 |
| Rich Chat | 独立或嵌入式聊天界面 | 需要丰富工具结果渲染(表格、图表、审批流)的场景 |
| Whole App | 完整 SaaS/产品 UI | Chat 可置中或移至侧边栏,与 App 状态实时同步 |
协议层(A2A、MCP、MCP Apps、标准远程 MCP OAuth、HTTP/CLI、AG-UI、Claude Agent SDK、Vercel AI SDK 等)都挂在同一个 Action 表面上,不需要为每个功能单独做集成。
Agent-Native 的实时协作基于 CRDT(Conflict-free Replicated Data Type)实现,核心设计要点:
Agent-Native 的 Skills 是可以被 Agent 安装的"能力包",类似 Claude Code 的 slash command 扩展。官方示例:
npx @agent-native/core@latest skills add visual-plan
安装后获得两个 slash 命令:
/visual-plan:Agent 在写代码前先生成结构化、可审查的计划文档(含内联图表、UI 线框图、文件级实现地图、可评论标注)/visual-recap:代码变更后,将 PR 或 git diff 转化为高层视角的可视化回顾(Schema 变更、API 变更、文件变更以 before/after 块渲染,附可分享的审查链接)Skills 支持 app-backed(有后端服务)和 local(纯本地)两种形态。
| 依赖 | 版本要求 |
|---|---|
| Node.js | ≥ 22 |
| 包管理器 | pnpm 10.29.1(项目默认) |
| 数据库 | 任何 Drizzle 支持的 SQL 数据库 |
Agent-Native 采用模板克隆(cloneable)而非脚手架(scaffold)的方式,每个模板都是一个完整、100% 开源的 SaaS 应用。
# 创建多应用工作区(monorepo)
npx @agent-native/core@latest create my-platform
cd my-platform
pnpm install
pnpm dev
CLI 会弹出多选器,可以选择同时包含多个模板应用:
# 只创建单个应用(非 monorepo)
npx @agent-native/core@latest create my-app --standalone --template mail
| 模板 | 描述 | 对标产品 |
|---|---|---|
| Calendar | 事件管理 + Google Calendar 同步 + AI 调度 | Google Calendar, Calendly |
| Content | 本地 MDX 编辑 + Agent 辅助写作 | Obsidian |
| Plans | Visual Plan Mode for Coding Agents | — |
| Slides | React 演示文稿生成与编辑 | Google Slides, Pitch |
| Analytics | 数据分析 + 图表生成 + 可复用 Dashboard | Amplitude, Mixpanel |
| Clips | 屏幕录制 + 自动转录 + Agent 剪辑 | Loom |
默认创建的是多应用工作区,结构如下:
my-platform/
├── package.json # 声明 agent-native.workspaceCore
├── pnpm-workspace.yaml
├── .env # 共享密钥:ANTHROPIC_API_KEY 等
├── packages/
│ └── shared/ # 跨应用共享代码/指令/Skills/Branding
└── apps/
├── mail/
├── calendar/
└── forms/
后续添加新应用:
npx @agent-native/core@latest add-app notes --template content
所有应用共享一个 Origin,路由自动分配:
npx @agent-native/core@latest deploy
# https://your-agents.com/mail/* → mail
# https://your-agents.com/calendar/* → calendar
# https://your-agents.com/forms/* → forms
同一 Origin 部署带来两个关键优势:
@mail 即可调用 Mail 应用的能力Agent-Native 应用可以作为 MCP Server,被 Claude、ChatGPT、Codex、Cursor、OpenCode、GitHub Copilot 等 MCP Host 连接。配置方式见外部 Agent 接入指南。
需要使用 nvm 或 fnm 安装 Node.js 22+:
nvm install 22
nvm use 22
postinstall 脚本失败?postinstall 会构建多个包并重建 better-sqlite3,确保:
pnpm --filter @agent-native/core build 单独构建核心包定位问题开发环境推荐使用 SQLite(零配置),生产环境可选:
在 .env 中配置 DATABASE_URL 即可切换,Drizzle 自动适配。
Action 定义中可以通过 auth 字段控制访问权限,支持按用户、按角色、按 Scope 鉴权。详见 Actions 文档。
Agent-Native 的状态同步基于增量更新和 CRDT 合并,只在状态实际变更时推送。对于大规模实时协作场景,建议:
Agent-Native 解决了一个长期存在的矛盾:用户需要丰富的 UI 来操作和可视化数据,同时希望 AI Agent 能自主执行复杂任务。传统方案要么 Agent 是"对话侧边栏"(无法深度操作 UI 状态),要么 UI 是"Agent 的结果展示器"(用户失去直接操作能力)。
Agent-Native 的解法是让 Agent 和 UI 共享同一套 Action 原语和状态层,从架构层面消除两者的边界。对于想要构建"AI 原生"产品的团队,这是一个值得深入研究的框架。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。