@agent-native/core 0.79.11 → 0.79.15
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 +25 -0
- package/corpus/core/docs/content/locales/zh-TW/a2a-protocol.md +68 -68
- package/corpus/core/docs/content/locales/zh-TW/actions.md +82 -82
- package/corpus/core/docs/content/locales/zh-TW/agent-mentions.md +22 -22
- package/corpus/core/docs/content/locales/zh-TW/agent-surfaces.md +82 -82
- package/corpus/core/docs/content/locales/zh-TW/agent-teams.md +29 -29
- package/corpus/core/docs/content/locales/zh-TW/agent-web-surfaces.md +11 -11
- package/corpus/core/docs/content/locales/zh-TW/audit-log.md +16 -16
- package/corpus/core/docs/content/locales/zh-TW/authentication.md +32 -32
- package/corpus/core/docs/content/locales/zh-TW/automations.md +32 -32
- package/corpus/core/docs/content/locales/zh-TW/blueprint-installer.md +19 -19
- package/corpus/core/docs/content/locales/zh-TW/cli-adapters.md +17 -17
- package/corpus/core/docs/content/locales/zh-TW/client.md +62 -62
- package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.md +32 -32
- package/corpus/core/docs/content/locales/zh-TW/code-agents-ui.md +91 -91
- package/corpus/core/docs/content/locales/zh-TW/components.md +51 -51
- package/corpus/core/docs/content/locales/zh-TW/context-awareness.md +66 -66
- package/corpus/core/docs/content/locales/zh-TW/creating-templates.md +39 -39
- package/corpus/core/docs/content/locales/zh-TW/cross-app-sso.md +29 -29
- package/corpus/core/docs/content/locales/zh-TW/database.md +21 -21
- package/corpus/core/docs/content/locales/zh-TW/deployment.md +37 -37
- package/corpus/core/docs/content/locales/zh-TW/dispatch.md +43 -43
- package/corpus/core/docs/content/locales/zh-TW/drop-in-agent.md +34 -34
- package/corpus/core/docs/content/locales/zh-TW/durable-resume.md +18 -18
- package/corpus/core/docs/content/locales/zh-TW/embedding-sdk.md +73 -73
- package/corpus/core/docs/content/locales/zh-TW/evals.md +16 -16
- package/corpus/core/docs/content/locales/zh-TW/extensions.md +81 -81
- package/corpus/core/docs/content/locales/zh-TW/external-agents.md +146 -146
- package/corpus/core/docs/content/locales/zh-TW/faq.md +43 -43
- package/corpus/core/docs/content/locales/zh-TW/file-uploads.md +11 -11
- package/corpus/core/docs/content/locales/zh-TW/frames.md +33 -33
- package/corpus/core/docs/content/locales/zh-TW/getting-started.md +28 -28
- package/corpus/core/docs/content/locales/zh-TW/harness-agents.md +78 -78
- package/corpus/core/docs/content/locales/zh-TW/human-approval.md +27 -27
- package/corpus/core/docs/content/locales/zh-TW/internationalization.md +19 -19
- package/corpus/core/docs/content/locales/zh-TW/key-concepts.md +68 -68
- package/corpus/core/docs/content/locales/zh-TW/local-file-mode.md +50 -50
- package/corpus/core/docs/content/locales/zh-TW/mcp-apps.md +38 -38
- package/corpus/core/docs/content/locales/zh-TW/mcp-clients.md +67 -67
- package/corpus/core/docs/content/locales/zh-TW/mcp-protocol.md +50 -50
- package/corpus/core/docs/content/locales/zh-TW/messaging.md +99 -99
- package/corpus/core/docs/content/locales/zh-TW/migration-workbench.md +6 -6
- package/corpus/core/docs/content/locales/zh-TW/multi-app-workspace.md +39 -39
- package/corpus/core/docs/content/locales/zh-TW/multi-tenancy.md +7 -7
- package/corpus/core/docs/content/locales/zh-TW/native-chat-ui.md +38 -38
- package/corpus/core/docs/content/locales/zh-TW/notifications.md +23 -23
- package/corpus/core/docs/content/locales/zh-TW/observability.md +49 -49
- package/corpus/core/docs/content/locales/zh-TW/observational-memory.md +23 -23
- package/corpus/core/docs/content/locales/zh-TW/onboarding.md +40 -40
- package/corpus/core/docs/content/locales/zh-TW/plan-plugin.md +37 -37
- package/corpus/core/docs/content/locales/zh-TW/pr-visual-recap.md +72 -72
- package/corpus/core/docs/content/locales/zh-TW/processors.md +17 -17
- package/corpus/core/docs/content/locales/zh-TW/progress.md +15 -15
- package/corpus/core/docs/content/locales/zh-TW/pure-agent-apps.md +10 -10
- package/corpus/core/docs/content/locales/zh-TW/real-time-collaboration.md +103 -103
- package/corpus/core/docs/content/locales/zh-TW/recurring-jobs.md +19 -19
- package/corpus/core/docs/content/locales/zh-TW/routing.md +9 -9
- package/corpus/core/docs/content/locales/zh-TW/sandbox-adapters.md +48 -48
- package/corpus/core/docs/content/locales/zh-TW/security.md +49 -49
- package/corpus/core/docs/content/locales/zh-TW/server.md +47 -47
- package/corpus/core/docs/content/locales/zh-TW/sharing.md +22 -22
- package/corpus/core/docs/content/locales/zh-TW/skills-guide.md +46 -46
- package/corpus/core/docs/content/locales/zh-TW/template-analytics.md +40 -40
- package/corpus/core/docs/content/locales/zh-TW/template-assets.md +69 -69
- package/corpus/core/docs/content/locales/zh-TW/template-brain.md +81 -81
- package/corpus/core/docs/content/locales/zh-TW/template-calendar.md +40 -40
- package/corpus/core/docs/content/locales/zh-TW/template-chat.md +27 -27
- package/corpus/core/docs/content/locales/zh-TW/template-clips.md +85 -85
- package/corpus/core/docs/content/locales/zh-TW/template-content.md +65 -66
- package/corpus/core/docs/content/locales/zh-TW/template-design.md +29 -29
- package/corpus/core/docs/content/locales/zh-TW/template-dispatch.md +51 -51
- package/corpus/core/docs/content/locales/zh-TW/template-forms.md +25 -25
- package/corpus/core/docs/content/locales/zh-TW/template-mail.md +71 -71
- package/corpus/core/docs/content/locales/zh-TW/template-plan.md +92 -92
- package/corpus/core/docs/content/locales/zh-TW/template-slides.md +52 -52
- package/corpus/core/docs/content/locales/zh-TW/template-videos.md +30 -30
- package/corpus/core/docs/content/locales/zh-TW/tracking.md +29 -29
- package/corpus/core/docs/content/locales/zh-TW/using-your-agent.md +18 -18
- package/corpus/core/docs/content/locales/zh-TW/voice-input.md +19 -19
- package/corpus/core/docs/content/locales/zh-TW/what-is-agent-native.md +61 -61
- package/corpus/core/docs/content/locales/zh-TW/workspace-connections.md +41 -41
- package/corpus/core/docs/content/locales/zh-TW/workspace-management.md +27 -27
- package/corpus/core/docs/content/locales/zh-TW/workspace.md +58 -58
- package/corpus/core/docs/content/locales/zh-TW/writing-agent-instructions.md +41 -41
- package/corpus/core/docs/content/template-clips.md +48 -2
- package/corpus/core/package.json +2 -1
- package/corpus/core/src/client/AgentPanel.tsx +27 -3
- package/corpus/core/src/deploy/build.ts +738 -57
- package/corpus/core/src/deploy/route-discovery.ts +1 -1
- package/corpus/core/src/server/edge.ts +50 -0
- package/corpus/core/src/styles/agent-native.css +93 -0
- package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +44 -44
- package/corpus/core/src/vite/client.ts +1 -0
- package/corpus/templates/analytics/app/components/layout/Layout.tsx +5 -3
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +69 -70
- package/corpus/templates/analytics/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/assets/app/components/layout/Layout.tsx +3 -3
- package/corpus/templates/assets/app/i18n/zh-TW.ts +82 -82
- package/corpus/templates/assets/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/brain/app/components/layout/Layout.tsx +6 -4
- package/corpus/templates/brain/app/i18n/zh-TW.ts +90 -90
- package/corpus/templates/brain/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +1 -1
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +1 -1
- package/corpus/templates/calendar/app/i18n/zh-TW.ts +57 -57
- package/corpus/templates/calendar/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/calendar/server/lib/booking-og-fonts.ts +20 -6
- package/corpus/templates/calendar/server/lib/booking-og-image.ts +17 -9
- package/corpus/templates/chat/app/components/layout/Layout.tsx +5 -3
- package/corpus/templates/chat/app/i18n/zh-TW.ts +3 -3
- package/corpus/templates/chat/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/clips/AGENTS.md +6 -0
- package/corpus/templates/clips/actions/delete-recording-permanent.ts +7 -1
- package/corpus/templates/clips/actions/get-recording-player-data.ts +44 -2
- package/corpus/templates/clips/actions/navigate.ts +2 -0
- package/corpus/templates/clips/actions/save-bug-report-context.ts +173 -0
- package/corpus/templates/clips/actions/view-screen.ts +58 -7
- package/corpus/templates/clips/app/components/recorder/storage-setup-card.tsx +9 -3
- package/corpus/templates/clips/app/hooks/use-navigation-state.ts +17 -0
- package/corpus/templates/clips/app/i18n/ar-SA.ts +31 -0
- package/corpus/templates/clips/app/i18n/de-DE.ts +32 -0
- package/corpus/templates/clips/app/i18n/en-US.ts +32 -0
- package/corpus/templates/clips/app/i18n/es-ES.ts +32 -0
- package/corpus/templates/clips/app/i18n/fr-FR.ts +32 -0
- package/corpus/templates/clips/app/i18n/hi-IN.ts +32 -0
- package/corpus/templates/clips/app/i18n/ja-JP.ts +31 -0
- package/corpus/templates/clips/app/i18n/ko-KR.ts +32 -0
- package/corpus/templates/clips/app/i18n/pt-BR.ts +32 -0
- package/corpus/templates/clips/app/i18n/zh-CN.ts +30 -0
- package/corpus/templates/clips/app/i18n/zh-TW.ts +461 -451
- package/corpus/templates/clips/app/routes/bug-report.done.tsx +126 -0
- package/corpus/templates/clips/app/routes/bug-report.tsx +222 -0
- package/corpus/templates/clips/app/routes/record.tsx +104 -12
- package/corpus/templates/clips/changelog/2026-06-26-brief-network-blips-no-longer-block-recording-or-wrongly-pro.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-26-bug-report-recordings-can-keep-redacted-host-app-context-wit.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-26-bug-report-widgets-can-launch-clips-recordings-from-embedded.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-26-desktop-recording-keeps-connected-users-out-of-the-storage-s.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-26-if-a-recording-can-t-be-uploaded-the-chrome-extension-now-sa.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/clips/chrome-extension/public/manifest.json +9 -2
- package/corpus/templates/clips/chrome-extension/src/background.ts +43 -0
- package/corpus/templates/clips/chrome-extension/src/offscreen.ts +111 -6
- package/corpus/templates/clips/chrome-extension/src/popup.ts +18 -7
- package/corpus/templates/clips/desktop/src/app.tsx +53 -19
- package/corpus/templates/clips/server/db/schema.ts +26 -0
- package/corpus/templates/clips/server/lib/public-agent-context.ts +51 -0
- package/corpus/templates/clips/server/plugins/auth.ts +1 -0
- package/corpus/templates/clips/server/plugins/db.ts +28 -0
- package/corpus/templates/clips/server/routes/api/agent-context.json.get.ts +4 -1
- package/corpus/templates/clips/shared/bug-report.ts +161 -0
- package/corpus/templates/content/app/components/layout/Layout.tsx +10 -8
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +1 -1
- package/corpus/templates/content/app/i18n/zh-TW.ts +67 -66
- package/corpus/templates/content/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/design/app/components/layout/Layout.tsx +3 -3
- package/corpus/templates/design/app/i18n/zh-TW.ts +44 -44
- package/corpus/templates/design/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/dispatch/app/i18n/zh-TW.ts +5 -4
- package/corpus/templates/dispatch/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/forms/app/components/layout/Layout.tsx +4 -2
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +1 -1
- package/corpus/templates/forms/app/i18n/zh-TW.ts +48 -48
- package/corpus/templates/forms/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +3 -3
- package/corpus/templates/macros/app/i18n/zh-TW.ts +5 -5
- package/corpus/templates/macros/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/mail/app/i18n/zh-TW.ts +83 -83
- package/corpus/templates/mail/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/plan/app/components/layout/Layout.tsx +5 -3
- package/corpus/templates/plan/app/i18n/zh-TW.ts +69 -69
- package/corpus/templates/plan/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/slides/app/components/layout/Layout.tsx +3 -3
- package/corpus/templates/slides/app/i18n/zh-TW.ts +64 -64
- package/corpus/templates/slides/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/corpus/templates/videos/app/components/layout/Layout.tsx +2 -2
- package/corpus/templates/videos/app/i18n/zh-TW.ts +54 -54
- package/corpus/templates/videos/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +14 -4
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/deploy/build.d.ts +29 -2
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +587 -51
- package/dist/deploy/build.js.map +1 -1
- package/dist/deploy/route-discovery.d.ts +1 -1
- package/dist/deploy/route-discovery.js +1 -1
- package/dist/deploy/route-discovery.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +2 -2
- package/dist/notifications/routes.d.ts +2 -2
- package/dist/observability/routes.d.ts +7 -7
- package/dist/resources/handlers.d.ts +2 -2
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/edge.d.ts +11 -0
- package/dist/server/edge.d.ts.map +1 -0
- package/dist/server/edge.js +11 -0
- package/dist/server/edge.js.map +1 -0
- package/dist/styles/agent-native.css +93 -0
- package/dist/templates/default/app/i18n/zh-TW.ts +44 -44
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +1 -0
- package/dist/vite/client.js.map +1 -1
- package/docs/content/locales/zh-TW/a2a-protocol.md +68 -68
- package/docs/content/locales/zh-TW/actions.md +82 -82
- package/docs/content/locales/zh-TW/agent-mentions.md +22 -22
- package/docs/content/locales/zh-TW/agent-surfaces.md +82 -82
- package/docs/content/locales/zh-TW/agent-teams.md +29 -29
- package/docs/content/locales/zh-TW/agent-web-surfaces.md +11 -11
- package/docs/content/locales/zh-TW/audit-log.md +16 -16
- package/docs/content/locales/zh-TW/authentication.md +32 -32
- package/docs/content/locales/zh-TW/automations.md +32 -32
- package/docs/content/locales/zh-TW/blueprint-installer.md +19 -19
- package/docs/content/locales/zh-TW/cli-adapters.md +17 -17
- package/docs/content/locales/zh-TW/client.md +62 -62
- package/docs/content/locales/zh-TW/cloneable-saas.md +32 -32
- package/docs/content/locales/zh-TW/code-agents-ui.md +91 -91
- package/docs/content/locales/zh-TW/components.md +51 -51
- package/docs/content/locales/zh-TW/context-awareness.md +66 -66
- package/docs/content/locales/zh-TW/creating-templates.md +39 -39
- package/docs/content/locales/zh-TW/cross-app-sso.md +29 -29
- package/docs/content/locales/zh-TW/database.md +21 -21
- package/docs/content/locales/zh-TW/deployment.md +37 -37
- package/docs/content/locales/zh-TW/dispatch.md +43 -43
- package/docs/content/locales/zh-TW/drop-in-agent.md +34 -34
- package/docs/content/locales/zh-TW/durable-resume.md +18 -18
- package/docs/content/locales/zh-TW/embedding-sdk.md +73 -73
- package/docs/content/locales/zh-TW/evals.md +16 -16
- package/docs/content/locales/zh-TW/extensions.md +81 -81
- package/docs/content/locales/zh-TW/external-agents.md +146 -146
- package/docs/content/locales/zh-TW/faq.md +43 -43
- package/docs/content/locales/zh-TW/file-uploads.md +11 -11
- package/docs/content/locales/zh-TW/frames.md +33 -33
- package/docs/content/locales/zh-TW/getting-started.md +28 -28
- package/docs/content/locales/zh-TW/harness-agents.md +78 -78
- package/docs/content/locales/zh-TW/human-approval.md +27 -27
- package/docs/content/locales/zh-TW/internationalization.md +19 -19
- package/docs/content/locales/zh-TW/key-concepts.md +68 -68
- package/docs/content/locales/zh-TW/local-file-mode.md +50 -50
- package/docs/content/locales/zh-TW/mcp-apps.md +38 -38
- package/docs/content/locales/zh-TW/mcp-clients.md +67 -67
- package/docs/content/locales/zh-TW/mcp-protocol.md +50 -50
- package/docs/content/locales/zh-TW/messaging.md +99 -99
- package/docs/content/locales/zh-TW/migration-workbench.md +6 -6
- package/docs/content/locales/zh-TW/multi-app-workspace.md +39 -39
- package/docs/content/locales/zh-TW/multi-tenancy.md +7 -7
- package/docs/content/locales/zh-TW/native-chat-ui.md +38 -38
- package/docs/content/locales/zh-TW/notifications.md +23 -23
- package/docs/content/locales/zh-TW/observability.md +49 -49
- package/docs/content/locales/zh-TW/observational-memory.md +23 -23
- package/docs/content/locales/zh-TW/onboarding.md +40 -40
- package/docs/content/locales/zh-TW/plan-plugin.md +37 -37
- package/docs/content/locales/zh-TW/pr-visual-recap.md +72 -72
- package/docs/content/locales/zh-TW/processors.md +17 -17
- package/docs/content/locales/zh-TW/progress.md +15 -15
- package/docs/content/locales/zh-TW/pure-agent-apps.md +10 -10
- package/docs/content/locales/zh-TW/real-time-collaboration.md +103 -103
- package/docs/content/locales/zh-TW/recurring-jobs.md +19 -19
- package/docs/content/locales/zh-TW/routing.md +9 -9
- package/docs/content/locales/zh-TW/sandbox-adapters.md +48 -48
- package/docs/content/locales/zh-TW/security.md +49 -49
- package/docs/content/locales/zh-TW/server.md +47 -47
- package/docs/content/locales/zh-TW/sharing.md +22 -22
- package/docs/content/locales/zh-TW/skills-guide.md +46 -46
- package/docs/content/locales/zh-TW/template-analytics.md +40 -40
- package/docs/content/locales/zh-TW/template-assets.md +69 -69
- package/docs/content/locales/zh-TW/template-brain.md +81 -81
- package/docs/content/locales/zh-TW/template-calendar.md +40 -40
- package/docs/content/locales/zh-TW/template-chat.md +27 -27
- package/docs/content/locales/zh-TW/template-clips.md +85 -85
- package/docs/content/locales/zh-TW/template-content.md +65 -66
- package/docs/content/locales/zh-TW/template-design.md +29 -29
- package/docs/content/locales/zh-TW/template-dispatch.md +51 -51
- package/docs/content/locales/zh-TW/template-forms.md +25 -25
- package/docs/content/locales/zh-TW/template-mail.md +71 -71
- package/docs/content/locales/zh-TW/template-plan.md +92 -92
- package/docs/content/locales/zh-TW/template-slides.md +52 -52
- package/docs/content/locales/zh-TW/template-videos.md +30 -30
- package/docs/content/locales/zh-TW/tracking.md +29 -29
- package/docs/content/locales/zh-TW/using-your-agent.md +18 -18
- package/docs/content/locales/zh-TW/voice-input.md +19 -19
- package/docs/content/locales/zh-TW/what-is-agent-native.md +61 -61
- package/docs/content/locales/zh-TW/workspace-connections.md +41 -41
- package/docs/content/locales/zh-TW/workspace-management.md +27 -27
- package/docs/content/locales/zh-TW/workspace.md +58 -58
- package/docs/content/locales/zh-TW/writing-agent-instructions.md +41 -41
- package/docs/content/template-clips.md +48 -2
- package/package.json +2 -1
- package/src/templates/default/app/i18n/zh-TW.ts +44 -44
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "部署"
|
|
3
|
-
description: "
|
|
3
|
+
description: "將 Agent-Native 應用部署到具有 Nitro 預設的任何平台 - Node.js、Vercel、Netlify、Cloudflare、AWS 等。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# 部署
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Agent-Native 應用程式在底層使用 [Nitro](https://nitro.build),這意味著您可以部署到任何平台,無需進行零設定更改 - 只需設定預設即可。
|
|
9
9
|
|
|
10
10
|
## 部署之前:選取持久資料庫 {#persistent-database}
|
|
11
11
|
|
|
12
|
-
每個部署的應用程式都需要一個持久的 SQL 資料庫。在本機開發中,agent-native 回退到 `data/app.db` 處的 SQLite
|
|
12
|
+
每個部署的應用程式都需要一個持久的 SQL 資料庫。在本機開發中,agent-native 回退到 `data/app.db` 處的 SQLite 檔案;這在您的電腦上很方便,但在可以重設檔案系統的容器、預覽或無伺服器環境中並不持久。
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
在將應用推廣到正式環境環境之前,在部署提供者中設定 `DATABASE_URL`。 Agent-Native 使用 Drizzle 進行架構和查詢,因此資料層可跨 Drizzle 相容的 SQL 後端移植,並且框架會自動偵測 URL 的方言。有關轉接器清單和方言詳細資訊,請參閱 [Database](/docs/database#production)。
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
僅當您的資料庫提供者需要單獨的權杖(例如 Turso/libSQL)時才使用 `DATABASE_AUTH_TOKEN`。對於工作區,所有應用預設繼承根`DATABASE_URL`;當一個應用程式應使用不同的資料庫時設定 `<APP_NAME>_DATABASE_URL`。
|
|
17
17
|
|
|
18
18
|
## 工作區部署:一個來源,多個應用 {#workspace-deploy}
|
|
19
19
|
|
|
20
|
-
如果您的專案是 [workspace](/docs/multi-app-workspace)
|
|
20
|
+
如果您的專案是 [workspace](/docs/multi-app-workspace),您可以使用一個指令將其中的每個應用程式傳送到單一來源:
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
23
|
npx @agent-native/core@latest deploy
|
|
@@ -26,9 +26,9 @@ npx @agent-native/core@latest deploy
|
|
|
26
26
|
# https://your-agents.com/forms/* → apps/forms
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
每個應用程式均使用 `APP_BASE_PATH=/<name>` 和 `VITE_APP_BASE_PATH=/<name>` 建置,然後打包為目標 Nitro 預設。 Cloudflare Pages 是預設預設,並使用 `dist/_worker.js`
|
|
29
|
+
每個應用程式均使用 `APP_BASE_PATH=/<name>` 和 `VITE_APP_BASE_PATH=/<name>` 建置,然後打包為目標 Nitro 預設。 Cloudflare Pages 是預設預設,並使用 `dist/_worker.js` 產生的調度程式工作人員; Netlify 在 `.netlify/functions-internal/<app>-server` 中為每個應用程式使用一個函式以及產生的重新導向; Vercel 使用建置輸出 API 編寫工作區級 `.vercel/output`。
|
|
30
30
|
|
|
31
|
-
```an-diagram title="一個來源,多個應用程式" summary="
|
|
31
|
+
```an-diagram title="一個來源,多個應用程式" summary="每個工作區應用程式都使用自己的基本路徑建置,並安裝在單一來源的路徑前綴下 - 因此登入和跨應用程式 A2A 是同來源且免費的。"
|
|
32
32
|
{
|
|
33
33
|
"html": "<div class=\"diagram-ws\"><div class=\"diagram-panel\" data-rough><strong>https://your-agents.com</strong><div class=\"diagram-row\"><span class=\"diagram-pill accent\">/mail/*</span><small class=\"diagram-muted\">apps/mail</small></div><div class=\"diagram-row\"><span class=\"diagram-pill accent\">/calendar/*</span><small class=\"diagram-muted\">apps/calendar</small></div><div class=\"diagram-row\"><span class=\"diagram-pill accent\">/forms/*</span><small class=\"diagram-muted\">apps/forms</small></div></div><div class=\"diagram-col wins\"><span class=\"diagram-pill ok\">shared login session</span><span class=\"diagram-pill ok\">跨應用 A2A 零設定</span></div></div>",
|
|
34
34
|
"css": ".diagram-ws{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.diagram-ws .diagram-panel{display:flex;flex-direction:column;gap:6px;padding:14px 16px}.diagram-ws .diagram-row{display:flex;align-items:center;gap:8px}.diagram-ws .wins{display:flex;flex-direction:column;gap:8px;align-items:flex-start}"
|
|
@@ -38,7 +38,7 @@ npx @agent-native/core@latest deploy
|
|
|
38
38
|
同來源部署免費為您帶來兩大勝利:
|
|
39
39
|
|
|
40
40
|
- **共用登入工作階段** — 登入任何應用程式,每個應用程式都會登入。
|
|
41
|
-
- **零設定跨應用程式 A2A** — 從郵件中標記 `@calendar`
|
|
41
|
+
- **零設定跨應用程式 A2A** — 從郵件中標記 `@calendar` 是同來源取得;兄弟姐妹之間沒有 CORS、JWT 簽名。
|
|
42
42
|
|
|
43
43
|
發布輸出:
|
|
44
44
|
|
|
@@ -58,17 +58,17 @@ npx @agent-native/core@latest deploy --preset netlify
|
|
|
58
58
|
npx @agent-native/core@latest deploy --preset vercel
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
設定提供者建置指令時,請使用與 `--build-only` 相同的指令。 Vercel 應執行 `npx @agent-native/core@latest deploy --preset vercel --build-only`;該指令直接寫入 `.vercel/output`,因此工作區路由不需要 `vercel.json`。
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
這使得 Slack、入站 webhooks 和跨應用 A2A
|
|
65
|
-
|
|
63
|
+
託管工作區建置需要部署提供者環境中的 `A2A_SECRET`。
|
|
64
|
+
這使得 Slack、入站 webhooks 和跨應用 A2A 透過簽名恢復工作
|
|
65
|
+
背景處理器。本機 `--build-only` 工件檢查在沒有它的情況下仍然可以執行。
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
仍然支援每個應用程式獨立部署 - 只是 `cd apps/<name> && npx @agent-native/core@latest build` 就像獨立的腳手架。
|
|
68
68
|
|
|
69
69
|
## 它是如何工作的 {#how-it-works}
|
|
70
70
|
|
|
71
|
-
當您執行`npx @agent-native/core@latest build`時,Nitro將用戶端SPA和伺服器API建置為`.output/`:
|
|
71
|
+
當您執行`npx @agent-native/core@latest build`時,Nitro將用戶端SPA和伺服器 API 建置為`.output/`:
|
|
72
72
|
|
|
73
73
|
```an-file-tree title="建置輸出"
|
|
74
74
|
{
|
|
@@ -118,7 +118,7 @@ npx @agent-native/core@latest build
|
|
|
118
118
|
node .output/server/index.mjs
|
|
119
119
|
```
|
|
120
120
|
|
|
121
|
-
設定`PORT
|
|
121
|
+
設定`PORT`設定監聽連接埠(預設:`3000`)。
|
|
122
122
|
|
|
123
123
|
使用目前的 Node.js LTS 系列進行正式環境部署。截至 2026 年 5 月,
|
|
124
124
|
是Node.js 24; Node.js 20 已於 2026 年 4 月 30 日達到使用壽命,不再適用
|
|
@@ -154,7 +154,7 @@ export default defineConfig({
|
|
|
154
154
|
});
|
|
155
155
|
```
|
|
156
156
|
|
|
157
|
-
|
|
157
|
+
透過 Vercel CLI 或 git Push 進行部署:
|
|
158
158
|
|
|
159
159
|
```bash
|
|
160
160
|
vercel deploy
|
|
@@ -172,7 +172,7 @@ npx @agent-native/core@latest deploy --preset vercel
|
|
|
172
172
|
npx @agent-native/core@latest deploy --preset vercel --build-only
|
|
173
173
|
```
|
|
174
174
|
|
|
175
|
-
工作區建置將每個應用程式的 Nitro `vercel` 輸出複製到根 `.vercel/output`
|
|
175
|
+
工作區建置將每個應用程式的 Nitro `vercel` 輸出複製到根 `.vercel/output` 中,為每個函式提供自己的掛載路徑環境,並編寫為 `/<app-id>` 處的應用程式提供服務的路由設定。
|
|
176
176
|
|
|
177
177
|
## Netlify {#netlify}
|
|
178
178
|
|
|
@@ -187,13 +187,13 @@ export default defineConfig({
|
|
|
187
187
|
|
|
188
188
|
...或在建置時設定 `NITRO_PRESET=netlify`。
|
|
189
189
|
|
|
190
|
-
|
|
190
|
+
對於工作區,透過執行以下指令從一個 Netlify 站點部署每個應用:
|
|
191
191
|
|
|
192
192
|
```bash
|
|
193
193
|
npx @agent-native/core@latest deploy --preset netlify
|
|
194
194
|
```
|
|
195
195
|
|
|
196
|
-
工作區建置在 `dist/_workspace_static/` 下寫入靜態資產,並將每個應用程式路由到自己的 Netlify
|
|
196
|
+
工作區建置在 `dist/_workspace_static/` 下寫入靜態資產,並將每個應用程式路由到自己的 Netlify 函式,而無需強制資產重新導向,因此像 `/mail/assets/...` 這樣的檔案會在伺服器函式處理應用程式路由之前靜態提供服務。
|
|
197
197
|
|
|
198
198
|
## Cloudflare 頁面 {#cloudflare-pages}
|
|
199
199
|
|
|
@@ -228,7 +228,7 @@ export default defineConfig({
|
|
|
228
228
|
|
|
229
229
|
| 變數 | 描述 |
|
|
230
230
|
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
231
|
-
| `PORT` |
|
|
231
|
+
| `PORT` | 伺服器連接埠(僅限Node.js) |
|
|
232
232
|
| `NITRO_PRESET` | 在建置時覆蓋建置預設 |
|
|
233
233
|
| `APP_BASE_PATH` | 將應用程式安裝在前綴下(例如 `/mail`)。由`npx @agent-native/core@latest deploy`自動設定;保持未設定為獨立。 |
|
|
234
234
|
| `AGENT_PROD_CODE_EXECUTION` | 可選的正式環境程式碼執行模式:`off`(預設)、`sandboxed` 或 `trusted`。參見[Production Code Execution](#production-code-execution)。 |
|
|
@@ -242,9 +242,9 @@ export default defineConfig({
|
|
|
242
242
|
| 變數 | 描述 |
|
|
243
243
|
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
244
244
|
| `BETTER_AUTH_SECRET` | 32+ 字符隨機字串。簽署工作階段 cookies AND 是 `OAUTH_STATE_SECRET` 和 `SECRETS_ENCRYPTION_KEY` 的後備 HMAC。硬性要求:如果在正式環境中缺失,框架將在啟動時拋出異常。 |
|
|
245
|
-
| `BETTER_AUTH_URL` |
|
|
245
|
+
| `BETTER_AUTH_URL` | 此應用程式的公開放原始碼(例如 `https://mail.example.com`)。用於cookie域和 OAuth 重新導向構造。 |
|
|
246
246
|
| `ANTHROPIC_API_KEY` | API 嵌入式正式環境代理金鑰。 **在多租戶部署中**,當使用者沒有每使用者金鑰時,框架拒絕回退到此 - 需要自帶金鑰。單租戶自託管安裝將其用作全域金鑰。 |
|
|
247
|
-
| `OAUTH_STATE_SECRET` | 用於 OAuth 狀態信封(Google、Atlassian、Zoom)的專用 HMAC 金鑰。未設定時回落到 `BETTER_AUTH_SECRET
|
|
247
|
+
| `OAUTH_STATE_SECRET` | 用於 OAuth 狀態信封(Google、Atlassian、Zoom)的專用 HMAC 金鑰。未設定時回落到 `BETTER_AUTH_SECRET`,但建議使用專用值,以便旋轉一個值不會使另一個值無效。透過`openssl rand -hex 32`生成。 |
|
|
248
248
|
| `A2A_SECRET` | 為應用程式間 A2A JSON-RPC 共用 HMAC。如果沒有它,每個 A2A 端點和 `/_agent-native/integrations/process-task` 自發射端點在正式環境中都會返回 503。 |
|
|
249
249
|
| `SECRETS_ENCRYPTION_KEY` | AES-256-GCM 靜態加密機密保管庫的金鑰。回落至 `BETTER_AUTH_SECRET`。當兩者都未設定時,正式環境中會發生硬故障。 |
|
|
250
250
|
|
|
@@ -254,11 +254,11 @@ OAuth 提供者憑證(Google、GitHub)、靜態 MCP 承載後備(`ACCESS_T
|
|
|
254
254
|
|
|
255
255
|
### 入站Webhooks {#env-webhooks}
|
|
256
256
|
|
|
257
|
-
|
|
257
|
+
每個訊息整合在正式環境中都需要自己的簽名金鑰(當金鑰丟失時,處理常式會因偽造請求而失敗關閉)。每個積分變數列在 [Messaging](/docs/messaging) 和 [Security](/docs/security) 中。僅對於本機開發,`AGENT_NATIVE_ALLOW_UNVERIFIED_WEBHOOKS=1` 選取返回“警告並接受”——永遠不要在產品中設定它。
|
|
258
258
|
|
|
259
259
|
### 安全設定(選取加入) {#security-config}
|
|
260
260
|
|
|
261
|
-
|
|
261
|
+
預設值是嚴格的。一些選取加入標誌放松了行為(偵錯堆堆疊跟蹤、未經驗證的 webhooks、工作區範圍的金鑰回退、MCP 集線器多組織切換、執行時 env-var 寫入)。它們的安全權衡紀錄在 [Security](/docs/security) 中。除非您特別想要寬松的路徑,否則不要設定它們。
|
|
262
262
|
|
|
263
263
|
### 工作區.env繼承 {#env-inheritance}
|
|
264
264
|
|
|
@@ -272,7 +272,7 @@ OAuth 提供者憑證(Google、GitHub)、靜態 MCP 承載後備(`ACCESS_T
|
|
|
272
272
|
openssl rand -hex 32
|
|
273
273
|
```
|
|
274
274
|
|
|
275
|
-
|
|
275
|
+
透過替換每個執行個體上的環境變數並重新部署來輪換它們 — 使用舊金鑰簽名的工作階段/OAuth 狀態信封將變得無效,因此使用者可能需要再次登入。
|
|
276
276
|
|
|
277
277
|
## 正式環境代理工具 {#production-agent-tools}
|
|
278
278
|
|
|
@@ -303,9 +303,9 @@ export default createAgentChatPlugin({
|
|
|
303
303
|
|
|
304
304
|
## 正式環境程式碼執行 {#production-code-execution}
|
|
305
305
|
|
|
306
|
-
|
|
306
|
+
預設情況下,正式環境代理在沒有程式碼執行工具的情況下執行。他們可以呼叫應用程式 actions、資料庫工具、MCP 工具、瀏覽器/工作階段工具和其他已註冊的框架工具,但他們無法獲得 shell 或檔案系統存取權限。
|
|
307
307
|
|
|
308
|
-
|
|
308
|
+
節點相容的部署可以透過代理聊天外掛或環境覆蓋選取正式環境程式碼執行:
|
|
309
309
|
|
|
310
310
|
```ts
|
|
311
311
|
// server/plugins/agent-chat.ts
|
|
@@ -317,12 +317,12 @@ export default createAgentChatPlugin({
|
|
|
317
317
|
可用模式有:
|
|
318
318
|
|
|
319
319
|
- `off` — 預設值。正式環境環境中未註冊任何程式碼執行工具。
|
|
320
|
-
- `sandboxed` — 註冊 `run-code`,一個隔離的 Node.js JavaScript 執行器,具有清理環境、新的臨時目錄、輸出/時間限制以及本機主機橋,以連線到允許列入名單的註冊工具,例如 `provider-api-request`、`provider-api-docs`、`provider-api-catalog`、`web-request`
|
|
321
|
-
- `trusted` — 註冊 `run-code` 以及完整的編碼工具註冊表(`bash`、`read`、`edit`、`write
|
|
320
|
+
- `sandboxed` — 註冊 `run-code`,一個隔離的 Node.js JavaScript 執行器,具有清理環境、新的臨時目錄、輸出/時間限制以及本機主機橋,以連線到允許列入名單的註冊工具,例如 `provider-api-request`、`provider-api-docs`、`provider-api-catalog`、`web-request` 以及使用的資源支援的工作區檔案橋作者:`workspaceRead` / `workspaceWrite`。
|
|
321
|
+
- `trusted` — 註冊 `run-code` 以及完整的編碼工具註冊表(`bash`、`read`、`edit`、`write`)。僅將其用於單租戶或操作者控制的部署,其中有意對主機進行完全 shell 存取。
|
|
322
322
|
|
|
323
323
|
設定 `AGENT_PROD_CODE_EXECUTION=sandboxed` 或 `AGENT_PROD_CODE_EXECUTION=trusted` 以覆蓋特定部署的外掛選項,而無需更改程式碼。即使外掛選項啟用了它,`AGENT_PROD_CODE_EXECUTION=off` 也會強制程式碼執行。
|
|
324
324
|
|
|
325
|
-
`run-code`
|
|
325
|
+
`run-code` 沙箱是行程級隔離,而不是操作系統容器。它從子行程環境中剝離應用程式機密,並在可用時使用 Node 權限模型,但出站網路不會被 Node 本身阻止;經過驗證的呼叫應透過該工具公開的橋接助手。
|
|
326
326
|
|
|
327
327
|
## 在正式環境中更新 UI {#updating-ui-in-production}
|
|
328
328
|
|
|
@@ -330,19 +330,19 @@ agent-native 的核心功能之一是代理可以修改應用程式的來源程
|
|
|
330
330
|
|
|
331
331
|
在 [production code execution](#production-code-execution) 關閉的標準正式環境部署中,代理可以存取應用程式工具(actions、資料庫、MCP),但不能存取檔案系統。這意味著代理可以讀取和寫入資料、執行 actions 以及與外部服務互動 - 但它無法編輯 React 元件或在已部署的執行個體上新增新路由。
|
|
332
332
|
|
|
333
|
-
### Builder.io
|
|
333
|
+
### Builder.io:製作中的視覺化編輯 {#builderio}
|
|
334
334
|
|
|
335
|
-
[Builder.io](https://www.builder.io)
|
|
335
|
+
[Builder.io](https://www.builder.io) 透過提供託管雲端環境來解決此問題,在該環境中,代理保留在正式環境中修改應用程式的 UI 的能力。將您的儲存庫連線到 Builder.io 並直接提示 UI 更改 - 無需重新部署。
|
|
336
336
|
|
|
337
337
|
**工作原理:**
|
|
338
338
|
|
|
339
|
-
1.
|
|
340
|
-
2. Builder.io
|
|
341
|
-
3. 提示代理進行 UI 更改 -
|
|
339
|
+
1. 將您的 Agent-Native 儲存庫連線到 Builder.io
|
|
340
|
+
2. Builder.io 提供具有代理、視覺化編輯和即時協作的雲端框架
|
|
341
|
+
3. 提示代理進行 UI 更改 - 它會即時編輯您的元件、路由和樣式
|
|
342
342
|
4. 更改將提交回您的儲存庫
|
|
343
343
|
|
|
344
344
|
有關嵌入式代理面板與雲端框架選項的更多資訊,請參閱 [Frames](/docs/frames)。
|
|
345
345
|
|
|
346
346
|
## 多執行個體部署 {#multi-instance}
|
|
347
347
|
|
|
348
|
-
|
|
348
|
+
Agent-Native 應用程式透過 Drizzle 將所有狀態儲存在 SQL 中,並透過 [polling](/docs/key-concepts#polling-sync) 與資料庫同步 UI — 無檔案系統狀態、無置頂工作階段、無記憶快取。這意味著多執行個體和無伺服器部署開箱即用:將每個執行個體指向同一個 `DATABASE_URL`,它們會自動聚合。請參閱 [Key Concepts — Data in SQL](/docs/key-concepts#data-in-sql) 和 [Portability](/docs/key-concepts#hosting-agnostic)。
|
|
@@ -5,13 +5,13 @@ description: "工作區控制平面:秘密庫、整合中心、跨應用程式
|
|
|
5
5
|
|
|
6
6
|
# 調度
|
|
7
7
|
|
|
8
|
-
Dispatch 是中央應用程式,位於工作區中所有其他應用程式的前面,負責處理機密、整合、訊息傳遞和跨應用程式委派。它是**工作區控制平面** -
|
|
8
|
+
Dispatch 是中央應用程式,位於工作區中所有其他應用程式的前面,負責處理機密、整合、訊息傳遞和跨應用程式委派。它是**工作區控制平面** - 您的團隊與之交談的單一代理、即時的單一位置憑證以及決定哪個專業應用程式應處理給定請求的單一路由器。
|
|
9
9
|
|
|
10
|
-
> **調度範本與 `@agent-native/dispatch` 包。** 此頁面介紹調度應用程式/範本概念 -
|
|
10
|
+
> **調度範本與 `@agent-native/dispatch` 包。** 此頁面介紹調度應用程式/範本概念 - 它的作用以及您為什麼需要它。 `@agent-native/dispatch` npm 包是單獨發布的執行時,它將 Dispatch 範本的伺服器邏輯(保管庫、整合、目標、計畫作業和跨應用程式委派)捆綁為擴充功能它的工作區的嵌入式包。對於腳手架應用程式本身(路由、螢幕、代理指南),請參閱 [Dispatch template](/docs/template-dispatch)。
|
|
11
11
|
|
|
12
|
-
如果沒有 Dispatch,多應用工作區中的每個應用最終都會重新實現相同的管道:自己的 Slack
|
|
12
|
+
如果沒有 Dispatch,多應用工作區中的每個應用最終都會重新實現相同的管道:自己的 Slack 機器人、自己的秘密儲存、自己的計畫作業、自己的工作區指令副本。旋轉一把 API 鑰匙會變成十次重新部署。新增一個新策略會變成十次複製貼上。 Dispatch 將所有這些都集中在一個應用程式中,以便其他應用程式能夠專注於自己的領域。
|
|
13
13
|
|
|
14
|
-
```an-diagram title="Dispatch 作為工作區控制平面" summary="一個收件箱、一個保管庫、一個 MCP
|
|
14
|
+
```an-diagram title="Dispatch 作為工作區控制平面" summary="一個收件箱、一個保管庫、一個 MCP 閘道和共用資源位於域應用程式前面,Dispatch 作為 A2A 對等方進行存取。"
|
|
15
15
|
{
|
|
16
16
|
"html": "<div class=\"dsp-hub\"><div class=\"diagram-node\">Users & external agents<br><small class=\"diagram-muted\">Slack · 郵件 · Telegram · WhatsApp · MCP</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">↓</div><div class=\"diagram-panel dsp-control\" data-rough><span class=\"diagram-pill accent\">Dispatch — control plane</span><div class=\"dsp-caps\"><span class=\"diagram-pill\">中央收件箱</span><span class=\"diagram-pill\">金鑰保險庫</span><span class=\"diagram-pill\">跨應用委派</span><span class=\"diagram-pill\">MCP gateway</span><span class=\"diagram-pill\">工作區資源</span></div></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">↓</div><div class=\"dsp-peers\"><div class=\"diagram-box\" data-rough>Mail</div><div class=\"diagram-box\" data-rough>Calendar</div><div class=\"diagram-box\" data-rough>Analytics</div></div><small class=\"diagram-muted\">domain apps — A2A peers</small></div>",
|
|
17
17
|
"css": ".dsp-hub{display:flex;flex-direction:column;align-items:center;gap:10px}.dsp-hub .dsp-control{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.dsp-hub .dsp-caps{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.dsp-hub .dsp-peers{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}"
|
|
@@ -23,50 +23,50 @@ Dispatch 是中央應用程式,位於工作區中所有其他應用程式的
|
|
|
23
23
|
滿足以下任一條件時進行調度:
|
|
24
24
|
|
|
25
25
|
- 您正在執行 [multi-app workspace](/docs/multi-app-workspace) — 郵件、行事曆、分析、內容 — 並且您不希望每個應用有一個 Slack 機器人。
|
|
26
|
-
- 您希望
|
|
26
|
+
- 您希望 **為“代理”提供一個收件箱**,以便使用者透過 DM 傳送單一機器人,然後由正確的專業應用程式接手幕後的工作。
|
|
27
27
|
- 您擁有多個應用程式需要的**工作區範圍的秘密**(Stripe 金鑰、OpenAI 金鑰、第三方 API 權杖),並且您需要一個保管庫,而不是將值複製到每個 `.env` 中。
|
|
28
|
-
-
|
|
28
|
+
- 您希望在敏感更改(儲存的目標、策略編輯)之前有一個**執行時核准流程**,以便非管理員可以請求,而管理員可以在不部署程式碼的情況下退出。
|
|
29
29
|
- 您需要工作區中的應用程式繼承的**共用 skills、說明、代理設定檔案和 MCP 伺服器** - 更改一次,覆蓋所有。
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
如果您獨立執行單一範本,則不需要 Dispatch — 每個範本都可以直接連線自己的訊息傳遞整合。有關獨立設定,請參閱 [Messaging](/docs/messaging)。
|
|
32
32
|
|
|
33
33
|
## Dispatch 的作用 {#what-it-does}
|
|
34
34
|
|
|
35
35
|
七種功能,全部位於其他應用程式使用的同一工作區資料庫之上:
|
|
36
36
|
|
|
37
|
-
| 能力
|
|
38
|
-
|
|
|
39
|
-
| **中央收件箱**
|
|
40
|
-
| **秘密金庫**
|
|
41
|
-
| **跨應用委托**
|
|
42
|
-
| **統一MCP
|
|
43
|
-
| **工作區資源**
|
|
44
|
-
| **夢想**
|
|
45
|
-
|
|
|
37
|
+
| 能力 | 它給你什麼 | 設定 |
|
|
38
|
+
| ----------------- | --------------------------------------------------------------------- | --------------------------------------------------------- |
|
|
39
|
+
| **中央收件箱** | Slack、電子郵件、Telegram、WhatsApp 均透過共用記憶 + 工具到達一個代理 | **設定 → 訊息傳送** ([Messaging](/docs/messaging)) |
|
|
40
|
+
| **秘密金庫** | 將每個憑證儲存一次;在每個應用程式的一處輪換 | **保管庫** + 存取模式(所有應用程式或手動) |
|
|
41
|
+
| **跨應用委托** | 透過 A2A 將請求路由到正確的專業應用並線上程內回覆 | 自動([A2A](/docs/a2a-protocol)) |
|
|
42
|
+
| **統一 MCP 閘道** | 用於外部代理的一個 MCP 連線器可到達每個授權的工作區應用 | [External Agents](/docs/external-agents) |
|
|
43
|
+
| **工作區資源** | 作者 skills/說明/設定檔案一次;應用程式在執行時繼承它們 | **資源**([Workspace](/docs/workspace#global-resources)) |
|
|
44
|
+
| **夢想** | 審查過去的執行/意見回饋並提出持久的改進建議供您核准 | **夢想**分頁 |
|
|
45
|
+
| **核准流程** | 控制行內管理審核背後的敏感執行時更改 | **調度核准政策** |
|
|
46
46
|
|
|
47
47
|
下面詳細介紹了每項內容。
|
|
48
48
|
|
|
49
49
|
### 中央收件箱
|
|
50
50
|
|
|
51
|
-
Slack、電子郵件、Telegram 和 WhatsApp 都流入 Dispatch
|
|
51
|
+
Slack、電子郵件、Telegram 和 WhatsApp 都流入 Dispatch 的代理迴圈。在**設定 → 訊息傳送**中連線每個平台一次,每個管道都會使用相同的記憶和工具到達相同的代理。 Slack 私信 和傳送給 `agent@yourcompany.com` 的電子郵件最終會成為一個對話歷史紀錄中的兩個表面,而不是兩個斷開連線的機器人。請參閱 [Messaging](/docs/messaging) 以取得憑證和 Webhook URL。
|
|
52
52
|
|
|
53
53
|
### 秘密金庫
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
將憑證儲存在 Dispatch 的保管庫中一次。預設情況下,保管庫存取權限是**所有應用程式**:每個儲存的金鑰均可用於每個工作區應用程式,並且 `sync-vault-to-app` 將完整保管庫推送到目標應用程式。需要更嚴格分離的工作空間可以將保管庫切換到**手動**模式,在同步之前需要明確的每個應用程式授權。非管理員可以**請求**應用程式的秘密;管理員**核准**,這會建立秘密,並在手動工作流程中建立授權。每次讀取、授予、同步和輪換都會紀錄在審核記錄中。這使得“旋轉 OpenAI 鍵”成為跨十個應用而不是十個 PR 的一鍵操作。
|
|
56
56
|
|
|
57
57
|
### 跨應用委托
|
|
58
58
|
|
|
59
|
-
Dispatch 自動發現工作區中的其他應用程式作為 A2A 對等體 - 無需手動註冊,無需每個應用程式設定。當使用者在 Slack 中詢問“匯總上週的註冊情況”時,Dispatch
|
|
59
|
+
Dispatch 自動發現工作區中的其他應用程式作為 A2A 對等體 - 無需手動註冊,無需每個應用程式設定。當使用者在 Slack 中詢問“匯總上週的註冊情況”時,Dispatch 會將其識別為分析請求,並透過 [A2A](/docs/a2a-protocol) 呼叫分析應用程式。當他們詢問“起草給 Alice 的回覆”時,它會路由到郵件應用程式。 Dispatch 將最終答案發布回原始對話串中。行為規則存在於調度代理的指令中:域工作屬於域應用程式。 Dispatch 是協調者,而不是專家。
|
|
60
60
|
|
|
61
|
-
### 統一MCP
|
|
61
|
+
### 統一 MCP 閘道
|
|
62
62
|
|
|
63
|
-
Dispatch
|
|
63
|
+
Dispatch 可以是外部代理的單一 MCP 連線器:在 Claude、ChatGPT、Codex 或 Cursor 中新增一次 `https://dispatch.agent-native.com/_agent-native/mcp`,一次授權可到達每個授予的工作區應用程式,而不是每個應用程式一個連線器。請參閱 [External Agents](/docs/external-agents) 了解完整的連線流程、應用程式授權、OAuth 和行內 MCP 應用程式預覽。
|
|
64
64
|
|
|
65
65
|
```an-api
|
|
66
66
|
{
|
|
67
67
|
"method": "POST",
|
|
68
68
|
"path": "/_agent-native/mcp",
|
|
69
|
-
"summary": "統一MCP
|
|
69
|
+
"summary": "統一 MCP 閘道端點",
|
|
70
70
|
"description": "The single MCP connector URL external agents add (e.g. `https://dispatch.agent-native.com/_agent-native/mcp`). One authorization here reaches every **granted** workspace app instead of wiring one connector per app. App grants, OAuth, and inline MCP App previews are covered in [External Agents](/docs/external-agents).",
|
|
71
71
|
"auth": "Standard remote MCP OAuth, handled by the framework. The granted-app set scopes which workspace apps the connector can reach.",
|
|
72
72
|
"responses": [
|
|
@@ -77,55 +77,55 @@ Dispatch 可以是外部代理的單個 MCP 連線器:在 Claude、ChatGPT、C
|
|
|
77
77
|
|
|
78
78
|
### 工作區資源
|
|
79
79
|
|
|
80
|
-
Skills、護欄指令、代理設定檔案和參考資源可以在 Dispatch 中創作一次,並由工作區的其餘部分繼承。 **所有應用程式**範圍的資源是全域的:Dispatch
|
|
80
|
+
Skills、護欄指令、代理設定檔案和參考資源可以在 Dispatch 中創作一次,並由工作區的其餘部分繼承。 **所有應用程式**範圍的資源是全域的:Dispatch 在工作區範圍記憶儲它們一次,每個應用程式代理在執行時讀取它們。它們不會複製到每個應用程式中,並且沒有手動工作區資源同步步驟。應用共用資源和個人資源可以在本機覆蓋或縮小工作區預設值。
|
|
81
81
|
|
|
82
82
|
請參閱 [Workspace — Global resources](/docs/workspace#global-resources) 了解規範路徑表、入門包和覆蓋模型。
|
|
83
83
|
|
|
84
|
-
MCP 伺服器資源使用 JSON,並且有意僅限於 HTTP
|
|
84
|
+
MCP 伺服器資源使用 JSON,並且有意僅限於 HTTP。將權杖儲存在
|
|
85
85
|
調度 Vault,將這些金鑰授予或同步到目標應用程式,並引用它們
|
|
86
86
|
來自帶有 `${keys.NAME}` 的標頭,因此原始憑證永遠不會存在於
|
|
87
87
|
資源主體。
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
**資源**頁面突出顯示推薦的入門包,以便管理員可以快速檢視存在哪些檔案、恢復丟失的入門檔案而不覆蓋現有檔案,以及編輯其內容。展開任何資源以預覽所選應用程式/使用者的有效執行時堆堆疊。每個應用程式卡還有一個**脈絡**檢視,準確顯示該應用程式接收到的內容。
|
|
90
90
|
|
|
91
91
|
### 夢想
|
|
92
92
|
|
|
93
|
-
Dispatch Dreams
|
|
93
|
+
Dispatch Dreams 會審查之前的代理執行、意見回饋、評估和重複的失敗,以提出持久的改進建議。夢想報告是一個審查表面,而不是無聲重寫:它可以建議個人記憶更新、陳舊記憶清理、共用 `LEARNINGS.md` 編輯、工作區指令/技能/知識/代理資源或重複作業,並且每個建議都連結回證明其合理性的執行。共用指令和團隊範圍的資源在應用之前需要進行審查,特別是當證據來自入站 Slack、電子郵件、Telegram、WhatsApp 或網路內容時。
|
|
94
94
|
|
|
95
95
|
在提出寫入之前,Dreams 將證據與個人記憶指數、現有的 `memory/*.md` 筆記和共用的 `LEARNINGS.md` 進行比較。如果已捕獲課程,則報告會紀錄該課程已被跳過;如果相關的個人記憶看起來陳舊,提案會針對現有筆記而不是建立副本。
|
|
96
96
|
|
|
97
97
|
從 Dispatch 中的 **Dreams** 分頁開始。首先執行手動傳遞,開啟提案審核表以將目前目標與提案內容和來源證據進行比較,然後僅應用您想要保留的更改。一旦報告始終有用,Dispatch 就可以建立一個重複的理想工作,不斷生成提案,而無需自動應用共用或指令級更改。
|
|
98
98
|
|
|
99
|
-
###
|
|
99
|
+
### 核准流程
|
|
100
100
|
|
|
101
|
-
Dispatch
|
|
101
|
+
Dispatch 可以在管理員審核後控制敏感的執行時更改。如今,這涵蓋了**儲存的目的地**(代理可以主動傳送到的 Slack 管道和電子郵件地址)、共用/團隊**夢想提案**、所有應用程式**工作空間資源**建立/更新/刪除以及**調度核准策略**本身。啟用策略後,更改將排隊,並且代理直接在聊天中顯示行內核准預覽 - 管理員無需離開對話即可核准或拒絕。
|
|
102
102
|
|
|
103
|
-
## Slack訊息如何流經Dispatch {#flow}
|
|
103
|
+
## Slack 訊息如何流經Dispatch {#flow}
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
端對端地演練一個範例。使用者向機器人傳送私信:_“總結上週的註冊情況。”_
|
|
106
106
|
|
|
107
|
-
1. **Slack → webhook。** Dispatch 應用程式上的 Slack `POST` 到 `/_agent-native/integrations/slack/webhook
|
|
108
|
-
2.
|
|
109
|
-
3. **調度代理決定。**代理讀取訊息,將“註冊”識別為分析意圖,並針對分析應用程式的 [A2A endpoint](/docs/a2a-protocol)
|
|
110
|
-
4.
|
|
107
|
+
1. **Slack → webhook。** Dispatch 應用程式上的 Slack `POST` 到 `/_agent-native/integrations/slack/webhook`。處理常式驗證簽名並**將一行插入 `integration_pending_tasks`**,然後將自定位的 `POST` 觸發到其自己的處理器並立即返回 `200`,以便 Slack 不會重試。
|
|
108
|
+
2. **新處理器執行。**處理器端點在全新的函式執行中執行,具有自己的完全超時。它以原子方式聲明工作並啟動代理迴圈。
|
|
109
|
+
3. **調度代理決定。**代理讀取訊息,將“註冊”識別為分析意圖,並針對分析應用程式的 [A2A endpoint](/docs/a2a-protocol) 呼叫 `call-agent`。實際的 SQL 工作在那裡執行。
|
|
110
|
+
4. **線上程中發布回覆。**分析代理返回結果。 Dispatch 將其格式化並回發到使用者寫入的同一個 Slack 對話串中,如果存在連結身分,則使用連結身分(因此代理根據請求者的權限進行操作,而不是工作區所有者的權限)。
|
|
111
111
|
5. **如果出現任何問題則進行恢復。**如果處理器在執行中當機 — A2A 超時、下游代理錯誤、功能凍結 — 重試作業每 60 秒清除卡住的工作並重新啟動處理器。在工作被標記為 `failed` 之前最多嘗試 3 次。
|
|
112
112
|
|
|
113
|
-
```an-diagram title="
|
|
113
|
+
```an-diagram title="透過 Dispatch 的 Slack 訊息" summary="Slack 排隊到 SQL 中,新的執行耗盡它,Dispatch 代理將域工作委托給 A2A,並且回覆返回到原始對話串。 60 秒重試作業可恢復任何在飛行中死亡的內容。"
|
|
114
114
|
{
|
|
115
|
-
"html": "<div class=\"dsp-flow\"><div class=\"dsp-row\"><div class=\"diagram-node\">Slack 私信<br><small class=\"diagram-muted\">\"summarize last week's signups\"</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-box\" data-rough><strong>/slack/webhook</strong><br><small class=\"diagram-muted\">驗證 + INSERT 待處理工作</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-pill ok\">200</div></div><div class=\"dsp-row\"><div class=\"diagram-box\" data-rough><strong>fresh processor</strong><br><small class=\"diagram-muted\">領取工作 · 啟動 Agent
|
|
115
|
+
"html": "<div class=\"dsp-flow\"><div class=\"dsp-row\"><div class=\"diagram-node\">Slack 私信<br><small class=\"diagram-muted\">\"summarize last week's signups\"</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-box\" data-rough><strong>/slack/webhook</strong><br><small class=\"diagram-muted\">驗證 + INSERT 待處理工作</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-pill ok\">200</div></div><div class=\"dsp-row\"><div class=\"diagram-box\" data-rough><strong>fresh processor</strong><br><small class=\"diagram-muted\">領取工作 · 啟動 Agent 迴圈</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-panel center\" data-rough><span class=\"diagram-pill accent\">Dispatch 代理決策</span><small class=\"diagram-muted\">analytics intent → call-agent</small></div></div><div class=\"dsp-row\"><div class=\"diagram-box\" data-rough>分析應用<br><small class=\"diagram-muted\">A2A 對等方 · 執行 SQL 工作</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-pill ok\">reply posted in thread</div></div><div class=\"diagram-panel dsp-retry\" data-rough><span class=\"diagram-pill warn\">recovery</span> <span class=\"diagram-muted\">if the processor crashes — A2A timeout, downstream error, freeze — the 60s retry job re-fires it (≤3 attempts) so the Slack reply still arrives</span> <span class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">↻</span></div></div>",
|
|
116
116
|
"css": ".dsp-flow{display:flex;flex-direction:column;gap:12px}.dsp-flow .dsp-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dsp-flow .center{display:flex;flex-direction:column;align-items:center;gap:4px}.dsp-flow .dsp-retry{display:flex;align-items:center;gap:8px;flex-wrap:wrap}"
|
|
117
117
|
}
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
-
相同的流程適用於電子郵件、Telegram 和 WhatsApp —
|
|
120
|
+
相同的流程適用於電子郵件、Telegram 和 WhatsApp — 只是轉接器發生了變化。
|
|
121
121
|
|
|
122
122
|
## 可靠性故事 {#reliability}
|
|
123
123
|
|
|
124
|
-
整個管道的建置是為了在每個無伺服器主機(Netlify、Vercel、Cloudflare Workers
|
|
124
|
+
整個管道的建置是為了在每個無伺服器主機(Netlify、Vercel、Cloudflare Workers)上生存,而不依賴於特定於平台的背景執行 API。
|
|
125
125
|
|
|
126
|
-
- **Webhook → SQL 佇列 → 新執行處理器。**
|
|
127
|
-
- **A2A 連續輪詢。** 當 Dispatch 委托給另一個應用程式時,它會在有限的超時時間內輪詢下游工作。如果下游代理花費太長時間或當機,Dispatch 會紀錄延續,並且重試作業會拾取它 - 使用者的 Slack
|
|
128
|
-
- **自動簽名的跨應用程式 A2A。** 託管多應用程式工作區在部署時自動生成每個應用程式 A2A
|
|
126
|
+
- **Webhook → SQL 佇列 → 新執行處理器。** 代理迴圈永遠不會在 Webhook 處理常式內執行。處理常式的唯一工作是驗證、入隊並返回 200。單獨的新執行會耗盡佇列,因此緩慢的代理執行永遠不會佔用入站 Webhook 或導致平台重試。
|
|
127
|
+
- **A2A 連續輪詢。** 當 Dispatch 委托給另一個應用程式時,它會在有限的超時時間內輪詢下游工作。如果下游代理花費太長時間或當機,Dispatch 會紀錄延續,並且重試作業會拾取它 - 使用者的 Slack 回覆仍然到達。
|
|
128
|
+
- **自動簽名的跨應用程式 A2A。** 託管多應用程式工作區在部署時自動生成每個應用程式 A2A 憑證,因此同一工作區中的應用程式可以相互呼叫,而無需貼上 JWT 金鑰。 Dispatch 的代理發現層從工作區資料庫中讀取這些信用,因此新新增的應用程式會自動顯示為可呼叫對等點。
|
|
129
129
|
|
|
130
130
|
## 設定 {#setup}
|
|
131
131
|
|
|
@@ -133,9 +133,9 @@ Dispatch 可以在管理員審核後控制敏感的執行時更改。如今,
|
|
|
133
133
|
|
|
134
134
|
1. **搭建一個包含 Dispatch 的工作區。**執行 `npx @agent-native/core@latest create my-company-platform` 並選取 `dispatch` 以及您想要的任何域範本。 Dispatch 位於 `apps/dispatch`,其餘應用程式位於它旁邊。參見[Multi-App Workspace](/docs/multi-app-workspace)。
|
|
135
135
|
2. **連線訊息傳遞。** 在 Dispatch 中開啟 **設定 → 訊息傳遞**,然後點選連線 Slack、電子郵件、電報或 WhatsApp。表單欄位與 [Messaging](/docs/messaging) 檔案中的環境變數相匹配 - 請參閱那裡了解每個平台的需求。
|
|
136
|
-
3. **新增其他應用程式。**從每個域應用程式的工作區根執行 `npx @agent-native/core@latest add-app`。它們在 Dispatch 的 `list-workspace-apps` 中自動顯示為 A2A 對等體 —
|
|
136
|
+
3. **新增其他應用程式。**從每個域應用程式的工作區根執行 `npx @agent-native/core@latest add-app`。它們在 Dispatch 的 `list-workspace-apps` 中自動顯示為 A2A 對等體 — 無需手動註冊,無需編輯代理卡。一旦可以聯絡到他們的代理卡,Dispatch 就會開始委派給他們。
|
|
137
137
|
|
|
138
|
-
|
|
138
|
+
然後將憑證新增到保管庫並(可選)在**資源**下創作全域工作區資源。保管庫金鑰仍然可以根據存取模式同步或授予;所有應用程式工作區資源都會自動繼承。如果您需要每個應用程式的秘密隔離,請在授予單一應用程式之前將保管庫存取設定切換為手動。
|
|
139
139
|
|
|
140
140
|
## 另請參閱 {#see-also}
|
|
141
141
|
|