@agent-native/core 0.79.2 → 0.79.5

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 (261) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +24 -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 +1 -1
  87. package/corpus/core/src/client/ErrorBoundary.tsx +10 -0
  88. package/corpus/core/src/client/FeedbackButton.tsx +12 -0
  89. package/corpus/core/src/client/blocks/library/block-copy.ts +32 -0
  90. package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +33 -0
  91. package/corpus/core/src/client/i18n.tsx +5 -0
  92. package/corpus/core/src/localization/actions/set-localization-preference.ts +2 -1
  93. package/corpus/core/src/localization/shared.ts +45 -0
  94. package/corpus/core/src/server/agent-chat-plugin.ts +38 -0
  95. package/corpus/core/src/server/onboarding-html.ts +99 -0
  96. package/corpus/core/src/templates/default/app/i18n/index.ts +2 -0
  97. package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +466 -0
  98. package/corpus/core/src/templates/default/app/root.tsx +8 -0
  99. package/corpus/templates/analytics/app/i18n/index.ts +2 -0
  100. package/corpus/templates/analytics/app/i18n/zh-TW.ts +818 -0
  101. package/corpus/templates/analytics/app/i18n-data.ts +9 -0
  102. package/corpus/templates/assets/app/i18n/index.ts +2 -0
  103. package/corpus/templates/assets/app/i18n/zh-TW.ts +860 -0
  104. package/corpus/templates/assets/app/i18n-data.ts +3 -0
  105. package/corpus/templates/brain/app/i18n/index.ts +2 -0
  106. package/corpus/templates/brain/app/i18n/zh-TW.ts +709 -0
  107. package/corpus/templates/brain/app/i18n-data.ts +3 -0
  108. package/corpus/templates/calendar/app/i18n/zh-TW.ts +836 -0
  109. package/corpus/templates/calendar/app/i18n-data.ts +4 -0
  110. package/corpus/templates/chat/app/i18n/index.ts +2 -0
  111. package/corpus/templates/chat/app/i18n/zh-TW.ts +67 -0
  112. package/corpus/templates/chat/app/i18n-data.ts +3 -0
  113. package/corpus/templates/clips/app/i18n/index.ts +2 -0
  114. package/corpus/templates/clips/app/i18n/zh-TW.ts +1280 -0
  115. package/corpus/templates/content/app/i18n/index.ts +2 -0
  116. package/corpus/templates/content/app/i18n/zh-TW.ts +906 -0
  117. package/corpus/templates/content/app/i18n-data.ts +4 -0
  118. package/corpus/templates/design/app/i18n/index.ts +2 -0
  119. package/corpus/templates/design/app/i18n/zh-TW.ts +517 -0
  120. package/corpus/templates/design/app/i18n-data.ts +6 -0
  121. package/corpus/templates/dispatch/app/i18n/index.ts +2 -0
  122. package/corpus/templates/dispatch/app/i18n/zh-TW.ts +195 -0
  123. package/corpus/templates/dispatch/app/i18n-data.ts +3 -0
  124. package/corpus/templates/forms/app/i18n/index.ts +2 -0
  125. package/corpus/templates/forms/app/i18n/zh-TW.ts +349 -0
  126. package/corpus/templates/macros/app/i18n/index.ts +2 -0
  127. package/corpus/templates/macros/app/i18n/zh-TW.ts +224 -0
  128. package/corpus/templates/mail/app/i18n/index.ts +2 -0
  129. package/corpus/templates/mail/app/i18n/zh-TW.ts +562 -0
  130. package/corpus/templates/mail/app/root.tsx +6 -0
  131. package/corpus/templates/plan/app/i18n/index.ts +2 -0
  132. package/corpus/templates/plan/app/i18n/zh-TW.ts +712 -0
  133. package/corpus/templates/slides/app/i18n/index.ts +2 -0
  134. package/corpus/templates/slides/app/i18n/zh-TW.ts +531 -0
  135. package/corpus/templates/videos/app/i18n/index.ts +2 -0
  136. package/corpus/templates/videos/app/i18n/zh-TW.ts +435 -0
  137. package/dist/client/ErrorBoundary.d.ts.map +1 -1
  138. package/dist/client/ErrorBoundary.js +10 -0
  139. package/dist/client/ErrorBoundary.js.map +1 -1
  140. package/dist/client/FeedbackButton.d.ts.map +1 -1
  141. package/dist/client/FeedbackButton.js +12 -0
  142. package/dist/client/FeedbackButton.js.map +1 -1
  143. package/dist/client/blocks/library/block-copy.d.ts.map +1 -1
  144. package/dist/client/blocks/library/block-copy.js +32 -0
  145. package/dist/client/blocks/library/block-copy.js.map +1 -1
  146. package/dist/client/extensions/ExtensionsSidebarSection.d.ts.map +1 -1
  147. package/dist/client/extensions/ExtensionsSidebarSection.js +32 -0
  148. package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
  149. package/dist/client/i18n.d.ts.map +1 -1
  150. package/dist/client/i18n.js +5 -0
  151. package/dist/client/i18n.js.map +1 -1
  152. package/dist/collab/awareness.d.ts +2 -2
  153. package/dist/collab/awareness.d.ts.map +1 -1
  154. package/dist/collab/routes.d.ts +1 -1
  155. package/dist/localization/actions/set-localization-preference.d.ts.map +1 -1
  156. package/dist/localization/actions/set-localization-preference.js +2 -2
  157. package/dist/localization/actions/set-localization-preference.js.map +1 -1
  158. package/dist/localization/shared.d.ts +1 -1
  159. package/dist/localization/shared.d.ts.map +1 -1
  160. package/dist/localization/shared.js +43 -0
  161. package/dist/localization/shared.js.map +1 -1
  162. package/dist/notifications/routes.d.ts +3 -3
  163. package/dist/observability/routes.d.ts +3 -3
  164. package/dist/resources/handlers.d.ts +2 -2
  165. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  166. package/dist/server/agent-chat-plugin.js +39 -0
  167. package/dist/server/agent-chat-plugin.js.map +1 -1
  168. package/dist/server/agent-engine-api-key-route.d.ts +2 -2
  169. package/dist/server/onboarding-html.d.ts.map +1 -1
  170. package/dist/server/onboarding-html.js +96 -0
  171. package/dist/server/onboarding-html.js.map +1 -1
  172. package/dist/templates/default/app/i18n/index.ts +2 -0
  173. package/dist/templates/default/app/i18n/zh-TW.ts +466 -0
  174. package/dist/templates/default/app/root.tsx +8 -0
  175. package/docs/content/locales/zh-TW/a2a-protocol.md +392 -0
  176. package/docs/content/locales/zh-TW/actions.md +583 -0
  177. package/docs/content/locales/zh-TW/agent-mentions.md +164 -0
  178. package/docs/content/locales/zh-TW/agent-surfaces.md +397 -0
  179. package/docs/content/locales/zh-TW/agent-teams.md +171 -0
  180. package/docs/content/locales/zh-TW/agent-web-surfaces.md +161 -0
  181. package/docs/content/locales/zh-TW/audit-log.md +111 -0
  182. package/docs/content/locales/zh-TW/authentication.md +332 -0
  183. package/docs/content/locales/zh-TW/automations.md +268 -0
  184. package/docs/content/locales/zh-TW/blueprint-installer.md +83 -0
  185. package/docs/content/locales/zh-TW/cli-adapters.md +129 -0
  186. package/docs/content/locales/zh-TW/client.md +398 -0
  187. package/docs/content/locales/zh-TW/cloneable-saas.md +114 -0
  188. package/docs/content/locales/zh-TW/code-agents-ui.md +436 -0
  189. package/docs/content/locales/zh-TW/components.md +368 -0
  190. package/docs/content/locales/zh-TW/context-awareness.md +373 -0
  191. package/docs/content/locales/zh-TW/creating-templates.md +411 -0
  192. package/docs/content/locales/zh-TW/cross-app-sso.md +188 -0
  193. package/docs/content/locales/zh-TW/database.md +183 -0
  194. package/docs/content/locales/zh-TW/deployment.md +348 -0
  195. package/docs/content/locales/zh-TW/dispatch.md +146 -0
  196. package/docs/content/locales/zh-TW/drop-in-agent.md +260 -0
  197. package/docs/content/locales/zh-TW/durable-resume.md +65 -0
  198. package/docs/content/locales/zh-TW/embedding-sdk.md +597 -0
  199. package/docs/content/locales/zh-TW/evals.md +155 -0
  200. package/docs/content/locales/zh-TW/extensions.md +360 -0
  201. package/docs/content/locales/zh-TW/external-agents.md +619 -0
  202. package/docs/content/locales/zh-TW/faq.md +142 -0
  203. package/docs/content/locales/zh-TW/file-uploads.md +122 -0
  204. package/docs/content/locales/zh-TW/frames.md +153 -0
  205. package/docs/content/locales/zh-TW/getting-started.md +199 -0
  206. package/docs/content/locales/zh-TW/harness-agents.md +349 -0
  207. package/docs/content/locales/zh-TW/human-approval.md +86 -0
  208. package/docs/content/locales/zh-TW/internationalization.md +147 -0
  209. package/docs/content/locales/zh-TW/key-concepts.md +312 -0
  210. package/docs/content/locales/zh-TW/local-file-mode.md +433 -0
  211. package/docs/content/locales/zh-TW/mcp-apps.md +147 -0
  212. package/docs/content/locales/zh-TW/mcp-clients.md +330 -0
  213. package/docs/content/locales/zh-TW/mcp-protocol.md +279 -0
  214. package/docs/content/locales/zh-TW/messaging.md +461 -0
  215. package/docs/content/locales/zh-TW/migration-workbench.md +33 -0
  216. package/docs/content/locales/zh-TW/multi-app-workspace.md +312 -0
  217. package/docs/content/locales/zh-TW/multi-tenancy.md +52 -0
  218. package/docs/content/locales/zh-TW/native-chat-ui.md +321 -0
  219. package/docs/content/locales/zh-TW/notifications.md +231 -0
  220. package/docs/content/locales/zh-TW/observability.md +294 -0
  221. package/docs/content/locales/zh-TW/observational-memory.md +77 -0
  222. package/docs/content/locales/zh-TW/onboarding.md +216 -0
  223. package/docs/content/locales/zh-TW/plan-plugin.md +200 -0
  224. package/docs/content/locales/zh-TW/pr-visual-recap.md +384 -0
  225. package/docs/content/locales/zh-TW/processors.md +106 -0
  226. package/docs/content/locales/zh-TW/progress.md +199 -0
  227. package/docs/content/locales/zh-TW/pure-agent-apps.md +39 -0
  228. package/docs/content/locales/zh-TW/real-time-collaboration.md +680 -0
  229. package/docs/content/locales/zh-TW/recurring-jobs.md +142 -0
  230. package/docs/content/locales/zh-TW/routing.md +79 -0
  231. package/docs/content/locales/zh-TW/sandbox-adapters.md +227 -0
  232. package/docs/content/locales/zh-TW/security.md +330 -0
  233. package/docs/content/locales/zh-TW/server.md +265 -0
  234. package/docs/content/locales/zh-TW/sharing.md +219 -0
  235. package/docs/content/locales/zh-TW/skills-guide.md +281 -0
  236. package/docs/content/locales/zh-TW/template-analytics.md +259 -0
  237. package/docs/content/locales/zh-TW/template-assets.md +303 -0
  238. package/docs/content/locales/zh-TW/template-brain.md +324 -0
  239. package/docs/content/locales/zh-TW/template-calendar.md +194 -0
  240. package/docs/content/locales/zh-TW/template-chat.md +129 -0
  241. package/docs/content/locales/zh-TW/template-clips.md +368 -0
  242. package/docs/content/locales/zh-TW/template-content.md +402 -0
  243. package/docs/content/locales/zh-TW/template-design.md +173 -0
  244. package/docs/content/locales/zh-TW/template-dispatch.md +220 -0
  245. package/docs/content/locales/zh-TW/template-forms.md +178 -0
  246. package/docs/content/locales/zh-TW/template-mail.md +239 -0
  247. package/docs/content/locales/zh-TW/template-plan.md +814 -0
  248. package/docs/content/locales/zh-TW/template-slides.md +293 -0
  249. package/docs/content/locales/zh-TW/template-videos.md +222 -0
  250. package/docs/content/locales/zh-TW/tracking.md +236 -0
  251. package/docs/content/locales/zh-TW/using-your-agent.md +71 -0
  252. package/docs/content/locales/zh-TW/voice-input.md +81 -0
  253. package/docs/content/locales/zh-TW/what-is-agent-native.md +202 -0
  254. package/docs/content/locales/zh-TW/workspace-connections.md +321 -0
  255. package/docs/content/locales/zh-TW/workspace-management.md +175 -0
  256. package/docs/content/locales/zh-TW/workspace.md +323 -0
  257. package/docs/content/locales/zh-TW/writing-agent-instructions.md +173 -0
  258. package/package.json +1 -1
  259. package/src/templates/default/app/i18n/index.ts +2 -0
  260. package/src/templates/default/app/i18n/zh-TW.ts +466 -0
  261. package/src/templates/default/app/root.tsx +8 -0
