@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.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +24 -0
- package/corpus/core/docs/content/locales/zh-TW/a2a-protocol.md +392 -0
- package/corpus/core/docs/content/locales/zh-TW/actions.md +583 -0
- package/corpus/core/docs/content/locales/zh-TW/agent-mentions.md +164 -0
- package/corpus/core/docs/content/locales/zh-TW/agent-surfaces.md +397 -0
- package/corpus/core/docs/content/locales/zh-TW/agent-teams.md +171 -0
- package/corpus/core/docs/content/locales/zh-TW/agent-web-surfaces.md +161 -0
- package/corpus/core/docs/content/locales/zh-TW/audit-log.md +111 -0
- package/corpus/core/docs/content/locales/zh-TW/authentication.md +332 -0
- package/corpus/core/docs/content/locales/zh-TW/automations.md +268 -0
- package/corpus/core/docs/content/locales/zh-TW/blueprint-installer.md +83 -0
- package/corpus/core/docs/content/locales/zh-TW/cli-adapters.md +129 -0
- package/corpus/core/docs/content/locales/zh-TW/client.md +398 -0
- package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.md +114 -0
- package/corpus/core/docs/content/locales/zh-TW/code-agents-ui.md +436 -0
- package/corpus/core/docs/content/locales/zh-TW/components.md +368 -0
- package/corpus/core/docs/content/locales/zh-TW/context-awareness.md +373 -0
- package/corpus/core/docs/content/locales/zh-TW/creating-templates.md +411 -0
- package/corpus/core/docs/content/locales/zh-TW/cross-app-sso.md +188 -0
- package/corpus/core/docs/content/locales/zh-TW/database.md +183 -0
- package/corpus/core/docs/content/locales/zh-TW/deployment.md +348 -0
- package/corpus/core/docs/content/locales/zh-TW/dispatch.md +146 -0
- package/corpus/core/docs/content/locales/zh-TW/drop-in-agent.md +260 -0
- package/corpus/core/docs/content/locales/zh-TW/durable-resume.md +65 -0
- package/corpus/core/docs/content/locales/zh-TW/embedding-sdk.md +597 -0
- package/corpus/core/docs/content/locales/zh-TW/evals.md +155 -0
- package/corpus/core/docs/content/locales/zh-TW/extensions.md +360 -0
- package/corpus/core/docs/content/locales/zh-TW/external-agents.md +619 -0
- package/corpus/core/docs/content/locales/zh-TW/faq.md +142 -0
- package/corpus/core/docs/content/locales/zh-TW/file-uploads.md +122 -0
- package/corpus/core/docs/content/locales/zh-TW/frames.md +153 -0
- package/corpus/core/docs/content/locales/zh-TW/getting-started.md +199 -0
- package/corpus/core/docs/content/locales/zh-TW/harness-agents.md +349 -0
- package/corpus/core/docs/content/locales/zh-TW/human-approval.md +86 -0
- package/corpus/core/docs/content/locales/zh-TW/internationalization.md +147 -0
- package/corpus/core/docs/content/locales/zh-TW/key-concepts.md +312 -0
- package/corpus/core/docs/content/locales/zh-TW/local-file-mode.md +433 -0
- package/corpus/core/docs/content/locales/zh-TW/mcp-apps.md +147 -0
- package/corpus/core/docs/content/locales/zh-TW/mcp-clients.md +330 -0
- package/corpus/core/docs/content/locales/zh-TW/mcp-protocol.md +279 -0
- package/corpus/core/docs/content/locales/zh-TW/messaging.md +461 -0
- package/corpus/core/docs/content/locales/zh-TW/migration-workbench.md +33 -0
- package/corpus/core/docs/content/locales/zh-TW/multi-app-workspace.md +312 -0
- package/corpus/core/docs/content/locales/zh-TW/multi-tenancy.md +52 -0
- package/corpus/core/docs/content/locales/zh-TW/native-chat-ui.md +321 -0
- package/corpus/core/docs/content/locales/zh-TW/notifications.md +231 -0
- package/corpus/core/docs/content/locales/zh-TW/observability.md +294 -0
- package/corpus/core/docs/content/locales/zh-TW/observational-memory.md +77 -0
- package/corpus/core/docs/content/locales/zh-TW/onboarding.md +216 -0
- package/corpus/core/docs/content/locales/zh-TW/plan-plugin.md +200 -0
- package/corpus/core/docs/content/locales/zh-TW/pr-visual-recap.md +384 -0
- package/corpus/core/docs/content/locales/zh-TW/processors.md +106 -0
- package/corpus/core/docs/content/locales/zh-TW/progress.md +199 -0
- package/corpus/core/docs/content/locales/zh-TW/pure-agent-apps.md +39 -0
- package/corpus/core/docs/content/locales/zh-TW/real-time-collaboration.md +680 -0
- package/corpus/core/docs/content/locales/zh-TW/recurring-jobs.md +142 -0
- package/corpus/core/docs/content/locales/zh-TW/routing.md +79 -0
- package/corpus/core/docs/content/locales/zh-TW/sandbox-adapters.md +227 -0
- package/corpus/core/docs/content/locales/zh-TW/security.md +330 -0
- package/corpus/core/docs/content/locales/zh-TW/server.md +265 -0
- package/corpus/core/docs/content/locales/zh-TW/sharing.md +219 -0
- package/corpus/core/docs/content/locales/zh-TW/skills-guide.md +281 -0
- package/corpus/core/docs/content/locales/zh-TW/template-analytics.md +259 -0
- package/corpus/core/docs/content/locales/zh-TW/template-assets.md +303 -0
- package/corpus/core/docs/content/locales/zh-TW/template-brain.md +324 -0
- package/corpus/core/docs/content/locales/zh-TW/template-calendar.md +194 -0
- package/corpus/core/docs/content/locales/zh-TW/template-chat.md +129 -0
- package/corpus/core/docs/content/locales/zh-TW/template-clips.md +368 -0
- package/corpus/core/docs/content/locales/zh-TW/template-content.md +402 -0
- package/corpus/core/docs/content/locales/zh-TW/template-design.md +173 -0
- package/corpus/core/docs/content/locales/zh-TW/template-dispatch.md +220 -0
- package/corpus/core/docs/content/locales/zh-TW/template-forms.md +178 -0
- package/corpus/core/docs/content/locales/zh-TW/template-mail.md +239 -0
- package/corpus/core/docs/content/locales/zh-TW/template-plan.md +814 -0
- package/corpus/core/docs/content/locales/zh-TW/template-slides.md +293 -0
- package/corpus/core/docs/content/locales/zh-TW/template-videos.md +222 -0
- package/corpus/core/docs/content/locales/zh-TW/tracking.md +236 -0
- package/corpus/core/docs/content/locales/zh-TW/using-your-agent.md +71 -0
- package/corpus/core/docs/content/locales/zh-TW/voice-input.md +81 -0
- package/corpus/core/docs/content/locales/zh-TW/what-is-agent-native.md +202 -0
- package/corpus/core/docs/content/locales/zh-TW/workspace-connections.md +321 -0
- package/corpus/core/docs/content/locales/zh-TW/workspace-management.md +175 -0
- package/corpus/core/docs/content/locales/zh-TW/workspace.md +323 -0
- package/corpus/core/docs/content/locales/zh-TW/writing-agent-instructions.md +173 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/client/ErrorBoundary.tsx +10 -0
- package/corpus/core/src/client/FeedbackButton.tsx +12 -0
- package/corpus/core/src/client/blocks/library/block-copy.ts +32 -0
- package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +33 -0
- package/corpus/core/src/client/i18n.tsx +5 -0
- package/corpus/core/src/localization/actions/set-localization-preference.ts +2 -1
- package/corpus/core/src/localization/shared.ts +45 -0
- package/corpus/core/src/server/agent-chat-plugin.ts +38 -0
- package/corpus/core/src/server/onboarding-html.ts +99 -0
- package/corpus/core/src/templates/default/app/i18n/index.ts +2 -0
- package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +466 -0
- package/corpus/core/src/templates/default/app/root.tsx +8 -0
- package/corpus/templates/analytics/app/i18n/index.ts +2 -0
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +818 -0
- package/corpus/templates/analytics/app/i18n-data.ts +9 -0
- package/corpus/templates/assets/app/i18n/index.ts +2 -0
- package/corpus/templates/assets/app/i18n/zh-TW.ts +860 -0
- package/corpus/templates/assets/app/i18n-data.ts +3 -0
- package/corpus/templates/brain/app/i18n/index.ts +2 -0
- package/corpus/templates/brain/app/i18n/zh-TW.ts +709 -0
- package/corpus/templates/brain/app/i18n-data.ts +3 -0
- package/corpus/templates/calendar/app/i18n/zh-TW.ts +836 -0
- package/corpus/templates/calendar/app/i18n-data.ts +4 -0
- package/corpus/templates/chat/app/i18n/index.ts +2 -0
- package/corpus/templates/chat/app/i18n/zh-TW.ts +67 -0
- package/corpus/templates/chat/app/i18n-data.ts +3 -0
- package/corpus/templates/clips/app/i18n/index.ts +2 -0
- package/corpus/templates/clips/app/i18n/zh-TW.ts +1280 -0
- package/corpus/templates/content/app/i18n/index.ts +2 -0
- package/corpus/templates/content/app/i18n/zh-TW.ts +906 -0
- package/corpus/templates/content/app/i18n-data.ts +4 -0
- package/corpus/templates/design/app/i18n/index.ts +2 -0
- package/corpus/templates/design/app/i18n/zh-TW.ts +517 -0
- package/corpus/templates/design/app/i18n-data.ts +6 -0
- package/corpus/templates/dispatch/app/i18n/index.ts +2 -0
- package/corpus/templates/dispatch/app/i18n/zh-TW.ts +195 -0
- package/corpus/templates/dispatch/app/i18n-data.ts +3 -0
- package/corpus/templates/forms/app/i18n/index.ts +2 -0
- package/corpus/templates/forms/app/i18n/zh-TW.ts +349 -0
- package/corpus/templates/macros/app/i18n/index.ts +2 -0
- package/corpus/templates/macros/app/i18n/zh-TW.ts +224 -0
- package/corpus/templates/mail/app/i18n/index.ts +2 -0
- package/corpus/templates/mail/app/i18n/zh-TW.ts +562 -0
- package/corpus/templates/mail/app/root.tsx +6 -0
- package/corpus/templates/plan/app/i18n/index.ts +2 -0
- package/corpus/templates/plan/app/i18n/zh-TW.ts +712 -0
- package/corpus/templates/slides/app/i18n/index.ts +2 -0
- package/corpus/templates/slides/app/i18n/zh-TW.ts +531 -0
- package/corpus/templates/videos/app/i18n/index.ts +2 -0
- package/corpus/templates/videos/app/i18n/zh-TW.ts +435 -0
- package/dist/client/ErrorBoundary.d.ts.map +1 -1
- package/dist/client/ErrorBoundary.js +10 -0
- package/dist/client/ErrorBoundary.js.map +1 -1
- package/dist/client/FeedbackButton.d.ts.map +1 -1
- package/dist/client/FeedbackButton.js +12 -0
- package/dist/client/FeedbackButton.js.map +1 -1
- package/dist/client/blocks/library/block-copy.d.ts.map +1 -1
- package/dist/client/blocks/library/block-copy.js +32 -0
- package/dist/client/blocks/library/block-copy.js.map +1 -1
- package/dist/client/extensions/ExtensionsSidebarSection.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionsSidebarSection.js +32 -0
- package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
- package/dist/client/i18n.d.ts.map +1 -1
- package/dist/client/i18n.js +5 -0
- package/dist/client/i18n.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/localization/actions/set-localization-preference.d.ts.map +1 -1
- package/dist/localization/actions/set-localization-preference.js +2 -2
- package/dist/localization/actions/set-localization-preference.js.map +1 -1
- package/dist/localization/shared.d.ts +1 -1
- package/dist/localization/shared.d.ts.map +1 -1
- package/dist/localization/shared.js +43 -0
- package/dist/localization/shared.js.map +1 -1
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/observability/routes.d.ts +3 -3
- package/dist/resources/handlers.d.ts +2 -2
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +39 -0
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +2 -2
- package/dist/server/onboarding-html.d.ts.map +1 -1
- package/dist/server/onboarding-html.js +96 -0
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/templates/default/app/i18n/index.ts +2 -0
- package/dist/templates/default/app/i18n/zh-TW.ts +466 -0
- package/dist/templates/default/app/root.tsx +8 -0
- package/docs/content/locales/zh-TW/a2a-protocol.md +392 -0
- package/docs/content/locales/zh-TW/actions.md +583 -0
- package/docs/content/locales/zh-TW/agent-mentions.md +164 -0
- package/docs/content/locales/zh-TW/agent-surfaces.md +397 -0
- package/docs/content/locales/zh-TW/agent-teams.md +171 -0
- package/docs/content/locales/zh-TW/agent-web-surfaces.md +161 -0
- package/docs/content/locales/zh-TW/audit-log.md +111 -0
- package/docs/content/locales/zh-TW/authentication.md +332 -0
- package/docs/content/locales/zh-TW/automations.md +268 -0
- package/docs/content/locales/zh-TW/blueprint-installer.md +83 -0
- package/docs/content/locales/zh-TW/cli-adapters.md +129 -0
- package/docs/content/locales/zh-TW/client.md +398 -0
- package/docs/content/locales/zh-TW/cloneable-saas.md +114 -0
- package/docs/content/locales/zh-TW/code-agents-ui.md +436 -0
- package/docs/content/locales/zh-TW/components.md +368 -0
- package/docs/content/locales/zh-TW/context-awareness.md +373 -0
- package/docs/content/locales/zh-TW/creating-templates.md +411 -0
- package/docs/content/locales/zh-TW/cross-app-sso.md +188 -0
- package/docs/content/locales/zh-TW/database.md +183 -0
- package/docs/content/locales/zh-TW/deployment.md +348 -0
- package/docs/content/locales/zh-TW/dispatch.md +146 -0
- package/docs/content/locales/zh-TW/drop-in-agent.md +260 -0
- package/docs/content/locales/zh-TW/durable-resume.md +65 -0
- package/docs/content/locales/zh-TW/embedding-sdk.md +597 -0
- package/docs/content/locales/zh-TW/evals.md +155 -0
- package/docs/content/locales/zh-TW/extensions.md +360 -0
- package/docs/content/locales/zh-TW/external-agents.md +619 -0
- package/docs/content/locales/zh-TW/faq.md +142 -0
- package/docs/content/locales/zh-TW/file-uploads.md +122 -0
- package/docs/content/locales/zh-TW/frames.md +153 -0
- package/docs/content/locales/zh-TW/getting-started.md +199 -0
- package/docs/content/locales/zh-TW/harness-agents.md +349 -0
- package/docs/content/locales/zh-TW/human-approval.md +86 -0
- package/docs/content/locales/zh-TW/internationalization.md +147 -0
- package/docs/content/locales/zh-TW/key-concepts.md +312 -0
- package/docs/content/locales/zh-TW/local-file-mode.md +433 -0
- package/docs/content/locales/zh-TW/mcp-apps.md +147 -0
- package/docs/content/locales/zh-TW/mcp-clients.md +330 -0
- package/docs/content/locales/zh-TW/mcp-protocol.md +279 -0
- package/docs/content/locales/zh-TW/messaging.md +461 -0
- package/docs/content/locales/zh-TW/migration-workbench.md +33 -0
- package/docs/content/locales/zh-TW/multi-app-workspace.md +312 -0
- package/docs/content/locales/zh-TW/multi-tenancy.md +52 -0
- package/docs/content/locales/zh-TW/native-chat-ui.md +321 -0
- package/docs/content/locales/zh-TW/notifications.md +231 -0
- package/docs/content/locales/zh-TW/observability.md +294 -0
- package/docs/content/locales/zh-TW/observational-memory.md +77 -0
- package/docs/content/locales/zh-TW/onboarding.md +216 -0
- package/docs/content/locales/zh-TW/plan-plugin.md +200 -0
- package/docs/content/locales/zh-TW/pr-visual-recap.md +384 -0
- package/docs/content/locales/zh-TW/processors.md +106 -0
- package/docs/content/locales/zh-TW/progress.md +199 -0
- package/docs/content/locales/zh-TW/pure-agent-apps.md +39 -0
- package/docs/content/locales/zh-TW/real-time-collaboration.md +680 -0
- package/docs/content/locales/zh-TW/recurring-jobs.md +142 -0
- package/docs/content/locales/zh-TW/routing.md +79 -0
- package/docs/content/locales/zh-TW/sandbox-adapters.md +227 -0
- package/docs/content/locales/zh-TW/security.md +330 -0
- package/docs/content/locales/zh-TW/server.md +265 -0
- package/docs/content/locales/zh-TW/sharing.md +219 -0
- package/docs/content/locales/zh-TW/skills-guide.md +281 -0
- package/docs/content/locales/zh-TW/template-analytics.md +259 -0
- package/docs/content/locales/zh-TW/template-assets.md +303 -0
- package/docs/content/locales/zh-TW/template-brain.md +324 -0
- package/docs/content/locales/zh-TW/template-calendar.md +194 -0
- package/docs/content/locales/zh-TW/template-chat.md +129 -0
- package/docs/content/locales/zh-TW/template-clips.md +368 -0
- package/docs/content/locales/zh-TW/template-content.md +402 -0
- package/docs/content/locales/zh-TW/template-design.md +173 -0
- package/docs/content/locales/zh-TW/template-dispatch.md +220 -0
- package/docs/content/locales/zh-TW/template-forms.md +178 -0
- package/docs/content/locales/zh-TW/template-mail.md +239 -0
- package/docs/content/locales/zh-TW/template-plan.md +814 -0
- package/docs/content/locales/zh-TW/template-slides.md +293 -0
- package/docs/content/locales/zh-TW/template-videos.md +222 -0
- package/docs/content/locales/zh-TW/tracking.md +236 -0
- package/docs/content/locales/zh-TW/using-your-agent.md +71 -0
- package/docs/content/locales/zh-TW/voice-input.md +81 -0
- package/docs/content/locales/zh-TW/what-is-agent-native.md +202 -0
- package/docs/content/locales/zh-TW/workspace-connections.md +321 -0
- package/docs/content/locales/zh-TW/workspace-management.md +175 -0
- package/docs/content/locales/zh-TW/workspace.md +323 -0
- package/docs/content/locales/zh-TW/writing-agent-instructions.md +173 -0
- package/package.json +1 -1
- package/src/templates/default/app/i18n/index.ts +2 -0
- package/src/templates/default/app/i18n/zh-TW.ts +466 -0
- package/src/templates/default/app/root.tsx +8 -0
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "調度"
|
|
3
|
+
description: "Dispatch 是工作區控制平面 - 中央收件箱、跨應用編排、秘密庫、Slack/Telegram 整合和計畫作業。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 調度
|
|
7
|
+
|
|
8
|
+
> **另請參閱:** 有關 Dispatch 功能以及何時需要它的概念概述,請參閱 [Dispatch](/docs/dispatch)。此頁面是特定於範本的參考。
|
|
9
|
+
|
|
10
|
+
Dispatch 是**工作區控制平面**。其他範本是域應用程式(郵件、行事曆、分析、大腦),而 Dispatch 是您與它們一起執行以協調一切的應用程式:中央收件箱、機密庫、計畫作業、Slack/Telegram 整合以及通過 [A2A](/docs/a2a-protocol) 將域工作委托給正確的專業應用程式的協調器代理。
|
|
11
|
+
|
|
12
|
+
```an-wireframe
|
|
13
|
+
{
|
|
14
|
+
"surface": "desktop",
|
|
15
|
+
"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'>Dispatch</h1><span class='wf-pill accent'>Overview</span><span class='wf-pill'>Inbox</span><span class='wf-pill'>Secrets</span><span class='wf-pill'>Approvals</span><div style='flex:1'></div><button>Schedules</button></div><div class='wf-card' style='display:flex;flex-direction:column;gap:10px'><strong>接下來該做什么?</strong><div class='wf-box'>詢問 Analytics 本週註冊數並起草 Slack 更新。</div><button class='primary'>Delegate</button></div><div style='display:grid;grid-template-columns:repeat(3,1fr);gap:10px'><div class='wf-card'><strong>Mail</strong><br/><small>/mail</small></div><div class='wf-card'><strong>Calendar</strong><br/><small>/calendar</small></div><div class='wf-card'><strong>Analytics</strong><br/><small>/analytics</small></div><div class='wf-card'><strong>Slides</strong><br/><small>/slides</small></div><div class='wf-card'><strong>Forms</strong><br/><small>/forms</small></div><div class='wf-card'><strong>建立應用</strong><br/><small>+</small></div></div><div class='wf-card' style='display:grid;grid-template-columns:repeat(3,1fr);gap:8px'><div class='wf-box'>Slack 私信 needs reply</div><div class='wf-box'>A2A 工作已完成</div><div class='wf-box'>需要批準</div></div></div>"
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
如果您正在執行帶有許多應用程式的 [multi-app workspace](/docs/multi-app-workspace),Dispatch 就是粘合劑。
|
|
20
|
+
|
|
21
|
+
```an-diagram title="統筹安排,不要專門化" summary="來自每個渠道的訊息都會集中在一個收件箱中;編排器通過 A2A 對域工作進行分類和委托給正確的專業應用程式 — 秘密、資源和批準保持核心。"
|
|
22
|
+
{
|
|
23
|
+
"html": "<div class=\"diagram-dispatch\"><div class=\"diagram-col\"><div class=\"diagram-node\">Slack · Telegram</div><div class=\"diagram-node\">Email</div><div class=\"diagram-node\">A2A 請求</div></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-box\" data-rough><span class=\"diagram-pill accent\">Orchestrator</span><small class=\"diagram-muted\">中央收件箱 · 分診 · 路由</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-col\"><div class=\"diagram-node\">郵件 Agent</div><div class=\"diagram-node\">分析 Agent</div><div class=\"diagram-node\">Brain · Slides …</div></div></div><div class=\"diagram-shared\"><span class=\"diagram-pill\">金鑰保險庫</span><span class=\"diagram-pill\">工作區資源</span><span class=\"diagram-pill warn\">Approvals</span><span class=\"diagram-pill\">計畫工作</span></div>",
|
|
24
|
+
"css": ".diagram-dispatch{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.diagram-dispatch .diagram-col{display:flex;flex-direction:column;gap:8px}.diagram-dispatch .diagram-box{display:flex;flex-direction:column;gap:4px}.diagram-dispatch .diagram-arrow{font-size:20px;line-height:1}.diagram-shared{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}"
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 它的作用 {#what-it-does}
|
|
29
|
+
|
|
30
|
+
- **中央收件箱。** Slack 私信、電報訊息、電子郵件通知、來自其他代理的 A2A 請求 — 全部集中在一個地方。 Dispatch 代理會進行分類並自行處理或委托處理。請參閱 [Messaging](/docs/messaging) 了解如何將 Slack、電子郵件和 Telegram 連線到您的工作區。
|
|
31
|
+
- **協調者,而不是專家。** Dispatch 並不嘗試成為電子郵件應用程式或分析應用程式。當有人詢問“總結上週的註冊情況”時,Dispatch 會通過 A2A 調用分析代理並返回答案。當有人要求“起草給 Alice 的回複”時,Dispatch 會致電郵件代理。
|
|
32
|
+
- **控制平面 shell。** 聊天、專案、執行、工作區應用程式、代理和自動化位於一個操作 shell 中,具有狀態優先列表和深入分析,而不是一次性儀表板。
|
|
33
|
+
- **秘密庫。** API 金鑰、OAuth 權杖和共用憑證的中央存儲。工作區中的應用程式從 Dispatch 解析機密,而不是在每個 `.env` 中複製它們。敏感存取的請求+批準。
|
|
34
|
+
- **工作區資源。** 全域 skills、護欄指令、自訂代理設定檔案、參考資源和 HTTP MCP 伺服器可以在 Dispatch 中建立一次。所有應用程式資源在執行時由每個應用程式繼承,無需複製或手動同步步驟;選定的補助金適用於特定於應用程式的例外情況。
|
|
35
|
+
- **可重複使用的整合。**連線提供者帳戶、跟蹤的一處
|
|
36
|
+
憑證參考,並授予應用程式存取權限。 Dispatch 擁有提供者身分並且
|
|
37
|
+
應用補助金;域應用程式仍然擁有特定於應用程式的來源選取,例如 Brain 的
|
|
38
|
+
Slack 渠道允許列表或 Analytics 的指標/儀表板設定。
|
|
39
|
+
- **預定工作中心。**跨應用 [recurring jobs](/docs/recurring-jobs) 在此直播:“每個工作日 7 點,從分析中提取昨天的關鍵指標,並起草一份早晨摘要電子郵件。”
|
|
40
|
+
- **夢想。** Dispatch 可以審查最近的代理執行、失敗、意見回饋和成功模式,以在應用任何持久性措施之前提出記憶、技能、工作和指令改進建議。
|
|
41
|
+
- **批準流程。** 破壞性或外部 actions(匯款、發送出站電子郵件、大規模發布到 Slack)可能需要管理員同意才能觸發。調度擁有佇列。
|
|
42
|
+
|
|
43
|
+
## 何時使用它 {#when-to-use}
|
|
44
|
+
|
|
45
|
+
在以下情況下使用 Dispatch:
|
|
46
|
+
|
|
47
|
+
- 您在工作區中有**兩個或更多**代理本機應用程式,並且希望在一個地方在它們之間進行協調。
|
|
48
|
+
- 您需要**集中式機密**以及每個應用程式的授權和審計跟蹤。
|
|
49
|
+
- 您需要一個**訊息中心**,將 Slack 或 Telegram 路由到正確的域代理。
|
|
50
|
+
- 您想要**預定作業**從多個應用程式中提取資料。
|
|
51
|
+
|
|
52
|
+
跳過單個應用程式支架 - 直接使用 [Chat template](/docs/template-chat) 或任何域範本。
|
|
53
|
+
|
|
54
|
+
現場演示:[dispatch.agent-native.com](https://dispatch.agent-native.com)。
|
|
55
|
+
|
|
56
|
+
## 你將用它做什么 {#what-youll-do}
|
|
57
|
+
|
|
58
|
+
日常工作中,Dispatch 是管理員和操作人員保持工作區執行的場所:
|
|
59
|
+
|
|
60
|
+
- **連線 Slack、電子郵件和 Telegram**,以便人們可以從他們已經工作的任何地方向您的代理發送訊息。接線步驟參見[Messaging](/docs/messaging)。
|
|
61
|
+
- **儲存共用機密一次。** API 金鑰、OAuth 權杖和服務憑證位於保管庫中,工作區中的其他應用程式從那裡提取,而不是每個團隊成員都忙於處理自己的 `.env`。
|
|
62
|
+
- **連線提供者一次。**可重複使用的整合存儲安全帳戶元資料
|
|
63
|
+
和憑證參考,然後授予 Brain、Analytics、Mail 等應用程式
|
|
64
|
+
在不複製原始機密的情況下分派存取權限。應用程式特定來源
|
|
65
|
+
設定保留在使用提供程序的應用程式中。
|
|
66
|
+
- **暴露一個 MCP 連線器。**新增
|
|
67
|
+
`https://dispatch.agent-native.com/_agent-native/mcp`,Claude、ChatGPT,
|
|
68
|
+
Codex、Cursor 或其他 MCP 主機,然後選取要執行的工作區應用
|
|
69
|
+
連線器可以從 Dispatch 的 **代理** 頁面進行存取。使用直接應用程式URL
|
|
70
|
+
僅當該主機應與一個應用隔離時。
|
|
71
|
+
- **管理自動化。**自動化視圖顯示啟用狀態、上次執行
|
|
72
|
+
下一次執行,以及底層 `jobs/*.md` 調度的最後一個錯誤,讓
|
|
73
|
+
您無需手動編輯檔案即可啟用或停用作業。
|
|
74
|
+
- **保持公司背景全球化。**將角色、定位、訊息傳遞、公司事實、品牌指南和護欄放入調度資源一次,然後預覽任何應用程式/使用者的有效工作區 -> 應用程式/組織 -> 個人堆堆疊,或從應用程式卡的上下文視圖檢查堆堆疊。
|
|
75
|
+
- **設定重複作業。**“每週一早上 7 點,向分析代理詢問上週的註冊情況,然後通過電子郵件向我發送摘要。”參見[Recurring Jobs](/docs/recurring-jobs)。
|
|
76
|
+
- **審查夢想提案。** Dispatch Dreams 檢查之前的代理執行情況,並為工作區應記住的內容、應清理哪些過時的筆記以及哪些重複的課程應成為 skills 或工作建立支持來源的提案。
|
|
77
|
+
- **在 actions 觸發之前批準出站。** 匯款、群發電子郵件給客戶或發布到公開 Slack 頻道都可以在管理員的後台進行控制。
|
|
78
|
+
- **檢視誰有權存取什么。**每個應用程式授權、請求佇列以及誰何時使用哪個秘密的審核記錄。
|
|
79
|
+
- **將訊息路由到正確的專家。** 有關分析的 Slack 私信 發送至分析代理;一份關於電子郵件的資訊將發送給郵件代理 - 派送選取。
|
|
80
|
+
|
|
81
|
+
## 架構概覽 {#architecture}
|
|
82
|
+
|
|
83
|
+
_它的底層工作原理(對於開發人員)。_
|
|
84
|
+
|
|
85
|
+
- **Orchestrator 代理。** 聊天設定為路由器:它讀取 `AGENTS.md`、`LEARNINGS.md`,並路由到專業子代理或遠端 A2A 代理。
|
|
86
|
+
- **遠端代理註冊表。** A2A 代理清單是工作區執行時條目(不是簽入的範本來源資料夾):在多應用工作區中,`apps/` 下的同級應用程式會自動發現為 A2A 對等應用程式 — 無需手動註冊。 Dispatch 使用 `call-agent` 操作調用它們。
|
|
87
|
+
- **Vault 架構。** Drizzle 表,用於存儲機密、授權、請求、批準和審核記錄。它們位於 `@agent-native/dispatch` 包 (`packages/dispatch/src/db/schema.ts`) 中,並通過 `templates/dispatch/server/db/index.ts` 重新匯出到範本中 — 沒有範本本機 `server/db/schema.ts`。 Dispatch 的執行時在包中提供,而不是在範本來源中提供(與下面 `@agent-native/dispatch` 擁有 shell、側邊欄和內置頁面的注釋一致)。
|
|
88
|
+
- **Slack / Telegram 外掛。**註冊 webhooks 並將傳入訊息轉發到 Orchestrator 代理的伺服器外掛。
|
|
89
|
+
- **工作區 MCP 資源。** 在資源中的 `mcp-servers/*.json` 下新增 HTTP MCP 伺服器定義,然後將其範圍限定為所有應用或選定的應用授權,就像 skills 和上下文一樣。
|
|
90
|
+
|
|
91
|
+
```an-schema title="秘密庫架構" summary="Secrets are stored once; grants give a named app access; requests + reviews gate sensitive access; the audit log records who used which secret when. Defined in @agent-native/dispatch (packages/dispatch/src/db/schema.ts)."
|
|
92
|
+
{
|
|
93
|
+
"entities": [
|
|
94
|
+
{ "id": "secrets", "name": "vault_secrets", "note": "存儲的憑證值", "fields": [
|
|
95
|
+
{ "name": "id", "type": "text", "pk": true },
|
|
96
|
+
{ "name": "owner_email", "type": "text" },
|
|
97
|
+
{ "name": "org_id", "type": "text", "nullable": true },
|
|
98
|
+
{ "name": "name", "type": "text" },
|
|
99
|
+
{ "name": "credential_key", "type": "text" },
|
|
100
|
+
{ "name": "value", "type": "text", "note": "secret value" },
|
|
101
|
+
{ "name": "provider", "type": "text", "nullable": true }
|
|
102
|
+
] },
|
|
103
|
+
{ "id": "grants", "name": "vault_grants", "note": "每個應用程式存取權限授予", "fields": [
|
|
104
|
+
{ "name": "id", "type": "text", "pk": true },
|
|
105
|
+
{ "name": "secret_id", "type": "text", "fk": "vault_secrets.id" },
|
|
106
|
+
{ "name": "app_id", "type": "text" },
|
|
107
|
+
{ "name": "granted_by", "type": "text" },
|
|
108
|
+
{ "name": "status", "type": "text" }
|
|
109
|
+
] },
|
|
110
|
+
{ "id": "requests", "name": "vault_requests", "note": "存取請求+審核", "fields": [
|
|
111
|
+
{ "name": "id", "type": "text", "pk": true },
|
|
112
|
+
{ "name": "credential_key", "type": "text" },
|
|
113
|
+
{ "name": "app_id", "type": "text" },
|
|
114
|
+
{ "name": "reason", "type": "text", "nullable": true },
|
|
115
|
+
{ "name": "status", "type": "text" },
|
|
116
|
+
{ "name": "reviewed_by", "type": "text", "nullable": true }
|
|
117
|
+
] },
|
|
118
|
+
{ "id": "audit", "name": "vault_audit_log", "note": "誰在什么時候使用了哪個秘密", "fields": [
|
|
119
|
+
{ "name": "id", "type": "text", "pk": true },
|
|
120
|
+
{ "name": "secret_id", "type": "text", "fk": "vault_secrets.id", "nullable": true },
|
|
121
|
+
{ "name": "app_id", "type": "text", "nullable": true },
|
|
122
|
+
{ "name": "action", "type": "text" },
|
|
123
|
+
{ "name": "actor", "type": "text" }
|
|
124
|
+
] }
|
|
125
|
+
],
|
|
126
|
+
"relations": [
|
|
127
|
+
{ "from": "secrets", "to": "grants", "kind": "1-n", "label": "granted via" },
|
|
128
|
+
{ "from": "secrets", "to": "audit", "kind": "1-n", "label": "use recorded by" }
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
- **MCP 集線器模式。** Dispatch 仍然可以充當工作區的 [MCP hub](/docs/mcp-clients#hub),因此工作區中的每個其他應用程式都會拉取相同的組織範圍 MCP 伺服器列表。另外,對於 Claude、ChatGPT 和其他應存取多個工作區應用的主機,Dispatch 自己的 `/_agent-native/mcp` 端點是推薦的外部 MCP 連線器。
|
|
134
|
+
|
|
135
|
+
## 夢想 {#dreams}
|
|
136
|
+
|
|
137
|
+
夢想是 Dispatch 的特工記憶回顧循環。夢想通行證會檢查現有代理執行、線程偵錯資料、意見回饋、評估和重複的工具故障,然後編寫包含建議更改的報告。這些建議可以針對個人記憶、共用 `LEARNINGS.md`、工作區說明、工作區 skills、工作區知識、工作區代理或重複工作,但共用和工作區級別的更改保持可審查狀態,而不是默默應用。
|
|
138
|
+
|
|
139
|
+
夢想提案在儲存之前會根據個人記憶索引、現有 `memory/*.md` 檔案和共用 `LEARNINGS.md` 進行檢查。報告中跳過了重複的課程,同時更新了可能陳舊的個人記憶,而不是生成平行筆記。在報告中,Dreams 還按線程、信號型別和標準化引用刪除重複的證據,從使用者更正檢測中剝離注入的上下文,並在原始評估/工具行出現在提案文本中之前將其匯總為人類可讀的專案符號。當傳遞發現信號但故意不建立建議時,報告會包含護欄注釋,解釋哪些證據被壓制。
|
|
140
|
+
|
|
141
|
+
啟用調度審批策略後,應用共用或團隊範圍的夢想提案會建立待處理的審批請求,而不是立即寫入。建立、更新或刪除全應用工作區資源也會將批準請求排隊。個人記憶建議和僅限選定的資源編輯仍然可以在審核後直接應用。
|
|
142
|
+
|
|
143
|
+
當您想要回答諸如“代理本週一直犯錯什么?”、“我們應該記住什么?”或“哪些重複的課程值得掌握技能?”等問題時,請使用夢想。入站 Slack、電子郵件、Telegram、WhatsApp 和網路衍生證據被視為不受信任的輸入,因此來自這些來源的提案在影響共用內存之前需要進行審查和出處。工作空間指令提案需要跨越至少兩個線程或兩個來源應用程式的持久證據;僅評估噪音、帳戶設定問題、配額限制和單個應用程式 UI 措辭更正不屬於全域說明。
|
|
144
|
+
|
|
145
|
+
### 夢想輸入驗證邊界
|
|
146
|
+
|
|
147
|
+
由於證據是從外部、不受信任的來源(例如聊天紀錄、webhooks 和第三方整合)收集的,因此 Dream 處理器強制執行嚴格的輸入驗證邊界,以防止提示注入和有效負載大小攻擊:
|
|
148
|
+
|
|
149
|
+
- **字節大小限制:**每條訊息的單個線程有效負載最多為 10KB 的文本內容,如果候選掃描總數超過 100KB,則會被截斷,以防止上下文耗盡。
|
|
150
|
+
- **清理:** 所有文本輸入都經過清理,以去除控制字符、二進制負載和不可列印的 Unicode 範圍。
|
|
151
|
+
- **架構驗證:** 入站偵錯資料和線程歷史紀錄在編譯為 LLM 提示之前根據嚴格的 Zod 架構進行解析。任何未通過模式驗證的候選結構都會立即從處理批次中丟棄。
|
|
152
|
+
- **轉義:**所有使用者提供的文本塊在格式化為提示範本時都會動態轉義,以防止提示注入(例如,嘗試劫持 Dream 循環以編寫任意指令)。
|
|
153
|
+
|
|
154
|
+
在 Dispatch UI 中,開啟 **Dreams** 以執行手動通行證、審核候選線程、檢查報告,並在應用或拒絕每個提案之前開啟每個提案的審核表。使用 **設定** 編輯循環 cron 計畫、來源範圍、超時/並發限制、候選限制和最小候選閾值;當您希望從這些設定中實現 `jobs/dispatch-dream.md` 重複作業時,請在儲存後使用**確保計畫**。審核表顯示批準行為、目前目標內容、建議內容和來源證據。代理通過 actions 使用相同的工作流程:
|
|
155
|
+
|
|
156
|
+
- `list-dream-candidates` 查找帶有接地信號的最新線程,例如顯式使用者更正、失敗的執行、工具錯誤、意見回饋、評估失敗和成功的檢查點工作流程。通過 `sourceId: "all"` 或 `sourceIds` 掃描多個線程偵錯來源; `sourceTimeoutMs`、`sourceConcurrency`、`sourceStartStaggerMs`、`threadConcurrency` 和 `threadTimeoutMs` 保持正式環境掃描部分且有限,並且回應包括每個來源的執行狀況。
|
|
157
|
+
- `create-dream-report` 建立報告和待處理提案。多來源報告包括“來源執行狀況”部分,因此在審核期間可以看到部分掃描。反複修正和反複出現的失敗可以成為工作空間資源建議,例如`workspace-instruction`;重複成功的檢查點工作流程可以成為 `workspace-skill` 提案。
|
|
158
|
+
- `get-dream-settings` 和 `set-dream-settings` 讀取並更新重複夢想計畫、來源範圍、超時/並發控制、限制和最小候選閾值。
|
|
159
|
+
- `get-dream`、`preview-dream-proposal`、`apply-dream-proposal` 和 `reject-dream-proposal` 負責審核。
|
|
160
|
+
- 一旦手動報告有用,`ensure-dream-job` 就會建立安全的重複性夢想工作。
|
|
161
|
+
|
|
162
|
+
Dispatch 範本的本機操作執行程序還公開打包的 Dispatch actions,因此在開發中您可以從 `apps/dispatch` 執行相同的工作流程:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
pnpm action get-dream-settings
|
|
166
|
+
pnpm action set-dream-settings --enabled true --schedule "0 9 * * 1" --allSources true --limit 8
|
|
167
|
+
pnpm action create-dream-report --allSources true --sourceTimeoutMs 30000 --limit 8
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## 腳手架 {#scaffolding}
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
npx @agent-native/core@latest create my-platform
|
|
174
|
+
# 在多選選取器中選取“Dispatch”,以及您想要的任何域應用程式
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
如果您更喜歡直接命名範本而不是使用選取器:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
npx @agent-native/core@latest create my-platform --template dispatch
|
|
181
|
+
# add more apps in the same workspace as you go
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Dispatch 通常與它協調的應用程式一起建置在工作區中。對於工作區,Dispatch 的共用驗證、資料庫和品牌繼承自工作區核心 - 請參閱 [Multi-App Workspace](/docs/multi-app-workspace)。
|
|
185
|
+
|
|
186
|
+
沒有有意義的 `--standalone` 調度:沒有任何可協調的控制平面只是一個空收件箱。將其搭建到至少包含一個域應用程式的工作區中,以便它具有可通過 A2A 路由到的代理。 (該標志仍然有效並生成可執行的應用程式,但在您新增同級應用程式之前,協調器沒有可以委托的專家。)
|
|
187
|
+
|
|
188
|
+
## 首次本機執行 {#first-local-run}
|
|
189
|
+
|
|
190
|
+
從工作區根目錄:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
pnpm install
|
|
194
|
+
pnpm dev
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
開啟開發伺服器列印的Dispatch URL。本機開發使用與正式環境相同的 Better Auth 登入流程。使用電子郵件+密碼建立本機帳戶;開發過程中會跳過電子郵件驗證,密碼僅存儲在本機應用程式資料庫中。預設腳手架中不支持驗證旁路,因為代理、工作區資源、保管庫和共用模型都依賴於真實的使用者工作階段。
|
|
198
|
+
|
|
199
|
+
您可以在登入後點選“Dispatch UI”。要使用聊天編輯器或執行代理工作,請先連線 LLM 提供者:
|
|
200
|
+
|
|
201
|
+
1. 開啟**設定**。
|
|
202
|
+
2. 在 **LLM** 中,連線 Builder.io 或新增您自己的提供者金鑰,例如 `ANTHROPIC_API_KEY`。
|
|
203
|
+
3. 返回**概述**並嘗試使用composer。
|
|
204
|
+
|
|
205
|
+
## 自訂它 {#customize}
|
|
206
|
+
|
|
207
|
+
Dispatch 是一個像其他範本一樣的完整範本 — 請參閱 [Templates](/docs/cloneable-saas)。要求代理“為 Datadog 新增新的整合”或“將 Slack 私信 從通道 X 路由到分析代理”,它將編輯路由設定、新增 Webhook 處理程序並將其連線起來。
|
|
208
|
+
|
|
209
|
+
對於特定於工作區的管理螢幕,新增本機 React 路由器頁面和
|
|
210
|
+
將它們註冊到`app/dispatch-extensions.tsx`中。生成的工作空間擁有
|
|
211
|
+
只有額外的分頁和路線; `@agent-native/dispatch` 繼續擁有 shell,
|
|
212
|
+
側邊欄、內置頁面和未來的軟件包更新。
|
|
213
|
+
|
|
214
|
+
## 下一步是什么
|
|
215
|
+
|
|
216
|
+
- [**Messaging**](/docs/messaging) — 連線 Slack、電子郵件和 Telegram,以便您可以在任何地方與您的客服人員交談
|
|
217
|
+
- [**Multi-App Workspace**](/docs/multi-app-workspace) — 與多個應用程式一起執行 Dispatch
|
|
218
|
+
- [**A2A Protocol**](/docs/a2a-protocol) — Dispatch 如何委托給專業代理
|
|
219
|
+
- [**MCP Clients — Hub Mode**](/docs/mcp-clients#hub) — 在工作區共用 MCP 伺服器
|
|
220
|
+
- [**Recurring Jobs**](/docs/recurring-jobs) — 調度工作調度執行
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "表格"
|
|
3
|
+
description: "代理原生表單生成器 - 通過自然語言和可視化編輯器建立、編輯、發布和路由表單提交。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 表格
|
|
7
|
+
|
|
8
|
+
Forms 是一個代理原生表單建置器。描述您想要的表單,在編輯器中對其進行完善,然後發布一個公開表單,將提交內容存儲在您自己的 SQL 資料庫中。
|
|
9
|
+
|
|
10
|
+
```an-wireframe
|
|
11
|
+
{
|
|
12
|
+
"surface": "desktop",
|
|
13
|
+
"html": "<div style='display:flex;flex-direction:column;min-height:520px;box-sizing:border-box'><div style='display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1.4px solid var(--wf-line)'><strong>Beta 註冊</strong><span class='wf-pill accent'>published</span><div style='flex:1'></div><button>分享</button><button class='primary'>取消發布</button></div><div style='display:flex;gap:8px;padding:12px 16px;border-bottom:1.4px solid var(--wf-line)'><span class='wf-pill accent'>編輯</span><span class='wf-pill'>結果 187</span><span class='wf-pill'>設定</span><span class='wf-pill'>整合</span></div><div style='display:flex;flex-direction:column;gap:12px;padding:30px 78px;overflow:hidden'><h2 style='margin:0'>Beta 註冊</h2><p class='wf-muted' style='margin:0'>預留即將開始的私密 beta 名額。</p><div class='wf-card'><strong>姓名</strong><input value='Ada Lovelace'/></div><div class='wf-card'><strong>工作郵箱</strong><input value='you@company.com'/></div><div class='wf-card'><strong>你的角色</strong><input value='Select...'/></div><div class='wf-card'><strong>團隊規模</strong><input value='Select...'/></div></div></div>"
|
|
14
|
+
}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
當您開啟應用程式時,您會看到表單、目前編輯器和實時預覽。代理可以根據提示建立表單、更新欄位標籤和選項、更改驗證以及使用 UI 使用的相同 actions 連線提交目的地。
|
|
18
|
+
|
|
19
|
+
```an-diagram title="建置、發布、收集" summary="代理和可視化編輯器編輯一個 SQL-backed 表單定義。公開填寫頁面未經驗證,提交內容將通過伺服器端路由到您的目的地。"
|
|
20
|
+
{
|
|
21
|
+
"html": "<div class=\"diagram-flow\"><div class=\"diagram-col\"><div class=\"diagram-node\">代理提示詞<br><small class=\"diagram-muted\">\"add an NPS question\"</small></div><div class=\"diagram-node\">可視化編輯器<br><small class=\"diagram-muted\">標籤、校驗、順序</small></div></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-panel center\"><span class=\"diagram-pill accent\">create-form · update-form</span><small class=\"diagram-muted\">欄位 JSON,設定 JSON</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-box\">forms table<br><small class=\"diagram-muted\">通過 Drizzle 使用 SQL</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-col\"><div class=\"diagram-box\">公開填寫頁面<br><small class=\"diagram-muted\">unauthenticated</small></div><div class=\"diagram-box\">responses<br><small class=\"diagram-muted\">+ Slack / webhook / 表格</small></div></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
|
+
- **以對話方式建置表單。**“建立聯系表單”、“新增 NPS 分數問題”、“將電子郵件欄位設為必填”。代理更新表單架構,並從 SQL 支持的狀態更新預覽。
|
|
29
|
+
- **視覺上進行微調。**當您需要直接控制時,可以從建置器 UI 編輯標籤、預留位置、所需狀態、選項和欄位順序。
|
|
30
|
+
- **使用附帶的欄位型別。**開箱即用地支持文本、電子郵件、數字、長文本、選取、多選、核取方塊、單選、日期、評級和比例欄位。
|
|
31
|
+
- **收集回複。**每次提交都存儲在 SQL 中,並帶有每個回複的詳細資訊視圖和用於審核條目的儀表板。
|
|
32
|
+
- **路由提交。**使用內置整合將提交有效負載發送到 webhooks、Slack、Discord 或 Google 表格。
|
|
33
|
+
- **發布公開表單。**分享公開表單 URL 並在提交後顯示感謝訊息。
|
|
34
|
+
|
|
35
|
+
## 開始使用
|
|
36
|
+
|
|
37
|
+
現場演示:[forms.agent-native.com](https://forms.agent-native.com)。
|
|
38
|
+
|
|
39
|
+
1. **根據提示建立表單。**詢問您想要的表單,包括
|
|
40
|
+
受眾以及提交後會發生什么。
|
|
41
|
+
2. **在編輯器中最佳化。**調整標籤、驗證、選取和順序
|
|
42
|
+
直接編輯時的視覺生成器速度更快。
|
|
43
|
+
3. **發布並分享。**使用受訪者公開表單 URL,然後觀看
|
|
44
|
+
結果到達回應視圖。
|
|
45
|
+
4. **連線目的地。**將新提交內容路由至 Slack、Discord、Google
|
|
46
|
+
工作表、webhooks 或您自己的擴充功能點。
|
|
47
|
+
|
|
48
|
+
### 有用的提示
|
|
49
|
+
|
|
50
|
+
- “建立包含角色、團隊規模和優先用例的測試版註冊表單。”
|
|
51
|
+
- “新增必填的 NPS 問題和自由文本後續問題。”
|
|
52
|
+
- “將每個新回複發布到產品 Slack 頻道。”
|
|
53
|
+
- “總結本週提交的內容並按客戶細分進行分組。”
|
|
54
|
+
- “在不丟失路由所需欄位的情況下縮短此表單。”
|
|
55
|
+
|
|
56
|
+
## 對於開發者
|
|
57
|
+
|
|
58
|
+
本檔案的其餘部分適用於任何分叉表單範本或擴充功能它的人。
|
|
59
|
+
|
|
60
|
+
### 快速入門
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
npx @agent-native/core@latest create my-forms --standalone --template forms
|
|
64
|
+
cd my-forms
|
|
65
|
+
pnpm install
|
|
66
|
+
pnpm dev
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
對於包含 Forms 和其他應用程式的工作區:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npx @agent-native/core@latest create my-platform
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
在工作區設定過程中選取您想要的表單和任何其他範本。
|
|
76
|
+
|
|
77
|
+
### 主要功能 {#key-features}
|
|
78
|
+
|
|
79
|
+
**JSON 表單定義。** 欄位位於一個 `fields` JSON 列中,因此代理可以進行外科手術編輯,而無需更改每種欄位型別的架構。
|
|
80
|
+
|
|
81
|
+
**公開填寫頁面。**受訪者可以提交未經驗證的表單,而私人設定會在資料到達瀏覽器之前被刪除。
|
|
82
|
+
|
|
83
|
+
**伺服器端目標。** Slack、Discord、Google Sheets 和 Webhook 整合存在於表單設定中並在提交後執行。
|
|
84
|
+
|
|
85
|
+
### 資料模型
|
|
86
|
+
|
|
87
|
+
所有資料通過 Drizzle ORM 存儲在 SQL 中。架構:`templates/forms/server/db/schema.ts`。表單攜帶標準 `ownableColumns` 和匹配的框架共用表,因此它們可以插入每使用者/每組織共用模型。
|
|
88
|
+
|
|
89
|
+
| 表 | 它包含什么 |
|
|
90
|
+
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
91
|
+
| `forms` | 表單定義 - `title`、`description`、唯一 `slug`、`fields`(`FormField` 的 JSON 陣列)、`settings`(JSON `FormSettings`)、`status`(`draft` / `published` / `closed`),以及軟刪除 `deleted_at` |
|
|
92
|
+
| `responses` | 每行一次提交 - `form_id`、`data` (JSON `{ fieldId: value }`)、`submitted_at`、可選的 `ip` 和 `submitter_email` |
|
|
93
|
+
| `form_shares` | 框架共用每個表單將主體(使用者或組織)對應到角色(檢視者、編輯者、管理員)的表 |
|
|
94
|
+
|
|
95
|
+
`fields` 和 `settings` JSON 形狀在 `templates/forms/shared/types.ts`(`FormField`、`FormSettings`)中定義。在任何資料通過 `toPublicFormSettings` 到達公開填充頁面之前,所有者私人設定(例如整合 Webhook URL 和允許的來源)都會被刪除。
|
|
96
|
+
|
|
97
|
+
```an-schema title="表單資料模型" summary="三張桌子。欄位和整合是表單上的 JSON 列,因此代理的編輯是外科手術補丁,而不是跨表行更改。"
|
|
98
|
+
{
|
|
99
|
+
"entities": [
|
|
100
|
+
{
|
|
101
|
+
"id": "forms",
|
|
102
|
+
"name": "forms",
|
|
103
|
+
"note": "A form definition (ownable)",
|
|
104
|
+
"fields": [
|
|
105
|
+
{ "name": "id", "type": "id", "pk": true },
|
|
106
|
+
{ "name": "title", "type": "string" },
|
|
107
|
+
{ "name": "description", "type": "string", "nullable": true },
|
|
108
|
+
{ "name": "slug", "type": "string", "note": "unique; public URL" },
|
|
109
|
+
{ "name": "fields", "type": "json", "note": "FormField[] — 所有欄位型別" },
|
|
110
|
+
{ "name": "settings", "type": "json", "note": "FormSettings — 整合等" },
|
|
111
|
+
{ "name": "status", "type": "enum", "note": "草稿|發表 |關閉" },
|
|
112
|
+
{ "name": "deleted_at", "type": "datetime", "nullable": true, "note": "soft delete" },
|
|
113
|
+
{ "name": "owner_email", "type": "string" },
|
|
114
|
+
{ "name": "org_id", "type": "id", "nullable": true }
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "responses",
|
|
119
|
+
"name": "responses",
|
|
120
|
+
"note": "每行一次提交",
|
|
121
|
+
"fields": [
|
|
122
|
+
{ "name": "id", "type": "id", "pk": true },
|
|
123
|
+
{ "name": "form_id", "type": "id", "fk": "forms.id" },
|
|
124
|
+
{ "name": "data", "type": "json", "note": "{ fieldId: value }" },
|
|
125
|
+
{ "name": "submitted_at", "type": "datetime" },
|
|
126
|
+
{ "name": "ip", "type": "string", "nullable": true },
|
|
127
|
+
{ "name": "submitter_email", "type": "string", "nullable": true }
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"id": "form_shares",
|
|
132
|
+
"name": "form_shares",
|
|
133
|
+
"note": "框架份額表——每個表格的角色原則",
|
|
134
|
+
"fields": [
|
|
135
|
+
{ "name": "id", "type": "id", "pk": true },
|
|
136
|
+
{ "name": "form_id", "type": "id", "fk": "forms.id" },
|
|
137
|
+
{ "name": "principal", "type": "string", "note": "user or org" },
|
|
138
|
+
{ "name": "role", "type": "enum", "note": "觀眾|編輯|行政" }
|
|
139
|
+
]
|
|
140
|
+
}
|
|
141
|
+
],
|
|
142
|
+
"relations": [
|
|
143
|
+
{ "from": "forms", "to": "responses", "kind": "1-n", "label": "has responses" },
|
|
144
|
+
{ "from": "forms", "to": "form_shares", "kind": "1-n", "label": "has share grants" }
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### 金鑰actions
|
|
150
|
+
|
|
151
|
+
每個操作都是`templates/forms/actions/`中的一個TypeScript檔案,自動掛載在`POST /_agent-native/actions/:name`:
|
|
152
|
+
|
|
153
|
+
- `create-form` — 建立一個新表單(標題、描述、欄位、設定)
|
|
154
|
+
- `update-form` — 更新欄位、設定或狀態
|
|
155
|
+
- `get-form` — 通過 id 或 slug 檢索表單
|
|
156
|
+
- `list-forms` — 列出可存取的表單
|
|
157
|
+
- `delete-form` — 軟刪除(設定 `deleted_at`)
|
|
158
|
+
- `restore-form` — 恢復軟刪除的表單
|
|
159
|
+
- `list-responses` — 列出帶有可選過濾器的表單提交內容
|
|
160
|
+
- `export-responses` — 將回應匯出為 CSV 或 JSON
|
|
161
|
+
|
|
162
|
+
### 自訂
|
|
163
|
+
|
|
164
|
+
首先向代理詢問發貨行為:
|
|
165
|
+
|
|
166
|
+
- “為首選聯系方式新增必填單選欄位。”
|
|
167
|
+
- “將每個新提交發布到 Slack。”先通過[Messaging](/docs/messaging)連線Slack。
|
|
168
|
+
- “為我們的 CRM 新增 Webhook 目標。”
|
|
169
|
+
- “建立一個具有 1-10 等級和長文本跟進的客戶意見回饋表。”
|
|
170
|
+
- “將某些表單設為公開,其他表單僅供登入。”
|
|
171
|
+
|
|
172
|
+
如果您需要檔案上傳、簽名或自訂欄位小部件等新功能,請將它們視為範本擴充功能:將 SQL 形狀、actions、UI 編輯器控件、公開渲染器支持和代理指令新增在一起。請參閱 [Creating Templates](/docs/creating-templates) 了解目前的建置模式。
|
|
173
|
+
|
|
174
|
+
## 下一步是什么
|
|
175
|
+
|
|
176
|
+
- [**Templates**](/docs/cloneable-saas) — 克隆自有模型
|
|
177
|
+
- [**Actions**](/docs/actions) — 為建置器提供動力的動作系統
|
|
178
|
+
- [**Messaging**](/docs/messaging) — Slack 和其他提交目的地
|