@agent-native/core 0.79.12 → 0.79.16
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 +29 -6
- package/corpus/core/src/deploy/build.ts +432 -42
- 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 +123 -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 +16 -6
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/collab/routes.d.ts +2 -2
- package/dist/deploy/build.d.ts +3 -1
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +372 -37
- 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/notifications/routes.d.ts +1 -1
- package/dist/observability/routes.d.ts +5 -5
- package/dist/resources/handlers.d.ts +3 -3
- package/dist/server/agent-engine-api-key-route.d.ts +2 -2
- 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/server/transcribe-voice.d.ts +1 -1
- package/dist/styles/agent-native.css +123 -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,22 +1,22 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "伺服器"
|
|
3
|
-
description: "Nitro
|
|
3
|
+
description: "Nitro 伺服器路由、外掛、框架安裝的路由、請求脈絡和 SQL 支援的同步。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# 伺服器
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Agent-Native 應用程式使用 [Nitro](https://nitro.build) 作為伺服器路由和外掛。大多數產品行為應該存在於 [Actions](/docs/actions) 中;自訂路由適用於 actions 不適合的協議表面:上傳、流式傳輸、公開頁面、webhooks、OAuth 回呼和特定於提供者的 API。
|
|
9
9
|
|
|
10
|
-
```an-diagram title="
|
|
10
|
+
```an-diagram title="伺服器上執行什麼" summary="操作是預設的。自訂檔案路由和框架安裝的路由共用相同的 Nitro 應用程式和相同的 SQL 資料庫。"
|
|
11
11
|
{
|
|
12
|
-
"html": "<div class=\"diagram-server\"><div class=\"diagram-col entry\"><div class=\"diagram-node\">瀏覽器 / UI</div><div class=\"diagram-node\"
|
|
12
|
+
"html": "<div class=\"diagram-server\"><div class=\"diagram-col entry\"><div class=\"diagram-node\">瀏覽器 / UI</div><div class=\"diagram-node\">代理迴圈</div><div class=\"diagram-node\">外部用戶端<br><small class=\"diagram-muted\">HTTP · MCP · A2A</small></div></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-panel\" data-rough><strong>Nitro 伺服器</strong><div class=\"diagram-row\"><span class=\"diagram-pill accent\">Actions</span><small class=\"diagram-muted\">預設表面</small></div><div class=\"diagram-row\"><span class=\"diagram-pill\">/_agent-native/*</span><small class=\"diagram-muted\">framework routes</small></div><div class=\"diagram-row\"><span class=\"diagram-pill\">/api/*</span><small class=\"diagram-muted\">custom file routes</small></div><div class=\"diagram-row\"><span class=\"diagram-pill\">plugins</span><small class=\"diagram-muted\">啟動:遷移、工作</small></div></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-box\" data-rough>SQL 資料庫<br><small class=\"diagram-muted\">Drizzle · 協調點</small></div></div>",
|
|
13
13
|
"css": ".diagram-server{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.diagram-server .diagram-col{display:flex;flex-direction:column;gap:10px}.diagram-server .diagram-panel{display:flex;flex-direction:column;gap:8px;padding:14px 16px}.diagram-server .diagram-row{display:flex;align-items:center;gap:8px}.diagram-server .diagram-arrow{font-size:22px;line-height:1}"
|
|
14
14
|
}
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
## 基於檔案的路由 {#file-based-routes}
|
|
18
18
|
|
|
19
|
-
`server/routes/` 和 Nitro
|
|
19
|
+
`server/routes/` 和 Nitro 中的路由將檔名對應到方法和路徑:
|
|
20
20
|
|
|
21
21
|
```text
|
|
22
22
|
server/routes/
|
|
@@ -42,14 +42,14 @@ export default defineEventHandler(() => ({
|
|
|
42
42
|
|
|
43
43
|
### 路由命名約定 {#route-naming-conventions}
|
|
44
44
|
|
|
45
|
-
|
|
|
46
|
-
| ------------------ |
|
|
47
|
-
| `index.get.ts` | GET
|
|
48
|
-
| `index.post.ts` | POST
|
|
49
|
-
| `[id].get.ts` | GET
|
|
50
|
-
| `[id].patch.ts` | PATCH
|
|
51
|
-
| `[id].delete.ts` | DELETE
|
|
52
|
-
| `[...slug].get.ts` | GET
|
|
45
|
+
| 檔名模式 | HTTP 方法 | 範例路徑 |
|
|
46
|
+
| ------------------ | --------- | ------------------------- |
|
|
47
|
+
| `index.get.ts` | GET | `/api/items` |
|
|
48
|
+
| `index.post.ts` | POST | `/api/items` |
|
|
49
|
+
| `[id].get.ts` | GET | `/api/items/:id` |
|
|
50
|
+
| `[id].patch.ts` | PATCH | `/api/items/:id` |
|
|
51
|
+
| `[id].delete.ts` | DELETE | `/api/items/:id` |
|
|
52
|
+
| `[...slug].get.ts` | GET | `/api/items/*` 或包羅萬象 |
|
|
53
53
|
|
|
54
54
|
## 首選 Actions 進行應用操作 {#actions-first}
|
|
55
55
|
|
|
@@ -57,16 +57,16 @@ export default defineEventHandler(() => ({
|
|
|
57
57
|
|
|
58
58
|
- 代理工具。
|
|
59
59
|
- 型別化前端掛鉤。
|
|
60
|
-
- `/_agent-native/actions/:name`下的HTTP端點。
|
|
61
|
-
- MCP 和 A2A
|
|
60
|
+
- `/_agent-native/actions/:name`下的 HTTP 端點。
|
|
61
|
+
- MCP 和 A2A 可呼叫工具。
|
|
62
62
|
- CLI 用於開發的指令。
|
|
63
63
|
|
|
64
64
|
僅當您需要路由型協議或二進制/流行為時才使用自訂 `/api/*` 路由。參見[Actions](/docs/actions)。
|
|
65
65
|
|
|
66
|
-
##
|
|
66
|
+
## 一次性文字完成 {#complete-text}
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
大多數人工智慧工作應透過代理聊天進行,以便使用者可以檢視、引導和審核
|
|
69
|
+
發生了什麼。對於有意不需要的窄伺服器端轉換
|
|
70
70
|
工具、聊天紀錄或執行狀態,使用 `completeText()` 作為顯式轉義
|
|
71
71
|
孵化。
|
|
72
72
|
|
|
@@ -93,15 +93,15 @@ export default defineAction({
|
|
|
93
93
|
});
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
-
`completeText()`
|
|
96
|
+
`completeText()` 透過與代理相同的設定引擎層執行
|
|
97
97
|
聊天,包括 Builder、Anthropic、AI SDK 提供者、使用者/應用模型預設值,
|
|
98
98
|
請求範圍的秘密和引擎規範化的錯誤。它僅適用於伺服器;不要
|
|
99
|
-
|
|
99
|
+
從用戶端程式碼呼叫模型提供者。如果操作是面向使用者的,則將其包裝起來
|
|
100
100
|
在一個操作中,以便 UI 和代理共用相同的功能。
|
|
101
101
|
|
|
102
|
-
##
|
|
102
|
+
## 請求脈絡和存取 {#request-context}
|
|
103
103
|
|
|
104
|
-
Actions
|
|
104
|
+
Actions 由框架自動安裝並與請求脈絡一起執行。自訂路由則不然。如果自訂路由讀取或寫入可擁有的資源,則載入工作階段並包裝工作:
|
|
105
105
|
|
|
106
106
|
```an-annotated-code title="將自訂路由範圍限定為請求使用者"
|
|
107
107
|
{
|
|
@@ -111,12 +111,12 @@ Actions 由框架自動安裝並與請求上下文一起執行。自訂路線則
|
|
|
111
111
|
"annotations": [
|
|
112
112
|
{
|
|
113
113
|
"lines": "7-10",
|
|
114
|
-
"label": "
|
|
114
|
+
"label": "自訂路由沒有自動脈絡",
|
|
115
115
|
"note": "與操作不同,檔案路由必須載入工作階段本身,並且在沒有經過驗證的使用者時無法關閉。"
|
|
116
116
|
},
|
|
117
117
|
{
|
|
118
118
|
"lines": "12-13",
|
|
119
|
-
"label": "
|
|
119
|
+
"label": "建立請求脈絡",
|
|
120
120
|
"note": "`runWithRequestContext` 使 user/org 在工作期間可供範圍界定助手使用。"
|
|
121
121
|
},
|
|
122
122
|
{
|
|
@@ -128,11 +128,11 @@ Actions 由框架自動安裝並與請求上下文一起執行。自訂路線則
|
|
|
128
128
|
}
|
|
129
129
|
```
|
|
130
130
|
|
|
131
|
-
`getDb
|
|
131
|
+
`getDb`是透過`server/db/index.ts`中的`createGetDb(schema)`為每個應用程式建立的,因此自訂路由從範本(`../../db/index.js`)匯入,而不是從`@agent-native/core/db`匯入;見[Database — Where the DB Client Lives](/docs/database#db-client)。不要在自訂路由中執行無作用域的 `db.select().from(ownableTable)`。
|
|
132
132
|
|
|
133
133
|
## 伺服器外掛 {#server-plugins}
|
|
134
134
|
|
|
135
|
-
外掛位於 `server/plugins/`
|
|
135
|
+
外掛位於 `server/plugins/` 中並在啟動時執行。將它們用於遷移、提供者設定、重複作業、整合轉接器和框架外掛設定。
|
|
136
136
|
|
|
137
137
|
```ts
|
|
138
138
|
// server/plugins/db.ts
|
|
@@ -164,28 +164,28 @@ export default runMigrations(
|
|
|
164
164
|
| 路由前綴 | 目的 |
|
|
165
165
|
| -------------------------------- | ---------------------------------------------------------------- |
|
|
166
166
|
| `/_agent-native/actions/:name` | 操作 HTTP 端點 |
|
|
167
|
-
| `/_agent-native/agent-chat` |
|
|
168
|
-
| `/_agent-native/poll` | SQL
|
|
167
|
+
| `/_agent-native/agent-chat` | 代理聊天迴圈 |
|
|
168
|
+
| `/_agent-native/poll` | SQL 支援的 UI 同步 |
|
|
169
169
|
| `/_agent-native/resources/*` | 工作區資源 |
|
|
170
170
|
| `/_agent-native/extensions/*` | 執行時擴充功能和擴充功能代理(舊別名:`/_agent-native/tools/*`) |
|
|
171
171
|
| `/_agent-native/integrations/*` | 訊息傳遞/webhook 整合 |
|
|
172
172
|
| `/_agent-native/a2a` | 代理到代理 JSON-RPC |
|
|
173
|
-
| `/_agent-native/mcp` | MCP端點
|
|
173
|
+
| `/_agent-native/mcp` | MCP 端點 |
|
|
174
174
|
| `/_agent-native/onboarding/*` | 設定清單 |
|
|
175
175
|
| `/_agent-native/observability/*` | 跟蹤、意見回饋、評估、實驗 |
|
|
176
|
-
| `/_agent-native/file-upload` |
|
|
176
|
+
| `/_agent-native/file-upload` | 檔案上傳提供者端點 |
|
|
177
177
|
|
|
178
178
|
自訂應用路由應使用 `/api/*`、公開應用路徑或不與 `/_agent-native/` 衝突的提供者特定回調路徑。
|
|
179
179
|
|
|
180
|
-
## SQL
|
|
180
|
+
## SQL 支援的同步 {#sync}
|
|
181
181
|
|
|
182
|
-
|
|
182
|
+
Agent-Native 不依賴於檔案系統觀察程式或置頂記憶狀態。當 actions 或框架助手更改資料時,資料庫同步版本會遞增。用戶端 `useDbSync()` 掛鉤輪詢 `/_agent-native/poll` 並使 React 查詢快取無效。
|
|
183
183
|
|
|
184
|
-
這適用於無伺服器和多執行個體部署,因為資料庫是協調點。如果您在 actions 之外編寫自訂突變,請使用框架助手或發出適當的同步失效,以便開啟 UI
|
|
184
|
+
這適用於無伺服器和多執行個體部署,因為資料庫是協調點。如果您在 actions 之外編寫自訂突變,請使用框架助手或發出適當的同步失效,以便開啟 UI 重新整理。
|
|
185
185
|
|
|
186
|
-
```an-diagram title="SQL-backed
|
|
186
|
+
```an-diagram title="SQL-backed 同步迴圈" summary="沒有觀察者,沒有置頂狀態。寫入會碰撞 SQL 中的版本;每個用戶端都會輪詢版本並重新取得。"
|
|
187
187
|
{
|
|
188
|
-
"html": "<div class=\"diagram-sync\"><div class=\"diagram-box\" data-rough>Action /
|
|
188
|
+
"html": "<div class=\"diagram-sync\"><div class=\"diagram-box\" data-rough>Action / 輔助函式<br><small class=\"diagram-muted\">mutates data</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-panel\" data-rough><strong>SQL 資料庫</strong><small class=\"diagram-muted\">sync version increments</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">←</div><div class=\"diagram-col\"><div class=\"diagram-node\">useDbSync()<br><small class=\"diagram-muted\">polls /_agent-native/poll</small></div><div class=\"diagram-pill ok\">invalidate caches → UI refreshes</div></div></div>",
|
|
189
189
|
"css": ".diagram-sync{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.diagram-sync .diagram-col{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.diagram-sync .diagram-arrow{font-size:22px;line-height:1}"
|
|
190
190
|
}
|
|
191
191
|
```
|
|
@@ -194,7 +194,7 @@ export default runMigrations(
|
|
|
194
194
|
{
|
|
195
195
|
"method": "GET",
|
|
196
196
|
"path": "/_agent-native/poll",
|
|
197
|
-
"summary": "
|
|
197
|
+
"summary": "返回目前的每個來源資料庫同步版本,以便用戶端可以偵測更改。",
|
|
198
198
|
"description": "`useDbSync()` calls this on an interval (and falls back to it when SSE is unavailable). When a returned version is higher than the client's last-seen value, the matching React Query caches are invalidated and refetch.",
|
|
199
199
|
"auth": "Session cookie (request-scoped identity)",
|
|
200
200
|
"responses": [
|
|
@@ -208,14 +208,14 @@ export default runMigrations(
|
|
|
208
208
|
入站 webhooks 應驗證、保留並快速返回。長時間執行的代理工作應使用整合佇列模式:
|
|
209
209
|
|
|
210
210
|
1. 驗證平台簽名或質詢。
|
|
211
|
-
2. 將持久工作插入SQL。
|
|
211
|
+
2. 將持久工作插入 SQL。
|
|
212
212
|
3. 自觸發簽名的處理器路由。
|
|
213
213
|
4. 立即返回 200。
|
|
214
|
-
5.
|
|
214
|
+
5. 讓新的處理器執行執行代理迴圈並發布結果。
|
|
215
215
|
|
|
216
|
-
```an-diagram title="整合佇列模式" summary="Webhook
|
|
216
|
+
```an-diagram title="整合佇列模式" summary="Webhook 處理常式以毫秒為單位返回;單獨的簽名執行執行緩慢的代理工作。"
|
|
217
217
|
{
|
|
218
|
-
"html": "<div class=\"diagram-webhook\"><div class=\"diagram-box\" data-rough>入站 webhook<br><small class=\"diagram-muted\">Slack · Stripe · email</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-panel\" data-rough><strong>Handler</strong><div class=\"diagram-step\"><span class=\"diagram-pill\">1</span><small class=\"diagram-muted\">verify signature</small></div><div class=\"diagram-step\"><span class=\"diagram-pill\">2</span><small class=\"diagram-muted\">將工作寫入 SQL</small></div><div class=\"diagram-step\"><span class=\"diagram-pill\">3</span><small class=\"diagram-muted\">self-fire processor</small></div><div class=\"diagram-step\"><span class=\"diagram-pill ok\">4</span><small class=\"diagram-muted\">return 200 now</small></div></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-box\" data-rough>Signed processor<br><small class=\"diagram-muted\"
|
|
218
|
+
"html": "<div class=\"diagram-webhook\"><div class=\"diagram-box\" data-rough>入站 webhook<br><small class=\"diagram-muted\">Slack · Stripe · email</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-panel\" data-rough><strong>Handler</strong><div class=\"diagram-step\"><span class=\"diagram-pill\">1</span><small class=\"diagram-muted\">verify signature</small></div><div class=\"diagram-step\"><span class=\"diagram-pill\">2</span><small class=\"diagram-muted\">將工作寫入 SQL</small></div><div class=\"diagram-step\"><span class=\"diagram-pill\">3</span><small class=\"diagram-muted\">self-fire processor</small></div><div class=\"diagram-step\"><span class=\"diagram-pill ok\">4</span><small class=\"diagram-muted\">return 200 now</small></div></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-box\" data-rough>Signed processor<br><small class=\"diagram-muted\">執行代理迴圈並發布結果</small></div></div>",
|
|
219
219
|
"css": ".diagram-webhook{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.diagram-webhook .diagram-panel{display:flex;flex-direction:column;gap:6px;padding:14px 16px}.diagram-webhook .diagram-step{display:flex;align-items:center;gap:8px}.diagram-webhook .diagram-arrow{font-size:22px;line-height:1}"
|
|
220
220
|
}
|
|
221
221
|
```
|
|
@@ -223,14 +223,14 @@ export default runMigrations(
|
|
|
223
223
|
> [!WARNING]
|
|
224
224
|
> 不要依賴返回回應後未等待的承諾 — 無伺服器主機會凍結執行。請參閱 [Messaging](/docs/messaging) 以了解規範整合佇列。
|
|
225
225
|
|
|
226
|
-
##
|
|
226
|
+
## 進階:逃生艙口 {#advanced-escape-hatches}
|
|
227
227
|
|
|
228
228
|
大多數範本永遠不需要這些。 Nitro 檔案路由和框架的代理
|
|
229
|
-
|
|
229
|
+
聊天外掛已經連線應用伺服器和正式環境代理處理常式。
|
|
230
230
|
僅在外部建置自訂伺服器整合時才使用它們
|
|
231
231
|
標準範本外掛堆堆疊。
|
|
232
232
|
|
|
233
|
-
###
|
|
233
|
+
### 程式化式 H3 伺服器 {#create-server}
|
|
234
234
|
|
|
235
235
|
對於直接需要 H3 應用的自訂包或測試,`createServer()`
|
|
236
236
|
返回預設定的應用程式和路由器:
|
|
@@ -247,12 +247,12 @@ router.get(
|
|
|
247
247
|
);
|
|
248
248
|
```
|
|
249
249
|
|
|
250
|
-
###
|
|
250
|
+
### 正式環境代理處理常式 {#agent-handler}
|
|
251
251
|
|
|
252
|
-
|
|
253
|
-
|
|
252
|
+
框架的代理聊天外掛已安裝正式環境代理處理常式
|
|
253
|
+
用於範本。僅在建置時直接呼叫`createProductionAgentHandler()`
|
|
254
254
|
標準範本外掛堆堆疊之外的自訂伺服器整合 -
|
|
255
|
-
|
|
255
|
+
否則透過`AGENTS.md`、skills、actions和
|
|
256
256
|
代理聊天外掛。
|
|
257
257
|
|
|
258
258
|
```ts
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "共用和隱私"
|
|
3
|
-
description: "Google Docs
|
|
3
|
+
description: "Google Docs 風格的共用,內建於框架中。每個使用者建立的資源(檔案、儀表板、設計、簡報、剪輯、錄音、表單)都會獲得相同的預設私人模型以及一致的共用 UI。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# 共用和隱私
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
使用者在 Agent-Native 應用程式中建立的每個資源(檔案、儀表板、設計、簡報、影片編輯、螢幕錄製、會議紀錄、表單、預訂連結)**預設情況下對建立者來說是私人的**。僅當建立者明確共用它或將其可見性更改為 `org` 或 `public` 時,其他人才能看到它。
|
|
9
9
|
|
|
10
10
|
它的外觀和工作方式與 Google 檔案類似。相同的共用按鈕、相同的對話框、相同的三層可見性模型、相同的每使用者/每組織授權 - 跨每個範本,無需針對每個應用進行重新設計。
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## 為什麼選取一種模型 {#why}
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
大多數應用程式框架都會共用每個功能的專案。結果:每個類似檔案的介面最終都會有自己的共用對話框、自己的權限模式、自己的存取檢查錯誤。在 Agent-Native 中,共用是一個**框架原語**。架構列、存取檢查幫助程式、共用快顯視窗和代理可呼叫共用 actions 均隨核心一起提供。新範本透過新增兩欄和一行註冊來獲得完整的分享故事。
|
|
15
15
|
|
|
16
16
|
這也意味著代理永遠不必為每個應用程式學習新的共用模型。告訴代理在任何範本中“與作為編輯者的 Alice 共用此內容”,並且會觸發相同的 `share-resource` 操作。
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## 三個可見性層級 {#visibility}
|
|
19
19
|
|
|
20
20
|
粗略的可見性取決於資源本身;細粒度的贈款位於同伴共用表中。
|
|
21
21
|
|
|
@@ -23,9 +23,9 @@ description: "Google Docs 風格的共用,內置於框架中。每個使用者
|
|
|
23
23
|
| --------- | ------------------------------------------------------------------------- |
|
|
24
24
|
| `private` | 所有者+明確授予的人員。 **每個新資源的預設值。** |
|
|
25
25
|
| `org` | 所有者+顯式授權+同一組織中的任何人(唯讀)。 |
|
|
26
|
-
| `public` |
|
|
26
|
+
| `public` | 所有者+明確授予+任何知道連結的人(唯讀)。不會出現在其他人的清單/搜尋中。 |
|
|
27
27
|
|
|
28
|
-
`public`
|
|
28
|
+
`public` 是一個故意安靜的層級:可以透過直接連結存取公開資源,但它**不會**顯示在其他使用者的側邊欄、清單或搜尋中。這使得“共用 URL 的公開”與“跨使用者發現的公開”分開。真正想要跨使用者發現的畫廊和範本目錄明確選取加入。
|
|
29
29
|
|
|
30
30
|
```an-diagram title="視野,向外擴大" summary="資源的粗略可見性奠定了基礎;伴隨表中的顯式共用授予會在頂部新增指定人員。"
|
|
31
31
|
{
|
|
@@ -46,7 +46,7 @@ description: "Google Docs 風格的共用,內置於框架中。每個使用者
|
|
|
46
46
|
|
|
47
47
|
## 涵蓋內容 {#covered}
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
每個儲存使用者創作作品的範本都使用此模型。具體來說:
|
|
50
50
|
|
|
51
51
|
- **內容** — 檔案
|
|
52
52
|
- **幻燈片** — 幻燈片
|
|
@@ -65,17 +65,17 @@ description: "Google Docs 風格的共用,內置於框架中。每個使用者
|
|
|
65
65
|
一些區域故意位於共用系統之外:
|
|
66
66
|
|
|
67
67
|
- **個人資料應用程式**(郵件、宏)- 按設計限定使用者範圍。沒有“共用我的收件箱”概念。
|
|
68
|
-
- **外部真實來源應用程式** -
|
|
68
|
+
- **外部真實來源應用程式** - 存取控制位於上游系統中,而不是 Agent-Native 應用程式中。
|
|
69
69
|
- **匿名公開 URLs** — 向登出使用者公開 URL 的表單發布 slugs 和預訂連結 slugs 是一個單獨的軸。它們與共用系統並存,而不是在其之上。
|
|
70
70
|
|
|
71
|
-
## 分享UI {#share-ui}
|
|
71
|
+
## 分享 UI {#share-ui}
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
每個可共用資源的標題中都有一個共用按鈕。點選它會開啟一個錨定到按鈕(不是模式)的快顯視窗,其中包含:
|
|
74
74
|
|
|
75
75
|
- 可見性選取器(`Private` / `Organization` / `Public link`)。
|
|
76
76
|
- “新增人員或團隊”自動完成 - 搜尋組織中的使用者或貼上電子郵件。
|
|
77
77
|
- 用於個人電子郵件授權的 Google 檔案樣式 `通知 people` 核取方塊。
|
|
78
|
-
-
|
|
78
|
+
- 包含角色選取器和刪除控制項的目前授權清單。
|
|
79
79
|
- 尊重目前可見性的複製連結按鈕。
|
|
80
80
|
|
|
81
81
|
共用按鈕是一次匯入:
|
|
@@ -90,11 +90,11 @@ import { ShareButton } from "@agent-native/core/client";
|
|
|
90
90
|
/>;
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
對於清單,請在每行旁邊放置一個 `<VisibilityBadge visibility={row.visibility} />`,以便使用者可以一目了然地了解哪些是私人的,哪些是共用的。
|
|
94
94
|
|
|
95
|
-
## 與UI
|
|
95
|
+
## 與 UI 相同型號、代理 {#agent-and-ui}
|
|
96
96
|
|
|
97
|
-
框架在每個範本中自動安裝這些 actions - 代理將它們稱為工具,UI
|
|
97
|
+
框架在每個範本中自動安裝這些 actions - 代理將它們稱為工具,UI 透過 `useActionQuery` / `useActionMutation` 呼叫它們:
|
|
98
98
|
|
|
99
99
|
| 行動 | 它的作用 |
|
|
100
100
|
| ------------------------- | ---------------------------------------------------------------------- |
|
|
@@ -103,7 +103,7 @@ import { ShareButton } from "@agent-native/core/client";
|
|
|
103
103
|
| `list-resource-shares` | 顯示目前可見性以及所有顯式授權。 |
|
|
104
104
|
| `set-resource-visibility` | 更改為 `private`、`org` 或 `public`。 |
|
|
105
105
|
|
|
106
|
-
|
|
106
|
+
告訴代理“與作為編輯的行銷團隊共用此設計”,它會針對 UI 使用的同一端點呼叫 `share-resource`。結果將顯示在下一次渲染的共用對話框中。
|
|
107
107
|
|
|
108
108
|
## 將其建置到新範本中 {#building}
|
|
109
109
|
|
|
@@ -179,11 +179,11 @@ registerShareableResource({
|
|
|
179
179
|
});
|
|
180
180
|
```
|
|
181
181
|
|
|
182
|
-
|
|
182
|
+
之後,清單/讀取查詢透過 `accessFilter()` 傳遞,寫入 actions 使用 `assertAccess()` 來強制執行角色。
|
|
183
183
|
|
|
184
|
-
###
|
|
184
|
+
### 可選的強化標誌 {#hardening-flags}
|
|
185
185
|
|
|
186
|
-
`registerShareableResource`
|
|
186
|
+
`registerShareableResource` 接受執行程式碼或承載提升信任的資源的兩個安全標誌:
|
|
187
187
|
|
|
188
188
|
```ts
|
|
189
189
|
registerShareableResource({
|
|
@@ -196,7 +196,7 @@ registerShareableResource({
|
|
|
196
196
|
});
|
|
197
197
|
```
|
|
198
198
|
|
|
199
|
-
`allowPublic: false`
|
|
199
|
+
`allowPublic: false` 阻止任何呼叫者(代理或 UI)將資源的可見性設定為 `public`。 `requireOrgMemberForUserShares: true` 拒絕個人使用者向資源所有者組織外部的電子郵件地址授予權限。擴充功能設定了兩者:擴充功能的 HTML 在呼叫 actions 和 DB 作為 _viewer_ 的 iframe 內執行,因此公開存取將是具有檢視者憑證的任意程式碼。
|
|
200
200
|
|
|
201
201
|
```an-callout
|
|
202
202
|
{
|
|
@@ -209,11 +209,11 @@ registerShareableResource({
|
|
|
209
209
|
|
|
210
210
|
## 安全保證 {#security}
|
|
211
211
|
|
|
212
|
-
共用依賴於框架更廣泛的資料範圍模型 -
|
|
212
|
+
共用依賴於框架更廣泛的資料範圍模型 - 對可擁有表的清單/讀/寫存取透過 `accessFilter()` / `resolveAccess()` / `assertAccess()`,並且 `org_id` 標記的資源在組織中不可見。有關完整管道、CI 防護和威脅面,請參閱 [Security → Data Scoping](/docs/security#data-scoping)。
|
|
213
213
|
|
|
214
214
|
## 另請參閱 {#see-also}
|
|
215
215
|
|
|
216
216
|
- [Security & Data Scoping](/docs/security) - 共用所依賴的存取過濾器和所有權模型。
|
|
217
|
-
- [Authentication](/docs/authentication) —
|
|
217
|
+
- [Authentication](/docs/authentication) — 工作階段、組織以及身分如何流入請求脈絡。
|
|
218
218
|
- [Extensions](/docs/extensions#sharing) — 在沙盒迷你應用表面中共用。
|
|
219
219
|
- [Creating Templates](/docs/creating-templates) — 將 `ownableColumns` 連線到新範本的架構中。
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Skills指南"
|
|
3
|
-
description: "skills
|
|
3
|
+
description: "skills 如何在 Agent-Native 中工作:框架 skills、域 skills 以及建立自訂 skills。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Skills指南
|
|
7
7
|
|
|
8
8
|
Skills 是 Markdown 檔案,可讓代理深入了解特定模式和工作流程。
|
|
9
9
|
|
|
10
|
-
## skills
|
|
10
|
+
## skills是什麼 {#what-are-skills}
|
|
11
11
|
|
|
12
|
-
Skills 位於 `.agents/skills/<name>/SKILL.md`,包含針對代理的詳細指導。每項技能都專注於一個問題 -
|
|
12
|
+
Skills 位於 `.agents/skills/<name>/SKILL.md`,包含針對代理的詳細指導。每項技能都專注於一個問題 - 如何儲存資料、如何同步狀態、如何將工作委托給代理聊天。
|
|
13
13
|
|
|
14
|
-
每個技能的 frontmatter `name` 和 `description` 總是被注入到系統提示符的 skills 塊中,以便代理知道 skills
|
|
14
|
+
每個技能的 frontmatter `name` 和 `description` 總是被注入到系統提示符的 skills 塊中,以便代理知道 skills 存在什麼。當代理確定技能與工作相關時,會按需載入完整的技能主體(也透過 `docs-search` 顯示)。這就是為什麼保持描述簡短且特定於觸發器很重要:描述是代理在決定是否載入其餘部分之前讀取的唯一內容。
|
|
15
15
|
|
|
16
|
-
```an-diagram title="漸進式披露" summary="
|
|
16
|
+
```an-diagram title="漸進式披露" summary="只有每個技能的名稱+描述始終處於脈絡中。當工作匹配時,全身會按需載入。"
|
|
17
17
|
{
|
|
18
18
|
"html": "<div class=\"sk-flow\"><div class=\"diagram-card\"><span class=\"diagram-pill accent\">始終在系統提示中</span><div class=\"sk-list\"><span class=\"diagram-pill\">storing-data — <small class=\"diagram-muted\">add data models…</small></span><span class=\"diagram-pill\">real-time-sync — <small class=\"diagram-muted\">wire polling…</small></span><span class=\"diagram-pill\">create-skill — <small class=\"diagram-muted\">add a skill…</small></span></div><small class=\"diagram-muted\">just name + description (cheap)</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-panel center\"><small class=\"diagram-muted\">task matches a description</small><span class=\"diagram-pill accent\">load on demand</span></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-box\">Full <code>SKILL.md</code> body<br><small class=\"diagram-muted\">規則、程式碼、應該做和不要做</small></div></div>",
|
|
19
19
|
"css": ".sk-flow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.sk-flow .diagram-card{display:flex;flex-direction:column;gap:8px;padding:14px 16px;min-width:240px}.sk-flow .sk-list{display:flex;flex-direction:column;gap:6px}.sk-flow .center{display:flex;flex-direction:column;align-items:center;gap:6px}.sk-flow .diagram-arrow{font-size:22px}"
|
|
@@ -27,7 +27,7 @@ Skills 位於 `.agents/skills/<name>/SKILL.md`,包含針對代理的詳細指
|
|
|
27
27
|
| 技能 | 何時使用 |
|
|
28
28
|
| ---------------------- | --------------------------------------------- |
|
|
29
29
|
| `storing-data` | 新增資料模型,讀/寫設定或狀態 |
|
|
30
|
-
| `real-time-sync` | 接線輪詢同步,偵錯UI不更新
|
|
30
|
+
| `real-time-sync` | 接線輪詢同步,偵錯 UI 不更新 |
|
|
31
31
|
| `delegate-to-agent` | 將 AI 工作從 UI 或 actions 委托給代理 |
|
|
32
32
|
| `actions` | 建立或執行代理actions |
|
|
33
33
|
| `self-modifying-code` | 編輯應用來源、元件或樣式 |
|
|
@@ -41,14 +41,14 @@ Skills 位於 `.agents/skills/<name>/SKILL.md`,包含針對代理的詳細指
|
|
|
41
41
|
| `real-time-collab` | 多使用者協作編輯 |
|
|
42
42
|
| `agent-engines` | 交換或設定底層代理引擎 |
|
|
43
43
|
| `notifications` | 應用內和推送通知模式 |
|
|
44
|
-
| `progress` |
|
|
44
|
+
| `progress` | 跟蹤和顯示背景工作進度 |
|
|
45
45
|
| `inline-embeds` | 在代理聊天中嵌入應用程式或 iframe |
|
|
46
46
|
|
|
47
47
|
`context-awareness` 和 `a2a-protocol` 是框架級 skills,位於儲存庫根目錄的 `.agents/skills/` 目錄中 - 請參閱每個範本自己的 `.agents/skills/` 了解其繼承的內容。
|
|
48
48
|
|
|
49
49
|
## 域名skills {#domain-skills}
|
|
50
50
|
|
|
51
|
-
範本包括特定於其域的 skills。它們位於相同的 `.agents/skills/` 目錄中,但涵蓋了特定於範本的模式。請參閱每個範本的 `.agents/skills/`
|
|
51
|
+
範本包括特定於其域的 skills。它們位於相同的 `.agents/skills/` 目錄中,但涵蓋了特定於範本的模式。請參閱每個範本的 `.agents/skills/` 目錄以取得完整清單;代表性樣本:
|
|
52
52
|
|
|
53
53
|
- **郵件範本** — `email-drafts`、`draft-queue`
|
|
54
54
|
- **表單範本** — `form-building`、`form-publishing`、`form-responses`
|
|
@@ -57,24 +57,24 @@ Skills 位於 `.agents/skills/<name>/SKILL.md`,包含針對代理的詳細指
|
|
|
57
57
|
|
|
58
58
|
域 skills 遵循與框架 skills 相同的格式。它們對代理需要遵循的特定範本的模式進行編碼。
|
|
59
59
|
|
|
60
|
-
##
|
|
60
|
+
## 應用程式支援的 skills {#app-backed-skills}
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
應用程式支援的 skills 將 Agent-Native 應用程式打包為技能市場工件。該捆綁包可以包含代理指令、匯出的 skills、MCP 連線器中繼資料、託管/本機啟動指令和 UI 表面(例如 MCP 應用程式)。
|
|
63
63
|
|
|
64
|
-
> **完整詳細資訊如下:** [App-backed skills — full details](#app-backed-skills-full)
|
|
64
|
+
> **完整詳細資訊如下:** [App-backed skills — full details](#app-backed-skills-full) 中介紹了應用程式支援的 skills 的機制(清單格式、CLI 指令、市場轉接器、自動更新哈希)。
|
|
65
65
|
|
|
66
66
|
## 建立自訂 skills {#creating-skills}
|
|
67
67
|
|
|
68
68
|
在以下情況下建立技能:
|
|
69
69
|
|
|
70
70
|
- 代理應該重複遵循一個模式
|
|
71
|
-
-
|
|
71
|
+
- 工作流程需要逐步指導
|
|
72
72
|
- 您想要從範本中建置檔案
|
|
73
73
|
|
|
74
74
|
在以下情況下不要建立技能:
|
|
75
75
|
|
|
76
76
|
- 該指導已存在於另一項技能中 - 請擴充功能它
|
|
77
|
-
- 該指導是一次性的 - 將其放入 `AGENTS.md`
|
|
77
|
+
- 該指導是一次性的 - 將其放入 `AGENTS.md` 或工作區記憶中
|
|
78
78
|
|
|
79
79
|
## 技能格式 {#skill-format}
|
|
80
80
|
|
|
@@ -87,7 +87,7 @@ Skills 位於 `.agents/skills/<name>/SKILL.md`,包含針對代理的詳細指
|
|
|
87
87
|
"code": "---\nname: project-imports\ndescription: >-\n How to import projects from the legacy CSV export. Use when the user uploads\n a project CSV or asks to migrate projects from the old system.\n---\n\n# Project Imports\n\n## Rule\n\nAlways validate the CSV header row before writing any rows. Reject unknown\ncolumns rather than silently dropping them.\n\n## How\n\n1. Call `get-import-schema` to fetch the expected columns.\n2. Parse the first CSV row and diff against the schema.\n3. If any required columns are missing, return an error — do not proceed.\n4. Stream remaining rows through `create-project-item` in batches of 50.\n\n## Don't\n\n- Don't hold all rows in memory — stream them.\n- Don't create duplicate projects; check for an existing name first.\n\n## Related Skills\n\n- **storing-data** — SQL schema and write patterns for new rows\n- **sharing** — exposing a project to other users after import",
|
|
88
88
|
"annotations": [
|
|
89
89
|
{ "lines": "2", "label": "發現鑰匙", "note": "The `name` matches the folder; it is how the skill is invoked as `/project-imports`." },
|
|
90
|
-
{ "lines": "3-5", "label": "觸發器", "note": "這個 `description`
|
|
90
|
+
{ "lines": "3-5", "label": "觸發器", "note": "這個 `description` 是始終處於脈絡中的**唯一**文字。準確地說明該技能“何時”應用。" },
|
|
91
91
|
{ "lines": "9-14", "label": "規則第一", "note": "Lead with the hard rule and the why; the agent reads the body only once the task matches." },
|
|
92
92
|
{ "lines": "27-30", "label": "交聯", "note": "指出相關技能,以便代理可以將它們連結起來,而不是重新得出指導。" }
|
|
93
93
|
]
|
|
@@ -119,11 +119,11 @@ scope: dev
|
|
|
119
119
|
---
|
|
120
120
|
```
|
|
121
121
|
|
|
122
|
-
當 `scope` 不存在(或設定為無法識別的值)時,它預設為 `both`,因此每個現有技能都會在執行時載入 -
|
|
122
|
+
當 `scope` 不存在(或設定為無法識別的值)時,它預設為 `both`,因此每個現有技能都會在執行時載入 - 該欄位完全向後相容。 `scope: dev` 技能對於任何地方的執行時代理都是不可見的:它被排除在注入系統提示符的 skills 塊和 `docs-search` 結果之外。
|
|
123
123
|
|
|
124
124
|
### 向您的編碼代理公開僅限開發的技能 {#dev-only-skills}
|
|
125
125
|
|
|
126
|
-
|
|
126
|
+
Agent-Native 執行時從 `.agents/skills/` 讀取 skills。 Claude 程式碼獨立從 `.claude/skills/` 讀取 skills。要使編碼代理可用但對執行時代理隱藏的技能:
|
|
127
127
|
|
|
128
128
|
- 將其標記為 `.agents/skills/<name>/SKILL.md` 中的 `scope: dev`,以便執行時代理永遠不會載入它,和/或
|
|
129
129
|
- 將技能放置或鏡像到 `.claude/skills/<name>/SKILL.md` 下,以便 Claude 程式碼拾取它。
|
|
@@ -142,31 +142,31 @@ scope: dev
|
|
|
142
142
|
|
|
143
143
|
## Skills vs AGENTS.md {#skills-vs-agents-md}
|
|
144
144
|
|
|
145
|
-
> **AGENTS.md** —
|
|
145
|
+
> **AGENTS.md** — 概述。列出所有指令碼,描述資料模型,解釋應用程式架構。代理首先閱讀此內容以了解應用程式。
|
|
146
146
|
>
|
|
147
|
-
> **Skills** —
|
|
147
|
+
> **Skills** — 深入研究。每項技能都側重於一種模式,並包含詳細規則、程式碼範例和“注意事項”清單。當代理需要遵循特定模式時,它會讀取這些內容。
|
|
148
148
|
|
|
149
149
|
`AGENTS.md` 告訴代理應用程式的用途。 Skills 告訴代理*如何*正確地做特定的事情。兩者都是必需的 - `AGENTS.md` 用於定向,skills 用於執行。
|
|
150
150
|
|
|
151
|
-
## Skills
|
|
151
|
+
## Skills 與記憶 {#skills-vs-memory}
|
|
152
152
|
|
|
153
|
-
> **Skills** —
|
|
153
|
+
> **Skills** — 編寫的、可重複使用的操作指南。適用於每個使用者,在工作匹配時按需呼叫。
|
|
154
154
|
>
|
|
155
|
-
>
|
|
155
|
+
> **記憶 (`LEARNINGS.md` / `memory/MEMORY.md`)** — 共用專案學習和每輪都會載入的個人結構化記憶。
|
|
156
156
|
|
|
157
|
-
如果這些知識適用於在應用程式中工作的*每個人*(“總是更喜歡 CTE
|
|
157
|
+
如果這些知識適用於在應用程式中工作的*每個人*(“總是更喜歡 CTE 而不是子查詢”),那麼它就是一項技能或共用的 `LEARNINGS.md`。如果它是關於*這個特定使用者*(“史蒂夫喜歡簡潔的答案”),它就屬於 `memory/MEMORY.md`。完整治療請參見[Workspace Memory](/docs/workspace#memory)。
|
|
158
158
|
|
|
159
159
|
---
|
|
160
160
|
|
|
161
|
-
#
|
|
161
|
+
# 進階
|
|
162
162
|
|
|
163
|
-
##
|
|
163
|
+
## 應用程式支援的 skills — 完整詳細資訊 {#app-backed-skills-full}
|
|
164
164
|
|
|
165
|
-
|
|
165
|
+
應用程式支援的 skills 將 Agent-Native 應用程式打包為技能市場工件。
|
|
166
166
|
捆綁包可以包含代理指令、匯出的 skills、MCP 連線器
|
|
167
|
-
|
|
167
|
+
中繼資料、託管/本機啟動說明和 UI 介面,例如 MCP 應用程式。
|
|
168
168
|
|
|
169
|
-
|
|
169
|
+
每個應用程式支援的技能都以應用程式根目錄中的 `agent-native.app-skill.json` 開頭:
|
|
170
170
|
|
|
171
171
|
```json
|
|
172
172
|
{
|
|
@@ -206,7 +206,7 @@ npx @agent-native/core@latest skills add assets
|
|
|
206
206
|
# 回購優先內容 docs/blog/MDX 編輯。
|
|
207
207
|
npx @agent-native/core@latest skills add content --mode local-files --scope project
|
|
208
208
|
|
|
209
|
-
# Vercel/open技能CLI:僅匯出指令,無MCP設定。
|
|
209
|
+
# Vercel/open技能 CLI:僅匯出指令,無 MCP 設定。
|
|
210
210
|
npx skills@latest add BuilderIO/agent-native --skill assets
|
|
211
211
|
|
|
212
212
|
# 為本機代理用戶端註冊託管 MCP 連線器。
|
|
@@ -215,46 +215,46 @@ npx @agent-native/core@latest app-skill ensure --manifest templates/assets/agent
|
|
|
215
215
|
# 實現並執行可編輯的本機來源。
|
|
216
216
|
npx @agent-native/core@latest app-skill launch --manifest templates/assets/agent-native.app-skill.json --local --into ./assets-local
|
|
217
217
|
|
|
218
|
-
#
|
|
219
|
-
# plain/Claude技能和MCP設定。
|
|
218
|
+
# 建置市場轉接器:Codex 外掛、Claude 市場、Vercel 技能、
|
|
219
|
+
# plain/Claude 技能和 MCP 設定。
|
|
220
220
|
npx @agent-native/core@latest app-skill pack --manifest templates/assets/agent-native.app-skill.json --out ./dist/assets-skill
|
|
221
221
|
|
|
222
222
|
# 使用 Vercel/open 技能 CLI 安裝本機匯出的包。
|
|
223
223
|
npx skills@latest add ./dist/assets-skill --skill assets -a codex -y
|
|
224
224
|
|
|
225
|
-
#
|
|
225
|
+
# 新增產生的 Claude Code 市場,然後安裝其 Assets 外掛。
|
|
226
226
|
claude plugin marketplace add ./dist/assets-skill/adapters/claude-marketplace
|
|
227
227
|
claude plugin install agent-native-assets@agent-native-apps
|
|
228
228
|
```
|
|
229
229
|
|
|
230
230
|
對技能檔案保密。清單應包含僅 URL 連線器
|
|
231
|
-
|
|
231
|
+
中繼資料; OAuth/設備設定發生在 MCP 主機中或透過應用程式的正常設定
|
|
232
232
|
設定流程。
|
|
233
233
|
|
|
234
|
-
Vercel Labs `skills`
|
|
234
|
+
Vercel Labs `skills` 轉接器是便攜式 `skills/<name>/SKILL.md` 捆綁包
|
|
235
235
|
適用於 `npx skills@latest add ...`,但原始 `skills` CLI 僅安裝說明。
|
|
236
|
-
|
|
236
|
+
它不執行儲存庫定義的安裝後指令碼或註冊 MCP 連線器。
|
|
237
237
|
將 Agent Native CLI 保留為本機代理的預設檔案路徑,因為它
|
|
238
238
|
還註冊 MCP 連線器。 `BuilderIO/agent-native`是真正的GitHub
|
|
239
239
|
Vercel/open Skills CLI 的儲存庫來源; `skills.sh` 是一個發現,並且
|
|
240
240
|
排行榜目錄,而不是npm風格的包命名空間。
|
|
241
241
|
|
|
242
|
-
Claude
|
|
242
|
+
Claude 程式碼市場轉接器寫入
|
|
243
243
|
`adapters/claude-marketplace/.claude-plugin/marketplace.json` 加一個嵌套
|
|
244
|
-
包含 `skills/<name>/SKILL.md` 和 `.mcp.json` 的外掛目錄。在Claude
|
|
244
|
+
包含 `skills/<name>/SKILL.md` 和 `.mcp.json` 的外掛目錄。在 Claude
|
|
245
245
|
編碼,新增市場,安裝`agent-native-assets@agent-native-apps`,
|
|
246
246
|
重新載入外掛,然後從 `/mcp` 驗證僅限 URL 的 MCP 連線器。
|
|
247
247
|
|
|
248
|
-
|
|
248
|
+
產生的外掛清單設定為自動更新:Claude 程式碼
|
|
249
249
|
市場入口集 `autoUpdate: true`(帶有 commit-SHA 版本控制)和
|
|
250
250
|
Codex 外掛 `version` 嵌入捆綁的 skills 和 MCP 的內容哈希
|
|
251
|
-
|
|
251
|
+
端點,因此安裝的外掛無需重新打包即可取得技能更改。
|
|
252
252
|
計畫應用程式以這種方式發布為儲存庫根目錄中的可隨時新增的市場 —
|
|
253
253
|
請參閱 [Plan plugin & marketplace](/docs/plan-plugin) 以了解端對端安裝
|
|
254
254
|
和自動更新流程。
|
|
255
255
|
|
|
256
|
-
|
|
257
|
-
外掛市場,使用CLI新鮮度指令:
|
|
256
|
+
對於透過通用 CLI 而不是安裝複製的skills的使用者
|
|
257
|
+
外掛市場,使用 CLI 新鮮度指令:
|
|
258
258
|
|
|
259
259
|
```bash
|
|
260
260
|
npx @agent-native/core@latest skills status visual-plan
|
|
@@ -264,18 +264,18 @@ npx @agent-native/core@latest skills update visual-plan
|
|
|
264
264
|
`skills update` 掃描已知的 Codex/Claude 專案和使用者技能資料夾,進行比較
|
|
265
265
|
將資料夾哈希複製到最新的捆綁技能,並重寫舊資料夾
|
|
266
266
|
地點。新複製的 Agent Native skills 包括 `agent-native-skill.json`
|
|
267
|
-
|
|
267
|
+
標記,以便將來的狀態輸出可以識別來源和雜湊值。
|
|
268
268
|
|
|
269
|
-
|
|
269
|
+
產生的 Agent-Native 應用程式和工作區還包括框架提供的
|
|
270
270
|
`.agents/skills` 下的 skills(或 `packages/shared/.agents/skills` 中的
|
|
271
|
-
工作區)。使用以下指令從目前/最新的 CLI
|
|
271
|
+
工作區)。使用以下指令從目前/最新的 CLI 重新整理那些支架 skills:
|
|
272
272
|
|
|
273
273
|
```bash
|
|
274
274
|
npm run skills:update
|
|
275
|
-
#
|
|
275
|
+
# 或者,不依賴本機包指令碼:
|
|
276
276
|
npx @agent-native/core@latest skills update scaffold --project
|
|
277
277
|
```
|
|
278
278
|
|
|
279
|
-
`AGENTS.md` 和 `.agents/skills`
|
|
280
|
-
Claude
|
|
279
|
+
`AGENTS.md` 和 `.agents/skills` 保持規範。更新指令還可以修復
|
|
280
|
+
Claude 相容性連結(`CLAUDE.md` 和 `.claude/skills`),因此 Claude 程式碼可見
|
|
281
281
|
相同的說明,無需維護第二個副本。
|