@agent-native/core 0.79.2 → 0.79.6

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 (268) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +30 -0
  3. package/corpus/core/docs/content/locales/zh-TW/a2a-protocol.md +392 -0
  4. package/corpus/core/docs/content/locales/zh-TW/actions.md +583 -0
  5. package/corpus/core/docs/content/locales/zh-TW/agent-mentions.md +164 -0
  6. package/corpus/core/docs/content/locales/zh-TW/agent-surfaces.md +397 -0
  7. package/corpus/core/docs/content/locales/zh-TW/agent-teams.md +171 -0
  8. package/corpus/core/docs/content/locales/zh-TW/agent-web-surfaces.md +161 -0
  9. package/corpus/core/docs/content/locales/zh-TW/audit-log.md +111 -0
  10. package/corpus/core/docs/content/locales/zh-TW/authentication.md +332 -0
  11. package/corpus/core/docs/content/locales/zh-TW/automations.md +268 -0
  12. package/corpus/core/docs/content/locales/zh-TW/blueprint-installer.md +83 -0
  13. package/corpus/core/docs/content/locales/zh-TW/cli-adapters.md +129 -0
  14. package/corpus/core/docs/content/locales/zh-TW/client.md +398 -0
  15. package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.md +114 -0
  16. package/corpus/core/docs/content/locales/zh-TW/code-agents-ui.md +436 -0
  17. package/corpus/core/docs/content/locales/zh-TW/components.md +368 -0
  18. package/corpus/core/docs/content/locales/zh-TW/context-awareness.md +373 -0
  19. package/corpus/core/docs/content/locales/zh-TW/creating-templates.md +411 -0
  20. package/corpus/core/docs/content/locales/zh-TW/cross-app-sso.md +188 -0
  21. package/corpus/core/docs/content/locales/zh-TW/database.md +183 -0
  22. package/corpus/core/docs/content/locales/zh-TW/deployment.md +348 -0
  23. package/corpus/core/docs/content/locales/zh-TW/dispatch.md +146 -0
  24. package/corpus/core/docs/content/locales/zh-TW/drop-in-agent.md +260 -0
  25. package/corpus/core/docs/content/locales/zh-TW/durable-resume.md +65 -0
  26. package/corpus/core/docs/content/locales/zh-TW/embedding-sdk.md +597 -0
  27. package/corpus/core/docs/content/locales/zh-TW/evals.md +155 -0
  28. package/corpus/core/docs/content/locales/zh-TW/extensions.md +360 -0
  29. package/corpus/core/docs/content/locales/zh-TW/external-agents.md +619 -0
  30. package/corpus/core/docs/content/locales/zh-TW/faq.md +142 -0
  31. package/corpus/core/docs/content/locales/zh-TW/file-uploads.md +122 -0
  32. package/corpus/core/docs/content/locales/zh-TW/frames.md +153 -0
  33. package/corpus/core/docs/content/locales/zh-TW/getting-started.md +199 -0
  34. package/corpus/core/docs/content/locales/zh-TW/harness-agents.md +349 -0
  35. package/corpus/core/docs/content/locales/zh-TW/human-approval.md +86 -0
  36. package/corpus/core/docs/content/locales/zh-TW/internationalization.md +147 -0
  37. package/corpus/core/docs/content/locales/zh-TW/key-concepts.md +312 -0
  38. package/corpus/core/docs/content/locales/zh-TW/local-file-mode.md +433 -0
  39. package/corpus/core/docs/content/locales/zh-TW/mcp-apps.md +147 -0
  40. package/corpus/core/docs/content/locales/zh-TW/mcp-clients.md +330 -0
  41. package/corpus/core/docs/content/locales/zh-TW/mcp-protocol.md +279 -0
  42. package/corpus/core/docs/content/locales/zh-TW/messaging.md +461 -0
  43. package/corpus/core/docs/content/locales/zh-TW/migration-workbench.md +33 -0
  44. package/corpus/core/docs/content/locales/zh-TW/multi-app-workspace.md +312 -0
  45. package/corpus/core/docs/content/locales/zh-TW/multi-tenancy.md +52 -0
  46. package/corpus/core/docs/content/locales/zh-TW/native-chat-ui.md +321 -0
  47. package/corpus/core/docs/content/locales/zh-TW/notifications.md +231 -0
  48. package/corpus/core/docs/content/locales/zh-TW/observability.md +294 -0
  49. package/corpus/core/docs/content/locales/zh-TW/observational-memory.md +77 -0
  50. package/corpus/core/docs/content/locales/zh-TW/onboarding.md +216 -0
  51. package/corpus/core/docs/content/locales/zh-TW/plan-plugin.md +200 -0
  52. package/corpus/core/docs/content/locales/zh-TW/pr-visual-recap.md +384 -0
  53. package/corpus/core/docs/content/locales/zh-TW/processors.md +106 -0
  54. package/corpus/core/docs/content/locales/zh-TW/progress.md +199 -0
  55. package/corpus/core/docs/content/locales/zh-TW/pure-agent-apps.md +39 -0
  56. package/corpus/core/docs/content/locales/zh-TW/real-time-collaboration.md +680 -0
  57. package/corpus/core/docs/content/locales/zh-TW/recurring-jobs.md +142 -0
  58. package/corpus/core/docs/content/locales/zh-TW/routing.md +79 -0
  59. package/corpus/core/docs/content/locales/zh-TW/sandbox-adapters.md +227 -0
  60. package/corpus/core/docs/content/locales/zh-TW/security.md +330 -0
  61. package/corpus/core/docs/content/locales/zh-TW/server.md +265 -0
  62. package/corpus/core/docs/content/locales/zh-TW/sharing.md +219 -0
  63. package/corpus/core/docs/content/locales/zh-TW/skills-guide.md +281 -0
  64. package/corpus/core/docs/content/locales/zh-TW/template-analytics.md +259 -0
  65. package/corpus/core/docs/content/locales/zh-TW/template-assets.md +303 -0
  66. package/corpus/core/docs/content/locales/zh-TW/template-brain.md +324 -0
  67. package/corpus/core/docs/content/locales/zh-TW/template-calendar.md +194 -0
  68. package/corpus/core/docs/content/locales/zh-TW/template-chat.md +129 -0
  69. package/corpus/core/docs/content/locales/zh-TW/template-clips.md +368 -0
  70. package/corpus/core/docs/content/locales/zh-TW/template-content.md +402 -0
  71. package/corpus/core/docs/content/locales/zh-TW/template-design.md +173 -0
  72. package/corpus/core/docs/content/locales/zh-TW/template-dispatch.md +220 -0
  73. package/corpus/core/docs/content/locales/zh-TW/template-forms.md +178 -0
  74. package/corpus/core/docs/content/locales/zh-TW/template-mail.md +239 -0
  75. package/corpus/core/docs/content/locales/zh-TW/template-plan.md +814 -0
  76. package/corpus/core/docs/content/locales/zh-TW/template-slides.md +293 -0
  77. package/corpus/core/docs/content/locales/zh-TW/template-videos.md +222 -0
  78. package/corpus/core/docs/content/locales/zh-TW/tracking.md +236 -0
  79. package/corpus/core/docs/content/locales/zh-TW/using-your-agent.md +71 -0
  80. package/corpus/core/docs/content/locales/zh-TW/voice-input.md +81 -0
  81. package/corpus/core/docs/content/locales/zh-TW/what-is-agent-native.md +202 -0
  82. package/corpus/core/docs/content/locales/zh-TW/workspace-connections.md +321 -0
  83. package/corpus/core/docs/content/locales/zh-TW/workspace-management.md +175 -0
  84. package/corpus/core/docs/content/locales/zh-TW/workspace.md +323 -0
  85. package/corpus/core/docs/content/locales/zh-TW/writing-agent-instructions.md +173 -0
  86. package/corpus/core/package.json +2 -2
  87. package/corpus/core/scripts/check-dist-imports.mjs +35 -0
  88. package/corpus/core/src/client/ErrorBoundary.tsx +10 -0
  89. package/corpus/core/src/client/FeedbackButton.tsx +12 -0
  90. package/corpus/core/src/client/blocks/library/block-copy.ts +32 -0
  91. package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +33 -0
  92. package/corpus/core/src/client/i18n.tsx +6 -1
  93. package/corpus/core/src/localization/actions/set-localization-preference.ts +2 -1
  94. package/corpus/core/src/localization/default-messages.ts +492 -0
  95. package/corpus/core/src/localization/shared.ts +45 -0
  96. package/corpus/core/src/server/agent-chat-plugin.ts +38 -0
  97. package/corpus/core/src/server/onboarding-html.ts +99 -0
  98. package/corpus/core/src/templates/default/app/i18n/index.ts +2 -0
  99. package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +466 -0
  100. package/corpus/core/src/templates/default/app/root.tsx +8 -0
  101. package/corpus/templates/analytics/app/i18n/index.ts +2 -0
  102. package/corpus/templates/analytics/app/i18n/zh-TW.ts +818 -0
  103. package/corpus/templates/analytics/app/i18n-data.ts +9 -0
  104. package/corpus/templates/assets/app/i18n/index.ts +2 -0
  105. package/corpus/templates/assets/app/i18n/zh-TW.ts +860 -0
  106. package/corpus/templates/assets/app/i18n-data.ts +3 -0
  107. package/corpus/templates/brain/app/i18n/index.ts +2 -0
  108. package/corpus/templates/brain/app/i18n/zh-TW.ts +709 -0
  109. package/corpus/templates/brain/app/i18n-data.ts +3 -0
  110. package/corpus/templates/calendar/app/i18n/zh-TW.ts +836 -0
  111. package/corpus/templates/calendar/app/i18n-data.ts +4 -0
  112. package/corpus/templates/chat/app/i18n/index.ts +2 -0
  113. package/corpus/templates/chat/app/i18n/zh-TW.ts +67 -0
  114. package/corpus/templates/chat/app/i18n-data.ts +3 -0
  115. package/corpus/templates/clips/app/i18n/index.ts +2 -0
  116. package/corpus/templates/clips/app/i18n/zh-TW.ts +1280 -0
  117. package/corpus/templates/content/app/i18n/index.ts +2 -0
  118. package/corpus/templates/content/app/i18n/zh-TW.ts +906 -0
  119. package/corpus/templates/content/app/i18n-data.ts +4 -0
  120. package/corpus/templates/design/app/i18n/index.ts +2 -0
  121. package/corpus/templates/design/app/i18n/zh-TW.ts +517 -0
  122. package/corpus/templates/design/app/i18n-data.ts +6 -0
  123. package/corpus/templates/dispatch/app/i18n/index.ts +2 -0
  124. package/corpus/templates/dispatch/app/i18n/zh-TW.ts +195 -0
  125. package/corpus/templates/dispatch/app/i18n-data.ts +3 -0
  126. package/corpus/templates/forms/app/i18n/index.ts +2 -0
  127. package/corpus/templates/forms/app/i18n/zh-TW.ts +349 -0
  128. package/corpus/templates/macros/app/i18n/index.ts +2 -0
  129. package/corpus/templates/macros/app/i18n/zh-TW.ts +224 -0
  130. package/corpus/templates/mail/app/i18n/index.ts +2 -0
  131. package/corpus/templates/mail/app/i18n/zh-TW.ts +562 -0
  132. package/corpus/templates/mail/app/root.tsx +6 -0
  133. package/corpus/templates/plan/app/i18n/index.ts +2 -0
  134. package/corpus/templates/plan/app/i18n/zh-TW.ts +712 -0
  135. package/corpus/templates/slides/app/i18n/index.ts +2 -0
  136. package/corpus/templates/slides/app/i18n/zh-TW.ts +531 -0
  137. package/corpus/templates/videos/app/i18n/index.ts +2 -0
  138. package/corpus/templates/videos/app/i18n/zh-TW.ts +435 -0
  139. package/dist/client/ErrorBoundary.d.ts.map +1 -1
  140. package/dist/client/ErrorBoundary.js +10 -0
  141. package/dist/client/ErrorBoundary.js.map +1 -1
  142. package/dist/client/FeedbackButton.d.ts.map +1 -1
  143. package/dist/client/FeedbackButton.js +12 -0
  144. package/dist/client/FeedbackButton.js.map +1 -1
  145. package/dist/client/blocks/library/block-copy.d.ts.map +1 -1
  146. package/dist/client/blocks/library/block-copy.js +32 -0
  147. package/dist/client/blocks/library/block-copy.js.map +1 -1
  148. package/dist/client/extensions/ExtensionsSidebarSection.d.ts.map +1 -1
  149. package/dist/client/extensions/ExtensionsSidebarSection.js +32 -0
  150. package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
  151. package/dist/client/i18n.d.ts.map +1 -1
  152. package/dist/client/i18n.js +6 -1
  153. package/dist/client/i18n.js.map +1 -1
  154. package/dist/collab/routes.d.ts +2 -2
  155. package/dist/file-upload/actions/upload-image.d.ts +2 -2
  156. package/dist/localization/actions/set-localization-preference.d.ts.map +1 -1
  157. package/dist/localization/actions/set-localization-preference.js +2 -2
  158. package/dist/localization/actions/set-localization-preference.js.map +1 -1
  159. package/dist/localization/default-messages.d.ts +443 -0
  160. package/dist/localization/default-messages.d.ts.map +1 -0
  161. package/dist/localization/default-messages.js +448 -0
  162. package/dist/localization/default-messages.js.map +1 -0
  163. package/dist/localization/shared.d.ts +1 -1
  164. package/dist/localization/shared.d.ts.map +1 -1
  165. package/dist/localization/shared.js +43 -0
  166. package/dist/localization/shared.js.map +1 -1
  167. package/dist/notifications/routes.d.ts +2 -2
  168. package/dist/observability/routes.d.ts +7 -7
  169. package/dist/progress/routes.d.ts +1 -1
  170. package/dist/resources/handlers.d.ts +3 -3
  171. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  172. package/dist/server/agent-chat-plugin.js +39 -0
  173. package/dist/server/agent-chat-plugin.js.map +1 -1
  174. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  175. package/dist/server/onboarding-html.d.ts.map +1 -1
  176. package/dist/server/onboarding-html.js +96 -0
  177. package/dist/server/onboarding-html.js.map +1 -1
  178. package/dist/server/transcribe-voice.d.ts +1 -1
  179. package/dist/templates/default/app/i18n/index.ts +2 -0
  180. package/dist/templates/default/app/i18n/zh-TW.ts +466 -0
  181. package/dist/templates/default/app/root.tsx +8 -0
  182. package/docs/content/locales/zh-TW/a2a-protocol.md +392 -0
  183. package/docs/content/locales/zh-TW/actions.md +583 -0
  184. package/docs/content/locales/zh-TW/agent-mentions.md +164 -0
  185. package/docs/content/locales/zh-TW/agent-surfaces.md +397 -0
  186. package/docs/content/locales/zh-TW/agent-teams.md +171 -0
  187. package/docs/content/locales/zh-TW/agent-web-surfaces.md +161 -0
  188. package/docs/content/locales/zh-TW/audit-log.md +111 -0
  189. package/docs/content/locales/zh-TW/authentication.md +332 -0
  190. package/docs/content/locales/zh-TW/automations.md +268 -0
  191. package/docs/content/locales/zh-TW/blueprint-installer.md +83 -0
  192. package/docs/content/locales/zh-TW/cli-adapters.md +129 -0
  193. package/docs/content/locales/zh-TW/client.md +398 -0
  194. package/docs/content/locales/zh-TW/cloneable-saas.md +114 -0
  195. package/docs/content/locales/zh-TW/code-agents-ui.md +436 -0
  196. package/docs/content/locales/zh-TW/components.md +368 -0
  197. package/docs/content/locales/zh-TW/context-awareness.md +373 -0
  198. package/docs/content/locales/zh-TW/creating-templates.md +411 -0
  199. package/docs/content/locales/zh-TW/cross-app-sso.md +188 -0
  200. package/docs/content/locales/zh-TW/database.md +183 -0
  201. package/docs/content/locales/zh-TW/deployment.md +348 -0
  202. package/docs/content/locales/zh-TW/dispatch.md +146 -0
  203. package/docs/content/locales/zh-TW/drop-in-agent.md +260 -0
  204. package/docs/content/locales/zh-TW/durable-resume.md +65 -0
  205. package/docs/content/locales/zh-TW/embedding-sdk.md +597 -0
  206. package/docs/content/locales/zh-TW/evals.md +155 -0
  207. package/docs/content/locales/zh-TW/extensions.md +360 -0
  208. package/docs/content/locales/zh-TW/external-agents.md +619 -0
  209. package/docs/content/locales/zh-TW/faq.md +142 -0
  210. package/docs/content/locales/zh-TW/file-uploads.md +122 -0
  211. package/docs/content/locales/zh-TW/frames.md +153 -0
  212. package/docs/content/locales/zh-TW/getting-started.md +199 -0
  213. package/docs/content/locales/zh-TW/harness-agents.md +349 -0
  214. package/docs/content/locales/zh-TW/human-approval.md +86 -0
  215. package/docs/content/locales/zh-TW/internationalization.md +147 -0
  216. package/docs/content/locales/zh-TW/key-concepts.md +312 -0
  217. package/docs/content/locales/zh-TW/local-file-mode.md +433 -0
  218. package/docs/content/locales/zh-TW/mcp-apps.md +147 -0
  219. package/docs/content/locales/zh-TW/mcp-clients.md +330 -0
  220. package/docs/content/locales/zh-TW/mcp-protocol.md +279 -0
  221. package/docs/content/locales/zh-TW/messaging.md +461 -0
  222. package/docs/content/locales/zh-TW/migration-workbench.md +33 -0
  223. package/docs/content/locales/zh-TW/multi-app-workspace.md +312 -0
  224. package/docs/content/locales/zh-TW/multi-tenancy.md +52 -0
  225. package/docs/content/locales/zh-TW/native-chat-ui.md +321 -0
  226. package/docs/content/locales/zh-TW/notifications.md +231 -0
  227. package/docs/content/locales/zh-TW/observability.md +294 -0
  228. package/docs/content/locales/zh-TW/observational-memory.md +77 -0
  229. package/docs/content/locales/zh-TW/onboarding.md +216 -0
  230. package/docs/content/locales/zh-TW/plan-plugin.md +200 -0
  231. package/docs/content/locales/zh-TW/pr-visual-recap.md +384 -0
  232. package/docs/content/locales/zh-TW/processors.md +106 -0
  233. package/docs/content/locales/zh-TW/progress.md +199 -0
  234. package/docs/content/locales/zh-TW/pure-agent-apps.md +39 -0
  235. package/docs/content/locales/zh-TW/real-time-collaboration.md +680 -0
  236. package/docs/content/locales/zh-TW/recurring-jobs.md +142 -0
  237. package/docs/content/locales/zh-TW/routing.md +79 -0
  238. package/docs/content/locales/zh-TW/sandbox-adapters.md +227 -0
  239. package/docs/content/locales/zh-TW/security.md +330 -0
  240. package/docs/content/locales/zh-TW/server.md +265 -0
  241. package/docs/content/locales/zh-TW/sharing.md +219 -0
  242. package/docs/content/locales/zh-TW/skills-guide.md +281 -0
  243. package/docs/content/locales/zh-TW/template-analytics.md +259 -0
  244. package/docs/content/locales/zh-TW/template-assets.md +303 -0
  245. package/docs/content/locales/zh-TW/template-brain.md +324 -0
  246. package/docs/content/locales/zh-TW/template-calendar.md +194 -0
  247. package/docs/content/locales/zh-TW/template-chat.md +129 -0
  248. package/docs/content/locales/zh-TW/template-clips.md +368 -0
  249. package/docs/content/locales/zh-TW/template-content.md +402 -0
  250. package/docs/content/locales/zh-TW/template-design.md +173 -0
  251. package/docs/content/locales/zh-TW/template-dispatch.md +220 -0
  252. package/docs/content/locales/zh-TW/template-forms.md +178 -0
  253. package/docs/content/locales/zh-TW/template-mail.md +239 -0
  254. package/docs/content/locales/zh-TW/template-plan.md +814 -0
  255. package/docs/content/locales/zh-TW/template-slides.md +293 -0
  256. package/docs/content/locales/zh-TW/template-videos.md +222 -0
  257. package/docs/content/locales/zh-TW/tracking.md +236 -0
  258. package/docs/content/locales/zh-TW/using-your-agent.md +71 -0
  259. package/docs/content/locales/zh-TW/voice-input.md +81 -0
  260. package/docs/content/locales/zh-TW/what-is-agent-native.md +202 -0
  261. package/docs/content/locales/zh-TW/workspace-connections.md +321 -0
  262. package/docs/content/locales/zh-TW/workspace-management.md +175 -0
  263. package/docs/content/locales/zh-TW/workspace.md +323 -0
  264. package/docs/content/locales/zh-TW/writing-agent-instructions.md +173 -0
  265. package/package.json +2 -2
  266. package/src/templates/default/app/i18n/index.ts +2 -0
  267. package/src/templates/default/app/i18n/zh-TW.ts +466 -0
  268. package/src/templates/default/app/root.tsx +8 -0
