@agent-native/core 0.84.35 → 0.84.36
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/README.md +15 -51
- package/corpus/core/CHANGELOG.md +12 -0
- package/corpus/core/docs/content/actions.mdx +17 -24
- package/corpus/core/docs/content/agent-surfaces.mdx +59 -56
- package/corpus/core/docs/content/cloneable-saas.mdx +3 -3
- package/corpus/core/docs/content/faq.mdx +4 -4
- package/corpus/core/docs/content/getting-started.mdx +246 -204
- package/corpus/core/docs/content/key-concepts.mdx +9 -9
- package/corpus/core/docs/content/locales/ar-SA/cloneable-saas.mdx +3 -3
- package/corpus/core/docs/content/locales/ar-SA/faq.mdx +4 -4
- package/corpus/core/docs/content/locales/ar-SA/getting-started.mdx +148 -214
- package/corpus/core/docs/content/locales/ar-SA/pure-agent-apps.mdx +4 -9
- package/corpus/core/docs/content/locales/ar-SA/template-chat.mdx +2 -2
- package/corpus/core/docs/content/locales/ar-SA/using-your-agent.mdx +2 -2
- package/corpus/core/docs/content/locales/de-DE/cloneable-saas.mdx +3 -3
- package/corpus/core/docs/content/locales/de-DE/faq.mdx +4 -4
- package/corpus/core/docs/content/locales/de-DE/getting-started.mdx +145 -211
- package/corpus/core/docs/content/locales/de-DE/pure-agent-apps.mdx +4 -9
- package/corpus/core/docs/content/locales/de-DE/template-chat.mdx +2 -2
- package/corpus/core/docs/content/locales/de-DE/using-your-agent.mdx +2 -2
- package/corpus/core/docs/content/locales/es-ES/cloneable-saas.mdx +3 -3
- package/corpus/core/docs/content/locales/es-ES/faq.mdx +4 -4
- package/corpus/core/docs/content/locales/es-ES/getting-started.mdx +148 -214
- package/corpus/core/docs/content/locales/es-ES/pure-agent-apps.mdx +4 -9
- package/corpus/core/docs/content/locales/es-ES/template-chat.mdx +2 -2
- package/corpus/core/docs/content/locales/es-ES/using-your-agent.mdx +2 -2
- package/corpus/core/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/fr-FR/faq.mdx +4 -4
- package/corpus/core/docs/content/locales/fr-FR/getting-started.mdx +146 -212
- package/corpus/core/docs/content/locales/fr-FR/pure-agent-apps.mdx +4 -9
- package/corpus/core/docs/content/locales/fr-FR/template-chat.mdx +2 -2
- package/corpus/core/docs/content/locales/fr-FR/using-your-agent.mdx +2 -2
- package/corpus/core/docs/content/locales/hi-IN/cloneable-saas.mdx +3 -3
- package/corpus/core/docs/content/locales/hi-IN/faq.mdx +4 -4
- package/corpus/core/docs/content/locales/hi-IN/getting-started.mdx +149 -215
- package/corpus/core/docs/content/locales/hi-IN/pure-agent-apps.mdx +8 -13
- package/corpus/core/docs/content/locales/hi-IN/template-chat.mdx +2 -2
- package/corpus/core/docs/content/locales/hi-IN/using-your-agent.mdx +2 -2
- package/corpus/core/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/ja-JP/faq.mdx +4 -4
- package/corpus/core/docs/content/locales/ja-JP/getting-started.mdx +144 -210
- package/corpus/core/docs/content/locales/ja-JP/pure-agent-apps.mdx +8 -13
- package/corpus/core/docs/content/locales/ja-JP/template-chat.mdx +2 -2
- package/corpus/core/docs/content/locales/ja-JP/using-your-agent.mdx +2 -2
- package/corpus/core/docs/content/locales/ko-KR/cloneable-saas.mdx +3 -3
- package/corpus/core/docs/content/locales/ko-KR/faq.mdx +4 -4
- package/corpus/core/docs/content/locales/ko-KR/getting-started.mdx +146 -212
- package/corpus/core/docs/content/locales/ko-KR/pure-agent-apps.mdx +8 -13
- package/corpus/core/docs/content/locales/ko-KR/template-chat.mdx +2 -2
- package/corpus/core/docs/content/locales/ko-KR/using-your-agent.mdx +2 -2
- package/corpus/core/docs/content/locales/pt-BR/cloneable-saas.mdx +3 -3
- package/corpus/core/docs/content/locales/pt-BR/faq.mdx +4 -4
- package/corpus/core/docs/content/locales/pt-BR/getting-started.mdx +145 -211
- package/corpus/core/docs/content/locales/pt-BR/pure-agent-apps.mdx +4 -9
- package/corpus/core/docs/content/locales/pt-BR/template-chat.mdx +2 -2
- package/corpus/core/docs/content/locales/pt-BR/using-your-agent.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-CN/cloneable-saas.mdx +3 -3
- package/corpus/core/docs/content/locales/zh-CN/faq.mdx +4 -4
- package/corpus/core/docs/content/locales/zh-CN/getting-started.mdx +158 -209
- package/corpus/core/docs/content/locales/zh-CN/pure-agent-apps.mdx +4 -9
- package/corpus/core/docs/content/locales/zh-CN/template-chat.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-CN/using-your-agent.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.mdx +3 -3
- package/corpus/core/docs/content/locales/zh-TW/faq.mdx +4 -4
- package/corpus/core/docs/content/locales/zh-TW/getting-started.mdx +158 -212
- package/corpus/core/docs/content/locales/zh-TW/pure-agent-apps.mdx +4 -9
- package/corpus/core/docs/content/locales/zh-TW/template-chat.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-TW/using-your-agent.mdx +2 -2
- package/corpus/core/docs/content/native-chat-ui.mdx +17 -32
- package/corpus/core/docs/content/pure-agent-apps.mdx +46 -26
- package/corpus/core/docs/content/template-chat.mdx +8 -8
- package/corpus/core/docs/content/using-your-agent.mdx +2 -2
- package/corpus/core/docs/content/what-is-agent-native.mdx +6 -6
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/cli/skills.ts +7 -9
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +2 -0
- package/corpus/core/src/client/RunStuckBanner.tsx +172 -18
- package/corpus/core/src/client/blocks/library/wireframe-kit.tsx +57 -9
- package/corpus/core/src/client/blocks/library/wireframe.tsx +3 -18
- package/corpus/core/src/client/chat/widgets/builtin-tool-renderers.tsx +28 -32
- package/corpus/core/src/db/schema.ts +5 -0
- package/corpus/core/src/styles/blocks.css +27 -6
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +1 -4
- package/corpus/templates/content/actions/list-trashed-content-databases.ts +1 -1
- package/corpus/templates/plan/.agents/skills/visual-plan/references/wireframe.md +7 -9
- package/corpus/templates/plan/.agents/skills/visual-recap/references/wireframe.md +7 -9
- package/dist/cli/skills.d.ts +1 -1
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +7 -9
- package/dist/cli/skills.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +1 -1
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/RunStuckBanner.d.ts +13 -1
- package/dist/client/RunStuckBanner.d.ts.map +1 -1
- package/dist/client/RunStuckBanner.js +123 -16
- package/dist/client/RunStuckBanner.js.map +1 -1
- package/dist/client/blocks/library/wireframe-kit.d.ts +6 -6
- package/dist/client/blocks/library/wireframe-kit.d.ts.map +1 -1
- package/dist/client/blocks/library/wireframe-kit.js +52 -5
- package/dist/client/blocks/library/wireframe-kit.js.map +1 -1
- package/dist/client/blocks/library/wireframe.d.ts.map +1 -1
- package/dist/client/blocks/library/wireframe.js +1 -11
- package/dist/client/blocks/library/wireframe.js.map +1 -1
- package/dist/client/chat/widgets/builtin-tool-renderers.d.ts.map +1 -1
- package/dist/client/chat/widgets/builtin-tool-renderers.js +27 -31
- package/dist/client/chat/widgets/builtin-tool-renderers.js.map +1 -1
- package/dist/collab/routes.d.ts +2 -2
- package/dist/db/schema.d.ts +2 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +3 -2
- package/dist/db/schema.js.map +1 -1
- package/dist/resources/handlers.d.ts +3 -3
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/styles/blocks.css +27 -6
- package/docs/content/actions.mdx +17 -24
- package/docs/content/agent-surfaces.mdx +59 -56
- package/docs/content/cloneable-saas.mdx +3 -3
- package/docs/content/faq.mdx +4 -4
- package/docs/content/getting-started.mdx +246 -204
- package/docs/content/key-concepts.mdx +9 -9
- package/docs/content/locales/ar-SA/cloneable-saas.mdx +3 -3
- package/docs/content/locales/ar-SA/faq.mdx +4 -4
- package/docs/content/locales/ar-SA/getting-started.mdx +148 -214
- package/docs/content/locales/ar-SA/pure-agent-apps.mdx +4 -9
- package/docs/content/locales/ar-SA/template-chat.mdx +2 -2
- package/docs/content/locales/ar-SA/using-your-agent.mdx +2 -2
- package/docs/content/locales/de-DE/cloneable-saas.mdx +3 -3
- package/docs/content/locales/de-DE/faq.mdx +4 -4
- package/docs/content/locales/de-DE/getting-started.mdx +145 -211
- package/docs/content/locales/de-DE/pure-agent-apps.mdx +4 -9
- package/docs/content/locales/de-DE/template-chat.mdx +2 -2
- package/docs/content/locales/de-DE/using-your-agent.mdx +2 -2
- package/docs/content/locales/es-ES/cloneable-saas.mdx +3 -3
- package/docs/content/locales/es-ES/faq.mdx +4 -4
- package/docs/content/locales/es-ES/getting-started.mdx +148 -214
- package/docs/content/locales/es-ES/pure-agent-apps.mdx +4 -9
- package/docs/content/locales/es-ES/template-chat.mdx +2 -2
- package/docs/content/locales/es-ES/using-your-agent.mdx +2 -2
- package/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
- package/docs/content/locales/fr-FR/faq.mdx +4 -4
- package/docs/content/locales/fr-FR/getting-started.mdx +146 -212
- package/docs/content/locales/fr-FR/pure-agent-apps.mdx +4 -9
- package/docs/content/locales/fr-FR/template-chat.mdx +2 -2
- package/docs/content/locales/fr-FR/using-your-agent.mdx +2 -2
- package/docs/content/locales/hi-IN/cloneable-saas.mdx +3 -3
- package/docs/content/locales/hi-IN/faq.mdx +4 -4
- package/docs/content/locales/hi-IN/getting-started.mdx +149 -215
- package/docs/content/locales/hi-IN/pure-agent-apps.mdx +8 -13
- package/docs/content/locales/hi-IN/template-chat.mdx +2 -2
- package/docs/content/locales/hi-IN/using-your-agent.mdx +2 -2
- package/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
- package/docs/content/locales/ja-JP/faq.mdx +4 -4
- package/docs/content/locales/ja-JP/getting-started.mdx +144 -210
- package/docs/content/locales/ja-JP/pure-agent-apps.mdx +8 -13
- package/docs/content/locales/ja-JP/template-chat.mdx +2 -2
- package/docs/content/locales/ja-JP/using-your-agent.mdx +2 -2
- package/docs/content/locales/ko-KR/cloneable-saas.mdx +3 -3
- package/docs/content/locales/ko-KR/faq.mdx +4 -4
- package/docs/content/locales/ko-KR/getting-started.mdx +146 -212
- package/docs/content/locales/ko-KR/pure-agent-apps.mdx +8 -13
- package/docs/content/locales/ko-KR/template-chat.mdx +2 -2
- package/docs/content/locales/ko-KR/using-your-agent.mdx +2 -2
- package/docs/content/locales/pt-BR/cloneable-saas.mdx +3 -3
- package/docs/content/locales/pt-BR/faq.mdx +4 -4
- package/docs/content/locales/pt-BR/getting-started.mdx +145 -211
- package/docs/content/locales/pt-BR/pure-agent-apps.mdx +4 -9
- package/docs/content/locales/pt-BR/template-chat.mdx +2 -2
- package/docs/content/locales/pt-BR/using-your-agent.mdx +2 -2
- package/docs/content/locales/zh-CN/cloneable-saas.mdx +3 -3
- package/docs/content/locales/zh-CN/faq.mdx +4 -4
- package/docs/content/locales/zh-CN/getting-started.mdx +158 -209
- package/docs/content/locales/zh-CN/pure-agent-apps.mdx +4 -9
- package/docs/content/locales/zh-CN/template-chat.mdx +2 -2
- package/docs/content/locales/zh-CN/using-your-agent.mdx +2 -2
- package/docs/content/locales/zh-TW/cloneable-saas.mdx +3 -3
- package/docs/content/locales/zh-TW/faq.mdx +4 -4
- package/docs/content/locales/zh-TW/getting-started.mdx +158 -212
- package/docs/content/locales/zh-TW/pure-agent-apps.mdx +4 -9
- package/docs/content/locales/zh-TW/template-chat.mdx +2 -2
- package/docs/content/locales/zh-TW/using-your-agent.mdx +2 -2
- package/docs/content/native-chat-ui.mdx +17 -32
- package/docs/content/pure-agent-apps.mdx +46 -26
- package/docs/content/template-chat.mdx +8 -8
- package/docs/content/using-your-agent.mdx +2 -2
- package/docs/content/what-is-agent-native.mdx +6 -6
- package/package.json +1 -1
|
@@ -1,259 +1,193 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Démarrage"
|
|
3
|
-
description: "Créez une
|
|
3
|
+
description: "Créez une app agentic centrée sur le chat, ajoutez une action, rendez des résultats structurés en ligne, puis ajoutez une page persistante que l'agent peut ouvrir."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Démarrage
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
état. Un agent de base est constitué d'instructions qui le guident, de skills qui lui enseignent
|
|
10
|
-
comportement reproductible et actions qui lui permettent de faire un vrai travail.
|
|
11
|
-
|
|
12
|
-
**Vous voulez commencer par une application complète ?** Clonez l'un de nos modèles riches –
|
|
13
|
-
[Chat](/docs/template-chat), [Mail](/docs/template-mail),
|
|
14
|
-
[Calendar](/docs/template-calendar), [Content](/docs/template-content),
|
|
15
|
-
[Analytics](/docs/template-analytics) et [many more](/docs/cloneable-saas) —
|
|
16
|
-
chacune une application complète que vous personnalisez.
|
|
17
|
-
|
|
18
|
-
Construire à partir de zéro ? Le seul choix dès le départ est de savoir si vous voulez un UI —
|
|
19
|
-
tout après (écrire les instructions, ajouter skills, définir actions, exécuter
|
|
20
|
-
l'agent) est le même dans les deux cas.
|
|
21
|
-
|
|
22
|
-
<FileTree
|
|
23
|
-
id="doc-block-13buza2"
|
|
24
|
-
title="Un agent Agent-Native de base"
|
|
25
|
-
entries={[
|
|
26
|
-
{
|
|
27
|
-
path: "AGENTS.md",
|
|
28
|
-
note: "Instructions toujours actives : objectif, règles, ton et carte de ce que l'agent peut faire",
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
path: ".agents/skills/customer-research/SKILL.md",
|
|
32
|
-
note: "Un playbook réutilisable que l'agent charge quand la tâche correspond",
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
path: "actions/summarize-week.ts",
|
|
36
|
-
note: "Code typé que l'agent, UI, CLI, HTTP, MCP, A2A, jobs et webhooks peuvent exécuter",
|
|
37
|
-
},
|
|
38
|
-
]}
|
|
39
|
-
/>
|
|
40
|
-
|
|
41
|
-
Cela est vrai que vous commenciez avec un chat UI, un agent sans tête ou une application complète.
|
|
42
|
-
Le UI change la surface ; instructions, skills et actions donnent à l'agent son
|
|
43
|
-
conseils et comportement.
|
|
44
|
-
|
|
45
|
-
## 1. Créez votre application
|
|
46
|
-
|
|
47
|
-
Vous aurez besoin de [Node.js 22+](https://nodejs.org) et [pnpm](https://pnpm.io).
|
|
48
|
-
|
|
49
|
-
Exécutez `create` sans indicateur et il vous demande comment vous souhaitez démarrer (un modèle complet,
|
|
50
|
-
Chat ou Headless) avant toute chose :
|
|
8
|
+
Agent-Native sert à créer des agentic applications : l'AI agent et l'UI partagent les mêmes [actions](/docs/actions), les mêmes données SQL et le même application state. Le chemin principal commence par Chat, afin que les utilisateurs puissent parler à l'agent immédiatement, puis ajoute les surfaces produit nécessaires.
|
|
51
9
|
|
|
52
|
-
|
|
53
|
-
npx @agent-native/core@latest create my-app
|
|
54
|
-
```
|
|
10
|
+
Le parcours utile :
|
|
55
11
|
|
|
56
|
-
|
|
12
|
+
1. Créer une Chat app.
|
|
13
|
+
2. Ajouter une action.
|
|
14
|
+
3. Rendre le résultat de l'action directement dans le chat.
|
|
15
|
+
4. Persister les données dans SQL.
|
|
16
|
+
5. Ajouter une page que l'agent peut ouvrir lorsqu'une inspection visuelle est préférable.
|
|
57
17
|
|
|
58
|
-
|
|
59
|
-
|
|
18
|
+
## 1. Créer une Chat app {#create-your-app}
|
|
19
|
+
|
|
20
|
+
Vous avez besoin de [Node.js 22+](https://nodejs.org) et de [pnpm](https://pnpm.io).
|
|
60
21
|
|
|
61
22
|
```bash
|
|
62
23
|
npx @agent-native/core@latest create my-app --template chat
|
|
24
|
+
cd my-app
|
|
25
|
+
pnpm install
|
|
26
|
+
pnpm dev
|
|
63
27
|
```
|
|
64
28
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
29
|
+
Le template inclut durable chat threads, auth, live sync, un dossier `actions/`, les actions standard `view-screen` et `navigate`, et une app React prête à évoluer.
|
|
30
|
+
|
|
31
|
+
## 2. Ajouter une action {#add-an-action}
|
|
32
|
+
|
|
33
|
+
Une action est une opération typée appelée par l'agent et par l'UI. Pour ce guide, créez `actions/analyze-responses.ts` : elle analyse des réponses de formulaire et renvoie une forme validée pour un graphique de chat personnalisé.
|
|
34
|
+
|
|
35
|
+
{/* prettier-ignore */}
|
|
36
|
+
```ts
|
|
37
|
+
// actions/analyze-responses.ts
|
|
38
|
+
import { defineAction } from "@agent-native/core/action";
|
|
39
|
+
import { z } from "zod";
|
|
40
|
+
|
|
41
|
+
const responseChartResultSchema = z.object({
|
|
42
|
+
title: z.string(),
|
|
43
|
+
points: z.array(z.object({ day: z.string(), responses: z.number() })),
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
export default defineAction({
|
|
47
|
+
description: "Analyze recent form responses and render a custom chart.",
|
|
48
|
+
schema: z.object({
|
|
49
|
+
formId: z.string().default("demo")
|
|
50
|
+
}),
|
|
51
|
+
outputSchema: responseChartResultSchema,
|
|
52
|
+
chatUI: {
|
|
53
|
+
renderer: "responses.response-chart",
|
|
54
|
+
title: "Graphique des réponses"
|
|
55
|
+
},
|
|
56
|
+
readOnly: true,
|
|
57
|
+
run: async ({ formId }) => ({
|
|
58
|
+
title: `Responses for ${formId}`,
|
|
59
|
+
points: [{ day: "Mon", responses: 12 }, { day: "Tue", responses: 18 }, { day: "Wed", responses: 24 }, { day: "Thu", responses: 21 }],
|
|
60
|
+
}),
|
|
61
|
+
});
|
|
70
62
|
```
|
|
71
63
|
|
|
72
|
-
|
|
64
|
+
Exécutez-la directement :
|
|
73
65
|
|
|
74
66
|
```bash
|
|
75
|
-
|
|
76
|
-
pnpm install
|
|
67
|
+
pnpm action analyze-responses --formId demo
|
|
77
68
|
```
|
|
78
69
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
## 2. Ajouter une action
|
|
82
|
-
|
|
83
|
-
Une action est une opération que votre agent (et votre UI) peut appeler. Les deux échafaudages
|
|
84
|
-
livré avec cet exemple :
|
|
85
|
-
|
|
86
|
-
<AnnotatedCode
|
|
87
|
-
id="doc-block-hmo7e9"
|
|
88
|
-
title={"Votre première action"}
|
|
89
|
-
filename="actions/hello.ts"
|
|
90
|
-
language="ts"
|
|
91
|
-
code={
|
|
92
|
-
'import { defineAction } from "@agent-native/core/action";\nimport { z } from "zod";\n\nexport default defineAction({\n description: "Dites bonjour depuis l’agent local.",\n schema: z.object({\n name: z.string().default("world"),\n }),\n http: { method: "GET" },\n readOnly: true,\n run: async ({ name }) => {\n return { message: `Hello, ${name}!` };\n },\n});'
|
|
93
|
-
}
|
|
94
|
-
annotations={[
|
|
95
|
-
{
|
|
96
|
-
lines: "5",
|
|
97
|
-
label: "Description de l’outil",
|
|
98
|
-
note: "L’agent lit `description` pour décider quand appeler ceci comme outil.",
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
lines: "6-8",
|
|
102
|
-
label: "Contrat typé",
|
|
103
|
-
note: "Un `schema` zod valide les entrées depuis chaque surface: agent, UI, HTTP, MCP et A2A.",
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
lines: "9",
|
|
107
|
-
label: "Verbe HTTP",
|
|
108
|
-
note: "Exposez cette action sur un endpoint HTTP monté automatiquement.",
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
lines: "10",
|
|
112
|
-
label: "Lecture seule",
|
|
113
|
-
note: "`readOnly` indique que l’action peut être appelée sans approbation et mise en cache pour les requêtes.",
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
lines: "11-13",
|
|
117
|
-
label: "Une seule implémentation",
|
|
118
|
-
note: "Le corps de `run` est la source de vérité unique exécutée par toutes les surfaces.",
|
|
119
|
-
},
|
|
120
|
-
]}
|
|
121
|
-
/>
|
|
122
|
-
|
|
123
|
-
Remplacez `hello` par la première opération réelle dans votre domaine. Vous le définissez une fois ;
|
|
124
|
-
chaque surface le capte.
|
|
125
|
-
|
|
126
|
-
Utilisez `AGENTS.md` pour obtenir des conseils qui doivent s'appliquer à chaque virage. Utilisez une compétence lorsque le
|
|
127
|
-
l'agent a besoin d'un workflow ou d'une procédure de domaine réutilisable. Utilisez une action lorsque
|
|
128
|
-
l'agent a besoin d'un moyen typé et testable pour lire des données, écrire des données, appeler un API ou
|
|
129
|
-
effectuer une approbation.
|
|
130
|
-
|
|
131
|
-
## 3. Exécutez-le
|
|
132
|
-
|
|
133
|
-
Appelez l'action directement :
|
|
70
|
+
Ou demandez à l'agent dans le navigateur :
|
|
134
71
|
|
|
135
|
-
|
|
136
|
-
pnpm action hello --name Steve
|
|
137
|
-
```
|
|
72
|
+
> Analyse les réponses récentes du formulaire de démonstration.
|
|
138
73
|
|
|
139
|
-
|
|
74
|
+
## 3. Rendre le résultat dans le chat {#render-inline}
|
|
140
75
|
|
|
141
|
-
|
|
142
|
-
pnpm agent "Call the hello action for Steve and explain what happened."
|
|
143
|
-
```
|
|
76
|
+
Comme l'action déclare `outputSchema` et un `chatUI.renderer` propre au produit, le transcript ne transforme pas les données structurées en simple texte. Enregistrez un composant React pour cet id exact au démarrage de l'app, par exemple en important `app/chat-renderers.tsx` une fois depuis `app/root.tsx` :
|
|
144
77
|
|
|
145
|
-
|
|
146
|
-
|
|
78
|
+
{/* prettier-ignore */}
|
|
79
|
+
```tsx
|
|
80
|
+
import { registerActionChatRenderer, type ToolRendererProps,} from "@agent-native/core/client/chat";
|
|
81
|
+
|
|
82
|
+
type ResponseChartResult = {
|
|
83
|
+
title: string;
|
|
84
|
+
points: Array<{ day: string; responses: number }>;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
function ResponseChart({ context }: ToolRendererProps) {
|
|
88
|
+
const result = context.resultJson as ResponseChartResult;
|
|
89
|
+
const max = Math.max(...result.points.map((point) => point.responses), 1);
|
|
90
|
+
return (
|
|
91
|
+
<section className="rounded-lg border bg-card p-4">
|
|
92
|
+
<h3 className="text-sm font-medium">{result.title}</h3>
|
|
93
|
+
<div className="mt-4 flex h-32 items-end gap-2">
|
|
94
|
+
{result.points.map((point) => (
|
|
95
|
+
<div key={point.day} className="flex flex-1 flex-col items-center gap-2">
|
|
96
|
+
<div className="w-full rounded-t bg-primary" style={{ height: `${(point.responses / max) * 100}%` }} />
|
|
97
|
+
<span className="text-xs text-muted-foreground">{point.day}</span>
|
|
98
|
+
</div>
|
|
99
|
+
))}
|
|
100
|
+
</div>
|
|
101
|
+
</section>
|
|
102
|
+
);
|
|
103
|
+
}
|
|
147
104
|
|
|
148
|
-
|
|
149
|
-
|
|
105
|
+
registerActionChatRenderer({
|
|
106
|
+
id: "responses.response-chart",
|
|
107
|
+
renderer: "responses.response-chart",
|
|
108
|
+
Component: ResponseChart,
|
|
109
|
+
});
|
|
150
110
|
```
|
|
151
111
|
|
|
152
|
-
|
|
153
|
-
tâches planifiées et webhooks. Définissez une fois, appelez de n'importe où.
|
|
154
|
-
|
|
155
|
-
<Diagram id="doc-block-114sbvf" title="Une action, chaque surface" summary={"Un seul fichier defineAction est distribué à chaque consommateur sans câblage supplémentaire."}>
|
|
156
|
-
|
|
157
|
-
```html
|
|
158
|
-
<div class="diagram-fan">
|
|
159
|
-
<div class="diagram-box" data-rough>defineAction</div>
|
|
160
|
-
<div class="diagram-arrow diagram-muted" aria-hidden="true">→</div>
|
|
161
|
-
<div class="diagram-surfaces">
|
|
162
|
-
<span class="diagram-pill">Interface de chat</span
|
|
163
|
-
><span class="diagram-pill">CLI</span><span class="diagram-pill">HTTP</span
|
|
164
|
-
><span class="diagram-pill">MCP</span><span class="diagram-pill">A2A</span
|
|
165
|
-
><span class="diagram-pill">Tâches planifiées</span
|
|
166
|
-
><span class="diagram-pill">Webhooks</span>
|
|
167
|
-
</div>
|
|
168
|
-
</div>
|
|
169
|
-
```
|
|
112
|
+
Pour les sorties génériques réutilisables, le framework fournit aussi les renderers intégrés `data-chart` et `data-table`, ainsi que `data-insights` pour les cartes combinant résumé, graphique et tableau. Voir [Native Chat UI](/docs/native-chat-ui).
|
|
170
113
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
display: flex;
|
|
180
|
-
flex-wrap: wrap;
|
|
181
|
-
gap: 8px;
|
|
182
|
-
max-width: 420px;
|
|
183
|
-
}
|
|
184
|
-
.diagram-fan .diagram-arrow {
|
|
185
|
-
font-size: 22px;
|
|
186
|
-
line-height: 1;
|
|
187
|
-
}
|
|
188
|
-
```
|
|
114
|
+
<WireframeBlock id="doc-block-inline-result-wireframe-fr">
|
|
115
|
+
<Screen
|
|
116
|
+
surface="desktop"
|
|
117
|
+
html={
|
|
118
|
+
"<div style='min-height:340px;box-sizing:border-box;padding:24px;display:flex;justify-content:center;align-items:center;background:var(--wf-bg)'><div style='width:min(530px,100%);display:flex;flex-direction:column;gap:14px'><div class='wf-card' data-rough style='align-self:flex-end;max-width:70%;padding:12px 14px'><strong>User</strong><p style='margin:6px 0 0'>Analyse les réponses de démo.</p></div><div class='wf-card' data-rough style='align-self:flex-start;width:min(370px,100%);padding:14px'><strong>Agent</strong><p class='wf-muted' style='margin:6px 0 12px'>Rendu avec responses.response-chart.</p><section class='wf-card' data-rough style='padding:14px'><h3 style='margin:0 0 12px;font-size:14px'>Graphique des réponses</h3><div data-rough='line:bottom' style='height:104px;display:flex;align-items:end;gap:8px;border-bottom:1.4px solid var(--wf-line);padding-bottom:4px'><div style='flex:1;display:flex;flex-direction:column;align-items:center;gap:6px'><div data-rough style='height:38px;width:100%;background:color-mix(in srgb, var(--wf-accent) 24%, transparent);border:1.4px solid var(--wf-accent);border-radius:8px 8px 3px 3px'></div><span class='wf-muted'>Lun</span></div><div style='flex:1;display:flex;flex-direction:column;align-items:center;gap:6px'><div data-rough style='height:62px;width:100%;background:color-mix(in srgb, var(--wf-accent) 30%, transparent);border:1.4px solid var(--wf-accent);border-radius:8px 8px 3px 3px'></div><span class='wf-muted'>Mar</span></div><div style='flex:1;display:flex;flex-direction:column;align-items:center;gap:6px'><div data-rough style='height:86px;width:100%;background:color-mix(in srgb, var(--wf-accent) 36%, transparent);border:1.4px solid var(--wf-accent);border-radius:8px 8px 3px 3px'></div><span class='wf-muted'>Mer</span></div><div style='flex:1;display:flex;flex-direction:column;align-items:center;gap:6px'><div data-rough style='height:54px;width:100%;background:color-mix(in srgb, var(--wf-accent) 42%, transparent);border:1.4px solid var(--wf-accent);border-radius:8px 8px 3px 3px'></div><span class='wf-muted'>Jeu</span></div></div></section></div></div></div>"
|
|
119
|
+
}
|
|
120
|
+
/>
|
|
121
|
+
</WireframeBlock>
|
|
189
122
|
|
|
190
|
-
|
|
123
|
+
## 4. Persister les données dans SQL {#persist-data}
|
|
191
124
|
|
|
192
|
-
|
|
125
|
+
Quand le résultat doit être revu, comparé ou mis à jour, stockez-le dans SQL et gardez les lectures/écritures derrière des actions :
|
|
193
126
|
|
|
194
|
-
|
|
195
|
-
l'historique d'exécution et les informations d'identification se trouvent tous dans SQL. Localement, c'est SQLite à
|
|
196
|
-
`data/app.db` ; en production, vous définissez `DATABASE_URL`. Voir
|
|
197
|
-
[Deployment](/docs/deployment).
|
|
127
|
+
Définissez la table avec les helpers portables du framework, pas avec des imports de `drizzle-orm/sqlite-core` ou `drizzle-orm/pg-core` :
|
|
198
128
|
|
|
199
|
-
|
|
129
|
+
```ts
|
|
130
|
+
// server/db/schema.ts
|
|
131
|
+
import { integer, now, table, text } from "@agent-native/core/db/schema";
|
|
200
132
|
|
|
201
|
-
|
|
133
|
+
export const responseInsights = table("response_insights", {
|
|
134
|
+
id: text("id").primaryKey(),
|
|
135
|
+
formId: text("form_id").notNull(),
|
|
136
|
+
title: text("title").notNull(),
|
|
137
|
+
summary: text("summary").notNull(),
|
|
138
|
+
responseCount: integer("response_count").notNull(),
|
|
139
|
+
createdAt: text("created_at").notNull().default(now()),
|
|
140
|
+
updatedAt: text("updated_at").notNull().default(now()),
|
|
141
|
+
});
|
|
142
|
+
```
|
|
202
143
|
|
|
203
|
-
|
|
144
|
+
Ces helpers choisissent le backend SQL configuré, donc le même schéma peut fonctionner avec SQLite en local et avec Postgres, Turso/libSQL, D1 ou un autre fournisseur SQL pris en charge en production.
|
|
204
145
|
|
|
205
|
-
|
|
146
|
+
- `create-response-insight` écrit un nouvel insight.
|
|
147
|
+
- `list-response-insights` lit les données de la page.
|
|
148
|
+
- `update-response-insight` met à jour un enregistrement.
|
|
149
|
+
- `analyze-responses` continue de renvoyer le widget natif du chat.
|
|
206
150
|
|
|
207
|
-
|
|
208
|
-
est un petit itinéraire construit sur le composant `<AgentChatSurface>` :
|
|
151
|
+
N'ajoutez pas de REST route en double pour le navigateur ; l'UI et l'agent doivent partager les actions.
|
|
209
152
|
|
|
210
|
-
|
|
211
|
-
// app/routes/_index.tsx
|
|
212
|
-
import { AgentChatSurface } from "@agent-native/core/client";
|
|
153
|
+
## 5. Ajouter une page que l'agent peut ouvrir {#add-a-page}
|
|
213
154
|
|
|
214
|
-
|
|
215
|
-
return <AgentChatSurface mode="page" className="h-full" />;
|
|
216
|
-
}
|
|
217
|
-
```
|
|
155
|
+
Ajoutez une route `/response-insights` avec `useActionQuery("list-response-insights")` et `useActionMutation("create-response-insight")`. La page est une projection du SQL state ; les données restent écrites par les mêmes actions.
|
|
218
156
|
|
|
219
|
-
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
-
|
|
224
|
-
|
|
225
|
-
|
|
157
|
+
<WireframeBlock id="doc-block-response-insights-page-wireframe-fr">
|
|
158
|
+
<Screen
|
|
159
|
+
surface="desktop"
|
|
160
|
+
html={
|
|
161
|
+
"<main style='min-height:440px;box-sizing:border-box;padding:28px;background:var(--wf-bg)'><section style='max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:16px;align-items:stretch'><section class='wf-card' data-rough style='display:flex;flex-direction:column;gap:16px'><header><h2 style='margin:0 0 4px;font-size:28px'>Insights de réponses</h2><p class='wf-muted' style='margin:0'>Insights créés par l'agent à partir des réponses du formulaire.</p></header><button class='primary' data-rough style='align-self:flex-start'>Analyser le formulaire de démonstration</button><section style='display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px'><article class='wf-box' data-rough style='padding:12px'><strong>Thème de tarification</strong><p class='wf-muted' style='margin:8px 0 0'>Les utilisateurs demandent un forfait équipe.</p></article><article class='wf-box' data-rough style='padding:12px'><strong>Abandon d'onboarding</strong><p class='wf-muted' style='margin:8px 0 0'>Trois étapes demandent un texte plus clair.</p></article></section><section class='wf-card' data-rough style='display:flex;flex-direction:column;gap:10px'><div class='wf-row wf-box' data-rough style='padding:10px 12px;gap:12px;justify-content:space-between'><strong>Formulaire de démonstration</strong><span class='wf-muted'>42 réponses analysées</span></div><div class='wf-row wf-box' data-rough style='padding:10px 12px;gap:12px;justify-content:space-between'><strong>Étape suivante</strong><span class='wf-muted'>Relire deux brouillons d'insights</span></div></section></section><aside class='wf-card' data-rough style='height:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:12px'><strong>Chat</strong><div class='wf-box' data-rough style='align-self:flex-end;max-width:210px;padding:10px 12px'><span class='wf-muted'>Vous</span><p style='margin:4px 0 0'>Ouvrez les insights de réponses.</p></div><div class='wf-box' data-rough style='align-self:flex-start;max-width:210px;padding:10px 12px'><span class='wf-muted'>Agent</span><p style='margin:4px 0 0'>Insights de réponses ouverts.</p></div></aside></section></main>"
|
|
162
|
+
}
|
|
163
|
+
/>
|
|
164
|
+
</WireframeBlock>
|
|
226
165
|
|
|
227
|
-
|
|
228
|
-
[Native Interface de chat](/docs/native-chat-ui) pour afficher les résultats des actions sous forme de tableaux,
|
|
229
|
-
des graphiques et des cartes dactylographiées au lieu de texte brut.
|
|
166
|
+
Étendez `view-screen` et `navigate` pour que l'agent connaisse la route active et puisse ouvrir `/response-insights`. Les résultats peuvent aussi contenir `href: "/response-insights"` pour afficher un bouton "Ouvrir les insights de réponses".
|
|
230
167
|
|
|
231
|
-
|
|
232
|
-
sa couche `app/` (routeur React + Vite) correspond exactement à l'échafaudage sans tête
|
|
233
|
-
laisse de côté. Le geste le plus simple consiste à démarrer (ou à ré-échafauder) à partir du chat
|
|
234
|
-
modèle ; vos états `actions/`, agent et SQL restent inchangés. Voir
|
|
235
|
-
[Agent Surfaces](/docs/agent-surfaces) pour chaque surface intermédiaire.
|
|
168
|
+
Quand le chat pleine page ouvre une page d'app, utilisez `AgentChatSurface`, `AgentSidebar`, `useAgentChatHomeHandoff`, `useAgentChatHomeHandoffLinks` et `chatViewTransition` depuis [Agent Surfaces](/docs/agent-surfaces#rich-chat) pour glisser le chat dans le panneau latéral sans perdre le thread.
|
|
236
169
|
|
|
237
|
-
## Structure du projet
|
|
170
|
+
## Structure du projet {#project-structure}
|
|
238
171
|
|
|
239
172
|
```text
|
|
240
173
|
my-app/
|
|
241
|
-
actions/ #
|
|
242
|
-
app/ #
|
|
243
|
-
server/ # Serveur
|
|
244
|
-
AGENTS.md # Instructions permanentes de l
|
|
245
|
-
.agents/ # Skills que l
|
|
246
|
-
data/app.db # État SQLite local quand DATABASE_URL n
|
|
174
|
+
actions/ # Opérations appelables par l'agent et l'interface
|
|
175
|
+
app/ # Routes, pages et surfaces de chat React
|
|
176
|
+
server/ # Serveur Nitro et schéma SQL
|
|
177
|
+
AGENTS.md # Instructions permanentes pour l'agent de l'app
|
|
178
|
+
.agents/ # Skills que l'agent charge quand c'est pertinent
|
|
179
|
+
data/app.db # État SQLite local quand DATABASE_URL n'est pas défini
|
|
247
180
|
```
|
|
248
181
|
|
|
249
|
-
##
|
|
250
|
-
|
|
251
|
-
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
- **[
|
|
256
|
-
|
|
257
|
-
- **[
|
|
258
|
-
- **[
|
|
259
|
-
- **[
|
|
182
|
+
## Vous voulez un vrai point de départ analytics ? {#analytics-starting-point}
|
|
183
|
+
|
|
184
|
+
L'exemple Insights de réponses ci-dessus est volontairement petit pour montrer les pièces du framework. Si vous construisez un vrai produit analytics, commencez plutôt avec [Analytics](/docs/template-analytics). C'est le point de départ robuste : connectez vos providers, utilisez les dashboards et agent actions existants, puis personnalisez à partir de là.
|
|
185
|
+
|
|
186
|
+
## Suite {#next}
|
|
187
|
+
|
|
188
|
+
- **[Actions](/docs/actions)** — schemas, auth, approvals, hooks et transport.
|
|
189
|
+
- **[Native Chat UI](/docs/native-chat-ui)** — tableaux, graphiques et typed cards pour les résultats d'actions.
|
|
190
|
+
- **[Chat Template](/docs/template-chat)** — l'app minimale chat-first.
|
|
191
|
+
- **[Analytics Template](/docs/template-analytics)** — une base analytics robuste ; connectez vos providers puis personnalisez.
|
|
192
|
+
- **[Context Awareness](/docs/context-awareness)** — `view-screen`, `navigate`, route state et objets sélectionnés.
|
|
193
|
+
- **[Agent Surfaces](/docs/agent-surfaces)** — chat, inline UI, app pages, embedded sidecars, automation et agents externes.
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "
|
|
3
|
-
description: "
|
|
2
|
+
title: "Automation-First Apps"
|
|
3
|
+
description: "Apps Agent-Native sans navigateur pour scheduled jobs, files, scripts, integration workers et agents externes."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Automation-First Apps
|
|
7
7
|
|
|
8
|
-
Une
|
|
9
|
-
produit, pas un tableau de bord. Vous envoyez une requête depuis le terminal, Slack, email, un
|
|
10
|
-
tâche planifiée, un autre agent ou Chat – "résumer mes e-mails non lus", "publier le
|
|
11
|
-
mesures quotidiennes vers Slack" — et l'agent agit et renvoie le résultat où qu'il soit
|
|
12
|
-
appartient. C'est toujours une vraie application : actions, sessions, état de l'application, historique,
|
|
13
|
-
les paramètres, les informations d'identification et les enregistrements de partage sont tous présents dans SQL.
|
|
8
|
+
Une automation-first app est une app Agent-Native sans navigateur pour scheduled jobs, files, scripts, integration workers et agents externes. Ce n'est pas le chemin par défaut de Getting Started, mais c'est utile lorsque le workflow n'a pas encore besoin d'une page. C'est toujours une vraie app : actions, sessions, application state, run history, settings, credentials et enregistrements de partage vivent dans SQL.
|
|
14
9
|
|
|
15
10
|
<Diagram id="doc-block-bmd6at" title={"La boucle app-agent est la porte d’entrée"} summary={"De nombreux points d'entrée atteignent une boucle d'agent via les actions et l'état SQL-backed ; les résultats reviennent d'où que vient la demande. L'interface utilisateur est ajoutée uniquement lorsque des humains doivent superviser."}>
|
|
16
11
|
|
|
@@ -7,7 +7,7 @@ description: "Une application native d'agent minimale axée sur le chat : fils
|
|
|
7
7
|
|
|
8
8
|
Chat est le point de départ de base d'une application native pour agent. Il vous offre un shell propre de style ChatGPT avec une discussion au centre, une liste de fils de discussion à gauche, une navigation d'application standard, une authentification, une synchronisation en direct, actions et un exemple d'action. Commencez ici lorsque vous souhaitez une véritable application de navigateur sur laquelle vous pouvez créer sans vous engager dans un modèle de domaine.
|
|
9
9
|
|
|
10
|
-
Si vous souhaitez
|
|
10
|
+
Si vous souhaitez un runtime automation-first sans UI navigateur, commencez par [Automation-First Apps](/docs/pure-agent-apps). Si vous souhaitez une forme de produit de domaine fini, commencez par [Calendar](/docs/template-calendar), [Mail](/docs/template-mail), [Content](/docs/template-content), [Forms](/docs/template-forms), [Analytics](/docs/template-analytics) ou un autre modèle de domaine.
|
|
11
11
|
|
|
12
12
|
<WireframeBlock id="doc-block-19iybib">
|
|
13
13
|
<Screen
|
|
@@ -200,4 +200,4 @@ L'agent doit ajouter un schéma Drizzle, un actions, un itinéraire, une navigat
|
|
|
200
200
|
- [**Agent Surfaces**](/docs/agent-surfaces) – modèles sans tête, de chat, intégrés et d'application complète
|
|
201
201
|
- [**Actions**](/docs/actions) — le chat du système d'action et UI appellent tous deux
|
|
202
202
|
- [**Native Interface de chat**](/docs/native-chat-ui) – primitives de la surface de discussion et options d'exécution
|
|
203
|
-
- [**
|
|
203
|
+
- [**Automation-First Apps**](/docs/pure-agent-apps) : automatisations, files, scripts et workflows d'agents externes sans UI navigateur
|
|
@@ -99,7 +99,7 @@ L'agent n'est pas une application distincte vers laquelle vous accédez. Il est
|
|
|
99
99
|
|
|
100
100
|
Toutes les applications n'ont pas besoin d'un tableau de bord complet. Lorsque l'agent _est_ le produit, vous pouvez ignorer la plupart des UI personnalisés : ouvrez l'application, demandez ce que vous voulez et laissez l'agent faire le reste. L'agent dispose toujours de sa surface de gestion (historique, espace de travail, paramètres), mais l'interaction principale est la conversation plutôt que les clics.
|
|
101
101
|
|
|
102
|
-
→ [**
|
|
102
|
+
→ [**Automation-First Apps**](/docs/pure-agent-apps) — apps sans navigateur pour jobs, files, scripts et agents externes.
|
|
103
103
|
|
|
104
104
|
## Vous co-éditez avec lui {#you-co-edit}
|
|
105
105
|
|
|
@@ -113,5 +113,5 @@ Lorsque vous et l'agent travaillez sur le même document, vous ne vous relayez p
|
|
|
113
113
|
- [**Agent Mentions**](/docs/agent-mentions) — dirigez-le avec les mentions `@`
|
|
114
114
|
- [**Voice Input**](/docs/voice-input) — dirigez-le en parlant
|
|
115
115
|
- [**Drop-in Agent**](/docs/drop-in-agent) : intégrez-le dans n'importe quelle application React
|
|
116
|
-
- [**
|
|
116
|
+
- [**Automation-First Apps**](/docs/pure-agent-apps) — apps sans navigateur pour jobs, files, scripts et agents externes
|
|
117
117
|
- [**Real-Time Collaboration**](/docs/real-time-collaboration) — co-éditez ensemble le même document
|
|
@@ -30,7 +30,7 @@ description: "एक कार्यशील SaaS उत्पाद को फ
|
|
|
30
30
|
| [**Plan**](/docs/template-plan) | चित्र, वायरफ्रेम और एनोटेशन के साथ विज़ुअल योजनाएं और पीआर पुनर्कथन। |
|
|
31
31
|
| [**Dispatch**](/docs/template-dispatch) | कार्यस्थान नियंत्रण विमान: साझा रहस्य, पुन: प्रयोज्य एकीकरण, Slack/टेलीग्राम, निर्धारित कार्य। |
|
|
32
32
|
|
|
33
|
-
डोमेन ऐप नहीं चाहिए? जब आप
|
|
33
|
+
डोमेन ऐप नहीं चाहिए? जब आप ऐसा बुनियादी ऐप चाहते हैं जिससे उपयोगकर्ता तुरंत बात कर सकें और जिसे actions, native results और screens के साथ बढ़ाया जा सके, तो [Chat](/docs/template-chat) का उपयोग करें. [Automation-First Apps](/docs/pure-agent-apps) केवल तब उपयोग करें जब workflow को अभी browser UI की ज़रूरत न हो.
|
|
34
34
|
|
|
35
35
|
[Apps](/apps) के अंतर्गत पूरा कैटलॉग देखें, या सीधे एक पर जाएं - उदाहरण के लिए, यदि आप वर्कस्पेस-शैली ऐप चाहते हैं तो [Dispatch](/docs/template-dispatch) शुरू करने के लिए एक शानदार जगह है।
|
|
36
36
|
|
|
@@ -168,7 +168,7 @@ description: "एक कार्यशील SaaS उत्पाद को फ
|
|
|
168
168
|
|
|
169
169
|
## इस पर निर्माण
|
|
170
170
|
|
|
171
|
-
- [**Getting Started**](/docs/getting-started) -
|
|
171
|
+
- [**Getting Started**](/docs/getting-started) - chat-first app बनाएं, action जोड़ें, structured result render करें और page तक बढ़ाएं
|
|
172
172
|
- [**Messaging the agent**](/docs/messaging) - उपयोगकर्ता (और आप) प्रत्येक टेम्पलेट के साथ शिप करने वाले एजेंट से कैसे बात करते हैं
|
|
173
173
|
- [**Multi-App Workspace**](/docs/multi-app-workspace) - कई टेम्पलेट्स को एक कार्यक्षेत्र में बंडल करें जो ऑथ, ब्रांड और एजेंट को साझा करता है
|
|
174
174
|
- [**Dispatch**](/docs/template-dispatch) - कार्यक्षेत्र नियंत्रण विमान टेम्पलेट
|
|
@@ -182,7 +182,7 @@ description: "एक कार्यशील SaaS उत्पाद को फ
|
|
|
182
182
|
npx @agent-native/core@latest create my-platform
|
|
183
183
|
```
|
|
184
184
|
|
|
185
|
-
आपको एक बहु-चयन पिकर मिलेगा। एक ऐप (स्टैंडअलोन) या कई (वर्कस्पेस - ऐप्स शेयर ऑथ, ब्रांड, एजेंट कॉन्फ़िगरेशन और डेटाबेस) चुनें। प्रत्येक चयनित टेम्प्लेट को आपकी आवश्यक प्रत्येक फ़ाइल के साथ `apps/<name>/` में रखा गया है। टेम्पलेट UI के बजाय
|
|
185
|
+
आपको एक बहु-चयन पिकर मिलेगा। एक ऐप (स्टैंडअलोन) या कई (वर्कस्पेस - ऐप्स शेयर ऑथ, ब्रांड, एजेंट कॉन्फ़िगरेशन और डेटाबेस) चुनें। प्रत्येक चयनित टेम्प्लेट को आपकी आवश्यक प्रत्येक फ़ाइल के साथ `apps/<name>/` में रखा गया है। टेम्पलेट UI के बजाय बिना browser UI वाली automation के लिए, `npx @agent-native/core@latest create my-agent --headless` का उपयोग करें।
|
|
186
186
|
|
|
187
187
|
`.env` (ज्यादातर `ANTHROPIC_API_KEY` और `DATABASE_URL`), `pnpm install`, `pnpm dev` भरें और यह काम करता है। नहीं "TODO: लॉगिन लागू करें," कोई प्लेसहोल्डर रूट नहीं।
|
|
188
188
|
|
|
@@ -11,15 +11,15 @@ description: "एजेंट-नेटिव के बारे में स
|
|
|
11
11
|
|
|
12
12
|
### एजेंट-नेटिव क्या है? {#what-is-agent-native}
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Agent-native ऐप्स बनाने के लिए एक framework है जहां AI agent और उसके आसपास की product surface समान भागीदार हैं. सामान्य रास्ता chat से शुरू होता है, typed actions जोड़ता है, structured results inline render करता है, और उसी SQL state के ऊपर durable pages तक बढ़ता है. अपरिवर्तनीय यह है कि agent और मनुष्य समान actions, database और state साझा करते हैं. संपूर्ण स्पष्टीकरण के लिए [What Is Agent-Native?](/docs/what-is-agent-native) देखें।
|
|
15
15
|
|
|
16
16
|
### यह किसके लिए है? {#who-is-this-for}
|
|
17
17
|
|
|
18
18
|
एजेंट-नेटिव उन लोगों के लिए है जो एक ही डेटा और actions से काम करने के लिए एक वास्तविक ऐप और एक AI एजेंट चाहते हैं। सामान्य पथ हैं:
|
|
19
19
|
|
|
20
20
|
- **अगर आप मेल, कैलेंडर, फॉर्म, प्लान या बिना किसी सेटअप वाला कोई अन्य तैयार टेम्पलेट चाहते हैं तो होस्टेड ऐप का उपयोग करें** - [template gallery](/templates) से शुरू करें।
|
|
21
|
-
-
|
|
22
|
-
-
|
|
21
|
+
- **Chat से शुरू करें** यदि आप default from-scratch path चाहते हैं: users तुरंत agent से बात करें और आप actions, native results और screens से विस्तार करें - [Getting Started](/docs/getting-started) या [Chat](/docs/template-chat) से शुरू करें।
|
|
22
|
+
- **automation-first से शुरू करें** यदि आप scheduled jobs, queues, scripts, integration workers या external agent workflows बना रहे हैं जिन्हें अभी browser UI नहीं चाहिए - [Automation-First Apps](/docs/pure-agent-apps) से शुरू करें।
|
|
23
23
|
- \*\*यदि आप अपना स्वयं का SaaS उत्पाद ऑथ, डेटाबेस, UI और एजेंट actions के साथ पहले से ही वायर्ड चाहते हैं, तो टेम्पलेट को फोर्क और कस्टमाइज़ करें - [Templates](/docs/cloneable-saas) देखें।
|
|
24
24
|
- **शुरुआत से निर्माण** यदि आप नए एजेंट-संचालित उत्पाद के लिए फ्रेमवर्क प्रिमिटिव चाहते हैं - [Getting Started](/docs/getting-started) से शुरू करें।
|
|
25
25
|
- \*\*यदि आप एजेंट-नेटिव ऐप का उपयोग करने के लिए Claude, ChatGPT, Codex, कर्सर, या GitHub कोपायलट / VS कोड चाहते हैं तो किसी अन्य एजेंट या कोड टूल को कनेक्ट करें - [External Agents](/docs/external-agents) और [Skills Guide](/docs/skills-guide) देखें।
|
|
@@ -128,7 +128,7 @@ description: "एजेंट-नेटिव के बारे में स
|
|
|
128
128
|
|
|
129
129
|
### क्या मैं कुछ ऐसा बना सकता हूं जो टेम्पलेट्स में शामिल न हो? {#build-from-scratch}
|
|
130
130
|
|
|
131
|
-
हां. यदि आप
|
|
131
|
+
हां. यदि आप basic agentic app चाहते हैं, तो `npx @agent-native/core@latest create my-chat-app --template chat` चलाएँ; आपको durable chat threads, actions, auth, SQL-backed runtime state, native inline rendering और अपनी screens जोड़ने की जगह मिलती है. यदि आप no-browser automation बना रहे हैं, तो `npx @agent-native/core@latest create my-agent --headless` चलाएं. [Getting Started](/docs/getting-started), [Automation-First Apps](/docs/pure-agent-apps), और [Chat](/docs/template-chat) देखें।
|
|
132
132
|
|
|
133
133
|
### क्या मैं बिना टेम्पलेट फोर्क किए इसे आज़मा सकता हूं? {#try-with-a-skill}
|
|
134
134
|
|