@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,323 @@
1
+ ---
2
+ title: "工作區"
3
+ description: "Claude - 每個使用者的程式碼級自訂 - skills、內存、指令、自訂代理、計畫作業、MCP 伺服器 - 由 SQL 支持,而不是檔案系統。"
4
+ ---
5
+
6
+ # 工作區
7
+
8
+ > **哪個工作區檔案?** 此頁面涵蓋 **自訂層** — 工作區*是什么*。對於部署形狀(一個單一儲存庫,許多應用程式),請參閱 [Multi-App Workspaces](/docs/multi-app-workspace);有關治理(誰審查、批準和擁有什么),請參閱 [Workspace Governance](/docs/workspace-management)。
9
+
10
+ 每個代理本機應用程式都附帶一個**工作區**:使代理成為您的自訂層。它包含團隊指令 (`AGENTS.md`)、共用學習內容 (`LEARNINGS.md`)、個人結構化內存 (`memory/MEMORY.md`)、代理按需拉入的 skills、自訂子代理、計畫作業和連線的 MCP 伺服器 — 您期望從 Claude 程式碼 / Codex 設定獲得的一切。
11
+
12
+ 變化:**它是 SQL 行,而不是檔案系統檔案。**每個使用者都將自己的工作區存儲在資料庫中。沒有要啟動的開發盒,沒有每個使用者的容器,沒有要安裝的檔案。多租戶 SaaS 可以為每個使用者提供基本上免費的完全可定制的代理,因為所有這些都是行——個人內存、個人 MCP 伺服器、個人 skills、個人子代理——並且共用程式碼庫同時託管所有這些。
13
+
14
+ ```an-diagram title="Claude-Code 工作區,但存儲在 SQL 中" summary="相同的定制層——指令、技能、內存、代理、作業、MCP——除了每個檔案都是共用多租戶資料庫中的一行。"
15
+ {
16
+ "html": "<div class=\"ws-map\"><div class=\"diagram-card cc\"><span class=\"diagram-pill warn\">Claude Code / Codex</span><small class=\"diagram-muted\">~/.claude/ on a local disk</small><div class=\"ws-files\"><span class=\"diagram-box\">CLAUDE.md</span><span class=\"diagram-box\">skills/</span><span class=\"diagram-box\">memory</span><span class=\"diagram-box\">mcp.json</span></div><small class=\"diagram-muted\">one codebase per developer</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-card an\"><span class=\"diagram-pill accent\">Agent-native 工作區</span><small class=\"diagram-muted\">rows in one SQL 資料庫</small><div class=\"ws-rows\"><span class=\"diagram-pill\">AGENTS.md</span><span class=\"diagram-pill\">skills/&hellip;</span><span class=\"diagram-pill\">memory/&hellip;</span><span class=\"diagram-pill\">mcp-servers/&hellip;</span></div><small class=\"diagram-muted\">一個程式碼庫,多使用者,有作用域 <code>u:&lt;email&gt;:&hellip;</code></small></div></div>",
17
+ "css": ".ws-map{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.ws-map .diagram-card{display:flex;flex-direction:column;gap:8px;padding:16px 18px;flex:1;min-width:220px}.ws-map .ws-files,.ws-map .ws-rows{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}.ws-map .diagram-arrow{font-size:24px}"
18
+ }
19
+ ```
20
+
21
+ | Claude程式碼/Codex | 代理本機工作區 |
22
+ | ----------------------------- | --------------------------------------- |
23
+ | 本機磁盤上的檔案 | 共用 SQL 資料庫中的行 |
24
+ | 每個開發人員一個程式碼庫 | 一個程式碼庫,多個使用者 |
25
+ | 需要開發盒或容器 | 在任何無伺服器/邊缘主機上執行 |
26
+ | `~/.claude/` 定制 | 按使用者自訂,範圍為 `u:<email>:…` |
27
+ | 每個專案 `CLAUDE.md` / skills | 每個應用 `AGENTS.md` + 工作區內存資源 |
28
+ | JSON 檔案中的 MCP 設定 | JSON 中的 MCP 設定*或*設定 UI,每個範圍 |
29
+
30
+ 相同的功能。不同的經濟。請參閱 [Templates](/docs/cloneable-saas) 了解為什么這對 SaaS 很重要。
31
+
32
+ ## 概述 {#overview}
33
+
34
+ 資源具有三個執行時範圍:
35
+
36
+ - **個人** — 範圍僅限於單個使用者(他們的電子郵件)。適合偏好設定、注釋和每個使用者的上下文。
37
+ - **共用/組織** — 對應用程式或組織中的所有使用者可見。適合應用/團隊說明、skills 和共用設定。
38
+ - **工作空間** — 繼承了從調度資源管理的全域預設值。適合公司事實、定位、品牌指南、全球護欄、工作區範圍的 skills 和共用 MCP 伺服器。應用程式在執行時讀取這些;它們不會複製到每個應用程式中。
39
+
40
+ 應用內工作區面板顯示所有三個範圍。個人和共用/組織資源可以在那裡編輯。工作區範圍的資源在應用面板中是唯讀的,並通過 Dispatch 進行集中編輯,因此每個應用都可以看到相同的規範檔案,而無需同步步驟。
41
+
42
+ 控制代理如何使用每個資源的規範路徑:
43
+
44
+ | 執行時資源 | 路徑 | 代理如何使用它 |
45
+ | -------------------- | ------------------------------------- | ------------------------------------ |
46
+ | 護欄說明 | `AGENTS.md`或`instructions/<slug>.md` | 在每個收到它的應用程式中載入每個回合 |
47
+ | 全域skills | `skills/<slug>/SKILL.md` | 列為工作區 skills 並按需閱讀 |
48
+ | 品牌/公司資源 | `context/<slug>.md` | 每回合都編入索引,相關時閱讀 |
49
+ | 自訂代理設定檔案 | `agents/<slug>.md` | 可作為可重複使用的本機代理設定檔案 |
50
+ | 共用 HTTP MCP 伺服器 | `mcp-servers/<slug>.json` | 載入到授權應用的MCP工具註冊表 |
51
+
52
+ 這些路徑適用於所有三個範圍 - 工作空間、組織/應用程式和個人。當同一路徑存在於多個級別時,後面的範圍獲勝。
53
+
54
+ ```an-diagram title="三個範圍,一個有效檔案" summary="執行時在讀取時解析跨工作區、應用程式和個人範圍的相同路徑 - 最具體的範圍獲勝。"
55
+ {
56
+ "html": "<div class=\"ws-stack\"><div class=\"diagram-card\"><span class=\"diagram-pill\">Workspace</span><small class=\"diagram-muted\">來自 Dispatch 的公司級預設值</small><code>context/brand.md</code></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&darr;</div><div class=\"diagram-card\"><span class=\"diagram-pill\">組織 / 應用</span><small class=\"diagram-muted\">team override for one app</small><code>context/brand.md</code></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&darr;</div><div class=\"diagram-card\"><span class=\"diagram-pill accent\">Personal</span><small class=\"diagram-muted\">per-user override &mdash; wins</small><code>context/brand.md</code></div><div class=\"diagram-arrow diagram-accent\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-box ok\">Effective <code>context/brand.md</code></div></div>",
57
+ "css": ".ws-stack{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.ws-stack .diagram-card{display:flex;flex-direction:column;gap:4px;padding:12px 16px;min-width:280px}.ws-stack .diagram-arrow{font-size:20px;align-self:center}.ws-stack code{font-size:.85em}.ws-stack .diagram-box{align-self:center;margin-top:4px}"
58
+ }
59
+ ```
60
+
61
+ ## 入門:1 分鐘演練 {#getting-started}
62
+
63
+ 在 60 秒內更改代理的行為方式。
64
+
65
+ 1. 開啟 **工作空間** 分頁 → **共用** → `AGENTS.md`(使用 `+` 建立它 → **檔案** 如果缺少)。
66
+ 2. 新增一條規則,例如:
67
+
68
+ ```降價
69
+ ## 語氣
70
+
71
+ 要簡潔。以答案開頭。
72
+ ```
73
+
74
+ 3. 儲存,切換到**聊天**,詢問任何問題 - 客服人員立即遵循新規則。
75
+
76
+ ```an-callout
77
+ { "tone": "info", "body": "無需重新啟動,無需重新部署。 `AGENTS.md` 在每個回合開始時都會被讀取,因此您現在儲存的編輯會更改代理在下一條訊息中的行為。" }
78
+ ```
79
+
80
+ **後續步驟(當您需要時):**
81
+
82
+ - **Skills** (`+` → **技能**) — 在與 `/skill-name` 聊天時調用的重點操作方法檔案。
83
+ - **代理** (`+` → **代理**) — 使用 `@agent-name` 調用的可重用子代理角色。
84
+ - **計畫工作** (`+` → **計畫工作**) — 在 cron 上執行的提示。有關計畫和觸發器,請參閱 [Recurring Jobs](/docs/recurring-jobs)。
85
+ - **內存** - 共用 `LEARNINGS.md` 和個人 `memory/MEMORY.md` 在對話中保持持久上下文可用。
86
+
87
+ ## 全域資源和規範路徑 {#global-resources}
88
+
89
+ 工作區範圍的資源通過 Dispatch 的 **資源** 頁面進行管理,並在執行時由應用程式繼承 - 無需複製或同步步驟。 Dispatch 支持兩種授予範圍:
90
+
91
+ - **所有應用程式** — 工作區中的每個應用程式繼承的全域資源。大多數公司、品牌、角色、定位、訊息傳遞和護欄上下文應該是**所有應用**。
92
+ - **選定的應用程式** — 授予特定應用程式用於特定於應用程式的上下文或工具的資源。謹慎使用這些。
93
+
94
+ 路徑決定代理如何使用資源(請參閱上面 [Overview](#overview) 中的表)。這是核心角色、定位、訊息傳遞、公司事實、品牌指南、支持政策、共用 skills 或共用 HTTP MCP 工具的正確之家,許多應用都應該從中受益。
95
+
96
+ 適用於新工作區的有用入門包:
97
+
98
+ ```text
99
+ context/company.md # 公司的業務、ICP、產品、連結
100
+ context/brand.md # 聲音、視覺識別、拼寫、禁止使用
101
+ context/messaging.md # 定位、價值支柱、證據點、反對意見
102
+ instructions/guardrails.md # 合規、升級和批準規則
103
+ skills/company-voice/SKILL.md # on-demand guidance for customer-facing writing
104
+ agents/<slug>.md # reusable custom agent profiles
105
+ ```
106
+
107
+ 保持 `context/` 檔案真實且易於瀏覽。將每回合都必須適用的規則放入 `instructions/guardrails.md` 中。當代理需要故意轉換或審查公司聲音的副本時,請使用`skills/company-voice/SKILL.md`。
108
+
109
+ 要覆蓋一個應用或團隊的全域預設值,請在該應用中使用相同的路徑建立共用/組織資源。要為一個人覆蓋它,請建立具有相同路徑的個人資源。不要將工作區檔案複製到每個應用程式中;執行時解析讀取時的堆堆疊:
110
+
111
+ ```text
112
+ workspace context/brand.md
113
+ -> shared/app context/brand.md
114
+ -> personal context/brand.md
115
+ ```
116
+
117
+ 保持 `context/` 檔案簡短且真實——代理可以瀏覽的一些要點:
118
+
119
+ ```text
120
+ <!-- context/brand.md -->
121
+
122
+ # 品牌
123
+
124
+ - Voice: direct, warm, concrete
125
+ - Use: "workspace", "agent", "team"
126
+ - Avoid: unsupported superlatives and vague AI claims
127
+ ```
128
+
129
+ ## 工作區面板 {#workspace-panel}
130
+
131
+ 代理面板包括一個 **工作區** 分頁以及聊天和 CLI。它顯示了所有資源的資料夾組織樹、任何文本檔案的內聯編輯器(Markdown、JSON、YAML、純文本)以及 `+` 選單的型別化建立流程(檔案、Skills、代理、計畫工作)。使用者可以瀏覽繼承的工作區預設設定並建立/編輯/刪除個人或組織資源。
132
+
133
+ 當您開啟資源時,編輯器會顯示帶有 `workspace default -> organization/app override -> personal override` 堆堆疊的 **有效上下文** 條帶,以便您可以檢視繼承的內容以及覆蓋為何處於活動狀態。 Dispatch 從控制平面端顯示相同的模型:在 **Resources** 頁面上使用 **Effective in app**,或在應用程式卡的 **Context** 對話框中的資源行上展開 **Stack**。
134
+
135
+ 啟用 Dispatch 審批策略後,建立、更新或刪除 **所有應用** 資源會將審批請求排隊,而不是立即應用。建立/編輯/刪除對話框在儲存之前顯示影響預覽。
136
+
137
+ 點選工作區工具列中的 `?` 圖標可隨時跳回這些檔案。
138
+
139
+ ## 代理如何使用資源 {#how-the-agent-uses-resources}
140
+
141
+ 內置應用程式代理使用統一的 `resources` 工具管理資源:使用 `action: "list"`、`"read"`、`"effective"`、`"write"`、`"promote"` 或 `"delete"`。外部CLI/程式碼代理可以使用等效的`pnpm action resource-*`指令。
142
+
143
+ 在每次對話開始時,代理會自動讀取:
144
+
145
+ ### AGENTS.md 及說明 {#agents-md}
146
+
147
+ `AGENTS.md` 是預設播種的指令資源,並按順序從工作區、共用/組織和個人範圍每次載入 - 工作區用於公司範圍的預設設定,共用/應用程式用於團隊規則,個人用於每個使用者的偏好設定。 `instructions/` 下的檔案是單獨的護欄檔案,也適用於每個回合(合規規則、升級政策、品牌聲音)並遵循相同的優先級。正常的聊天和整合觸發的執行都會在回應之前載入它們。
148
+
149
+ ```text
150
+ AGENTS.md
151
+ instructions/customer-support-guardrails.md
152
+ instructions/legal-review-policy.md
153
+ ```
154
+
155
+ ### 參考資源 {#reference-resources}
156
+
157
+ 可重複使用的公司背景位於 `context/` 下(角色、定位、產品事實、品牌指南、競爭說明)。當工作可能依賴於它時,代理會看到這些索引並使用 `resources` 工具 (`action: "read"`) 讀取相關檔案;使用 `action: "effective"` 檢視工作區預設值是否被應用或使用者覆蓋。
158
+
159
+ ### 內存 {#memory}
160
+
161
+ 工作區有兩個目前內存表面:
162
+
163
+ - `LEARNINGS.md` 在**共用**範圍內,用於專案範圍的約定、更正和持久的團隊知識。
164
+ - `memory/MEMORY.md` 位於有關目前使用者的結構化內存的**個人**範圍內。
165
+
166
+ 資源系統還播種個人 `LEARNINGS.md` 以與舊工作區兼容,但聊天預載入路徑是共用的 `LEARNINGS.md` 加上個人 `memory/MEMORY.md`。
167
+
168
+ **儲存什么。**當您糾正代理(“始終使用 X 而不是 Y”)、共用偏好(“我更喜歡簡潔的答案”)或揭示上下文(“我的團隊將此稱為“調度層””)時,代理會捕獲該學習內容,因此不會重複錯誤或重新詢問。專案範圍內的學習內容在共用的 `LEARNINGS.md` 中;使用者特定內存位於 `memory/` 下。 `capture-learnings` 技能說明了何時以及如何進行。
169
+
170
+ **適合的地方。**
171
+
172
+ | 表面 | 範圍 | 作者 | 閱讀時間 |
173
+ | ------------------ | ----------- | ---------------------------------- | ---------------------------- |
174
+ | `AGENTS.md` | 共用 | 根據要求提供人類/代理 | 每個回合 |
175
+ | `LEARNINGS.md` | 共用 | 根據要求提供人類/代理 | 每回合(僅限共用副本) |
176
+ | `memory/MEMORY.md` | 個人 | 特工/人類 | 每個回合 |
177
+ | `instructions/…` | 共用 | 根據要求提供人類/代理 | 每個回合 |
178
+ | `skills/…` | 共用 | 根據要求提供人類/代理 | 按需(`/slash` 指令) |
179
+ | `context/…` | 共用 | 根據要求提供人類/代理 | 每回合都編入索引,相關時閱讀 |
180
+ | `mcp-servers/…` | 工作區/共用 | 人類通過 Dispatch 或應用程式工作區 | MCP設定刷新 |
181
+
182
+ 使用者可以直接在“工作空間”分頁中編輯這些內存檔案 - 它們是常規資源。刪除代理出錯的行,將個人偏好保留在 `memory/MEMORY.md` 中,或將團隊範圍的規則推廣到 `AGENTS.md` 中。
183
+
184
+ 這些表面中的每一個 - `AGENTS.md`、skills、內存、自訂代理、MCP 伺服器 - 都是相同的底層資源形狀:`path` + `scope` + `content`,以相同的方式尋址和解析。
185
+
186
+ ```an-schema title="工作區資源模型" summary="一種資源形狀支持每個工作區檔案。執行時按路徑和範圍對其進行鍵控,並解析讀取時的有效值。"
187
+ {
188
+ "entities": [
189
+ {
190
+ "id": "resource",
191
+ "name": "workspace resource",
192
+ "note": "使用者工作區中的單個檔案 - 說明、技能、內存、代理、MCP 設定或作業。",
193
+ "fields": [
194
+ { "name": "path", "type": "string", "note": "Canonical path, e.g. AGENTS.md, skills/<slug>/SKILL.md" },
195
+ { "name": "scope", "type": "workspace | shared | personal", "note": "該行位於哪一層" },
196
+ { "name": "owner", "type": "string", "nullable": true, "note": "u:<email> for personal scope" },
197
+ { "name": "content", "type": "text", "note": "Markdown / JSON / YAML 內文" }
198
+ ]
199
+ }
200
+ ]
201
+ }
202
+ ```
203
+
204
+ ## Skills {#skills}
205
+
206
+ Skills 是 `skills/` 路徑(最好是 `skills/<name>/SKILL.md`)下的 Markdown 資源檔案,為代理提供按需領域知識,在與 `/skill-name` 聊天時調用。從“工作空間”分頁新增它們,或者在“程式碼”模式下從 `.agents/skills/` 新增它們。
207
+
208
+ 請參閱 [Skills Guide](/docs/skills-guide) — 技能格式、範圍、發現和創作的單一來源。
209
+
210
+ ## 自訂代理 {#custom-agents}
211
+
212
+ 自訂代理是可重用的本機子代理設定檔案,存儲為 `agents/*.md` 下的 Markdown 資源。這是自訂代理格式的規範主頁面。
213
+
214
+ 當您想要一個具有自己的名稱、描述、模型偏好設定和指令集的集中委托時,請使用它們。與 skills 不同,自訂代理不是被動指導 - 它們是主代理可以通過 `@` 提及或在子代理生成期間選取它們來調用的操作角色。
215
+
216
+ ### 代理格式 {#agent-format}
217
+
218
+ 自訂代理使用 YAML frontmatter 加上 Markdown 指令:
219
+
220
+ ```an-annotated-code title="自訂代理設定檔案"
221
+ {
222
+ "filename": "agents/design.md",
223
+ "language": "markdown",
224
+ "code": "---\nname: Design\ndescription: >-\n Reviews layouts, interaction patterns, and product UX decisions.\nmodel: inherit\ntools: inherit\ndelegate-default: false\n---\n\n# 角色\n\n您是一名專注的設計代理。\n\n##職責\n\n-審查布局和互動流程\n-提出更強的視覺方向\n-簡潔且有主見",
225
+ "annotations": [
226
+ { "lines": "2", "label": "@mention handle", "note": "`name` 是 `@` 下拉列表中顯示的內容,也是主代理委托的內容。" },
227
+ { "lines": "3-4", "label": "何時委托", "note": "`description` 是協調器讀取的內容,以確定此設定檔案適合工作。" },
228
+ { "lines": "5", "label": "型號", "note": "`inherit` 重用主代理的模型。僅當設定檔案明確需要不同的設定檔案時才覆蓋。" },
229
+ { "lines": "6", "note": "`tools: inherit` 目前 - 該欄位是為未來的每代理工具策略保留的。" }
230
+ ]
231
+ }
232
+ ```
233
+
234
+ 推薦約定:
235
+
236
+ - 將定制代理存儲在`agents/<slug>.md`
237
+ - 使用 `model: inherit` 除非設定檔案明確需要不同的模型
238
+ - 暫時保留`tools: inherit`;該欄位是為未來的工具策略保留的
239
+
240
+ ### 遠端代理與自訂代理 {#remote-vs-custom-agents}
241
+
242
+ 工作區中有兩種代理型別:
243
+
244
+ - **自訂代理** — `agents/*.md` 中的本機設定檔案,在目前應用/執行時內執行
245
+ - **連線的代理** — 由 `remote-agents/*.json` 中的清單描述的遠端 A2A 對等點(仍可識別舊版 `agents/*.json` 清單)
246
+
247
+ 在一個應用程式內使用自訂代理進行委派。當您需要通過 A2A 調用另一個應用程式時,請使用連線的代理。
248
+
249
+ ## @標記 {#at-tagging}
250
+
251
+ 在聊天輸入中鍵入 `@` 以引用工作區專案。光標處會出現一個下拉列表,顯示匹配的代理和檔案。使用箭頭鍵進行導覽並使用 Enter 進行選取。所選專案在輸入中顯示為內聯芯片。
252
+
253
+ 當您發送訊息時,**檔案/資源**作為代理可以讀取的引用進行傳遞,**自訂代理**使用其設定檔案指令在本機執行,並且**連線的代理**通過 A2A 進行調用。
254
+
255
+ ## / 斜線指令 {#slash-commands}
256
+
257
+ 在行首鍵入 `/` 以調用技能。下拉列表顯示可用的 skills 及其名稱和描述;選取一個會新增一個內聯芯片,並在發送訊息時將其內容作為上下文包含在內。如果未設定 skills,則下拉列表連結到這些檔案。
258
+
259
+ ## 程式碼與應用程式模式 {#dev-vs-prod}
260
+
261
+ 資源系統在兩種模式下的工作方式相同。不同之處在於可用於 `@` 標記和 `/` 指令的其他來源:
262
+
263
+ | 功能 | 程式碼模式 | 應用模式 |
264
+ | -------------- | ----------------------------------------------- | -------------------------------- |
265
+ | @標記 | 程式碼庫檔案 + 工作區資源 + 自訂代理 + 連線代理 | 工作區資源 + 自訂代理 + 連線代理 |
266
+ | /斜線指令 | .agents/skills/ + 資源 skills | 僅資源skills |
267
+ | 代理檔案存取 | 檔案系統+資源 | 僅限資源 |
268
+ | 工作區面板 | 完全存取權限 | 完全存取權限 |
269
+ | AGENTS.md/內存 | 可用 | 可用 |
270
+
271
+ ## 工作區連線 {#workspace-connections}
272
+
273
+ 工作區連線允許應用程式共用相同的提供者帳戶(Slack、GitHub、HubSpot 等),而無需重複憑證。連線在 SQL 中紀錄提供者身分、帳戶標籤、狀態、範圍、應用程式授權和憑證引用。秘密保留在憑證存儲中;連線僅指向憑證金鑰名稱,例如 `SLACK_BOT_TOKEN`。
274
+
275
+ 請參閱 [Workspace Connections](/docs/workspace-connections) 了解快速入門、connection/grant/credentialRef API 以及具體的 Slack、HubSpot 和 GitHub 範例。
276
+
277
+ ---
278
+
279
+ # 參考
280
+
281
+ ## 資源API {#resource-api}
282
+
283
+ 可以通過伺服器程式碼、actions 或 REST API 管理資源。
284
+
285
+ ### 伺服器API {#server-api}
286
+
287
+ 自動安裝REST端點:
288
+
289
+ | 方法 | 端點 | 描述 |
290
+ | -------- | --------------------------------------------- | -------------------- |
291
+ | `GET` | `/_agent-native/resources?scope=all` | 列出資源 |
292
+ | `GET` | `/_agent-native/resources?scope=workspace` | 列出繼承的工作區資源 |
293
+ | `GET` | `/_agent-native/resources/tree?scope=all` | 獲取資料夾樹 |
294
+ | `GET` | `/_agent-native/resources/effective?path=...` | 顯示有效繼承堆堆疊 |
295
+ | `POST` | `/_agent-native/resources` | 建立資源 |
296
+ | `GET` | `/_agent-native/resources/:id` | 獲取包含內容的資源 |
297
+ | `PUT` | `/_agent-native/resources/:id` | 更新資源 |
298
+ | `DELETE` | `/_agent-native/resources/:id` | 刪除資源 |
299
+ | `POST` | `/_agent-native/resources/upload` | 上傳檔案作為資源 |
300
+
301
+ ### 動作API {#script-api}
302
+
303
+ 代理使用這些內置的 actions。您也可以從您自己的 actions 中調用它們:
304
+
305
+ ```bash
306
+ # 列出所有資源
307
+ pnpm action resource-list --scope all
308
+
309
+ # 閱讀資源
310
+ pnpm action resource-read --path "skills/my-skill/SKILL.md"
311
+
312
+ # 讀取由 Dispatch 管理的繼承工作區上下文
313
+ pnpm action resource-read --scope workspace --path "context/brand.md"
314
+
315
+ # Show workspace -> organization/app -> personal precedence for a path
316
+ pnpm action resource-effective --path "context/brand.md"
317
+
318
+ # 寫一個資源
319
+ pnpm action resource-write --path "notes/meeting.md" --content "# 會議紀錄...”
320
+
321
+ # 刪除資源
322
+ pnpm action resource-delete --path "notes/old.md"
323
+ ```
@@ -0,0 +1,173 @@
1
+ ---
2
+ title: "撰寫代理說明和技能"
3
+ description: "如何為代理原生應用或範本編寫出色的代理指令:AGENTS.md、skills 和工具說明。"
4
+ ---
5
+
6
+ # 撰寫代理說明和技能
7
+
8
+ 代理在代理本機應用程式中的行為僅與您給出的說明一樣好。三個表面承載該指導:`AGENTS.md`(地圖)、skills(深入研究)和操作/工具描述(代理如何選取正確的工具)。寫下每一篇都是為了快速檢索,而不是為了散文。
9
+
10
+ ```an-diagram title="三個創作表面 + 一個執行時表面" summary="AGENTS.md 和工具描述每回合都會載入;按需載入技能; application_state 由您的 UI 實時編寫。"
11
+ {
12
+ "html": "<div class=\"diagram-surfaces\"><div class=\"diagram-card always\" data-rough><span class=\"diagram-pill accent\">每一輪</span><strong>AGENTS.md</strong><small class=\"diagram-muted\">地圖:用途、核心規則、狀態鍵、action + skills 索引</small></div><div class=\"diagram-card always\" data-rough><span class=\"diagram-pill accent\">每一輪</span><strong>工具描述</strong><small class=\"diagram-muted\">驅動工具選取 — 每個工具一句精確說明</small></div><div class=\"diagram-card ondemand\" data-rough><span class=\"diagram-pill\">按需</span><strong>技能</strong><small class=\"diagram-muted\">深度指南,在描述匹配時載入</small></div><div class=\"diagram-card runtime\" data-rough><span class=\"diagram-pill ok\">Live</span><strong>application_state</strong><small class=\"diagram-muted\">由你的 UI 寫入:導覽、選取、焦點</small></div></div>",
13
+ "css": ".diagram-surfaces{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.diagram-surfaces .diagram-card{display:flex;flex-direction:column;gap:6px;padding:14px 16px}"
14
+ }
15
+ ```
16
+
17
+ ## 保持 AGENTS.md 小且可瀏覽 {#small-agents-md}
18
+
19
+ `AGENTS.md` 作為方向載入。它應該是讓代理正確行動的最小事物,所有內容都深入到 skills 中。瞄準這些部分而不是其他部分:
20
+
21
+ - **目的行** — 一句話介紹應用程式是什么以及主要工作流程。
22
+ - **核心規則** - 必須始終保持的少數不變數(SQL 中的資料,操作通過 actions,AI 通過代理聊天,模式更改是附加的)。簡短、指令式的專案符號。
23
+ - **應用程式狀態鍵** — 代理讀取 `navigation`/選取/焦點鍵以了解使用者正在檢視的內容及其形狀。
24
+ - **操作表** — 操作名稱與目的的緊湊表。
25
+ - **技能 索引** — 存在的 skills 列表以及何時讀取每個 skills。
26
+
27
+ 如果一個部分超出了螢幕,那么它就屬於一項技能。 `AGENTS.md` 回答“這個應用程式是什么以及我能做什么”,而不是“我到底如何做困難的事情。”
28
+
29
+ ```markdown
30
+ # 專案應用程式
31
+
32
+ One workspace for projects, tasks, and notes. Agent and UI share the same SQL
33
+ data and the same actions.
34
+
35
+ ## 核心規則
36
+
37
+ - Data lives in 通過 Drizzle 使用 SQL. Use actions for all writes.
38
+ - All AI work goes through the agent chat; never call an LLM inline.
39
+ - Schema changes are additive only.
40
+
41
+ ## 應用狀態
42
+
43
+ - `navigation.view`: `home` | `project`
44
+ - `navigation.projectId`: selected project on a project page
45
+
46
+ ## 行動
47
+
48
+ | Action | Purpose |
49
+ | ---------------- | --------------------------- |
50
+ | `list-projects` | List accessible projects |
51
+ | `create-project` | Create a project |
52
+ | `update-project` | Rename or archive a project |
53
+
54
+ ## 技能
55
+
56
+ - `project-imports` — read before importing legacy CSV exports.
57
+ - `sharing` — read before exposing a project to other users.
58
+ ```
59
+
60
+ ## 單來源AGENTS.md {#single-source}
61
+
62
+ 保留一個規範指令檔案:`AGENTS.md`。如果用戶端需要 `CLAUDE.md`,請將其設為 `AGENTS.md` 的符號連結,而不是第二個副本。兩個手工維護的檔案發生了偏差,特工最終得出了相互矛盾的規則。真相的一個來源,在需要的地方連結。
63
+
64
+ ## SKILL.md frontmatter 必須說 AND 時的內容 {#skill-frontmatter}
65
+
66
+ `description` 是代理在決定是否讀取技能時唯一看到的東西。它必須回答兩個問題:技能涵蓋什么以及何時觸發它。僅描述主題的描述不會觸發。
67
+
68
+ ```markdown
69
+ ---
70
+ name: project-imports
71
+ description: >-
72
+ How to import projects from the legacy CSV export. Use when the user uploads
73
+ a project CSV or asks to migrate projects from the old system.
74
+ ---
75
+ ```
76
+
77
+ - 以功能開頭,然後新增明確的 **“何時使用…”** 子句。
78
+ - 稍微咄咄逼人——過度觸發會打敗永遠不會載入的技能。
79
+ - 將其控制在約 40 個字以內;它會載入到每次對話的上下文中。
80
+
81
+ ## 漸進式披露 {#progressive-disclosure}
82
+
83
+ 將 `SKILL.md` 編寫為精益的必知層:規則、如何做、該做/不該做的列表以及指針。將長範例、詳盡的欄位引用、API 怪癖和邊缘情況表推送到 `references/` 檔案中,代理僅在需要時讀取它們。
84
+
85
+ ```text
86
+ .agents/skills/project-imports/
87
+ ├── SKILL.md # 規則 + 快樂路徑 + do/don't
88
+ └── references/
89
+ └── csv-format.md # 全列規範、編碼、邊缘情況
90
+ ```
91
+
92
+ 這使始終載入的表面保持較小,並允許深度縮放而不會使上下文膨脹。完整技能格式請參見 [技能 Guide](/docs/skills-guide)。
93
+
94
+ ## 編寫面向行動的表格 {#action-tables}
95
+
96
+ 代理掃描表格的速度比掃描散文的速度快。優先使用名稱表而不是描述每個操作的段落。這同樣適用於狀態鍵、欄位型別和任何可枚舉集。表格可瀏覽、可比較,並且在新增操作時易於保持同步。
97
+
98
+ ## 編寫清晰的工具說明 {#tool-descriptions}
99
+
100
+ 操作描述是工具描述——它們驅動工具選取。讓每一個句子成為一個精確的、單一目的的句子:
101
+
102
+ - 說明它的作用和返回什么,而不是它的實現方式。
103
+ - 描述其 `.describe()` 中的每個參數,以便代理正確填寫。
104
+ - 每個操作都有一個責任。如果描述需要“而且還……”,請將其拆分。
105
+ - 標記唯讀 actions(`readOnly: true` 或 `http: { method: "GET" }`),以便客服人員知道他們可以安全地自由呼叫。
106
+
107
+ ```ts
108
+ defineAction({
109
+ description: "Create a project. Returns the new project id and title.",
110
+ schema: z.object({
111
+ title: z.string().min(1).describe("Project title shown in the sidebar"),
112
+ }),
113
+ // ...
114
+ });
115
+ ```
116
+
117
+ ## 技能 vs actions {#skills-vs-actions}
118
+
119
+ 技能 和 actions 是互補的。技能是代理閱讀的指南;一個
120
+ action 是代理可以執行的程式碼。
121
+
122
+ | 需要 | 使用 |
123
+ | ------------------------------------------ | ---------------- |
124
+ | 客服人員需要遵循工作流程、政策、清單或準則 | **技能** |
125
+ | 代理需要範例、參考資料或特定領域的規則 | **技能** |
126
+ | 代理需要讀取或寫入應用資料 | **操作** |
127
+ | 代理需要調用外部API或執行審批 | **操作** |
128
+ | 代理以錯誤的方式調用正確的操作 | 提高**技能** |
129
+ | 代理無法可靠地調用操作 | 改進**操作** |
130
+ | 代理選取了錯誤的工具 | 改進**動作描述** |
131
+
132
+ 大多數實際功能都會同時使用這兩種功能:技能解釋如何完成工作,並且
133
+ 該操作提供型別化操作。例如,`invoice-review`技能
134
+ 可以解釋審核政策和升級規則,同時`list-invoices`,
135
+ `flag-invoice` 和 `approve-invoice` actions 執行實際的讀寫操作。
136
+
137
+ ## 烘焙反加工並在完成前進行驗證 {#anti-fabrication}
138
+
139
+ 應用說明應將誠實和驗證作為預設行為:
140
+
141
+ - **切勿捏造。**如果未找到資料或操作失敗,請說出來並恢復 - 不要發明結果或聲稱成功。在報告之前通過操作或查詢讀取實際值。
142
+ - **在聲明完成之前進行驗證。**更改後,通過讀回確認(重新查詢行,通過 `view-screen` 重新讀取螢幕),而不是假設寫入有效。
143
+ - **恢復,不要放棄。** 對於可恢復的錯誤(失敗的查詢、短暫的提取),重試或修複輸入而不是放棄工作。將其與反捏造規則分開——不要將“不要編造事情”與“在第一個錯誤處停止”混為一談。
144
+
145
+ 將這些作為 `AGENTS.md` 中的核心規則,以便它們適用於每個回合。
146
+
147
+ ## 代理看到的四個表面 {#four-surfaces}
148
+
149
+ 您編寫的每一條指導都會落在四個表面之一上。知道使用哪個表面可以防止重複和錯位細節:
150
+
151
+ | 表面 | 誰寫的 | 載入時 | 那裡屬於什么 |
152
+ | ------------------------- | ------------------------ | ---------------------------- | ----------------------------------------------- |
153
+ | `AGENTS.md`說明 | 您(開發者) | 每個回合,作為方向 | 目的、核心規則、狀態鍵、動作索引、skills索引 |
154
+ | 技能 (`SKILL.md`) | 您(開發者) | 當客服人員認為技能相關時按需 | 特定模式的分步操作方法,列出了該做/不該做的事情 |
155
+ | 操作描述(工具) | 您(開發者) | 每回合,如工具列表 | 操作的作用、返回內容、參數語義 |
156
+ | `application_state`上下文 | 您的 UI 程式碼(執行時) | 每回合,作為實時應用狀態 | 目前導覽、選取、聚焦物件、URL |
157
+
158
+ **快速診斷:**
159
+
160
+ - “即使開啟一條紀錄,代理也會不斷詢問要操作哪條紀錄” → 修複:將目前專案 ID 從 UI 寫入 `application_state`(`navigation` 金鑰)。這是 `application_state` 差距,而不是技能差距。
161
+ - “代理調用了錯誤的操作或誤用了參數”→修複:改進操作在參數上的`description`和`.describe()`。這是工具描述修複,而不是技能。
162
+
163
+ ## 什么去哪裡 {#what-goes-where}
164
+
165
+ - **AGENTS.md** — 適用於整個應用程式,每回合:目的、核心規則、狀態鍵、操作索引、skills 索引。
166
+ - **技能** — 針對特定模式的可重用操作方法,按需載入。適用於在該應用中工作的每個人。
167
+ - **內存 (`memory/MEMORY.md`)** — 每個使用者的偏好和更正,而非編寫的指導。
168
+
169
+ ## 下一步是什么 {#whats-next}
170
+
171
+ - [技能 Guide](/docs/skills-guide) — 技能檔案格式、框架 skills 和應用程式支持的 skills。
172
+ - [Creating Templates](/docs/creating-templates) — `AGENTS.md` 和 skills 如何融入可交付範本。
173
+ - [The four-area checklist](/docs/key-concepts#four-area-checklist) - 每個特征都必須滿足的四區域模型。
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.79.2",
3
+ "version": "0.79.6",
4
4
  "description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
5
5
  "homepage": "https://github.com/BuilderIO/agent-native#readme",
6
6
  "bugs": {
@@ -179,7 +179,7 @@
179
179
  "provenance": true
180
180
  },
181
181
  "scripts": {
182
- "build": "tsgo && tsgo -p tsconfig.cli.json && node scripts/finalize-build.mjs",
182
+ "build": "tsgo && tsgo -p tsconfig.cli.json && node scripts/finalize-build.mjs && node scripts/check-dist-imports.mjs",
183
183
  "dev": "tsgo --watch",
184
184
  "typecheck": "tsgo --noEmit",
185
185
  "test": "vitest --run src",
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env node
2
+ // Postbuild guard: actually import the SSR-critical entry points under Node's
3
+ // strict ESM resolver. This reproduces the failure class where compiled client
4
+ // code reaches into copy-only template scaffolding (src/templates ships verbatim
5
+ // .ts, so its .js never exists in dist). Such imports work under Vite's
6
+ // on-the-fly client transform but throw ERR_MODULE_NOT_FOUND during SSR.
7
+ //
8
+ // A static scan can't tell a real broken import from a JSDoc example, a codegen
9
+ // string literal, or a dynamic import of a consumer-generated file, so we run
10
+ // the real resolver instead.
11
+ import { existsSync } from "node:fs";
12
+ import { pathToFileURL } from "node:url";
13
+
14
+ const ENTRY_POINTS = ["dist/client/i18n.js"];
15
+
16
+ let failed = false;
17
+ for (const entry of ENTRY_POINTS) {
18
+ if (!existsSync(entry)) {
19
+ console.error(`[check-dist-imports] missing entry ${entry} — build first`);
20
+ failed = true;
21
+ continue;
22
+ }
23
+ try {
24
+ await import(pathToFileURL(entry).href);
25
+ } catch (error) {
26
+ failed = true;
27
+ console.error(`[check-dist-imports] failed to import ${entry}:`);
28
+ console.error(` ${error?.message ?? error}`);
29
+ }
30
+ }
31
+
32
+ if (failed) process.exit(1);
33
+ console.log(
34
+ `[check-dist-imports] SSR entry points import cleanly (${ENTRY_POINTS.join(", ")})`,
35
+ );
@@ -54,6 +54,16 @@ const errorCopy: Record<
54
54
  goHome: "回到首页",
55
55
  reload: "重新加载",
56
56
  },
57
+ "zh-TW": {
58
+ loadingLatest: "正在載入最新版本...",
59
+ genericTitle: "發生錯誤",
60
+ genericDetails: "發生未預期的錯誤。",
61
+ notFoundTitle: "找不到頁面",
62
+ notFoundDetails: "找不到這個頁面。",
63
+ statusTitle: (status) => `${status} 錯誤`,
64
+ goHome: "回首頁",
65
+ reload: "重新載入",
66
+ },
57
67
  "es-ES": {
58
68
  loadingLatest: "Cargando la versión más reciente...",
59
69
  genericTitle: "Algo salió mal",
@@ -69,6 +69,18 @@ const FEEDBACK_COPY: Record<
69
69
  sendError: "无法发送反馈",
70
70
  keyboardHint: "{{shortcut}}+Enter 发送",
71
71
  },
72
+ "zh-TW": {
73
+ label: "意見回饋",
74
+ placeholder: "哪些地方好用、哪裡壞了,或你想改什麼?",
75
+ submit: "送出意見回饋",
76
+ submitting: "正在送出...",
77
+ success: "感謝你的意見回饋。",
78
+ loadError: "無法載入意見回饋表單",
79
+ invalidUrl: "意見回饋 URL 無效",
80
+ emptyError: "請先輸入內容",
81
+ sendError: "無法送出意見回饋",
82
+ keyboardHint: "{{shortcut}}+Enter 送出",
83
+ },
72
84
  "es-ES": {
73
85
  label: "Comentarios",
74
86
  placeholder: "¿Qué funciona, qué falla o qué cambiarías?",
@@ -103,6 +103,38 @@ const BLOCK_COPY: Record<
103
103
  lineAnnotation: "第 {{line}} 行注释",
104
104
  hiddenLinesExpand: "{{count}} 行 - 点击展开",
105
105
  },
106
+ "zh-TW": {
107
+ added: "已新增",
108
+ modified: "已修改",
109
+ removed: "已移除",
110
+ renamed: "已重新命名",
111
+ deprecated: "已棄用",
112
+ requiresAuthentication: "需要驗證",
113
+ auth: "驗證",
114
+ parameters: "參數",
115
+ name: "名稱",
116
+ in: "位置",
117
+ type: "型別",
118
+ requiredColumn: "必填",
119
+ description: "描述",
120
+ required: "必填",
121
+ optional: "選填",
122
+ requestBody: "請求本文",
123
+ responses: "回應",
124
+ expandDiagram: "展開圖表",
125
+ loadingDiagram: "正在載入圖表...",
126
+ couldNotRenderDiagram: "無法呈現圖表",
127
+ addDiagramDefinition: "新增圖表定義以呈現。",
128
+ switchToCleanDiagrams: "切換到簡潔圖表",
129
+ switchToHandDrawnDiagrams: "切換到手繪圖表",
130
+ cleanDiagramsSwitch: "簡潔圖表 - 切換到手繪",
131
+ handDrawnDiagramsSwitch: "手繪圖表 - 切換到簡潔",
132
+ clean: "簡潔",
133
+ sketchy: "手繪",
134
+ switchVisualStyle: "切換到 {{style}} 視覺樣式",
135
+ lineAnnotation: "第 {{line}} 行註解",
136
+ hiddenLinesExpand: "{{count}} 行 - 點擊展開",
137
+ },
106
138
  "es-ES": {
107
139
  added: "Añadido",
108
140
  modified: "Modificado",