ByteNoteByteNote
当 Agent 和界面共用同一套"动作":agent-native 框架解析

字节笔记本

2026年9月24日 · 约 4 分钟读完

当 Agent 和界面共用同一套"动作":agent-native 框架解析

API中转
¥120

做 AI 产品的团队大多遇到过同一个别扭:Agent 在聊天框里干活,用户在另一个界面里看结果,两边对不上号。BuilderIO(做了多年组件工具的那家)开源的 agent-native 给出了一个干净的答案:把每个能力定义成一份"动作",Agent 把它当工具调,界面从代码调,一次定义,五路复用。项目目前 6.7 千 stars(TypeScript),刚登上 GitHub Trending。

Agent-Native 官方 banner

核心思路:Agent 不该隔着聊天框干活

它的出发点是一个类比:编码 agent 之所以好用,是因为环境给了它上下文——文件、测试、预览都在手边。知识工作同样需要这样的环境,一个真正的 UI 能让人检查、编辑、批准、分享 agent 的产出。

实现上是三个"共享":

  • 共享动作(Shared actions):agent 把每个能力当工具调用,UI 从代码调用同一条实现,校验、权限、逻辑完全一致;
  • 共享数据:agent 干的活直接出现在界面里,界面里的改动 agent 也立刻可见;
  • 共享应用状态:当前页面、选中的记录、激活的视图,这些 UI 状态会作为上下文喂给 agent。

作者有一句话概括得很准:Agent 不会去点你的界面,它和界面走的是同一层动作

快速上手

bash
npx --yes @agent-native/core@latest create my-agent --standalone --template chat

定义一个动作只需要一个文件:

ts
import { defineAction } from "@agent-native/core/action";
import { z } from "zod";

// 一个 action 同时供给 UI、agent、HTTP、MCP、A2A 和 CLI
export default defineAction({
  description: "Return a friendly greeting.",
  schema: z.object({
    name: z.string().default("world").describe("Name to greet"),
  }),
  http: { method: "GET" },
  run: async ({ name }) => {
    return { message: `Hello, ${name}!` };
  },
});

写完这个文件,agent 立刻把 hello 当工具用,React 里用 useActionQuery 调同一个函数,HTTP、MCP、A2A、CLI 的暴露自动生成——不用为每个入口重写一遍。

开箱包含什么

  • Agent 聊天:委托任务、提问、审阅结果都在同一个界面;
  • 认证与权限:谁能看、谁能改共享的工作,有现成的控制;
  • 技能与记忆:给 agent 可复用的专长和持久上下文;
  • 自动化:按计划或事件触发 agent 工作;
  • Agent 团队:把工作委派给同工作区或互联的专家 agent;
  • PostgreSQL 后端:生产用 PostgreSQL,本地开发用 PGlite,任何 Nitro 兼容宿主都能部署。

LLM、数据库、工具和基础设施全部自带,你建的一切都归你。

适合谁用

  • 想给产品加"agent 能力"的前端/全栈团队:与其从聊天框壳子攒起,不如直接在动作层上建;
  • 做多 agent 产品的团队:agent teams、自动化、审批这套组件是现成的;
  • BuilderIO 出品(builder.io 低代码团队,5963 个 commit 的成熟度摆在那里),社区模板里还有 Clips 会议记录这类完整示例 agent 可以抄。

一个定位提醒:它是应用框架,不是 agent 运行时——LLM 自己带(Bring your own LLM),它管的是 agent 和你的应用怎么共享动作、数据和状态。

仓库地址:github.com/BuilderIO/agent-native。

相关文章

分享: