@agent-native/core 0.164.3 → 0.164.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +1 -1
- package/corpus/templates/clips/.agents/skills/video-sharing/SKILL.md +1 -1
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +3 -0
- package/corpus/templates/clips/changelog/2026-08-19-social-preview-video-frames.md +5 -0
- package/corpus/templates/clips/server/lib/slack-unfurls.ts +7 -13
- package/corpus/templates/clips/shared/share-meta.ts +67 -3
- package/corpus/templates/content/actions/list-content-databases.ts +95 -1
- package/corpus/templates/content/changelog/2026-08-11-content-mutations-delegated-from-verified-slack-dms-now-use-.md +6 -0
- package/corpus/templates/content/shared/api.ts +11 -0
- package/dist/a2a/artifact-response.d.ts +50 -0
- package/dist/a2a/artifact-response.js +266 -39
- package/dist/a2a/index.d.ts +2 -0
- package/dist/a2a/index.js +1 -0
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/integrations/adapters/slack.js +58 -7
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/progress/routes.d.ts +1 -1
- package/dist/server/agent-chat/action-filters-a2a.d.ts +2 -1
- package/dist/server/agent-chat/action-filters-a2a.js +10 -2
- package/dist/server/agent-chat-plugin.js +33 -11
- package/dist/server/realtime-token.d.ts +1 -1
- package/docs/content/drop-in-agent.mdx +4 -4
- package/docs/content/faq.mdx +15 -15
- package/docs/content/getting-started.mdx +173 -41
- package/docs/content/key-concepts.mdx +10 -10
- package/docs/content/using-your-agent.mdx +2 -2
- package/docs/content/what-is-agent-native.mdx +79 -228
- package/package.json +1 -1
|
@@ -1,260 +1,111 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "What
|
|
3
|
-
description: "
|
|
2
|
+
title: "What is Agent-Native?"
|
|
3
|
+
description: "What Agent-Native is, how its shared action architecture works, and when to build an app this way."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# What
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
### Steer it like a teammate
|
|
41
|
-
|
|
42
|
-
Give feedback, queue tasks, audit what it did, and edit its instructions.
|
|
43
|
-
|
|
44
|
-
</Cards>
|
|
45
|
-
|
|
46
|
-
Here's why most products don't get there.
|
|
47
|
-
|
|
48
|
-
## Why most "AI apps" fall short {#the-ladder}
|
|
49
|
-
|
|
50
|
-
There's a progression most teams climb, and most stop one rung too early.
|
|
51
|
-
|
|
52
|
-
```mermaid
|
|
53
|
-
graph LR
|
|
54
|
-
R1["Rung 1: Single LLM call"]
|
|
55
|
-
R2["Rung 2: Chat with tools"]
|
|
56
|
-
R3["Rung 3: Agent + UI parity"]
|
|
57
|
-
R1 --> R2 --> R3
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
**Rung 1** — A text box sends a prompt, the AI returns a string. No way to course-correct, no persistence, no audit trail. This is what most "AI features" actually are: a Summarize button bolted onto a SaaS product. Impressive in demos, breaks in production.
|
|
61
|
-
|
|
62
|
-
**Rung 2** — The AI has tools and a chat interface. Claude, ChatGPT, and Cursor all look like this under the hood. Real step up — but it's still a chat window. No dashboards, no forms, no collaboration. Non-developers struggle to get real work done here.
|
|
63
|
-
|
|
64
|
-
**Rung 3** — Every agent action is also a button; every button runs the same logic the agent uses. The agent has real context (it sees what you're looking at and writes to the same database), and external agents can call it too over A2A and MCP.
|
|
65
|
-
|
|
66
|
-
<Callout tone="success">
|
|
67
|
-
|
|
68
|
-
**Rung 3 is agent-native.** You stopped adding buttons to a chatbot. You added an agent to an app. That's a much higher-quality product on both sides.
|
|
6
|
+
# What is Agent-Native?
|
|
7
|
+
|
|
8
|
+
Agent-Native is an open-source TypeScript framework for building apps that
|
|
9
|
+
serve both people and AI agents. You define your app's functionality once as
|
|
10
|
+
[actions](/docs/actions-overview)—typed functions that your React UI calls
|
|
11
|
+
from code and agents use as tools.
|
|
12
|
+
|
|
13
|
+
## Why build apps this way
|
|
14
|
+
|
|
15
|
+
Most applications are designed around a person working through the UI. Adding
|
|
16
|
+
an agent introduces another way to use the product. For both to work as one
|
|
17
|
+
product, three things need to be true:
|
|
18
|
+
|
|
19
|
+
- **The agent needs access to the product.** If it receives a smaller, separate
|
|
20
|
+
set of tools, it remains constrained. You also end up maintaining two
|
|
21
|
+
implementations that drift as the application changes.
|
|
22
|
+
- **People still need an application UI.** Chat works well for delegating work,
|
|
23
|
+
but not always for browsing information, comparing options, reviewing
|
|
24
|
+
changes, or sharing results with a team.
|
|
25
|
+
- **Work needs to move between them.** A person should be able to inspect or
|
|
26
|
+
change the agent's work, and the agent should be able to continue from there
|
|
27
|
+
without starting over.
|
|
28
|
+
|
|
29
|
+
Agent-Native architecture is built around these requirements. People can work
|
|
30
|
+
directly through the UI or delegate an outcome to the agent, then move between
|
|
31
|
+
the two without losing progress.
|
|
32
|
+
|
|
33
|
+
<Video
|
|
34
|
+
src="https://cdn.builder.io/o/assets%2Fc5b47d20f6a943e485717e5895739988%2Fc88d506c160142ae9b8618616ceedcea%2Fcompressed?apiKey=c5b47d20f6a943e485717e5895739988&token=c88d506c160142ae9b8618616ceedcea&alt=media&optimized=true"
|
|
35
|
+
alt="A comparison of a person using an application directly and working through an AI agent in the same application."
|
|
36
|
+
align="full"
|
|
37
|
+
caption="Watch a four-minute introduction to Agent-Native architecture."
|
|
38
|
+
/>
|
|
69
39
|
|
|
70
|
-
|
|
40
|
+
## How Agent-Native works
|
|
71
41
|
|
|
72
|
-
|
|
42
|
+
An Agent-Native application gives people and agents two ways to work with the
|
|
43
|
+
same product:
|
|
73
44
|
|
|
74
|
-
|
|
45
|
+
- **The UI** gives people a familiar way to browse, edit, review, and share
|
|
46
|
+
work.
|
|
47
|
+
- **The agent** handles work people delegate to it.
|
|
75
48
|
|
|
76
|
-
|
|
49
|
+
Three shared foundations make this possible:
|
|
77
50
|
|
|
78
|
-
|
|
51
|
+
- **Shared operations.** People trigger them through the UI, while agents call
|
|
52
|
+
them directly. Agent-Native defines each operation once as an
|
|
53
|
+
[action](/docs/actions-overview).
|
|
54
|
+
- **[Shared data](/docs/database)** holds the work and information the
|
|
55
|
+
application needs to preserve. Depending on the application, that might be
|
|
56
|
+
customer records, project plans, conversations, or reports. The UI and agent
|
|
57
|
+
both read and update this shared data.
|
|
58
|
+
- **[Shared application state](/docs/context-awareness)** describes what is
|
|
59
|
+
happening right now, such as the current page, selected record, or active
|
|
60
|
+
view. The framework gives relevant state to the agent as context, so it knows
|
|
61
|
+
what the person is working with.
|
|
79
62
|
|
|
80
63
|
```mermaid
|
|
81
64
|
graph TD
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
AG_OUT["Agent sees the change"]
|
|
88
|
-
|
|
89
|
-
UI_IN --> ACTION
|
|
90
|
-
AG_IN --> ACTION
|
|
91
|
-
ACTION --> DB
|
|
92
|
-
DB --> UI_OUT
|
|
93
|
-
DB --> AG_OUT
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
The diagram above shows what this looks like at runtime: both the user and the agent submit actions to the same layer, which writes to the same database and sends updates back to both surfaces. When the agent creates a draft email, it appears in your inbox immediately. When you click Send, the agent knows it was sent. See [Key Concepts](/docs/key-concepts) for the full architecture.
|
|
97
|
-
|
|
98
|
-
## Why agents need a UI — and apps need an agent {#why-both}
|
|
99
|
-
|
|
100
|
-
These two questions answer each other.
|
|
101
|
-
|
|
102
|
-
<Comparison>
|
|
103
|
-
|
|
104
|
-
### Agents need a UI
|
|
105
|
-
|
|
106
|
-
Even when the agent does all the heavy lifting, humans still need to see what it's doing, steer it, inspect its work, and share its output. At minimum that's an observability dashboard. At maximum it's a full app with the agent as a co-pilot. The surface can grow from one to the other without a rewrite.
|
|
107
|
-
|
|
108
|
-
### Apps need an agent
|
|
109
|
-
|
|
110
|
-
Even in a full app with every button working, natural language makes a huge difference. Because every action is defined once and exposed as both a button and a tool, the agent can do everything the buttons can — and more. Natural language becomes a first-class input alongside clicks, with no separate "AI world" to maintain.
|
|
111
|
-
|
|
112
|
-
</Comparison>
|
|
113
|
-
|
|
114
|
-
The argument isn't "agents replace UI." It's **agents belong inside applications, as equal partners**. See [Agent Surfaces](/docs/agent-surfaces) for the concrete shapes and APIs.
|
|
115
|
-
|
|
116
|
-
## Per-user customization — without the complexity {#workspace-customization}
|
|
117
|
-
|
|
118
|
-
What makes tools like Claude Code feel powerful isn't the model — it's the customization layer: per-project instructions, skills, memory, sub-agents, connected services.
|
|
119
|
-
|
|
120
|
-
Agent-native gives every user that same layer, inside your app, stored in the database rather than on the filesystem. No dev environment per user, no container per user — just rows in a table.
|
|
121
|
-
|
|
122
|
-
<Cards>
|
|
123
|
-
|
|
124
|
-
### Team-wide rules
|
|
125
|
-
|
|
126
|
-
Instructions every agent on the team reads — house style, escalation policy, whatever your team needs the agent to always know.
|
|
127
|
-
|
|
128
|
-
### Personal memory
|
|
129
|
-
|
|
130
|
-
The agent builds this automatically as you correct it. Over time it learns your preferences without you having to write anything down.
|
|
131
|
-
|
|
132
|
-
### `/slash` commands
|
|
133
|
-
|
|
134
|
-
Reusable how-to guides for common workflows. Type `/weekly-report` and the agent knows exactly what to do.
|
|
135
|
-
|
|
136
|
-
### `@sub-agents`
|
|
137
|
-
|
|
138
|
-
Specialized agents for specific tasks, scoped to a user or team. Delegate the routine stuff without writing a new integration.
|
|
139
|
-
|
|
140
|
-
### Scheduled jobs
|
|
141
|
-
|
|
142
|
-
Set it and forget it. "Every Monday, summarize last week and draft the team update."
|
|
143
|
-
|
|
144
|
-
### External services
|
|
145
|
-
|
|
146
|
-
Per-user MCP server connections. Each person can plug in their own tools without affecting anyone else's setup.
|
|
147
|
-
|
|
148
|
-
</Cards>
|
|
149
|
-
|
|
150
|
-
That's Claude Code-level flexibility in a multi-tenant SaaS product. See [Agent Resources](/docs/agent-resources) for the full concept.
|
|
151
|
-
|
|
152
|
-
## What does it look like in code? {#what-does-it-look-like-in-code}
|
|
153
|
-
|
|
154
|
-
Every operation in an agent-native app is an **action** — defined once, available to both the agent and the UI.
|
|
155
|
-
|
|
156
|
-
<AnnotatedCode
|
|
157
|
-
id="doc-block-n4jy5o"
|
|
158
|
-
title="One action, defined once"
|
|
159
|
-
filename="actions/reply-to-email.ts"
|
|
160
|
-
language="ts"
|
|
161
|
-
code={
|
|
162
|
-
'import { defineAction } from "@agent-native/core/action";\nimport { z } from "zod";\n\nimport { getDb, schema } from "../server/db/index.js";\n\nexport default defineAction({\n description: "Reply to an email thread",\n schema: z.object({ emailId: z.string(), body: z.string() }),\n run: async ({ emailId, body }) => {\n const db = getDb();\n await db.insert(schema.replies).values({ emailId, body });\n },\n});'
|
|
163
|
-
}
|
|
164
|
-
annotations={[
|
|
165
|
-
{
|
|
166
|
-
lines: "7",
|
|
167
|
-
label: "Tool surface",
|
|
168
|
-
note: "The `description` is what the agent reads to decide when to call this as a tool.",
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
lines: "8",
|
|
172
|
-
label: "Typed contract",
|
|
173
|
-
note: "One zod `schema` validates input from **every** surface — agent, UI, HTTP, MCP, and A2A.",
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
lines: "9-12",
|
|
177
|
-
label: "One implementation",
|
|
178
|
-
note: "The `run` body is the single source of truth. The UI button and the agent tool both execute exactly this. `getDb()` and `schema` come from your app's `server/db/index.ts` — see [Database](/docs/database).",
|
|
179
|
-
},
|
|
180
|
-
]}
|
|
181
|
-
/>
|
|
182
|
-
|
|
183
|
-
The same action is then callable from a React component, from the agent in chat, and from any external agent or MCP host:
|
|
184
|
-
|
|
185
|
-
```tsx
|
|
186
|
-
// In any React component — same action, called from a button
|
|
187
|
-
const { mutate } = useActionMutation("reply-to-email");
|
|
188
|
-
|
|
189
|
-
<Button onClick={() => mutate({ emailId, body: "Thanks!" })}>
|
|
190
|
-
Send Reply
|
|
191
|
-
</Button>;
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
```tsx
|
|
195
|
-
// And the agent panel mounted anywhere in your app
|
|
196
|
-
import { AgentSidebar } from "@agent-native/core/client/agent-chat";
|
|
197
|
-
<AgentSidebar />;
|
|
65
|
+
UI[UI] --> App[One application]
|
|
66
|
+
Agent[Agent] --> App
|
|
67
|
+
App --- Operations[Shared operations]
|
|
68
|
+
App --- Data[Shared data]
|
|
69
|
+
App --- State[Shared application state]
|
|
198
70
|
```
|
|
199
71
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
## How to get started {#how-to-get-started}
|
|
203
|
-
|
|
204
|
-
Agent-native apps follow a start-from-a-working-app model. Pick a template — Calendar, Mail, Analytics, Forms, and more — and make it yours.
|
|
205
|
-
|
|
206
|
-
<Steps>
|
|
207
|
-
|
|
208
|
-
### Pick a template
|
|
209
|
-
|
|
210
|
-
Browse [agent-native.com/templates](/templates) and pick the one closest to what you want to build.
|
|
72
|
+
The agent does not click through the UI. It calls the same actions as the UI,
|
|
73
|
+
with the same validation, permissions, and implementation.
|
|
211
74
|
|
|
212
|
-
|
|
75
|
+
For example, a person can assign a support ticket through the UI or ask the
|
|
76
|
+
agent to do it. Both paths run the same action and update the same ticket. The
|
|
77
|
+
person can inspect or change the result in the UI, then let the agent continue
|
|
78
|
+
from there.
|
|
213
79
|
|
|
214
|
-
|
|
80
|
+
## When should you use Agent-Native?
|
|
215
81
|
|
|
216
|
-
|
|
82
|
+
Agent-Native is a good fit when:
|
|
217
83
|
|
|
218
|
-
|
|
84
|
+
- The agent should do real work in the app, not only answer questions.
|
|
85
|
+
- People need a UI to inspect, edit, approve, or share the work.
|
|
86
|
+
- Work should move between the UI and agent without losing progress or context.
|
|
219
87
|
|
|
220
|
-
|
|
88
|
+
If you only need one generated response, call a model directly. If the workflow
|
|
89
|
+
follows a fixed, predictable sequence, ordinary application logic or automation
|
|
90
|
+
is simpler. Use Agent-Native when the UI and agent both need an ongoing role in
|
|
91
|
+
the same work.
|
|
221
92
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
</Steps>
|
|
225
|
-
|
|
226
|
-
Not ready for a whole template? Add a **skill** to a coding agent you already use: `npx @agent-native/core@latest skills add visual-plan`. See the [Skills Guide](/docs/skills-guide#app-backed-skills).
|
|
227
|
-
|
|
228
|
-
## Composable agents {#composable-agents}
|
|
229
|
-
|
|
230
|
-
Agent-native apps can talk to each other. From inside the mail app, you can tag the analytics agent to query data and include the result in a draft. The agents discover what other agents are available, hand off work, and surface results in the UI you're already in — powered by [A2A](/docs/a2a-protocol) and [MCP](/docs/mcp-protocol) under the hood.
|
|
231
|
-
|
|
232
|
-
## What's next {#whats-next}
|
|
93
|
+
## Next steps
|
|
233
94
|
|
|
234
95
|
<Cards>
|
|
235
96
|
|
|
236
97
|
### [Getting Started](/docs/getting-started)
|
|
237
98
|
|
|
238
|
-
|
|
99
|
+
Create an app and call the same action from the agent and UI.
|
|
239
100
|
|
|
240
101
|
### [Key Concepts](/docs/key-concepts)
|
|
241
102
|
|
|
242
|
-
|
|
103
|
+
Learn how actions, SQL data, application context, access, and live sync fit
|
|
104
|
+
together.
|
|
243
105
|
|
|
244
106
|
### [Agent Surfaces](/docs/agent-surfaces)
|
|
245
107
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
### [Templates](/docs/cloneable-saas)
|
|
249
|
-
|
|
250
|
-
Complete, working products you own and customize — not blank scaffolds.
|
|
251
|
-
|
|
252
|
-
### [Agent Resources](/docs/agent-resources)
|
|
253
|
-
|
|
254
|
-
The per-user customization layer: skills, memory, instructions, and MCP connections — backed by SQL, not files.
|
|
255
|
-
|
|
256
|
-
### [FAQ](/docs/faq)
|
|
257
|
-
|
|
258
|
-
Quick answers on cost, hosting, models, and templates.
|
|
108
|
+
See how the same model supports apps led by a UI, chat, automation, or another
|
|
109
|
+
agent.
|
|
259
110
|
|
|
260
111
|
</Cards>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/core",
|
|
3
|
-
"version": "0.164.
|
|
3
|
+
"version": "0.164.4",
|
|
4
4
|
"description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
|
|
5
5
|
"homepage": "https://github.com/BuilderIO/agent-native#readme",
|
|
6
6
|
"bugs": {
|