@@ -0,0 +1,324 @@
1
+ ---
2
+ title: "大腦"
3
+ description: "由引用的機構記憶、可審查的來源程式碼攝取和可重用的工作區整合支持的幹淨的公司聊天。"
4
+ ---
5
+
6
+ # 大腦
7
+
8
+ 大腦是幹淨的公司聊天,由引用的機構記憶支持。人們問
9
+ 簡單的英語問題;大腦通過認可的公司知識進行回答
10
+ 連結回 Slack 線程、會議、紀錄、問題或 Webhook 捕獲
11
+ 支持答案。
12
+
13
+ 大腦攝取批準的 Slack 頻道、剪輯錄音、Granola Team-space
14
+ 注釋、GitHub 問題/PR 以及通用腳本/Webhook 有效負載。它存儲原始資料
15
+ 捕獲、提煉持久的事實/決策/流程,並路由敏感的或
16
+ 低可信度記憶在成為公司知識之前經過審查。
17
+
18
+ 產品表面有意保持簡單:**詢問**是主要聊天
19
+ 經驗,而**來源**、**評論**和**知識**是管理/支持
20
+ 用於連線資料、批準提案和檢查引用內存的介面。
21
+
22
+ ```an-diagram title="從來源到引用的答案" summary="大腦將經過批準的來源攝取到原始捕獲中,提取持久記憶,通過審查對其進行門控,然後才通過引用進行回答。"
23
+ {
24
+ "html": "<div class=\"diagram-flow\"><div class=\"diagram-card\"><span class=\"diagram-pill\">Sources</span><small class=\"diagram-muted\">Slack · Granola · GitHub · Clips · webhooks</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-box\" data-rough>原始捕獲<br><small class=\"diagram-muted\">已去重、已脫敏</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-box\" data-rough>Distill<br><small class=\"diagram-muted\">事實 · 決策 · 流程</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-card\"><span class=\"diagram-pill warn\">Review</span><small class=\"diagram-muted\">sensitive / low-confidence queue</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-box\" data-rough><span class=\"diagram-pill ok\">Knowledge</span><small class=\"diagram-muted\">已批準、原子化</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-panel center\"><span class=\"diagram-pill accent\">Ask</span><small class=\"diagram-muted\">cited answer</small></div></div>",
25
+ "css": ".diagram-flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.diagram-flow .diagram-card{display:flex;flex-direction:column;gap:4px;padding:10px 12px}.diagram-flow .diagram-box{display:flex;flex-direction:column;gap:4px}.diagram-flow .diagram-arrow{font-size:20px;line-height:1}.diagram-flow .center{display:flex;flex-direction:column;align-items:center;gap:4px}"
26
+ }
27
+ ```
28
+
29
+ ```an-wireframe
30
+ {
31
+ "surface": "desktop",
32
+ "html": "<div style='display:flex;flex-direction:column;gap:14px;padding:18px;min-height:520px;box-sizing:border-box'><div style='display:flex;align-items:center;gap:10px'><h1 style='margin:0'>詢問公司記憶</h1><span class='wf-pill accent'>42 approved memories</span><span class='wf-pill'>3 sources</span><div style='flex:1'></div><button>Sources</button><button>Review</button></div><div class='wf-card' style='display:flex;align-items:center;gap:10px'><span data-icon='search' aria-label='搜尋'></span><strong style='flex:1'>為什么選取按用量定價?</strong><button class='primary'>Ask</button></div><div class='wf-card' style='display:flex;flex-direction:column;gap:10px'><strong>Answer</strong><p style='margin:0'>試點顯示席位數低估了自動化價值後,團隊選取了按用量定價。</p><div style='display:flex;gap:8px;flex-wrap:wrap'><span class='wf-pill accent'>定價 RFC</span><span class='wf-pill'>發布複盤</span><span class='wf-pill'>銷售備注</span></div></div><div class='wf-card' style='flex:1;display:flex;flex-direction:column;gap:8px'><strong>來源時間線</strong><div class='wf-box'>5 月 3 日 · 決策已紀錄</div><div class='wf-box'>5 月 8 日 · 已新增客戶證據</div><div class='wf-box'>5 月 12 日 · 法務說明已批準</div></div></div>"
33
+ }
34
+ ```
35
+
36
+ 當您開啟應用程式時,**詢問**位於最前面和中心位置 - 幹淨的聊天超過審核
37
+ 公司內存。 **來源**、**評論**和**知識**與它並列
38
+ 用於連線資料、批準提案和檢查引用的管理介面
39
+ 條目。
40
+
41
+ ## 何時采摘
42
+
43
+ 當您的團隊希望代理回答諸如“我們為什么這樣做”之類的問題時,請使用 Brain
44
+ 這個產品決策?”、“這個正在開發的功能如何工作?”或“什么
45
+ 在這個過程中發生了變化?”包含返回來源對話、會議的連結,
46
+ 或問題。
47
+
48
+ Brain 和 Dispatch 是互補的,但執行不同的工作:
49
+
50
+ - **Brain 擁有公司內存。**它攝取來源、審查原始捕獲,
51
+ 從引用的證據中提煉出持久的事實/決策/過程、答案,以及
52
+ 向代理公開經認可的知識。
53
+ - **Dispatch 擁有工作區控制平面。**它集中訊息傳遞,
54
+ 秘密、重複性作業、批準、A2A 編排和分發
55
+ 並批準工作區範圍的資源。
56
+
57
+ 在多應用工作區中,Dispatch 可以通過 A2A 將問題發送至 Brain,並且
58
+ 可以授予 Brain 共用提供者憑證。大腦仍然是專家
59
+ 批準來源攝取、審查、檢索並引用 Company Brain 答案。
60
+ Brain 將唯讀、引用支持的檢索公開為其公開 A2A 功能
61
+ 因此 Dispatch 和同級應用程式可以詢問公司內存問題 - A2A 代理
62
+ 卡片是公開發現元資料,而檢索仍然發生在 Brain 內部
63
+ 經過驗證的操作介面。
64
+
65
+ ## 你可以用它做什么
66
+
67
+ - **詢問引用的問題。**詢問是主要的產品表面:幹淨的聊天
68
+ 審查了公司內存,包括來源健康狀況、審查計數和建議
69
+ 問題保持次要。每個答案都連結回 Slack 線程,
70
+ 支持它的會議、問題或捕獲。
71
+ - **連線批準的來源。**設定手動、通用 Webhook、Clips、Slack,
72
+ 格蘭諾拉麥片和 GitHub 來源。預設情況下,來源是組織共用的,因此公司
73
+ 內存對整個工作區很有用。
74
+ - **發布前進行審核。**提出的回憶將獲得一流的審核路線
75
+ 審閱者編輯措辭、檢查證據/來源連結並批準或
76
+ 拒絕。高可信度、非敏感條目可立即發布;
77
+ 公司級或敏感條目作為提案排隊。
78
+ - **檢查引用的知識。**知識路線顯示蒸餾的、原子的
79
+ 包含種類、主題、實體、置信度、確切證據引用的條目,以及
80
+ 取代連結。
81
+ - **重用工作區整合。**腦來源可以重用共用工作區
82
+ 連線授予而不是重新輸入提供者權杖。來源頁面
83
+ 在可重複使用的連線授權和提供者旁邊顯示大腦來源紀錄
84
+ 準備就緒。
85
+ - **將批準的內存鏡像為環境上下文。**規範批準的條目可以
86
+ 鏡像到 `context/company-brain/...` 下的工作區資源,以便其他
87
+ 應用程式可以將它們用作上下文。兩個流程都在
88
+ 資源被寫入或刪除。
89
+
90
+ ## 開始使用
91
+
92
+ 現場演示:[brain.agent-native.com](https://brain.agent-native.com)。
93
+
94
+ 1. **嘗試演示。** 開啟詢問並選取 **開始演示**。大腦種子很小
95
+ 產品決策語料庫,執行信任檢查,並提出引用的問題
96
+ 您可以在新增之前檢視答案、引用、評論和未找到的行為
97
+ 真實的公司資料。
98
+ 2. **新增一個來源。**從單個 Slack 頻道、Granola Team-space 開始
99
+ 提要、GitHub 儲存庫、剪輯匯出或通用腳本 Webhook。保留
100
+ 範圍很小,直到引用和評論品質看起來不錯。
101
+ 3. **發布前進行審閱。**使用審閱來檢查證據、編輯措辭,
102
+ 並僅批準持久的公司內存。
103
+ 4. **從來源頭詢問。**使用“詢問”來提出應基於的問題
104
+ 經過認可的知識,而不是原始聊天記錄。
105
+
106
+ 對於公開演示,種子語料庫演示了產品決策召回,
107
+ 引文連結、取代行為、評論門控、編輯、個人內容
108
+ 排除,以及在不連線真實工作空間的情況下誠實的未發現行為。
109
+
110
+ ### 有用的提示
111
+
112
+ - “我們對年度定價做出了什么決定?在哪裡討論過?”
113
+ - “查找最新的入職流程變更並引用來源。”
114
+ - “總結一下 GitHub 討論對於發布計畫的意義。”
115
+ - “審查待處理的內存提案並標記任何過於模糊而無法發布的內容。”
116
+ - “哪些來源已過時或同步失敗?”
117
+
118
+ ## 對於開發者
119
+
120
+ 本檔案的其餘部分適用於任何分叉 Brain 範本或擴充功能它的人。
121
+
122
+ ### 快速入門
123
+
124
+ ```bash
125
+ npx @agent-native/core@latest create my-brain --standalone --template brain
126
+ cd my-brain
127
+ pnpm install
128
+ pnpm dev
129
+ ```
130
+
131
+ 開啟應用程式並選取**開始演示**即可檢視引用的內存,而無需連線真實的工作區。
132
+
133
+ ### 資料模型
134
+
135
+ Brain 有意使用 SQL 文本搜尋和代理查詢擴充功能 - 有
136
+ 無需矢量資料庫,因此範本可在 SQLite 之間保持可移植性,
137
+ Postgres、Neon、D1、Turso 和類似主機。應用程式狀態反映
138
+ 目前路線、過濾器和所選 ID,以便代理始終了解目前
139
+ 導覽和選取。
140
+
141
+ Brain 的模式位於 `templates/brain/server/db/schema.ts` 中。八張桌子:
142
+
143
+ | 表 | 它包含什么 |
144
+ | ------------------------ | --------------------------------------------------------------------------------------------------------------- |
145
+ | `brain_sources` | 連線器設定 - 提供者、允許列出的頻道/儲存庫、同步光標、審核狀態、`ingest_token_hash`、`status`、`last_synced_at` |
146
+ | `brain_source_shares` | 按來源共用授予(檢視者/編輯者/管理員) |
147
+ | `brain_raw_captures` | 帶有 `external_id` 重複資料刪除金鑰、`content_hash`、種類和蒸餾狀態的腳本、通道匯出、注釋和 Webhook 匯入 |
148
+ | `brain_knowledge` | 精煉的原子條目 - 種類(決策/事實/過程/...)、主題、實體、證據引用、置信度、`publish_tier`、取代連結 |
149
+ | `brain_knowledge_shares` | 按知識共用授予 |
150
+ | `brain_proposals` | 待審專案 - 建議建立/更新/存檔並包含證據和審閱者注釋 |
151
+ | `brain_proposal_shares` | 每項提案的股份授予 |
152
+ | `brain_sync_runs` | 同步審核記錄 - 提供者、狀態、統計資訊 JSON、錯誤、開始/結束時間戳 |
153
+ | `brain_ingest_queue` | 後台蒸餾佇列 - 操作、狀態、優先級、重試計數、`run_after` |
154
+
155
+ ```an-schema title="大腦資料模型" summary="Connectors produce raw captures; distillation turns captures into reviewable knowledge; proposals gate sensitive entries. Sync runs and the ingest queue track background work."
156
+ {
157
+ "entities": [
158
+ { "id": "sources", "name": "brain_sources", "note": "連線器設定", "fields": [
159
+ { "name": "id", "type": "id", "pk": true },
160
+ { "name": "provider", "type": "text", "note": "slack / granola / github / clips / webhook" },
161
+ { "name": "ingest_token_hash", "type": "text" },
162
+ { "name": "status", "type": "text" },
163
+ { "name": "last_synced_at", "type": "timestamp", "nullable": true }
164
+ ] },
165
+ { "id": "source_shares", "name": "brain_source_shares", "note": "viewer / editor / admin", "fields": [
166
+ { "name": "source_id", "type": "id", "fk": "brain_sources.id" }
167
+ ] },
168
+ { "id": "captures", "name": "brain_raw_captures", "note": "攝取的原始有效負載", "fields": [
169
+ { "name": "id", "type": "id", "pk": true },
170
+ { "name": "source_id", "type": "id", "fk": "brain_sources.id" },
171
+ { "name": "external_id", "type": "text", "note": "dedupe key" },
172
+ { "name": "content_hash", "type": "text" },
173
+ { "name": "kind", "type": "text" }
174
+ ] },
175
+ { "id": "knowledge", "name": "brain_knowledge", "note": "蒸餾原子條目", "fields": [
176
+ { "name": "id", "type": "id", "pk": true },
177
+ { "name": "kind", "type": "text", "note": "decision / fact / process" },
178
+ { "name": "topic", "type": "text" },
179
+ { "name": "entities", "type": "json" },
180
+ { "name": "confidence", "type": "real" },
181
+ { "name": "publish_tier", "type": "text" }
182
+ ] },
183
+ { "id": "knowledge_shares", "name": "brain_knowledge_shares", "fields": [
184
+ { "name": "knowledge_id", "type": "id", "fk": "brain_knowledge.id" }
185
+ ] },
186
+ { "id": "proposals", "name": "brain_proposals", "note": "待審核專案", "fields": [
187
+ { "name": "id", "type": "id", "pk": true },
188
+ { "name": "op", "type": "text", "note": "create / update / archive" }
189
+ ] },
190
+ { "id": "proposal_shares", "name": "brain_proposal_shares", "fields": [
191
+ { "name": "proposal_id", "type": "id", "fk": "brain_proposals.id" }
192
+ ] },
193
+ { "id": "sync_runs", "name": "brain_sync_runs", "note": "同步審核記錄", "fields": [
194
+ { "name": "source_id", "type": "id", "fk": "brain_sources.id" },
195
+ { "name": "status", "type": "text" },
196
+ { "name": "stats", "type": "json" }
197
+ ] },
198
+ { "id": "ingest_queue", "name": "brain_ingest_queue", "note": "後台蒸餾佇列", "fields": [
199
+ { "name": "operation", "type": "text" },
200
+ { "name": "status", "type": "text" },
201
+ { "name": "priority", "type": "int" },
202
+ { "name": "run_after", "type": "timestamp", "nullable": true }
203
+ ] }
204
+ ],
205
+ "relations": [
206
+ { "from": "sources", "to": "captures", "kind": "1-n", "label": "ingested into" },
207
+ { "from": "knowledge", "to": "captures", "kind": "n-n", "label": "evidence" },
208
+ { "from": "knowledge", "to": "proposals", "kind": "1-n", "label": "gated by" },
209
+ { "from": "sources", "to": "sync_runs", "kind": "1-n", "label": "audited by" }
210
+ ]
211
+ }
212
+ ```
213
+
214
+ ### 金鑰actions
215
+
216
+ 按區域分組(`templates/brain/actions/`):
217
+
218
+ - **來源管理** — `create-source`、`update-source`、`delete-source`、`get-source`、`list-sources`、`sync-source`、`sync-due-sources`、`run-slack-pilot`、`test-slack-connection`
219
+ - **捕獲攝取** — `import-capture`、`import-transcript`、`list-captures`、`get-capture`、`mark-capture-distilled`、`resanitize-captures`
220
+ - **蒸餾** — `enqueue-distillation`、`enqueue-captures-distillation`、`claim-distillation`、`retry-distillation`、`list-distillation-queue`
221
+ - **知識與複習** — `write-knowledge`、`get-knowledge`、`list-knowledge`、`set-knowledge-canonical`、`preview-canonical-resource`、`list-proposals`、`review-proposal`、`approve-proposal`、`reject-proposal`、`update-proposal`
222
+ - **搜尋和檢索** — `ask-brain`、`search-knowledge`、`search-everything`
223
+ - **設定** — `get-brain-settings`、`update-brain-settings`、`set-settings`、`get-settings`
224
+ - **評估和演示** — `seed-demo-data`、`run-demo-eval`、`run-retrieval-eval`
225
+ - **上下文和導覽** — `view-screen`、`navigate`
226
+ - **提供者 APIs** — `provider-api-catalog`、`provider-api-docs`、`provider-api-request`
227
+
228
+ ### 連線來源
229
+
230
+ Brain 首先從授予的工作區連線解析提供者憑證,
231
+ 然後來自向後兼容的 Brain-local 或註冊的保管庫憑證。
232
+ Brain 來源憑證不會回退到部署級別環境變數。
233
+ 如果共用提供程序已存在,請授予 Brain 存取權限,而不是複製
234
+ 在特定於大腦的設定中使用相同的秘密。
235
+
236
+ **Slack.** 建立範圍為特定通道 ID 的來源。連線器
237
+ 驗證每個設定的對話,拒絕 DM 和 MPIM,並存儲光標
238
+ 狀態,以便每次同步都從上次停止的位置恢復。安全的推出流程
239
+ 每個 Slack 來源卡都可以讓您**測試**憑證和允許列表,而無需
240
+ 閱讀歷史紀錄,執行一個小上限的**安全試點**範例,**檢視捕獲**,
241
+ 並在任何內容變得可查詢之前在**審核佇列**中進行批準。授予
242
+ 機器人僅處理來源需要的範圍(憑證驗證、允許列表
243
+ 驗證、允許列出的頻道歷史紀錄和持久的永久連結)。
244
+
245
+ **格蘭諾拉麥片。** 建立具有輪詢窗口和頁面大小的來源。格蘭諾拉麥片
246
+ 企業 API 金鑰公開團隊空間筆記,而不是私人筆記或資料夾。大腦
247
+ 存儲筆記摘要、文字紀錄、與會者、行事曆元資料和來源
248
+ URL 作為蒸餾前的原始捕獲物。
249
+
250
+ **GitHub.** 建立範圍為已批準的儲存庫的來源。連線器
251
+ 使用穩定的來源 URL 匯入有界問題和拉取請求上下文,可以
252
+ 像 Slack 或會議上下文一樣進行提煉。這是大腦上下文攝取,而不是
253
+ Analytics 風格的 GitHub 報告的替代品。
254
+
255
+ **Clips 和通用 webhooks。** Brain 公開了 Clips 的簽名 Webhook 和
256
+ `/api/_agent-native/brain/ingest` 的通用轉錄本/捕獲匯入。建立
257
+ 具有 `sourceKey` 的來源接收不記名權杖,然後發送
258
+ `RawCapturePayload` 與 `Authorization: Bearer <ingestToken>`。通用來源
259
+ 對通話紀錄、客戶研究、匯入使用相同的有效負載形狀
260
+ 注釋,或任何其他可以生成有界捕獲的來源。
261
+
262
+ ```an-api title="簽名攝取 webhook" summary="剪輯和通用 transcript/capture 匯入會發布帶有每個來源不記名權杖的 RawCapturePayload。"
263
+ {
264
+ "method": "POST",
265
+ "path": "/api/_agent-native/brain/ingest",
266
+ "summary": "從 Clips 或通用來源匯入原始捕獲",
267
+ "auth": "Bearer <ingestToken> issued per source via its sourceKey",
268
+ "request": {
269
+ "contentType": "application/json",
270
+ "example": "RawCapturePayload — bounded transcript / capture body"
271
+ },
272
+ "responses": [
273
+ { "status": "200", "description": "Capture accepted and queued for distillation" },
274
+ { "status": "401", "description": "Missing or invalid ingest bearer token" }
275
+ ]
276
+ }
277
+ ```
278
+
279
+ Slack、Granola 和 GitHub 來源可以選取進入後台 `autoSync`
280
+ 審核品質得到證實後進行投票。
281
+
282
+ ### 隱私和門控
283
+
284
+ 大腦是為公司記憶而設計的,而不是個人監視:
285
+
286
+ - Slack 同步僅讀取顯式設定的通道並拒絕 DM/MPIM。
287
+ - Granola 同步讀取 Granola 的 API 公開的團隊空間筆記,非私人
288
+ 筆記或私人資料夾。
289
+ - 預設情況下,原始捕獲是從列表/搜尋介面中編輯的;審稿人
290
+ 並且蒸餾流程僅在需要時請求預覽或原始內容。
291
+ - 來源設定可能需要在提煉的知識變得持久之前進行審查
292
+ 公司內存。
293
+ - 設定控制預設發布層,公司層知識是否需要
294
+ 批準、引用要求、電子郵件編輯和連線器錯誤
295
+ 通知。
296
+
297
+ ### 自訂它
298
+
299
+ 大腦遵循代理原生四區域契約——通過編輯改變行為
300
+ 匹配區域,客服人員可以為您進行以下編輯:
301
+
302
+ - `templates/brain/app/routes/` — UI 表面:提問、搜尋、知識,
303
+ 檢視、來源、設定和團隊路線。
304
+ - `templates/brain/actions/` — 每個代理可調用的操作(匯入、來源
305
+ 管理、試點報告、提煉、提案審查、引用檢索,
306
+ 導覽/上下文)。使用 `defineAction` 新增新檔案以公開新的
307
+ 能力。
308
+ - `templates/brain/.agents/skills/` — 針對大腦的蒸餾指導
309
+ 和檢索。當您向客服人員傳授新的工作流程時更新或新增技能。
310
+ - `templates/brain/AGENTS.md` — 頂級代理指南。新增專業時更新
311
+ 功能。
312
+ - `templates/brain/server/db/schema.ts` — 資料模型。僅附加遷移;
313
+ 路由、過濾器和選定的 ID 鏡像到代理的 `application_state`
314
+ 上下文。
315
+
316
+ 要求代理為您進行更改 - 它可以編輯自己的來源。請參閱
317
+ [Self-Modifying Code](/docs/key-concepts#agent-modifies-code).
318
+
319
+ ## 下一步是什么
320
+
321
+ - [**Dispatch**](/docs/dispatch) — 工作區控制平面
322
+ - [**Dispatch template**](/docs/template-dispatch) — 腳手架協調應用
323
+ - [**Workspace**](/docs/workspace) — 跨應用共用資源
324
+ - [**A2A Protocol**](/docs/a2a-protocol) — 跨應用委托
@@ -0,0 +1,194 @@
1
+ ---
2
+ title: "行事曆"
3
+ description: "由代理支持的行事曆,具有 Google Calendar 同步和 Calendly 風格的預訂連結。通過簡單的英語安排、查找時段並管理可用性。"
4
+ ---
5
+
6
+ # 行事曆
7
+
8
+ 代理驅動的行事曆應用程式。連線您的 Google Calendar,客服人員就可以讀取您的日程安排、查找空閒時段、建立活動並管理 Calendly 風格的預訂連結 - 全部采用簡單的英語。它用您擁有的一個應用程式取代了 Google Calendar + Calendly 組合。
9
+
10
+ ```an-wireframe
11
+ {
12
+ "surface": "desktop",
13
+ "html": "<div style='display:flex;flex-direction:column;min-height:530px;box-sizing:border-box'><div style='display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1.4px solid var(--wf-line)'><button>Week</button><button>Today</button><button>‹</button><button>›</button><div style='flex:1'></div><strong>2026 年 5 月 3-9 日</strong><div style='flex:1'></div><button class='primary'>新事件</button></div><div style='display:grid;grid-template-columns:56px repeat(7,minmax(0,1fr));grid-template-rows:36px repeat(5,72px);gap:7px;padding:14px;flex:1'><div></div><strong>週日 3</strong><strong>週一 4</strong><strong>週二 5</strong><strong>週三 6</strong><strong>週四 7</strong><strong>週五 8</strong><strong>週六 9</strong><small class='wf-muted'>7 AM</small><div class='wf-box' style='opacity:.45'></div><div></div><div></div><div></div><div></div><div></div><div></div><small class='wf-muted'>9 AM</small><div class='wf-box'>全員會</div><div class='wf-box'>工程站會</div><div class='wf-box'>工程站會</div><div class='wf-box'>工程站會</div><div></div><div class='wf-box'>Planning</div><div></div><small class='wf-muted'>11 AM</small><div class='wf-box'>設計審核</div><div></div><div class='wf-box'>設計評審</div><div class='wf-box'>Roadmap</div><div class='wf-box'>週五演示</div><div></div><div></div><small class='wf-muted'>1 PM</small><div></div><div class='wf-box'>1:1</div><div class='wf-box'>專注時段</div><div></div><div></div><div class='wf-box'>全員會</div><div></div><small class='wf-muted'>3 PM</small><div></div><div></div><div></div><div class='wf-box'>越級會議</div><div></div><div></div><div></div></div></div>"
14
+ }
15
+ ```
16
+
17
+ 當您開啟應用程式時,活動行事曆視圖是主表面。客服人員仍然知道您正在檢視哪一天、哪一週或哪一天的活動,因此您可以說“安排在這一天與 Alex 進行 30 分鐘的通話”,而無需說明所有內容。
18
+
19
+ ```an-diagram title="調度請求如何流動" summary="無論您點選行事曆還是詢問客服人員,相同的操作都會從 Google Calendar 實時讀取並寫回同一視圖。"
20
+ {
21
+ "html": "<div class=\"diagram-flow\"><div class=\"diagram-col\"><div class=\"diagram-node\">你點擊<br><small class=\"diagram-muted\">拖放、工具列、快速鍵</small></div><div class=\"diagram-node\">你向代理請求<br><small class=\"diagram-muted\">\"find a 1-hour slot next week\"</small></div></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-panel center\"><span class=\"diagram-pill accent\">Actions</span><small class=\"diagram-muted\">list-events · check-availability · create-event</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-col\"><div class=\"diagram-box\">Google Calendar<br><small class=\"diagram-muted\">實時、多帳戶</small></div><div class=\"diagram-box\">SQL<br><small class=\"diagram-muted\">預約 · 可用時間</small></div></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&#8635;</div><div class=\"diagram-box\">行事曆視圖實時更新</div></div>",
22
+ "css": ".diagram-flow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.diagram-flow .diagram-col{display:flex;flex-direction:column;gap:10px}.diagram-flow .diagram-arrow{font-size:22px;line-height:1}.diagram-flow .center{display:flex;flex-direction:column;align-items:center;gap:4px}"
23
+ }
24
+ ```
25
+
26
+ ## 你可以用它做什么
27
+
28
+ - **在日、週或月視圖中檢視您真實的 Google Calendar**,並疊加多個帳戶。
29
+ - **訂閱 ICS 來源**(HR 休息時間、會議安排、團隊行事曆)- 唯讀,混合到同一視圖中。
30
+ - **通過時區支持設定每週可用性** - 代理在查找空閒時段時使用此功能。
31
+ - **在 `/book/{slug}` 上建立公開預訂連結**,用於“15 分鐘介紹”或“30 分鐘演示”等內容。設定持續時間、自訂欄位以及要使用的會議工具。
32
+ - **向工作人員詢問任何與日程相關的事情**:“週四下午我有空嗎?” “下週找一個 1 小時的時段,並在上面加上‘與 Alex 一起制定計畫’。” “暫停我的演示預訂連結。”
33
+ - **與隊友分享預訂連結**,以便他們也可以管理它們。
34
+
35
+ ## 開始使用
36
+
37
+ 現場演示:[calendar.agent-native.com](https://calendar.agent-native.com)。
38
+
39
+ 首次開啟應用程式時:
40
+
41
+ 1. 點擊“**設定**”。
42
+ 2. 點擊 **連線 Google Calendar** 並批準。
43
+ 3. (可選)如果您想要疊加個人 + 工作,請連線更多 Google 帳戶。
44
+ 4. 開啟主視圖 - 將載入您的真實行事曆。
45
+
46
+ 要建立您的第一個預訂連結:
47
+
48
+ 1. 點擊側邊欄中的**預訂連結**。
49
+ 2. 點擊**新預訂連結**,設定標題和持續時間。
50
+ 3. 分享公開的 URL - 訪客從您的可用插槽中進行選取。
51
+
52
+ 或者直接詢問客服人員:“建立一個帶有姓名欄位的 15 分鐘介紹預訂連結。”
53
+
54
+ ### 有用的提示
55
+
56
+ - “今天我的行事曆上有什么?”
57
+ - “週四下午我有空 30 分鐘嗎?”
58
+ - “下週找一個 1 小時的時段,並新增“與 Alex 一起制定計畫”。”
59
+ - “將此活動重新安排到週五下午 2 點。” (選取事件時)
60
+ - “切換到日視圖並跳轉到下週一。”
61
+ - “在 15 分鐘時建立一個名為“15 分鐘介紹”的預訂連結,並帶有注釋欄位。”
62
+ - “暫停我的‘30 分鐘演示’預訂連結。”
63
+ - “週五下午我有空。”
64
+ - “本月我有哪些關於‘發布’的會議?”
65
+
66
+ 代理將實時查詢 Google Calendar 的任何時間表問題 - 它永遠不會猜測。
67
+
68
+ ## 對於開發者
69
+
70
+ 本檔案的其餘部分適用於任何派生行事曆範本或擴充功能它的人。
71
+
72
+ ### 快速入門
73
+
74
+ 使用行事曆範本建立新工作區:
75
+
76
+ ```bash
77
+ npx @agent-native/core@latest create my-app --standalone --template calendar
78
+ cd my-app
79
+ pnpm install
80
+ pnpm dev
81
+ ```
82
+
83
+ 開啟 `http://localhost:8082`(預設行事曆開發端口)。
84
+
85
+ 要在開發中連線 Google Calendar,請開啟“設定”視圖,貼上 [Google Cloud Console](https://console.cloud.google.com/) 中的 `GOOGLE_CLIENT_ID` 和 `GOOGLE_CLIENT_SECRET`,然後點選“連線 Google Calendar”。 OAuth 重新導向 URI 在開發中是 `http://localhost:8082/_agent-native/google/callback`。權杖存儲在`oauth_tokens` SQL表中並自動刷新。
86
+
87
+ ### 主要功能
88
+
89
+ **實時行事曆視圖。**日、週和月視圖直接從連線的 Google 帳戶讀取,可選的唯讀 ICS Feed 分層到同一時間表中。
90
+
91
+ **可用性和空閒時段搜尋。**每週可用性規則、時區支持和現有事件都提供 UI 和代理使用的相同可用性操作。
92
+
93
+ **預訂連結。**公開 `/book/{slug}` 頁面收集姓名、電子郵件、自訂欄位、會議偏好設定和取消/重新安排權杖。
94
+
95
+ **可共用管理。**預訂連結預設是私人的,但可以通過共用actions的框架與團隊成員共用。
96
+
97
+ **內嵌活動預覽。**客服人員可以在聊天中嵌入緊湊的活動卡,其中包含標題、時間、地點、與會者和跳回按鈕。
98
+
99
+ ### 與代理合作
100
+
101
+ 代理看到您正在檢視的內容。目前行事曆視圖、所選日期和所選事件作為 `current-screen` 塊包含在每條訊息中,因此您可以說“此事件”或“今天”,它會正確解析。
102
+
103
+ 在幕後,代理會調用 actions,如 `list-events`、`check-availability`、`create-event`、`navigate` 和 `update-availability`。由於事件存在於 Google Calendar 中,因此代理始終查詢 API 而不是猜測 - 如果不先執行腳本,它不會返回空結果。
104
+
105
+ ### 資料模型
106
+
107
+ 在`templates/calendar/server/db/schema.ts`中定義。僅非事件資料存儲在本機:
108
+
109
+ - `bookings` — 從公開預訂頁面確認的預約。存儲姓名、電子郵件、開始、結束、副標題、可選注釋、自訂欄位回應、會議連結、用於公開管理的 `cancelToken` URL 以及 `confirmed` 或 `cancelled` 狀態。
110
+ - `booking_links` — Calendly 樣式連結定義。 Slug、標題、描述、主要 `duration`、可選 `durations` 列表、`customFields`、`conferencing`、`color` 和 `isActive` 標志。使用框架的`ownableColumns`,因此適用共用系統。
111
+ - `booking_slug_redirects` - 重命名連結時會記住舊的 slugs,以便現有的公開 URL 繼續工作。
112
+ - `booking_link_shares` — 分享預訂連結的贈款。
113
+
114
+ ```an-schema title="行事曆資料模型" summary="僅非事件資料存儲在本機 - 事件實時存儲在 Google 行事曆中。預訂連結使用 ownableColumns,因此共用系統適用。"
115
+ {
116
+ "entities": [
117
+ {
118
+ "id": "booking_links",
119
+ "name": "booking_links",
120
+ "note": "Calendly-style link definitions (ownable)",
121
+ "fields": [
122
+ { "name": "id", "type": "id", "pk": true },
123
+ { "name": "slug", "type": "string", "note": "public page at /book/{slug}" },
124
+ { "name": "title", "type": "string" },
125
+ { "name": "description", "type": "string", "nullable": true },
126
+ { "name": "duration", "type": "int", "note": "primary duration in minutes" },
127
+ { "name": "durations", "type": "json", "nullable": true, "note": "alternative durations" },
128
+ { "name": "customFields", "type": "json", "nullable": true },
129
+ { "name": "conferencing", "type": "string", "note": "Google Meet / Zoom / 自訂" },
130
+ { "name": "color", "type": "string", "nullable": true },
131
+ { "name": "isActive", "type": "bool", "note": "pause without deleting" }
132
+ ]
133
+ },
134
+ {
135
+ "id": "bookings",
136
+ "name": "bookings",
137
+ "note": "從公開預訂頁面確認的預約",
138
+ "fields": [
139
+ { "name": "id", "type": "id", "pk": true },
140
+ { "name": "slug", "type": "string", "fk": "booking_links.slug" },
141
+ { "name": "name", "type": "string" },
142
+ { "name": "email", "type": "string" },
143
+ { "name": "start", "type": "datetime" },
144
+ { "name": "end", "type": "datetime" },
145
+ { "name": "notes", "type": "string", "nullable": true },
146
+ { "name": "customFields", "type": "json", "nullable": true, "note": "custom field responses" },
147
+ { "name": "meetingLink", "type": "string", "nullable": true },
148
+ { "name": "cancelToken", "type": "string", "note": "powers /booking/manage/{token}" },
149
+ { "name": "status", "type": "enum", "note": "確認 |取消" }
150
+ ]
151
+ },
152
+ {
153
+ "id": "booking_slug_redirects",
154
+ "name": "booking_slug_redirects",
155
+ "note": "連結重命名後保持舊的公開 URLs 正常工作",
156
+ "fields": [
157
+ { "name": "oldSlug", "type": "string", "pk": true },
158
+ { "name": "linkId", "type": "id", "fk": "booking_links.id" }
159
+ ]
160
+ },
161
+ {
162
+ "id": "booking_link_shares",
163
+ "name": "booking_link_shares",
164
+ "note": "分享預訂連結贈款",
165
+ "fields": [
166
+ { "name": "id", "type": "id", "pk": true },
167
+ { "name": "linkId", "type": "id", "fk": "booking_links.id" },
168
+ { "name": "principal", "type": "string", "note": "user or org" },
169
+ { "name": "role", "type": "enum", "note": "觀眾|編輯|行政" }
170
+ ]
171
+ }
172
+ ],
173
+ "relations": [
174
+ { "from": "booking_links", "to": "bookings", "kind": "1-n", "label": "has bookings" },
175
+ { "from": "booking_links", "to": "booking_slug_redirects", "kind": "1-n", "label": "has old slugs" },
176
+ { "from": "booking_links", "to": "booking_link_shares", "kind": "1-n", "label": "has share grants" }
177
+ ]
178
+ }
179
+ ```
180
+
181
+ 可用性規則和每使用者設定位於設定表中,由 `calendar-availability` 鍵入。 Google OAuth 代幣位於框架 `oauth_tokens` 表中。臨時 UI 狀態(目前視圖、日期、選定事件)位於 `navigation` 鍵下的 `application_state` 中。
182
+
183
+ ### 自訂
184
+
185
+ 應用程式的每個部分都是可編輯的來源程式碼。從這裡開始:
186
+
187
+ - `templates/calendar/actions/` — 每個代理可調用的操作。新增包含 `defineAction` 的新檔案,以向代理和前端公開新功能。關鍵檔案:`check-availability.ts`、`create-event.ts`、`list-events.ts`、`create-booking-link.ts`、`update-availability.ts`、`add-external-calendar.ts`、`navigate.ts`、`view-screen.ts`。
188
+ - `templates/calendar/app/routes/` — UI。 `_app._index.tsx`是行事曆,`_app.availability.tsx`是日程編輯器,`_app.booking-links._index.tsx`和`_app.booking-links.$id.tsx`管理預訂連結,`_app.bookings.tsx`列出預訂,`_app.settings.tsx`是設定,`book.$slug.tsx`加`meet.$username.$slug.tsx`是公開預訂頁面。
189
+ - `templates/calendar/server/db/schema.ts` — 新增帶有 Drizzle 的列或表。保持程式碼與方言無關,以便範本在 SQLite、Postgres、Turso、D1 和 Neon 上執行。
190
+ - `templates/calendar/AGENTS.md` — 代理指令。當您向代理教授新功能或約定時更新此內容。
191
+ - `templates/calendar/.agents/skills/` — 代理遵循的詳細模式。相關skills:`event-management`、`availability-booking`、`real-time-sync`、`storing-data`、`delegate-to-agent`、`frontend-design`。
192
+ - `templates/calendar/shared/api.ts` — 伺服器和用戶端使用的共用 TypeScript 型別(`AvailabilityConfig`、`BookingLink`、`ExternalCalendar` 等)。
193
+
194
+ 如果您新增功能,請記住更新所有四個區域:UI、操作、技能或 AGENTS.md 條目,以及代理需要檢視的任何應用程式狀態。這就是使代理和 UI 保持平等的原因。