@@ -0,0 +1,164 @@
1
+ ---
2
+ title: "代理提及"
3
+ description: "使用@提及在聊天中標記自訂代理、連線的代理和檔案。"
4
+ ---
5
+
6
+ # 代理提及
7
+
8
+ 在聊天編輯器中鍵入 `@` 以提及自訂代理、連線的代理、檔案和資源。
9
+
10
+ ## 概述 {#overview}
11
+
12
+ `@` 提及系統將聊天編輯器連線到更廣泛的代理生態系統。當您鍵入 `@` 時,會出現一個快顯窗口,列出可用的自訂代理、連線的代理、程式碼庫檔案和資源。
13
+
14
+ 這是您通過單個聊天協調多代理工作流程的方式。要求您當地的 `@design` 代理評論布局,`@analytics` 從另一個應用程式中提取最新資料,主要代理可以將兩者合並到一個對話中。
15
+
16
+ ## 提及代理 {#mentioning-agents}
17
+
18
+ 要在聊天編輯器中提及代理:
19
+
20
+ 1. 輸入 `@` 開啟提及快顯窗口
21
+ 2. 瀏覽或搜尋可用代理列表
22
+ 3. 選取一個代理 - 它在您的訊息中顯示為標籤
23
+ 4. 發送訊息 - 伺服器解析提及並將該代理的回應包含在對話上下文中
24
+
25
+ 有兩條代理路徑:
26
+
27
+ - **自訂代理** — `agents/*.md` 中的本機工作區代理設定檔案。它們使用代理設定檔案的指令和可選模型覆蓋在目前應用程式/執行時內執行。
28
+ - **連線的代理** — 遠端 A2A 對等點。這些是通過 [A2A protocol](/docs/a2a-protocol) 調用的。
29
+
30
+ 在這兩種情況下,您的主要代理都會看到回應並可以引用或建置它。
31
+
32
+ ```an-diagram title="@提及路由的位置" summary="伺服器按型別拆分每個提及:自訂代理在本機執行,連線的代理通過 A2A - 兩個回應都折疊回主代理的上下文中。"
33
+ {
34
+ "html": "<div class=\"diagram-mention\"><div class=\"diagram-node\">@-mention<br><small class=\"diagram-muted\">in the composer</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-panel center\" data-rough><span class=\"diagram-pill accent\">伺服器解析</span><small class=\"diagram-muted\">extract refs by type</small></div><div class=\"diagram-col\"><div class=\"row\"><span class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</span><div class=\"diagram-box\">自訂代理<br><small class=\"diagram-muted\">agents/*.md &middot; runs local</small></div></div><div class=\"row\"><span class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</span><div class=\"diagram-box\">已連線代理<br><small class=\"diagram-muted\">A2A peer &middot; remote call</small></div></div></div><div class=\"diagram-arrow diagram-accent\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-box diagram-accent\">&lt;agent-response&gt;<br><small class=\"diagram-muted\">injected into main agent</small></div></div>",
35
+ "css": ".diagram-mention{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.diagram-mention .center{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px}.diagram-mention .diagram-col{display:flex;flex-direction:column;gap:10px}.diagram-mention .row{display:flex;align-items:center;gap:8px}.diagram-mention .diagram-arrow{font-size:22px;line-height:1}"
36
+ }
37
+ ```
38
+
39
+ ## 它是如何工作的 {#how-it-works}
40
+
41
+ 當發送包含 `@` 提及的訊息時,伺服器上會發生以下情況:
42
+
43
+ 1. 伺服器從訊息中提取提及引用
44
+ 2. 對於每個提到的代理:
45
+ - 自訂代理按照其設定檔案說明在本機執行
46
+ - 通過 A2A 調用連線的代理
47
+ 3. 代理的回應被包裝在 `<agent-response>` XML 塊中並注入到對話上下文中
48
+ 4. 主代理處理丰富的訊息,檢視使用者的文本和提到的代理的回應
49
+
50
+ 主代理在其上下文中看到的內容:
51
+
52
+ ```text
53
+ User: Draft an email with the latest signup numbers. @analytics
54
+
55
+ <agent-response agent="analytics">
56
+ Last week's signups: 1,247 total
57
+ - Organic: 623
58
+ - Paid: 412
59
+ - Referral: 212
60
+ </agent-response>
61
+ ```
62
+
63
+ 然後,主代理可以在其回應中自然地使用這些資料 - 例如,將這些數字合並到電子郵件草稿中。
64
+
65
+ ```an-callout
66
+ {
67
+ "tone": "info",
68
+ "body": "Mentioned-agent output arrives as an `<agent-response agent=\"…\">` block in the **main agent's** context — not as separate chat bubbles. The main agent decides how to weave it into the reply."
69
+ }
70
+ ```
71
+
72
+ ## 新增代理 {#adding-agents}
73
+
74
+ 可以通過多種機制提及代理:
75
+
76
+ - **自訂工作區代理** — 在“工作區”分頁中建立代理設定檔案為 `agents/*.md`
77
+ - **自動發現** - 框架自動發現在已知端口或設定的 URL 上執行的連線代理
78
+ - **遠端清單** — 新增連線代理清單為 `remote-agents/*.json`
79
+
80
+ ### 自訂工作區代理
81
+
82
+ 自訂代理是存儲在工作區中的 Markdown 檔案:
83
+
84
+ ```markdown
85
+ ---
86
+ name: Design
87
+ description: Reviews layouts, product UX, and visual direction.
88
+ model: inherit
89
+ ---
90
+
91
+ You are a focused design agent.
92
+ ```
93
+
94
+ 請參閱 [Workspace — Custom Agents](/docs/workspace#custom-agents) 了解完整格式(包括 `tools`、`delegate-default` 和模型覆蓋)。
95
+
96
+ 您可以使用以下方法從“工作區”分頁建立它們:
97
+
98
+ - `Create Agent` -> `Describe It`
99
+ - `Create Agent` -> `Fill Form`
100
+
101
+ ### 連線代理清單
102
+
103
+ 遠端 A2A 代理仍然使用 JSON 清單:
104
+
105
+ ```json
106
+ // remote-agents/analytics.json
107
+ {
108
+ "name": "Analytics Agent",
109
+ "url": "https://analytics.example.com",
110
+ "apiKey": "env:ANALYTICS_A2A_KEY",
111
+ "description": "Runs analytics queries and returns data",
112
+ "skills": ["run-query", "generate-chart"]
113
+ }
114
+ ```
115
+
116
+ ---
117
+
118
+ ## 對於開發者:擴充功能提及 {#extending-mentions}
119
+
120
+ 範本可以註冊自訂提及提供程序,以新增代理和檔案之外的特定於域的可提及專案。提及提供者實現了 `MentionProvider` 介面:
121
+
122
+ ```an-annotated-code title="自訂 MentionProvider"
123
+ {
124
+ "filename": "server/mentions/contacts.ts",
125
+ "language": "ts",
126
+ "code": "import type { MentionProvider } from \"@agent-native/core/server\";\n\nconst contactsProvider: MentionProvider = {\n id: \"contacts\",\n label: \"Contacts\",\n\n // 搜尋 for mentionable items\n async search(query: string) {\n const contacts = await db.query.contacts.findMany({\n where: like(contacts.name, `%${query}%`),\n limit: 10,\n });\n return contacts.map((c) => ({\n id: c.id,\n label: c.name,\n description: c.email,\n type: \"contact\",\n }));\n },\n\n // Resolve a mention into context for the agent\n async resolve(id: string) {\n const contact = await db.query.contacts.findFirst({\n where: eq(contacts.id, id),\n });\n return {\n type: \"context\",\n text: `Contact: ${contact.name} (${contact.email})`,\n };\n },\n};",
127
+ "annotations": [
128
+ { "lines": "4-5", "label": "身分", "note": "`id` namespaces the provider; `label` is the section heading shown in the `@` popover." },
129
+ { "lines": "8-9", "label": "search", "note": "Runs as the user types after `@`. Return up to a handful of matches as `{ id, label, description, type }`." },
130
+ { "lines": "23-24", "label": "resolve", "note": "Called when the message is sent. Turns a picked id into `{ type: \"context\", text }` that is injected into the agent's context." }
131
+ ]
132
+ }
133
+ ```
134
+
135
+ 在代理聊天外掛設定中註冊提供者:
136
+
137
+ ```ts
138
+ // server/plugins/agent-chat.ts
139
+ import { createAgentChatPlugin } from "@agent-native/core/server";
140
+
141
+ export default createAgentChatPlugin({
142
+ actions: scriptRegistry,
143
+ systemPrompt: "You are a helpful assistant...",
144
+ mentionProviders: { contacts: contactsProvider },
145
+ });
146
+ ```
147
+
148
+ 自訂提及提供程序與內置代理和檔案提供程序一起顯示在提及快顯窗口中。
149
+
150
+ ## 引用檔案 {#referencing-files}
151
+
152
+ `@` 快顯窗口不僅限於代理。您還可以參考:
153
+
154
+ - **程式碼庫檔案** — 輸入 `@` 並搜尋檔案名。檔案內容包含在代理的上下文中,因此它可以讀取、分析或修改檔案。
155
+ - **工作空間資源** — 在“工作空間”分頁中定義的參考檔案。這些可以是資料檔案、設定或任何其他結構化內容。
156
+ - **Skills** — 輸入 `/` 來引用技能。 Skills 提供結構化指令來指導代理如何處理工作。
157
+
158
+ 所有引用型別都遵循相同的模式:從快顯窗口中進行選取,發送訊息時引用的內容將被解析並注入到代理的上下文中。
159
+
160
+ ## 子代理選取 {#sub-agent-selection}
161
+
162
+ 當使用 `agent-teams` 生成子代理時,主代理還可以使用自訂代理(操作:“spawn”)。
163
+
164
+ 傳遞`agent`參數以從`agents/*.md`中選取設定檔案。該設定檔案的指令將新增到委托執行中,並且其 `model` frontmatter 可以覆蓋該子代理的預設模型。
@@ -0,0 +1,397 @@
1
+ ---
2
+ title: "特工表面"
3
+ description: "將 Agent-Native 無頭使用,作為丰富的聊天,在現有應用程式中,或作為完整的代理本機應用程式。"
4
+ search: "無頭代理丰富聊天完整應用程式 BYO 代理執行時 AgentChatRuntime 嵌入 actions MCP A2A HTTP CLI"
5
+ ---
6
+
7
+ # 特工表面
8
+
9
+ Agent-Native 是故意可組合的。不用太多就可以使用代理UI,
10
+ 在沒有內置代理執行時的情況下使用 UI,或者將兩者一起用作完整的
11
+ 應用程式。
12
+
13
+ 有用的選取方法不是先按協議。選取產品表面
14
+ 你想要,然後使用匹配的原語。
15
+
16
+ | 表面 | 什么時候使用它 | 開始於 |
17
+ | ----------------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
18
+ | **無頭代理** | 程式碼、作業、腳本、另一個應用程式或另一個代理應直接調用該工作。 | `agent-native create --headless`, `defineAction`, `agent-native agent`, HTTP, CLI, MCP, A2A |
19
+ | **Agent-Native 上的丰富聊天** | 您想要由內置代理循環支持的獨立或嵌入式聊天。 | [Chat template](/docs/template-chat), `<AgentChatSurface>`, `<AssistantChat>` |
20
+ | **與您的代理進行丰富的聊天** | 您在其他地方建置了代理,並想要 Agent-Native 的編寫器、腳本、工具卡和本機小部件。 | `AgentChatRuntime`, `<AssistantChat runtime={runtime}>` |
21
+ | **嵌入式邊車** | 您已經有一個 SaaS 應用程式,並希望在其旁邊有一個具有頁面上下文和主機指令的代理。 | `createAgentNativeEmbeddedPlugin()`, `AgentNativeEmbedded` |
22
+ | **完整應用程式** | 人類和代理應該共用持久的螢幕、資料、導覽和協作。 | 範本、actions、SQL 狀態、上下文感知 |
23
+
24
+ 這些是階段,而不是單獨的產品。工作流程可以以無頭方式啟動
25
+ 代理只需執行一個操作,就會以表格或圖表的形式出現在聊天中,然後成為
26
+ 應用程式中的全屏,而不更改代理調用的操作。
27
+
28
+ ```an-diagram title="表面光譜" summary="一個操作介面,四種產品形狀——每一種都增加了 UI,而不改變下面的操作。"
29
+ {
30
+ "html": "<div class=\"diagram-spectrum\"><div class=\"diagram-card\"><strong>Headless</strong><small class=\"diagram-muted\">actions、工作、腳本、其他代理</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-card\"><strong>丰富聊天</strong><small class=\"diagram-muted\">輸入框、轉錄、工具卡片</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-card\"><strong>嵌入式 sidecar</strong><small class=\"diagram-muted\">agent beside an existing app</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-card accent-card\"><span class=\"diagram-pill accent\">大部分 UI</span><strong>完整應用</strong><small class=\"diagram-muted\">持久螢幕、資料、協作</small></div></div><div class=\"diagram-base\" data-rough><span class=\"diagram-muted\">相同 actions · 相同 SQL · 相同代理循環</span></div>",
31
+ "css": ".diagram-spectrum{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}.diagram-spectrum .diagram-card{display:flex;flex-direction:column;gap:6px;padding:14px 16px;min-width:150px;flex:1}.diagram-spectrum .diagram-arrow{align-self:center;font-size:22px;line-height:1}.diagram-base{margin-top:12px;padding:10px 14px;text-align:center}"
32
+ }
33
+ ```
34
+
35
+ ## 無頭代理 {#headless}
36
+
37
+ 當沒有人需要盯著自訂應用螢幕時,請使用無頭路徑
38
+ 工作執行:計畫作業、整合、後端工作流程、CLI 循環,
39
+ 另一個代理或調用 Agent-Native 的現有產品。
40
+
41
+ 這也是當**代理*是*產品**時要達到的形狀 -
42
+ app-agent 循環是前門,而不是儀表板。您從
43
+ 終端、Slack、電子郵件、預定工作、其他代理或聊天 —“總結我的
44
+ 未讀電子郵件,”“將每日指標發布到 Slack,”“查找符合以下條件的候選人
45
+ 上週回複”——代理執行操作並返回結果
46
+ 屬於。它仍然是一個真正的應用程式,而不是無狀態提示:actions,驗證工作階段,
47
+ 應用程式狀態、線程/執行歷史紀錄、設定、憑證和共用紀錄全部實時
48
+ 在SQL。
49
+
50
+ 在以下情況下選取此模式:
51
+
52
+ - **工作在後台進行。**大部分價值是在使用者不注意的時候創造的 - 分類代理、每日報告代理、待命回應人員。
53
+ - **輸出離開應用程式。**代理發布到 Slack、發送電子郵件或更新第三方系統;應用內沒有任何內容可供瀏覽。
54
+ - **該域是一次性的。**研究機器人、摘要生成器、報告編寫器 - 沒有需要列表視圖的持久物件。
55
+ - **您正在制作原型。**立即發送代理;如果使用者想要的話,稍後新增更丰富的 UI。
56
+
57
+ 如果您的產品是圍繞持久物件建置的,使用者會瀏覽、透視和
58
+ 分享 — 電子郵件、事件、檔案、圖表 — 選取 [full application](#full-application)
59
+ 或 [template](/docs/cloneable-saas) 代替;這些新增了完整的 UI _plus_ 代理。
60
+
61
+ ### 盒子裡裝的是什么 {#in-the-box}
62
+
63
+ 無頭應用程式會跳過數週的儀表板工作,並且從一天開始就與渠道無關
64
+ 一個 - 同一代理從網路、Slack、Telegram、電子郵件和其他代理執行
65
+ 因為一切都通過代理,而不是 UI。權衡是有的
66
+ 沒有“一目了然地瀏覽所有內容”視圖;如果使用者需要,請混合模式和
67
+ 新增小型狀態頁面或列表視圖。
68
+
69
+ 當新增內置的Chat shell時,框架提供了五種管理
70
+ 您不必建置的介面:**聊天**(主要輸入)、**工作區**
71
+ (skills、內存、指令、子代理、連線的 MCP 伺服器、已調度
72
+ jobs)、**作業歷史紀錄**、**線程歷史紀錄**和**設定**。這些通常是
73
+ 足夠了——與它交談,看看它做了什么,設定它的行為方式。伸手去拿
74
+ [Chat](/docs/template-chat) 當您準備好新增瀏覽器 UI 時,或
75
+ [Dispatch template](/docs/template-dispatch) 工作空間式啟動
76
+ 使用 Slack/Telegram、計畫作業和開箱即用的共用機密。
77
+
78
+ 最小的本機路徑是無頭代理腳手架加上一個操作:
79
+
80
+ ```bash
81
+ npx @agent-native/core@latest create my-agent --headless
82
+ cd my-agent
83
+ pnpm install
84
+ ```
85
+
86
+ 然後定義持久操作:
87
+
88
+ ```ts
89
+ // actions/summarize-week.ts
90
+ import { defineAction } from "@agent-native/core/action";
91
+ import { z } from "zod";
92
+
93
+ export default defineAction({
94
+ description: "Summarize this week's submissions.",
95
+ readOnly: true,
96
+ schema: z.object({ formId: z.string() }),
97
+ run: async ({ formId }) => {
98
+ return { formId, summary: "34 submissions, up 18% from last week." };
99
+ },
100
+ });
101
+ ```
102
+
103
+ 然後可以調用一個操作:
104
+
105
+ - **HTTP** — `POST /_agent-native/actions/summarize-week`
106
+ - **CLI** — `pnpm action summarize-week --formId form_123`
107
+ - **應用程式代理 CLI** — `pnpm agent "Summarize form_123"`
108
+ - **MCP** — 來自 Claude、ChatGPT、Codex、Cursor、OpenCode、Copilot 和其他 MCP 主機
109
+ - **A2A** - 來自另一個代理本機應用程式或代理對等點
110
+ - **UI** — 通過 `useActionQuery`、`useActionMutation` 或 `callAction`
111
+ - **代理工具** - 來自內置聊天循環
112
+
113
+ ```an-api title="通過 HTTP 調用操作"
114
+ {
115
+ "method": "POST",
116
+ "path": "/_agent-native/actions/summarize-week",
117
+ "summary": "通過 HTTP 按名稱調用任何操作",
118
+ "description": "Every `defineAction` is auto-mounted at `/_agent-native/actions/<name>`. The JSON body is validated against the action's zod schema before `run` executes.",
119
+ "request": {
120
+ "contentType": "application/json",
121
+ "example": "{ \"formId\": \"form_123\" }"
122
+ },
123
+ "responses": [
124
+ { "status": "200", "description": "The action's return value as JSON", "example": "{ \"formId\": \"form_123\", \"summary\": \"34 submissions, up 18% from last week.\" }" },
125
+ { "status": "400", "description": "Input failed schema validation" }
126
+ ]
127
+ }
128
+ ```
129
+
130
+ 這不是無資料庫或無狀態模式。應用程式代理循環存儲工作階段,
131
+ 線程、執行、設定、憑證、應用程式狀態和共用紀錄
132
+ SQL。本機開發預設為SQLite;託管無頭應用程式應使用
133
+ 持久 SQL 資料庫。
134
+
135
+ 如果您需要從專案資料夾中無頭地執行整個代理循環,請使用:
136
+
137
+ ```bash
138
+ pnpm agent "Summarize this week's forms."
139
+ ```
140
+
141
+ 如果另一個應用程式或腳本需要調用整個代理,請使用
142
+ `agentNative.invoke("analytics", "...")` 或 `agent-native invoke` CLI。那
143
+ 將跨應用工作保留在 A2A 路徑上,而本機工作保留在 actions 上。
144
+
145
+ 工作人員、作業、整合 webhooks 和自訂主機可以驅動代理循環
146
+ 直接通過伺服器API。這比 actions 級別低 - 您提供
147
+ 您自己的引擎、模型、訊息、actions 和事件接收器:
148
+
149
+ ```ts
150
+ import { runAgentLoop } from "@agent-native/core/server";
151
+
152
+ await runAgentLoop({ engine, model, systemPrompt, actions, messages, send });
153
+ ```
154
+
155
+ 對於大多數應用程式,計畫的提示和整合 webhooks 已經調用此循環
156
+ 給你。僅在建置自訂無頭主機時直接獲取它,eval
157
+ 執行程序,或伺服器端編排表面 - 請參閱[伺服器 - 正式環境代理
158
+ handler](/docs/server#agent-handler) 獲取完整簽名。
159
+
160
+ ### 針對資料夾執行 {#folder-loop}
161
+
162
+ 如果您的目標是“針對此資料夾執行代理”,請從應用程式代理開始
163
+ 在該資料夾中循環:建置無頭應用程式,新增 actions/指令,執行
164
+ `pnpm agent "..."`。這使工作保持在相同的操作/執行時/狀態內
165
+ 應用程式將在正式環境中使用的合同。
166
+
167
+ 外部編碼線束是用於嵌入 Claude 的獨立產品表面
168
+ Agent-Native 應用內的程式碼、Codex、Pi、Cursor、Mastra 或類似執行時。
169
+ 在建置編碼代理產品時使用它們,而不是作為預設方式
170
+ 啟動本機代理本機工作流程。
171
+
172
+ ### 雲端儲存庫存取 {#cloud-repo-access}
173
+
174
+ 對於需要儲存庫存取的雲端無頭應用程式,請使用 GitHub 連線器
175
+ 加上代幣CRUD模型:列出儲存庫、搜尋檔案、讀取檔案、建立或
176
+ 通過提供者範圍編輯檔案、刪除檔案和撤銷存取權限
177
+ 憑證。在本機開發中,明確設定目標儲存庫:
178
+
179
+ ```bash
180
+ GITHUB_REPOSITORY=owner/repo pnpm agent "Read README.md and suggest the next action."
181
+ ```
182
+
183
+ 不要將虛擬機克隆或長期沙箱簽出視為主要雲端
184
+ 儲存庫存取模型。沙箱對於隔離程式碼執行仍然很重要,但是
185
+ 儲存庫存取應該是明確的、經過授權的、可審核的和可撤銷的
186
+ 通過連線器層。
187
+
188
+ ### 共用工作階段和執行 {#sharing-runs}
189
+
190
+ 無頭工作階段和執行是持久物件。共用性應該分階段進行:
191
+ 首先閱讀/共用連結,以便隊友可以檢查經過清理的提示、輸出
192
+ 和執行狀態;稍後授予可寫協作權限,因此繼續執行,
193
+ 批準 actions、編輯計畫或更改設定已完成
194
+ 顯式存取檢查。
195
+
196
+ ## Agent-Native 上的丰富聊天 {#rich-chat}
197
+
198
+ 當使用者應該與代理交談時使用內置聊天,檢視工具調用,
199
+ 批準工作、檢查本機結果並保留持久的線程歷史紀錄。
200
+
201
+ 要獲得完整的應用程式起點,請使用 [Chat template](/docs/template-chat):
202
+
203
+ ```bash
204
+ npx @agent-native/core@latest create my-chat-app --template chat
205
+ ```
206
+
207
+ 最簡單的全頁面聊天:
208
+
209
+ ```tsx
210
+ import { AgentChatSurface } from "@agent-native/core/client/chat";
211
+
212
+ export default function ChatRoute() {
213
+ return <AgentChatSurface mode="page" className="h-screen" />;
214
+ }
215
+ ```
216
+
217
+ 當應用同時具有全頁面聊天分頁和 `AgentSidebar` 時,請使用相同的
218
+ 在兩個表面上安裝`storageKey`,啟用`chatViewTransition`,並安裝
219
+ 布局中的聊天主頁面切換助手。聊天之外的普通應用內連結
220
+ 頁面可以將完整的聊天內容轉變為側邊欄,同時保持活動狀態
221
+ 線程:
222
+
223
+ ```tsx
224
+ import {
225
+ AgentChatSurface,
226
+ AgentSidebar,
227
+ useAgentChatHomeHandoff,
228
+ useAgentChatHomeHandoffLinks,
229
+ } from "@agent-native/core/client/chat";
230
+ import { useLocation } from "react-router";
231
+
232
+ function ChatRoute() {
233
+ return (
234
+ <AgentChatSurface mode="page" storageKey="my-app" chatViewTransition />
235
+ );
236
+ }
237
+
238
+ function AppLayout({ children }: { children: React.ReactNode }) {
239
+ const location = useLocation();
240
+ const handoffActive = useAgentChatHomeHandoff({
241
+ storageKey: "my-app",
242
+ activePath: location.pathname,
243
+ enabled: location.pathname !== "/chat",
244
+ });
245
+ useAgentChatHomeHandoffLinks({ storageKey: "my-app", chatPath: "/chat" });
246
+
247
+ return (
248
+ <AgentSidebar
249
+ storageKey="my-app"
250
+ chatViewTransition
251
+ openOnChatRunning={handoffActive}
252
+ >
253
+ {children}
254
+ </AgentSidebar>
255
+ );
256
+ }
257
+ ```
258
+
259
+ 使用您自己的 chrome 進行最簡單的嵌入式聊天:
260
+
261
+ ```tsx
262
+ import { AssistantChat } from "@agent-native/core/client/chat";
263
+
264
+ export function ProjectChat({ threadId }: { threadId: string }) {
265
+ return <AssistantChat threadId={threadId} />;
266
+ }
267
+ ```
268
+
269
+ Actions 可以返回顯式的本機小部件結果,因此聊天輸出不僅僅是
270
+ 文本。表格、圖表和鍵入的產品卡呈現為第一方 React
271
+ 聊天中的元件,沒有 iframe。參見[Native 聊天介面](/docs/native-chat-ui)。
272
+
273
+ ## 與您的代理進行丰富的聊天 {#byo-agent}
274
+
275
+ 當您的代理已使用其他框架建置時,請使用此路徑
276
+ 執行時,你想要 Agent-Native 的聊天 UI 圍繞它。 `AgentChatRuntime` 是
277
+ 邊界:您的執行時流規範化事件,Agent-Native 呈現
278
+ 作曲家、腳本、工具調用、批準、本機小部件和應用布局。
279
+
280
+ ```tsx
281
+ import {
282
+ AssistantChat,
283
+ createHttpAgentChatRuntime,
284
+ } from "@agent-native/core/client/chat";
285
+
286
+ const runtime = createHttpAgentChatRuntime({
287
+ endpoint: "/api/support-agent/chat",
288
+ });
289
+
290
+ export function SupportAgentChat() {
291
+ return <AssistantChat runtime={runtime} threadId="support" />;
292
+ }
293
+ ```
294
+
295
+ 針對 OpenAI 代理、OpenAI 回應、Claude 存在現成的執行時助手
296
+ Agent SDK、Vercel AI SDK 和 AG-UI,以及上面的標準化 HTTP 執行時
297
+ 對於任何其他代理(Mastra、Flue、Eve、LangGraph 或自訂服務)。 ACP 是
298
+ 不是最終使用者應用聊天或 A2A 傳輸,並且 Agent-Native 目前沒有
299
+ 要求 A2UI 支持。 ACP 在一個特定位置受支持 - 駕駛本機
300
+ 編碼代理(Gemini CLI,Claude程式碼,...)通過
301
+ [harness layer](/docs/harness-agents#acp),這裡不作為聊天執行時。
302
+
303
+ [Native 聊天介面 — BYO agent runtimes](/docs/native-chat-ui#byo-agent-runtimes)
304
+ 是事件形狀、執行時助手和 `chatUI` 的規範主頁面
305
+ 工具結果元資料。將外部代理連線到聊天中時從這裡開始。
306
+
307
+ ## 嵌入式邊車 {#embedded-sidecar}
308
+
309
+ 當主產品已經存在並且您想要一個時,請使用嵌入式 sidecar
310
+ 代理在旁邊。
311
+
312
+ 伺服器外掛將 Agent-Native 路由安裝到您的主機應用程式中並解析
313
+ 主機身分伺服器端:
314
+
315
+ ```ts
316
+ import { createAgentNativeEmbeddedPlugin } from "@agent-native/core/server";
317
+
318
+ export default createAgentNativeEmbeddedPlugin({
319
+ databaseUrl: process.env.AGENT_NATIVE_DATABASE_URL,
320
+ auth: getHostSession,
321
+ actions: hostActions,
322
+ });
323
+ ```
324
+
325
+ React sidecar 傳遞頁面上下文和主機指令:
326
+
327
+ ```tsx
328
+ import { AgentNativeEmbedded } from "@agent-native/core/client";
329
+
330
+ export function AppShell({ children }) {
331
+ return (
332
+ <AgentNativeEmbedded
333
+ getContext={() => ({
334
+ route: { pathname: window.location.pathname },
335
+ selection: { text: window.getSelection()?.toString() || undefined },
336
+ })}
337
+ onNavigate={(payload) =>
338
+ router.navigate((payload as { path: string }).path)
339
+ }
340
+ onRefresh={() => queryClient.invalidateQueries()}
341
+ >
342
+ {children}
343
+ </AgentNativeEmbedded>
344
+ );
345
+ }
346
+ ```
347
+
348
+ ```an-diagram title="Sidecar 如何橋接到主機應用程式" summary="該外掛在伺服器端掛載 Agent-Native 路由; React sidecar 流輸入頁面上下文並輸出主機指令。"
349
+ {
350
+ "html": "<div class=\"diagram-sidecar\"><div class=\"diagram-panel\"><strong>宿主應用</strong><small class=\"diagram-muted\">你現有的 SaaS</small><div class=\"diagram-node\">getContext()<br><small class=\"diagram-muted\">路由 · 選取</small></div><div class=\"diagram-node\">onNavigate / onRefresh<br><small class=\"diagram-muted\">宿主指令</small></div></div><div class=\"diagram-col-arrows\"><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&larr;</div></div><div class=\"diagram-panel accent-panel\"><span class=\"diagram-pill accent\">AgentNativeEmbedded</span><small class=\"diagram-muted\">agent + workspace</small><div class=\"diagram-box\" data-rough>Agent-Native 路由<br><small class=\"diagram-muted\">mounted by the server plugin</small></div></div></div>",
351
+ "css": ".diagram-sidecar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.diagram-sidecar .diagram-panel{display:flex;flex-direction:column;gap:8px;padding:14px 16px;min-width:200px}.diagram-sidecar .diagram-col-arrows{display:flex;flex-direction:column;gap:6px}.diagram-sidecar .diagram-arrow{font-size:22px;line-height:1}"
352
+ }
353
+ ```
354
+
355
+ 請參閱 [Embedding SDK](/docs/embedding-sdk) 以了解主機驗證、資料庫隔離,
356
+ iframe/picker 模式,以及較低級別的橋 APIs。
357
+
358
+ ## 完整應用程式 {#full-application}
359
+
360
+ 當使用者需要持久物件和工作流程時使用完整的應用路徑:表單,
361
+ 儀表板、行事曆、收件箱、編輯器、檔案、資產或報告。
362
+
363
+ 完整應用程式圍繞相同的操作和代理合同新增產品 UI:
364
+
365
+ - **SQL 狀態** — 應用資料、導覽、設定和聊天歷史紀錄是持久的。
366
+ - **上下文感知** - 代理知道目前路線、選取和聚焦物件。
367
+ - **實時同步** - 代理更改會更新 UI,UI 更改會更新代理的上下文。
368
+ - **深層連結** — 操作結果可以開啟正確的應用視圖。
369
+ - **本機聊天小部件** — 表格、圖表、卡片、批準和鍵入的結果內聯顯示。
370
+
371
+ 當您想要一個最小的應用程式時,請從 [Chat template](/docs/template-chat) 開始
372
+ 您的 actions 週圍,或來自域 [template](/docs/cloneable-saas),當您
373
+ 想要一個完整的產品形狀。
374
+
375
+ ## 如何選取 {#how-to-choose}
376
+
377
+ | 如果您在想... | 選取 |
378
+ | ---------------------------------------------------- | ------------------------- |
379
+ | “我只需要一個可調用的工具或工作流程。” | 無頭代理 |
380
+ | “我想要框架的代理,但是聊天應該是主要的UI。” | Agent-Native 上的丰富聊天 |
381
+ | “我已經有一個代理;我需要一個完美的聊天 UI。” | 與您的代理進行丰富的聊天 |
382
+ | “我已經有一個 SaaS 應用程式;在它旁邊新增一個代理。” | 嵌入式邊車 |
383
+ | “代理和 UI 應該作為產品一起進化。” | 完整應用程式 |
384
+
385
+ 保持合約較小:將持久操作定義為 actions,顯式返回
386
+ 聊天需要丰富UI時的小部件結果,並且僅在使用者時新增全屏
387
+ 需要瀏覽、比較、設定或協作持久物件。
388
+
389
+ ## 相關檔案 {#related-docs}
390
+
391
+ - [Actions](/docs/actions) — 定義一次無頭操作。
392
+ - [Native 聊天介面](/docs/native-chat-ui) — 在聊天中呈現鍵入的操作結果。
393
+ - [Drop-in Agent](/docs/drop-in-agent) — 安裝聊天、側邊欄或面板表面。
394
+ - [Component API](/docs/components) — 較低級別的 React 聊天/作曲片段。
395
+ - [Embedding SDK](/docs/embedding-sdk) — 將 Agent-Native 新增到現有應用。
396
+ - [External Agents](/docs/external-agents) — 將 MCP 兼容主機連線到應用。
397
+ - [A2A Protocol](/docs/a2a-protocol) — 從其他座席呼叫座席。