@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.
Files changed (187) hide show
  1. package/README.md +15 -51
  2. package/corpus/core/CHANGELOG.md +12 -0
  3. package/corpus/core/docs/content/actions.mdx +17 -24
  4. package/corpus/core/docs/content/agent-surfaces.mdx +59 -56
  5. package/corpus/core/docs/content/cloneable-saas.mdx +3 -3
  6. package/corpus/core/docs/content/faq.mdx +4 -4
  7. package/corpus/core/docs/content/getting-started.mdx +246 -204
  8. package/corpus/core/docs/content/key-concepts.mdx +9 -9
  9. package/corpus/core/docs/content/locales/ar-SA/cloneable-saas.mdx +3 -3
  10. package/corpus/core/docs/content/locales/ar-SA/faq.mdx +4 -4
  11. package/corpus/core/docs/content/locales/ar-SA/getting-started.mdx +148 -214
  12. package/corpus/core/docs/content/locales/ar-SA/pure-agent-apps.mdx +4 -9
  13. package/corpus/core/docs/content/locales/ar-SA/template-chat.mdx +2 -2
  14. package/corpus/core/docs/content/locales/ar-SA/using-your-agent.mdx +2 -2
  15. package/corpus/core/docs/content/locales/de-DE/cloneable-saas.mdx +3 -3
  16. package/corpus/core/docs/content/locales/de-DE/faq.mdx +4 -4
  17. package/corpus/core/docs/content/locales/de-DE/getting-started.mdx +145 -211
  18. package/corpus/core/docs/content/locales/de-DE/pure-agent-apps.mdx +4 -9
  19. package/corpus/core/docs/content/locales/de-DE/template-chat.mdx +2 -2
  20. package/corpus/core/docs/content/locales/de-DE/using-your-agent.mdx +2 -2
  21. package/corpus/core/docs/content/locales/es-ES/cloneable-saas.mdx +3 -3
  22. package/corpus/core/docs/content/locales/es-ES/faq.mdx +4 -4
  23. package/corpus/core/docs/content/locales/es-ES/getting-started.mdx +148 -214
  24. package/corpus/core/docs/content/locales/es-ES/pure-agent-apps.mdx +4 -9
  25. package/corpus/core/docs/content/locales/es-ES/template-chat.mdx +2 -2
  26. package/corpus/core/docs/content/locales/es-ES/using-your-agent.mdx +2 -2
  27. package/corpus/core/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
  28. package/corpus/core/docs/content/locales/fr-FR/faq.mdx +4 -4
  29. package/corpus/core/docs/content/locales/fr-FR/getting-started.mdx +146 -212
  30. package/corpus/core/docs/content/locales/fr-FR/pure-agent-apps.mdx +4 -9
  31. package/corpus/core/docs/content/locales/fr-FR/template-chat.mdx +2 -2
  32. package/corpus/core/docs/content/locales/fr-FR/using-your-agent.mdx +2 -2
  33. package/corpus/core/docs/content/locales/hi-IN/cloneable-saas.mdx +3 -3
  34. package/corpus/core/docs/content/locales/hi-IN/faq.mdx +4 -4
  35. package/corpus/core/docs/content/locales/hi-IN/getting-started.mdx +149 -215
  36. package/corpus/core/docs/content/locales/hi-IN/pure-agent-apps.mdx +8 -13
  37. package/corpus/core/docs/content/locales/hi-IN/template-chat.mdx +2 -2
  38. package/corpus/core/docs/content/locales/hi-IN/using-your-agent.mdx +2 -2
  39. package/corpus/core/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
  40. package/corpus/core/docs/content/locales/ja-JP/faq.mdx +4 -4
  41. package/corpus/core/docs/content/locales/ja-JP/getting-started.mdx +144 -210
  42. package/corpus/core/docs/content/locales/ja-JP/pure-agent-apps.mdx +8 -13
  43. package/corpus/core/docs/content/locales/ja-JP/template-chat.mdx +2 -2
  44. package/corpus/core/docs/content/locales/ja-JP/using-your-agent.mdx +2 -2
  45. package/corpus/core/docs/content/locales/ko-KR/cloneable-saas.mdx +3 -3
  46. package/corpus/core/docs/content/locales/ko-KR/faq.mdx +4 -4
  47. package/corpus/core/docs/content/locales/ko-KR/getting-started.mdx +146 -212
  48. package/corpus/core/docs/content/locales/ko-KR/pure-agent-apps.mdx +8 -13
  49. package/corpus/core/docs/content/locales/ko-KR/template-chat.mdx +2 -2
  50. package/corpus/core/docs/content/locales/ko-KR/using-your-agent.mdx +2 -2
  51. package/corpus/core/docs/content/locales/pt-BR/cloneable-saas.mdx +3 -3
  52. package/corpus/core/docs/content/locales/pt-BR/faq.mdx +4 -4
  53. package/corpus/core/docs/content/locales/pt-BR/getting-started.mdx +145 -211
  54. package/corpus/core/docs/content/locales/pt-BR/pure-agent-apps.mdx +4 -9
  55. package/corpus/core/docs/content/locales/pt-BR/template-chat.mdx +2 -2
  56. package/corpus/core/docs/content/locales/pt-BR/using-your-agent.mdx +2 -2
  57. package/corpus/core/docs/content/locales/zh-CN/cloneable-saas.mdx +3 -3
  58. package/corpus/core/docs/content/locales/zh-CN/faq.mdx +4 -4
  59. package/corpus/core/docs/content/locales/zh-CN/getting-started.mdx +158 -209
  60. package/corpus/core/docs/content/locales/zh-CN/pure-agent-apps.mdx +4 -9
  61. package/corpus/core/docs/content/locales/zh-CN/template-chat.mdx +2 -2
  62. package/corpus/core/docs/content/locales/zh-CN/using-your-agent.mdx +2 -2
  63. package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.mdx +3 -3
  64. package/corpus/core/docs/content/locales/zh-TW/faq.mdx +4 -4
  65. package/corpus/core/docs/content/locales/zh-TW/getting-started.mdx +158 -212
  66. package/corpus/core/docs/content/locales/zh-TW/pure-agent-apps.mdx +4 -9
  67. package/corpus/core/docs/content/locales/zh-TW/template-chat.mdx +2 -2
  68. package/corpus/core/docs/content/locales/zh-TW/using-your-agent.mdx +2 -2
  69. package/corpus/core/docs/content/native-chat-ui.mdx +17 -32
  70. package/corpus/core/docs/content/pure-agent-apps.mdx +46 -26
  71. package/corpus/core/docs/content/template-chat.mdx +8 -8
  72. package/corpus/core/docs/content/using-your-agent.mdx +2 -2
  73. package/corpus/core/docs/content/what-is-agent-native.mdx +6 -6
  74. package/corpus/core/package.json +1 -1
  75. package/corpus/core/src/cli/skills.ts +7 -9
  76. package/corpus/core/src/client/MultiTabAssistantChat.tsx +2 -0
  77. package/corpus/core/src/client/RunStuckBanner.tsx +172 -18
  78. package/corpus/core/src/client/blocks/library/wireframe-kit.tsx +57 -9
  79. package/corpus/core/src/client/blocks/library/wireframe.tsx +3 -18
  80. package/corpus/core/src/client/chat/widgets/builtin-tool-renderers.tsx +28 -32
  81. package/corpus/core/src/db/schema.ts +5 -0
  82. package/corpus/core/src/styles/blocks.css +27 -6
  83. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +1 -4
  84. package/corpus/templates/content/actions/list-trashed-content-databases.ts +1 -1
  85. package/corpus/templates/plan/.agents/skills/visual-plan/references/wireframe.md +7 -9
  86. package/corpus/templates/plan/.agents/skills/visual-recap/references/wireframe.md +7 -9
  87. package/dist/cli/skills.d.ts +1 -1
  88. package/dist/cli/skills.d.ts.map +1 -1
  89. package/dist/cli/skills.js +7 -9
  90. package/dist/cli/skills.js.map +1 -1
  91. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  92. package/dist/client/MultiTabAssistantChat.js +1 -1
  93. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  94. package/dist/client/RunStuckBanner.d.ts +13 -1
  95. package/dist/client/RunStuckBanner.d.ts.map +1 -1
  96. package/dist/client/RunStuckBanner.js +123 -16
  97. package/dist/client/RunStuckBanner.js.map +1 -1
  98. package/dist/client/blocks/library/wireframe-kit.d.ts +6 -6
  99. package/dist/client/blocks/library/wireframe-kit.d.ts.map +1 -1
  100. package/dist/client/blocks/library/wireframe-kit.js +52 -5
  101. package/dist/client/blocks/library/wireframe-kit.js.map +1 -1
  102. package/dist/client/blocks/library/wireframe.d.ts.map +1 -1
  103. package/dist/client/blocks/library/wireframe.js +1 -11
  104. package/dist/client/blocks/library/wireframe.js.map +1 -1
  105. package/dist/client/chat/widgets/builtin-tool-renderers.d.ts.map +1 -1
  106. package/dist/client/chat/widgets/builtin-tool-renderers.js +27 -31
  107. package/dist/client/chat/widgets/builtin-tool-renderers.js.map +1 -1
  108. package/dist/collab/routes.d.ts +2 -2
  109. package/dist/db/schema.d.ts +2 -1
  110. package/dist/db/schema.d.ts.map +1 -1
  111. package/dist/db/schema.js +3 -2
  112. package/dist/db/schema.js.map +1 -1
  113. package/dist/resources/handlers.d.ts +3 -3
  114. package/dist/server/transcribe-voice.d.ts +1 -1
  115. package/dist/styles/blocks.css +27 -6
  116. package/docs/content/actions.mdx +17 -24
  117. package/docs/content/agent-surfaces.mdx +59 -56
  118. package/docs/content/cloneable-saas.mdx +3 -3
  119. package/docs/content/faq.mdx +4 -4
  120. package/docs/content/getting-started.mdx +246 -204
  121. package/docs/content/key-concepts.mdx +9 -9
  122. package/docs/content/locales/ar-SA/cloneable-saas.mdx +3 -3
  123. package/docs/content/locales/ar-SA/faq.mdx +4 -4
  124. package/docs/content/locales/ar-SA/getting-started.mdx +148 -214
  125. package/docs/content/locales/ar-SA/pure-agent-apps.mdx +4 -9
  126. package/docs/content/locales/ar-SA/template-chat.mdx +2 -2
  127. package/docs/content/locales/ar-SA/using-your-agent.mdx +2 -2
  128. package/docs/content/locales/de-DE/cloneable-saas.mdx +3 -3
  129. package/docs/content/locales/de-DE/faq.mdx +4 -4
  130. package/docs/content/locales/de-DE/getting-started.mdx +145 -211
  131. package/docs/content/locales/de-DE/pure-agent-apps.mdx +4 -9
  132. package/docs/content/locales/de-DE/template-chat.mdx +2 -2
  133. package/docs/content/locales/de-DE/using-your-agent.mdx +2 -2
  134. package/docs/content/locales/es-ES/cloneable-saas.mdx +3 -3
  135. package/docs/content/locales/es-ES/faq.mdx +4 -4
  136. package/docs/content/locales/es-ES/getting-started.mdx +148 -214
  137. package/docs/content/locales/es-ES/pure-agent-apps.mdx +4 -9
  138. package/docs/content/locales/es-ES/template-chat.mdx +2 -2
  139. package/docs/content/locales/es-ES/using-your-agent.mdx +2 -2
  140. package/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
  141. package/docs/content/locales/fr-FR/faq.mdx +4 -4
  142. package/docs/content/locales/fr-FR/getting-started.mdx +146 -212
  143. package/docs/content/locales/fr-FR/pure-agent-apps.mdx +4 -9
  144. package/docs/content/locales/fr-FR/template-chat.mdx +2 -2
  145. package/docs/content/locales/fr-FR/using-your-agent.mdx +2 -2
  146. package/docs/content/locales/hi-IN/cloneable-saas.mdx +3 -3
  147. package/docs/content/locales/hi-IN/faq.mdx +4 -4
  148. package/docs/content/locales/hi-IN/getting-started.mdx +149 -215
  149. package/docs/content/locales/hi-IN/pure-agent-apps.mdx +8 -13
  150. package/docs/content/locales/hi-IN/template-chat.mdx +2 -2
  151. package/docs/content/locales/hi-IN/using-your-agent.mdx +2 -2
  152. package/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
  153. package/docs/content/locales/ja-JP/faq.mdx +4 -4
  154. package/docs/content/locales/ja-JP/getting-started.mdx +144 -210
  155. package/docs/content/locales/ja-JP/pure-agent-apps.mdx +8 -13
  156. package/docs/content/locales/ja-JP/template-chat.mdx +2 -2
  157. package/docs/content/locales/ja-JP/using-your-agent.mdx +2 -2
  158. package/docs/content/locales/ko-KR/cloneable-saas.mdx +3 -3
  159. package/docs/content/locales/ko-KR/faq.mdx +4 -4
  160. package/docs/content/locales/ko-KR/getting-started.mdx +146 -212
  161. package/docs/content/locales/ko-KR/pure-agent-apps.mdx +8 -13
  162. package/docs/content/locales/ko-KR/template-chat.mdx +2 -2
  163. package/docs/content/locales/ko-KR/using-your-agent.mdx +2 -2
  164. package/docs/content/locales/pt-BR/cloneable-saas.mdx +3 -3
  165. package/docs/content/locales/pt-BR/faq.mdx +4 -4
  166. package/docs/content/locales/pt-BR/getting-started.mdx +145 -211
  167. package/docs/content/locales/pt-BR/pure-agent-apps.mdx +4 -9
  168. package/docs/content/locales/pt-BR/template-chat.mdx +2 -2
  169. package/docs/content/locales/pt-BR/using-your-agent.mdx +2 -2
  170. package/docs/content/locales/zh-CN/cloneable-saas.mdx +3 -3
  171. package/docs/content/locales/zh-CN/faq.mdx +4 -4
  172. package/docs/content/locales/zh-CN/getting-started.mdx +158 -209
  173. package/docs/content/locales/zh-CN/pure-agent-apps.mdx +4 -9
  174. package/docs/content/locales/zh-CN/template-chat.mdx +2 -2
  175. package/docs/content/locales/zh-CN/using-your-agent.mdx +2 -2
  176. package/docs/content/locales/zh-TW/cloneable-saas.mdx +3 -3
  177. package/docs/content/locales/zh-TW/faq.mdx +4 -4
  178. package/docs/content/locales/zh-TW/getting-started.mdx +158 -212
  179. package/docs/content/locales/zh-TW/pure-agent-apps.mdx +4 -9
  180. package/docs/content/locales/zh-TW/template-chat.mdx +2 -2
  181. package/docs/content/locales/zh-TW/using-your-agent.mdx +2 -2
  182. package/docs/content/native-chat-ui.mdx +17 -32
  183. package/docs/content/pure-agent-apps.mdx +46 -26
  184. package/docs/content/template-chat.mdx +8 -8
  185. package/docs/content/using-your-agent.mdx +2 -2
  186. package/docs/content/what-is-agent-native.mdx +6 -6
  187. package/package.json +1 -1
@@ -1,259 +1,193 @@
1
1
  ---
2
- title: "Cómo empezar"
3
- description: "Cree una aplicación de agente, comprenda las instrucciones skills y actions y luego observe cómo el agente ejecuta su primera acción."
2
+ title: "Primeros pasos"
3
+ description: "Crea una app agentic empezando por chat, añade una action, renderiza resultados estructurados en línea y crece hacia una página persistente que el agent puede abrir."
4
4
  ---
5
5
 
6
- # Cómo empezar
7
-
8
- Las aplicaciones Agent-Native brindan a un agente de IA y a su UI el mismo actions, datos y
9
- estado. Un agente básico se hace a partir de instrucciones que lo guían, skills que enseñan
10
- comportamiento repetible y actions que le permiten hacer un trabajo real.
11
-
12
- **¿Quieres una aplicación completa para empezar?** Clona una de nuestras plantillas enriquecidas:
13
- [Chat](/docs/template-chat), [Mail](/docs/template-mail),
14
- [Calendar](/docs/template-calendar), [Content](/docs/template-content),
15
- [Analytics](/docs/template-analytics) y [many more](/docs/cloneable-saas) —
16
- cada una de ellas es una aplicación con todas las funciones que puedes personalizar.
17
-
18
- ¿Construir desde cero? La única opción desde el principio es si quieres un UI —
19
- todo lo posterior (escribir instrucciones, agregar skills, definir actions, ejecutar
20
- el agente) es el mismo en ambos sentidos.
21
-
22
- <FileTree
23
- id="doc-block-1525m3a"
24
- title={"Un agente Agent-Native básico"}
25
- entries={[
26
- {
27
- path: "AGENTS.md",
28
- note: "Instrucciones siempre activas: propósito, reglas, tono y mapa de lo que el agente puede hacer",
29
- },
30
- {
31
- path: ".agents/skills/customer-research/SKILL.md",
32
- note: "Un playbook reutilizable que el agente carga cuando la tarea coincide",
33
- },
34
- {
35
- path: "actions/summarize-week.ts",
36
- note: "Código tipado que el agente, la UI, CLI, HTTP, MCP, A2A, jobs y webhooks pueden ejecutar",
37
- },
38
- ]}
39
- />
40
-
41
- Esto es cierto ya sea que comiences con un chat UI, un agente sin cabeza o una aplicación completa.
42
- El UI cambia la superficie; instrucciones, skills y actions le dan al agente su
43
- orientación y comportamiento.
44
-
45
- ## 1. Crea tu aplicación
46
-
47
- Necesitarás [Node.js 22+](https://nodejs.org) y [pnpm](https://pnpm.io).
48
-
49
- Ejecute `create` sin indicadores y le preguntará cómo desea comenzar (una plantilla completa,
50
- Chat o Headless) antes que nada:
6
+ # Primeros pasos
51
7
 
52
- ```bash
53
- npx @agent-native/core@latest create my-app
54
- ```
8
+ Agent-Native sirve para crear agentic applications: el AI agent y la UI comparten las mismas [actions](/docs/actions), datos SQL y application state. El camino principal empieza con Chat para que los usuarios puedan hablar con el agent de inmediato, y después añade las superficies de producto que el flujo necesita.
9
+
10
+ El recorrido útil es:
11
+
12
+ 1. Crear una Chat app.
13
+ 2. Añadir una action.
14
+ 3. Renderizar el resultado de la action dentro del chat.
15
+ 4. Persistir datos en SQL.
16
+ 5. Añadir una página que el agent pueda abrir cuando conviene inspeccionar el resultado visualmente.
55
17
 
56
- O pase una marca para omitir el mensaje:
18
+ ## 1. Crea una Chat app {#create-your-app}
57
19
 
58
- **¿Quieres un UI?** Comience desde la plantilla de Chat. Obtienes un agente de trabajo más un
59
- Chat personalizable UI, y cada acción que agregas se muestra automáticamente en él:
20
+ Necesitas [Node.js 22+](https://nodejs.org) y [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
- **¿Solo la primitiva sin cabeza?** Comience sin cabeza: el mismo actions y agente
66
- bucle, sin shell UI:
67
-
68
- ```bash
69
- npx @agent-native/core@latest create my-agent --headless
29
+ El template incluye durable chat threads, auth, live sync, un directorio `actions/`, las actions estándar `view-screen` y `navigate`, y una app React lista para extender.
30
+
31
+ ## 2. Añade una action {#add-an-action}
32
+
33
+ Una action es una operación tipada que comparten el agent y la UI. Para este flujo, crea `actions/analyze-responses.ts`: analiza respuestas de formularios y devuelve una forma validada para un gráfico de chat propio.
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: "Gráfico de respuestas"
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
- Luego instálelo desde la carpeta que creó:
64
+ Pruébala directamente:
73
65
 
74
66
  ```bash
75
- cd my-agent # o my-app si elegiste la plantilla Chat
76
- pnpm install
67
+ pnpm action analyze-responses --formId demo
77
68
  ```
78
69
 
79
- A partir de ahora, los dos son idénticos.
80
-
81
- ## 2. Añadir una acción
82
-
83
- Una acción es una operación que su agente (y su UI) pueden realizar. Ambos andamios
84
- envío con este ejemplo:
85
-
86
- <AnnotatedCode
87
- id="doc-block-h1yk8m"
88
- title="Tu primera 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: "Saluda desde el agente 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: "Descripción de herramienta",
98
- note: "El agente lee `description` para decidir cuándo llamarla como herramienta.",
99
- },
100
- {
101
- lines: "6-8",
102
- label: "Contrato tipado",
103
- note: "Un `schema` de zod valida entradas desde cada superficie: agente, UI, HTTP, MCP y A2A.",
104
- },
105
- {
106
- lines: "9",
107
- label: "Verbo HTTP",
108
- note: "Expón esta acción como un endpoint HTTP montado automáticamente.",
109
- },
110
- {
111
- lines: "10",
112
- label: "Solo lectura",
113
- note: "`readOnly` marca la acción como segura para llamar sin aprobación y cacheable para consultas.",
114
- },
115
- {
116
- lines: "11-13",
117
- label: "Una implementación",
118
- note: "El cuerpo de `run` es la única fuente de verdad que ejecutan todas las superficies.",
119
- },
120
- ]}
121
- />
122
-
123
- Reemplace `hello` con la primera operación real en su dominio. Lo defines una vez;
124
- todas las superficies lo recogen.
125
-
126
- Utilice `AGENTS.md` como guía que debe aplicarse en cada giro. Usa una habilidad cuando
127
- el agente necesita un flujo de trabajo o un procedimiento de dominio reutilizable. Utilice una acción cuando
128
- el agente necesita una forma escrita y comprobable de leer datos, escribir datos, llamar a un API o
129
- realizar una aprobación.
130
-
131
- ## 3. Ejecútelo
132
-
133
- Llame a la acción directamente:
70
+ O pídeselo al agent en el navegador:
134
71
 
135
- ```bash
136
- pnpm action hello --name Steve
137
- ```
72
+ > Analiza las respuestas recientes del formulario de demo.
138
73
 
139
- O pídale al agente que lo llame por usted:
74
+ ## 3. Renderiza el resultado en chat {#render-inline}
140
75
 
141
- ```bash
142
- pnpm agent "Call the hello action for Steve and explain what happened."
143
- ```
76
+ Como la action declara `outputSchema` y una `chatUI.renderer` específica del producto, el transcript no convierte los datos en texto plano. Registra un componente React para ese id exacto desde el arranque de la app, por ejemplo importando `app/chat-renderers.tsx` una vez desde `app/root.tsx`:
144
77
 
145
- Si comenzó desde la plantilla de Chat, ejecute la aplicación y use el mismo agente en
146
- navegador: ya puede llamar a cada acción que definas:
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
- ```bash
149
- pnpm dev
105
+ registerActionChatRenderer({
106
+ id: "responses.response-chart",
107
+ renderer: "responses.response-chart",
108
+ Component: ResponseChart,
109
+ });
150
110
  ```
151
111
 
152
- Ahora se puede acceder a esa acción desde el chat UI, CLI, HTTP, MCP, A2A,
153
- trabajos programados y webhooks. Defina una vez y llame desde cualquier lugar.
154
-
155
- <Diagram id="doc-block-xk8dna" title={"Una acción, cada superficie"} summary={"Un único archivo defineAction se distribuye a cada consumidor sin cableado adicional."}>
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">&rarr;</div>
161
- <div class="diagram-surfaces">
162
- <span class="diagram-pill">Interfaz 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">Trabajos programados</span
166
- ><span class="diagram-pill">Webhooks</span>
167
- </div>
168
- </div>
169
- ```
112
+ Para salidas genéricas reutilizables, el framework también incluye renderers integrados `data-chart` y `data-table`, además de `data-insights` para tarjetas combinadas de resumen/gráfico/tabla. Consulta [Native Chat UI](/docs/native-chat-ui).
170
113
 
171
- ```css
172
- .diagram-fan {
173
- display: flex;
174
- align-items: center;
175
- gap: 14px;
176
- flex-wrap: wrap;
177
- }
178
- .diagram-fan .diagram-surfaces {
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-es">
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'>Analiza respuestas de demo.</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'>Renderizado con responses.response-chart.</p><section class='wf-card' data-rough style='padding:14px'><h3 style='margin:0 0 12px;font-size:14px'>Gráfico de respuestas</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'>Mié</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'>Jue</span></div></div></section></div></div></div>"
119
+ }
120
+ />
121
+ </WireframeBlock>
189
122
 
190
- </Diagram>
123
+ ## 4. Persiste datos en SQL {#persist-data}
191
124
 
192
- ## El estado está integrado
125
+ Cuando el resultado debe revisarse, compararse o actualizarse, guárdalo en SQL y mantén las lecturas/escrituras detrás de actions:
193
126
 
194
- Sin cabeza no significa apátrida. Actions, sesiones, estado de la aplicación, subprocesos,
195
- el historial de ejecución y las credenciales se encuentran en SQL. A nivel local es SQLite en
196
- `data/app.db`; en producción se configura `DATABASE_URL`. Ver
197
- [Deployment](/docs/deployment).
127
+ Define la tabla con los helpers portables del framework, no con imports de `drizzle-orm/sqlite-core` o `drizzle-orm/pg-core`:
198
128
 
199
- <Callout id="doc-block-1a7o3u1" tone="info">
129
+ ```ts
130
+ // server/db/schema.ts
131
+ import { integer, now, table, text } from "@agent-native/core/db/schema";
200
132
 
201
- **Headless sigue siendo una aplicación real.** El bucle aplicación-agente persiste sesiones, subprocesos, ejecuciones, configuraciones y credenciales en SQL; no es un mensaje sin estado. Puede agregar una interfaz de usuario más tarde sin tocar sus acciones o estado.
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
- </Callout>
144
+ Estos helpers eligen el backend SQL configurado, así que el mismo schema puede correr en SQLite local y en producción con Postgres, Turso/libSQL, D1 u otro provider SQL soportado.
204
145
 
205
- ## Personaliza el UI
146
+ - `create-response-insight` escribe un insight nuevo.
147
+ - `list-response-insights` lee los datos para la página.
148
+ - `update-response-insight` actualiza un registro.
149
+ - `analyze-responses` sigue devolviendo el widget nativo del chat.
206
150
 
207
- Si comenzó desde la plantilla de Chat, el UI es suyo para editarlo. El chat en
208
- es una pequeña ruta construida sobre el componente `<AgentChatSurface>`:
151
+ No crees una REST route duplicada solo para el navegador; la UI y el agent deben compartir actions.
209
152
 
210
- ```tsx
211
- // app/routes/_index.tsx
212
- import { AgentChatSurface } from "@agent-native/core/client";
153
+ ## 5. Añade una página que el agent pueda abrir {#add-a-page}
213
154
 
214
- export default function ChatRoute() {
215
- return <AgentChatSurface mode="page" className="h-full" />;
216
- }
217
- ```
155
+ Añade una route `/response-insights` con `useActionQuery("list-response-insights")` y `useActionMutation("create-response-insight")`. La página es una proyección del SQL state; los datos siguen escribiéndose por las mismas actions.
218
156
 
219
- - **`app/routes/_index.tsx`**: la página de chat. Cambiar las sugerencias, vacía
220
- estado y diseño.
221
- - **`app/root.tsx`**: el shell de la aplicación. Añade tus propias rutas y pantallas alrededor del
222
- agente.
223
- - Suelte el agente en cualquier pantalla con `<AgentSidebar>`, trabaje manualmente desde un
224
- botón con `sendToAgentChat()`, o ejecuta una acción directamente con
225
- `useActionMutation()`.
157
+ <WireframeBlock id="doc-block-response-insights-page-wireframe-es">
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 respuestas</h2><p class='wf-muted' style='margin:0'>Insights que el agente creó a partir de respuestas del formulario.</p></header><button class='primary' data-rough style='align-self:flex-start'>Analizar formulario demo</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>Tema de precios</strong><p class='wf-muted' style='margin:8px 0 0'>Los usuarios piden un plan de equipo.</p></article><article class='wf-box' data-rough style='padding:12px'><strong>Abandono en onboarding</strong><p class='wf-muted' style='margin:8px 0 0'>Tres pasos necesitan textos más claros.</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>Formulario de demo</strong><span class='wf-muted'>42 respuestas analizadas</span></div><div class='wf-row wf-box' data-rough style='padding:10px 12px;gap:12px;justify-content:space-between'><strong>Siguiente paso</strong><span class='wf-muted'>Revisar dos borradores de 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'>Tú</span><p style='margin:4px 0 0'>Abre insights de respuestas.</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 respuestas abiertos.</p></div></aside></section></main>"
162
+ }
163
+ />
164
+ </WireframeBlock>
226
165
 
227
- Consulte [Drop-in Agent](/docs/drop-in-agent) para conocer el conjunto completo de componentes y
228
- [Native Interfaz de chat](/docs/native-chat-ui) para representar los resultados de la acción como tablas,
229
- gráficos y tarjetas mecanografiadas en lugar de texto sin formato.
166
+ Extiende `view-screen` y `navigate` para que el agent conozca la route actual y pueda abrir `/response-insights`. Los resultados también pueden incluir `href: "/response-insights"` para mostrar un botón "Abrir insights de respuestas".
230
167
 
231
- **¿Empezaste sin cabeza y quieres un UI más tarde?** La plantilla de chat _es_ la rampa de acceso a UI
232
- su capa `app/` (React Router + Vite) es exactamente lo que el andamio sin cabeza
233
- se va. El movimiento más limpio es comenzar (o reestructurar) desde el Chat
234
- plantilla; su estado `actions/`, agente y SQL se mantienen sin cambios. Ver
235
- [Agent Surfaces](/docs/agent-surfaces) para cada superficie intermedia.
168
+ Cuando el chat de página completa abra una página de app, usa `AgentChatSurface`, `AgentSidebar`, `useAgentChatHomeHandoff`, `useAgentChatHomeHandoffLinks` y `chatViewTransition` desde [Agent Surfaces](/docs/agent-surfaces#rich-chat) para deslizar el chat al panel lateral sin perder el thread.
236
169
 
237
- ## Estructura del proyecto
170
+ ## Estructura del proyecto {#project-structure}
238
171
 
239
172
  ```text
240
173
  my-app/
241
- actions/ # Acciones que puede llamar el agente
242
- app/ # Frontend React (solo plantillas UI; se omite en headless)
243
- server/ # Servidor API Nitro (rutas, plugins)
244
- AGENTS.md # Instrucciones permanentes para el agente
245
- .agents/ # Skills que el agente puede cargar cuando sean relevantes
174
+ actions/ # Operaciones invocables por el agente y la interfaz
175
+ app/ # Rutas, páginas y superficies de chat de React
176
+ server/ # Servidor Nitro y esquema SQL
177
+ AGENTS.md # Instrucciones siempre activas para el agente de la app
178
+ .agents/ # Skills que el agente carga cuando corresponde
246
179
  data/app.db # Estado SQLite local cuando DATABASE_URL no está definido
247
180
  ```
248
181
 
249
- ## Adónde ir a continuación
250
-
251
- - **[Key Concepts](/docs/key-concepts)**: la arquitectura principal: SQL, actions,
252
- sincronización y reconocimiento del contexto.
253
- - **[Actions](/docs/actions)**: la acción completa API: esquemas, HTTP, autenticación y
254
- aprobación.
255
- - **[Agent Surfaces](/docs/agent-surfaces)**: sin cabeza, chat, sidecar integrado,
256
- y aplicación completa.
257
- - **[Drop-in Agent](/docs/drop-in-agent)**: agrega el chat del agente a cualquier aplicación React.
258
- - **[Deployment](/docs/deployment)**: coloca tu aplicación en tu propio dominio.
259
- - **[FAQ](/docs/faq)**: preguntas sobre configuración y productos.
182
+ ## ¿Quieres un punto de partida completo para analytics? {#analytics-starting-point}
183
+
184
+ El ejemplo de Insights de respuestas anterior es pequeño a propósito para mostrar las piezas del framework. Si vas a crear un producto real de analytics, empieza con [Analytics](/docs/template-analytics). Es el punto de partida robusto: conecta tus providers, usa los dashboards y agent actions existentes, y personaliza desde ahí.
185
+
186
+ ## Siguientes pasos {#next}
187
+
188
+ - **[Actions](/docs/actions)** schemas, auth, approvals, hooks y transport.
189
+ - **[Native Chat UI](/docs/native-chat-ui)** — tablas, gráficos y typed cards para resultados de actions.
190
+ - **[Chat Template](/docs/template-chat)** la app mínima chat-first.
191
+ - **[Analytics Template](/docs/template-analytics)** una base robusta para analytics; conecta providers y personaliza desde ahí.
192
+ - **[Context Awareness](/docs/context-awareness)** `view-screen`, `navigate`, route state y objetos seleccionados.
193
+ - **[Agent Surfaces](/docs/agent-surfaces)** — chat, inline UI, app pages, embedded sidecars, automation y agents externos.
@@ -1,16 +1,11 @@
1
1
  ---
2
- title: "Aplicaciones de agente puro"
3
- description: "Aplicaciones donde el agente es el producto completo: el bucle aplicación-agente es la puerta de entrada y UI se agrega solo cuando los humanos lo necesitan."
2
+ title: "Automation-First Apps"
3
+ description: "Apps Agent-Native sin navegador para scheduled jobs, colas, scripts, integration workers y agents externos."
4
4
  ---
5
5
 
6
- # Aplicaciones de agente puro
6
+ # Automation-First Apps
7
7
 
8
- Una aplicación de agente puro es el extremo mínimo de un agente nativo: el bucle aplicación-agente es el
9
- producto, no un tablero. Envías una solicitud desde la terminal, Slack, correo electrónico, a
10
- trabajo programado, otro agente o Chat: "resumir mis correos electrónicos no leídos", "publicar el
11
- métricas diarias a Slack" — y el agente actúa y devuelve el resultado dondequiera que esté
12
- pertenece. Sigue siendo una aplicación real: actions, sesiones, estado de la aplicación, historial,
13
- La configuración, las credenciales y los registros compartidos se encuentran todos en SQL.
8
+ Una automation-first app es una app Agent-Native sin navegador para scheduled jobs, colas, scripts, integration workers y agents externos. No es el camino predeterminado de Getting Started, pero es útil cuando el workflow todavía no necesita una página. Sigue siendo una app real: actions, sessions, application state, run history, settings, credentials y registros compartidos viven en SQL.
14
9
 
15
10
  <Diagram id="doc-block-16rgm92" title={"El bucle aplicación-agente es la puerta de entrada"} summary={"Muchos puntos de entrada llegan a un bucle de agente sobre SQL-backed acciones y estado; los resultados regresan al lugar de donde vino la solicitud. La interfaz de usuario se agrega solo cuando los humanos necesitan supervisar."}>
16
11
 
@@ -7,7 +7,7 @@ description: "Una aplicación nativa de agente mínima que prioriza el chat: hil
7
7
 
8
8
  El chat es el punto de partida básico de la aplicación nativa del agente. Le brinda un shell limpio estilo ChatGPT con chat en el centro, una lista de hilos a la izquierda, navegación de aplicaciones estándar, autenticación, sincronización en vivo, actions y una acción de ejemplo. Comience aquí cuando desee una aplicación de navegador real que pueda desarrollar sin comprometerse con una plantilla de dominio.
9
9
 
10
- Si desea el tiempo de ejecución más pequeño de solo acciones sin navegador UI, comience con [Pure-Agent Apps](/docs/pure-agent-apps). Si desea una forma de producto de dominio terminada, comience con [Calendar](/docs/template-calendar), [Mail](/docs/template-mail), [Content](/docs/template-content), [Forms](/docs/template-forms), [Analytics](/docs/template-analytics) u otra plantilla de dominio.
10
+ Si desea un runtime automation-first sin navegador UI, comience con [Automation-First Apps](/docs/pure-agent-apps). Si desea una forma de producto de dominio terminada, comience con [Calendar](/docs/template-calendar), [Mail](/docs/template-mail), [Content](/docs/template-content), [Forms](/docs/template-forms), [Analytics](/docs/template-analytics) u otra plantilla de dominio.
11
11
 
12
12
  <WireframeBlock id="doc-block-1yw4lnu">
13
13
  <Screen
@@ -200,4 +200,4 @@ El agente debe agregar un esquema Drizzle, actions, ruta, navegación e instrucc
200
200
  - [**Agent Surfaces**](/docs/agent-surfaces): patrones headless, chat, integrados y de aplicación completa
201
201
  - [**Actions**](/docs/actions): el chat del sistema de acción y UI llaman
202
202
  - [**Native Interfaz de chat**](/docs/native-chat-ui): primitivas de la superficie de chat y opciones de tiempo de ejecución
203
- - [**Pure-Agent Apps**](/docs/pure-agent-apps): aplicaciones de solo acción que pueden convertirse en Chat más adelante
203
+ - [**Automation-First Apps**](/docs/pure-agent-apps): automatizaciones, colas, scripts y workflows de agents externos sin UI de navegador
@@ -99,7 +99,7 @@ El agente no es una aplicación independiente a la que puedes acceder. Se envía
99
99
 
100
100
  No todas las aplicaciones necesitan un panel completo. Cuando el agente _es_ el producto, puede omitir la mayor parte del UI personalizado: abra la aplicación, solicite lo que desee y deje que el agente haga el resto. El agente todavía tiene su superficie de administración (historial, espacio de trabajo, configuración), pero la interacción principal es la conversación en lugar de los clics.
101
101
 
102
- → [**Pure-Agent Apps**](/docs/pure-agent-apps): aplicaciones donde el agente es el producto completo.
102
+ → [**Automation-First Apps**](/docs/pure-agent-apps): apps sin navegador para jobs, colas, scripts y agents externos.
103
103
 
104
104
  ## Coeditas con él {#you-co-edit}
105
105
 
@@ -113,5 +113,5 @@ Cuando usted y el agente trabajan en el mismo documento, no se turnan. Con la co
113
113
  - [**Agent Mentions**](/docs/agent-mentions): dirígelo con menciones `@`
114
114
  - [**Voice Input**](/docs/voice-input): dirígelo hablando
115
115
  - [**Drop-in Agent**](/docs/drop-in-agent): incrustarlo en cualquier aplicación React
116
- - [**Pure-Agent Apps**](/docs/pure-agent-apps): pasa a UI ligera cuando el agente es el producto
116
+ - [**Automation-First Apps**](/docs/pure-agent-apps): apps sin navegador para jobs, colas, scripts y agents externos
117
117
  - [**Real-Time Collaboration**](/docs/real-time-collaboration): coeditar el mismo documento juntos
@@ -30,7 +30,7 @@ Chacune est une véritable application que vous pouvez utiliser aujourd'hui, et
30
30
  | [**Plan**](/docs/template-plan) | Plans visuels et récapitulatifs des relations publiques avec diagrammes, wireframes et annotations. |
31
31
  | [**Dispatch**](/docs/template-dispatch) | Le plan de contrôle de l'espace de travail : secrets partagés, intégrations réutilisables, Slack/Telegram, tâches planifiées. |
32
32
 
33
- Vous ne voulez pas d'application de domaine ? Utilisez [Chat](/docs/template-chat) lorsque vous souhaitez une application de base avec laquelle les utilisateurs peuvent parler immédiatement, ou commencez par une action dans [Pure-Agent Apps](/docs/pure-agent-apps).
33
+ Vous ne voulez pas d'application de domaine ? Utilisez [Chat](/docs/template-chat) lorsque vous souhaitez une application de base avec laquelle les utilisateurs peuvent parler immédiatement et que vous pouvez étendre avec des actions, des résultats natifs et des écrans. Utilisez [Automation-First Apps](/docs/pure-agent-apps) seulement lorsque le workflow n'a pas encore besoin d'UI navigateur.
34
34
 
35
35
  Consultez le catalogue complet sous [Apps](/apps) ou passez directement à l'un d'entre eux. Par exemple, [Dispatch](/docs/template-dispatch) est un excellent point de départ si vous souhaitez une application de style espace de travail.
36
36
 
@@ -182,7 +182,7 @@ Si vous créez un échafaudage maintenant, la commande CLI est :
182
182
  npx @agent-native/core@latest create my-platform
183
183
  ```
184
184
 
185
- Vous obtiendrez un sélecteur à sélection multiple. Choisissez une application (autonome) ou plusieurs (espace de travail : les applications partagent l'authentification, la marque, la configuration de l'agent et la base de données). Chaque modèle sélectionné est intégré dans `apps/<name>/` avec chaque fichier dont vous avez besoin. Pour une application d'action uniquement au lieu d'un modèle UI, utilisez `npx @agent-native/core@latest create my-agent --headless`.
185
+ Vous obtiendrez un sélecteur à sélection multiple. Choisissez une application (autonome) ou plusieurs (espace de travail : les applications partagent l'authentification, la marque, la configuration de l'agent et la base de données). Chaque modèle sélectionné est intégré dans `apps/<name>/` avec chaque fichier dont vous avez besoin. Pour une automation sans UI navigateur au lieu d'un modèle UI, utilisez `npx @agent-native/core@latest create my-agent --headless`.
186
186
 
187
187
  Remplissez `.env` (principalement `ANTHROPIC_API_KEY` et `DATABASE_URL`), `pnpm install`, `pnpm dev`, et cela fonctionne. Pas de "TODO : implémenter la connexion", pas de routes d'espace réservé.
188
188
 
@@ -11,15 +11,15 @@ Questions courantes sur les agents natifs, organisées de "Je cherche juste" à
11
11
 
12
12
  ### Qu'est-ce que l'agent natif ? {#what-is-agent-native}
13
13
 
14
- Agent-native est un cadre permettant de créer des applications dans lesquelles l'agent IA et le produit qui l'entoure sont des partenaires égaux. Cette surface peut commencer comme un agent sans tête avec une action personnalisée, se transformer en un chat riche ou devenir un UI complet. L'invariant est que les agents et les humains partagent le même actions, la même base de données et le même état. Voir [What Is Agent-Native?](/docs/what-is-agent-native) pour l'explication complète.
14
+ Agent-native est un cadre permettant de créer des applications dans lesquelles l'agent IA et le produit qui l'entoure sont des partenaires égaux. Le chemin courant commence par le chat, ajoute des actions typées, rend des résultats structurés en ligne, puis grandit vers des pages durables autour du même état SQL. L'invariant est que les agents et les humains partagent le même actions, la même base de données et le même état. Voir [What Is Agent-Native?](/docs/what-is-agent-native) pour l'explication complète.
15
15
 
16
16
  ### À qui est-ce destiné ? {#who-is-this-for}
17
17
 
18
18
  Agent-native est destiné aux personnes qui souhaitent qu'une véritable application et un agent IA fonctionnent à partir des mêmes données et actions. Les chemins courants sont :
19
19
 
20
20
  - **Utilisez une application hébergée** si vous souhaitez recevoir un courrier, un calendrier, des formulaires, un plan ou un autre modèle fini sans configuration – commencez par le [template gallery](/templates).
21
- - **Commencez avec Chat** si vous souhaitez une application de base avec laquelle les utilisateurs peuvent parler immédiatement, puis étendez-la avec actions et les écrans – commencez par [Getting Started](/docs/getting-started) ou [Chat](/docs/template-chat).
22
- - **Démarrez d'abord les primitives** si vous souhaitez une action et une boucle d'agent d'application sans tête avant de vous engager dans UI — commencez par [Getting Started](/docs/getting-started).
21
+ - **Commencez avec Chat** si vous souhaitez le chemin par défaut depuis zéro : les utilisateurs parlent immédiatement à l'agent, puis vous étendez avec actions, résultats natifs et écrans – commencez par [Getting Started](/docs/getting-started) ou [Chat](/docs/template-chat).
22
+ - **Commencez automation-first** si vous créez des tâches planifiées, files, scripts, integration workers ou workflows d'agents externes sans UI navigateur pour le moment — commencez par [Automation-First Apps](/docs/pure-agent-apps).
23
23
  - ** Créez et personnalisez un modèle ** si vous souhaitez créer votre propre produit SaaS avec authentification, base de données, UI et agent actions déjà câblés – voir [Templates](/docs/cloneable-saas).
24
24
  - **Construisez à partir de zéro** si vous souhaitez les primitives de structure pour un nouveau produit piloté par agent : commencez par [Getting Started](/docs/getting-started).
25
25
  - **Connectez un autre agent ou un autre outil de code** si vous souhaitez que Claude, ChatGPT, Codex, Cursor ou GitHub Copilot / VS Code utilisent une application native d'agent – voir [External Agents](/docs/external-agents) et [Skills Guide](/docs/skills-guide).
@@ -130,7 +130,7 @@ C'est là tout l'intérêt. Créez un modèle et personnalisez-le en le demandan
130
130
 
131
131
  ### Puis-je créer quelque chose que les modèles ne couvrent pas ? {#build-from-scratch}
132
132
 
133
- Oui. Si vous souhaitez une application de chat de base, exécutez `npx @agent-native/core@latest create my-chat-app --template chat` ; vous bénéficiez de fils de discussion durables, de actions, d'une authentification, d'un état d'exécution soutenu par SQL et d'un espace pour ajouter vos propres écrans. Si vous souhaitez la plus petite application axée sur l'action sans UI, exécutez `npx @agent-native/core@latest create my-agent --headless`. Voir [Getting Started](/docs/getting-started), [Pure-Agent Apps](/docs/pure-agent-apps) et [Chat](/docs/template-chat).
133
+ Oui. Si vous souhaitez une app agentic de base, exécutez `npx @agent-native/core@latest create my-chat-app --template chat` ; vous bénéficiez de fils de discussion durables, de actions, d'une authentification, d'un état d'exécution soutenu par SQL, d'un rendu natif en ligne et d'un espace pour ajouter vos propres écrans. Si vous créez une automation sans navigateur, exécutez `npx @agent-native/core@latest create my-agent --headless`. Voir [Getting Started](/docs/getting-started), [Automation-First Apps](/docs/pure-agent-apps) et [Chat](/docs/template-chat).
134
134
 
135
135
  ### Puis-je l'essayer sans créer de modèle ? {#try-with-a-skill}
136
136