@agent-native/core 0.79.2 → 0.79.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +24 -0
- package/corpus/core/docs/content/locales/zh-TW/a2a-protocol.md +392 -0
- package/corpus/core/docs/content/locales/zh-TW/actions.md +583 -0
- package/corpus/core/docs/content/locales/zh-TW/agent-mentions.md +164 -0
- package/corpus/core/docs/content/locales/zh-TW/agent-surfaces.md +397 -0
- package/corpus/core/docs/content/locales/zh-TW/agent-teams.md +171 -0
- package/corpus/core/docs/content/locales/zh-TW/agent-web-surfaces.md +161 -0
- package/corpus/core/docs/content/locales/zh-TW/audit-log.md +111 -0
- package/corpus/core/docs/content/locales/zh-TW/authentication.md +332 -0
- package/corpus/core/docs/content/locales/zh-TW/automations.md +268 -0
- package/corpus/core/docs/content/locales/zh-TW/blueprint-installer.md +83 -0
- package/corpus/core/docs/content/locales/zh-TW/cli-adapters.md +129 -0
- package/corpus/core/docs/content/locales/zh-TW/client.md +398 -0
- package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.md +114 -0
- package/corpus/core/docs/content/locales/zh-TW/code-agents-ui.md +436 -0
- package/corpus/core/docs/content/locales/zh-TW/components.md +368 -0
- package/corpus/core/docs/content/locales/zh-TW/context-awareness.md +373 -0
- package/corpus/core/docs/content/locales/zh-TW/creating-templates.md +411 -0
- package/corpus/core/docs/content/locales/zh-TW/cross-app-sso.md +188 -0
- package/corpus/core/docs/content/locales/zh-TW/database.md +183 -0
- package/corpus/core/docs/content/locales/zh-TW/deployment.md +348 -0
- package/corpus/core/docs/content/locales/zh-TW/dispatch.md +146 -0
- package/corpus/core/docs/content/locales/zh-TW/drop-in-agent.md +260 -0
- package/corpus/core/docs/content/locales/zh-TW/durable-resume.md +65 -0
- package/corpus/core/docs/content/locales/zh-TW/embedding-sdk.md +597 -0
- package/corpus/core/docs/content/locales/zh-TW/evals.md +155 -0
- package/corpus/core/docs/content/locales/zh-TW/extensions.md +360 -0
- package/corpus/core/docs/content/locales/zh-TW/external-agents.md +619 -0
- package/corpus/core/docs/content/locales/zh-TW/faq.md +142 -0
- package/corpus/core/docs/content/locales/zh-TW/file-uploads.md +122 -0
- package/corpus/core/docs/content/locales/zh-TW/frames.md +153 -0
- package/corpus/core/docs/content/locales/zh-TW/getting-started.md +199 -0
- package/corpus/core/docs/content/locales/zh-TW/harness-agents.md +349 -0
- package/corpus/core/docs/content/locales/zh-TW/human-approval.md +86 -0
- package/corpus/core/docs/content/locales/zh-TW/internationalization.md +147 -0
- package/corpus/core/docs/content/locales/zh-TW/key-concepts.md +312 -0
- package/corpus/core/docs/content/locales/zh-TW/local-file-mode.md +433 -0
- package/corpus/core/docs/content/locales/zh-TW/mcp-apps.md +147 -0
- package/corpus/core/docs/content/locales/zh-TW/mcp-clients.md +330 -0
- package/corpus/core/docs/content/locales/zh-TW/mcp-protocol.md +279 -0
- package/corpus/core/docs/content/locales/zh-TW/messaging.md +461 -0
- package/corpus/core/docs/content/locales/zh-TW/migration-workbench.md +33 -0
- package/corpus/core/docs/content/locales/zh-TW/multi-app-workspace.md +312 -0
- package/corpus/core/docs/content/locales/zh-TW/multi-tenancy.md +52 -0
- package/corpus/core/docs/content/locales/zh-TW/native-chat-ui.md +321 -0
- package/corpus/core/docs/content/locales/zh-TW/notifications.md +231 -0
- package/corpus/core/docs/content/locales/zh-TW/observability.md +294 -0
- package/corpus/core/docs/content/locales/zh-TW/observational-memory.md +77 -0
- package/corpus/core/docs/content/locales/zh-TW/onboarding.md +216 -0
- package/corpus/core/docs/content/locales/zh-TW/plan-plugin.md +200 -0
- package/corpus/core/docs/content/locales/zh-TW/pr-visual-recap.md +384 -0
- package/corpus/core/docs/content/locales/zh-TW/processors.md +106 -0
- package/corpus/core/docs/content/locales/zh-TW/progress.md +199 -0
- package/corpus/core/docs/content/locales/zh-TW/pure-agent-apps.md +39 -0
- package/corpus/core/docs/content/locales/zh-TW/real-time-collaboration.md +680 -0
- package/corpus/core/docs/content/locales/zh-TW/recurring-jobs.md +142 -0
- package/corpus/core/docs/content/locales/zh-TW/routing.md +79 -0
- package/corpus/core/docs/content/locales/zh-TW/sandbox-adapters.md +227 -0
- package/corpus/core/docs/content/locales/zh-TW/security.md +330 -0
- package/corpus/core/docs/content/locales/zh-TW/server.md +265 -0
- package/corpus/core/docs/content/locales/zh-TW/sharing.md +219 -0
- package/corpus/core/docs/content/locales/zh-TW/skills-guide.md +281 -0
- package/corpus/core/docs/content/locales/zh-TW/template-analytics.md +259 -0
- package/corpus/core/docs/content/locales/zh-TW/template-assets.md +303 -0
- package/corpus/core/docs/content/locales/zh-TW/template-brain.md +324 -0
- package/corpus/core/docs/content/locales/zh-TW/template-calendar.md +194 -0
- package/corpus/core/docs/content/locales/zh-TW/template-chat.md +129 -0
- package/corpus/core/docs/content/locales/zh-TW/template-clips.md +368 -0
- package/corpus/core/docs/content/locales/zh-TW/template-content.md +402 -0
- package/corpus/core/docs/content/locales/zh-TW/template-design.md +173 -0
- package/corpus/core/docs/content/locales/zh-TW/template-dispatch.md +220 -0
- package/corpus/core/docs/content/locales/zh-TW/template-forms.md +178 -0
- package/corpus/core/docs/content/locales/zh-TW/template-mail.md +239 -0
- package/corpus/core/docs/content/locales/zh-TW/template-plan.md +814 -0
- package/corpus/core/docs/content/locales/zh-TW/template-slides.md +293 -0
- package/corpus/core/docs/content/locales/zh-TW/template-videos.md +222 -0
- package/corpus/core/docs/content/locales/zh-TW/tracking.md +236 -0
- package/corpus/core/docs/content/locales/zh-TW/using-your-agent.md +71 -0
- package/corpus/core/docs/content/locales/zh-TW/voice-input.md +81 -0
- package/corpus/core/docs/content/locales/zh-TW/what-is-agent-native.md +202 -0
- package/corpus/core/docs/content/locales/zh-TW/workspace-connections.md +321 -0
- package/corpus/core/docs/content/locales/zh-TW/workspace-management.md +175 -0
- package/corpus/core/docs/content/locales/zh-TW/workspace.md +323 -0
- package/corpus/core/docs/content/locales/zh-TW/writing-agent-instructions.md +173 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/client/ErrorBoundary.tsx +10 -0
- package/corpus/core/src/client/FeedbackButton.tsx +12 -0
- package/corpus/core/src/client/blocks/library/block-copy.ts +32 -0
- package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +33 -0
- package/corpus/core/src/client/i18n.tsx +5 -0
- package/corpus/core/src/localization/actions/set-localization-preference.ts +2 -1
- package/corpus/core/src/localization/shared.ts +45 -0
- package/corpus/core/src/server/agent-chat-plugin.ts +38 -0
- package/corpus/core/src/server/onboarding-html.ts +99 -0
- package/corpus/core/src/templates/default/app/i18n/index.ts +2 -0
- package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +466 -0
- package/corpus/core/src/templates/default/app/root.tsx +8 -0
- package/corpus/templates/analytics/app/i18n/index.ts +2 -0
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +818 -0
- package/corpus/templates/analytics/app/i18n-data.ts +9 -0
- package/corpus/templates/assets/app/i18n/index.ts +2 -0
- package/corpus/templates/assets/app/i18n/zh-TW.ts +860 -0
- package/corpus/templates/assets/app/i18n-data.ts +3 -0
- package/corpus/templates/brain/app/i18n/index.ts +2 -0
- package/corpus/templates/brain/app/i18n/zh-TW.ts +709 -0
- package/corpus/templates/brain/app/i18n-data.ts +3 -0
- package/corpus/templates/calendar/app/i18n/zh-TW.ts +836 -0
- package/corpus/templates/calendar/app/i18n-data.ts +4 -0
- package/corpus/templates/chat/app/i18n/index.ts +2 -0
- package/corpus/templates/chat/app/i18n/zh-TW.ts +67 -0
- package/corpus/templates/chat/app/i18n-data.ts +3 -0
- package/corpus/templates/clips/app/i18n/index.ts +2 -0
- package/corpus/templates/clips/app/i18n/zh-TW.ts +1280 -0
- package/corpus/templates/content/app/i18n/index.ts +2 -0
- package/corpus/templates/content/app/i18n/zh-TW.ts +906 -0
- package/corpus/templates/content/app/i18n-data.ts +4 -0
- package/corpus/templates/design/app/i18n/index.ts +2 -0
- package/corpus/templates/design/app/i18n/zh-TW.ts +517 -0
- package/corpus/templates/design/app/i18n-data.ts +6 -0
- package/corpus/templates/dispatch/app/i18n/index.ts +2 -0
- package/corpus/templates/dispatch/app/i18n/zh-TW.ts +195 -0
- package/corpus/templates/dispatch/app/i18n-data.ts +3 -0
- package/corpus/templates/forms/app/i18n/index.ts +2 -0
- package/corpus/templates/forms/app/i18n/zh-TW.ts +349 -0
- package/corpus/templates/macros/app/i18n/index.ts +2 -0
- package/corpus/templates/macros/app/i18n/zh-TW.ts +224 -0
- package/corpus/templates/mail/app/i18n/index.ts +2 -0
- package/corpus/templates/mail/app/i18n/zh-TW.ts +562 -0
- package/corpus/templates/mail/app/root.tsx +6 -0
- package/corpus/templates/plan/app/i18n/index.ts +2 -0
- package/corpus/templates/plan/app/i18n/zh-TW.ts +712 -0
- package/corpus/templates/slides/app/i18n/index.ts +2 -0
- package/corpus/templates/slides/app/i18n/zh-TW.ts +531 -0
- package/corpus/templates/videos/app/i18n/index.ts +2 -0
- package/corpus/templates/videos/app/i18n/zh-TW.ts +435 -0
- package/dist/client/ErrorBoundary.d.ts.map +1 -1
- package/dist/client/ErrorBoundary.js +10 -0
- package/dist/client/ErrorBoundary.js.map +1 -1
- package/dist/client/FeedbackButton.d.ts.map +1 -1
- package/dist/client/FeedbackButton.js +12 -0
- package/dist/client/FeedbackButton.js.map +1 -1
- package/dist/client/blocks/library/block-copy.d.ts.map +1 -1
- package/dist/client/blocks/library/block-copy.js +32 -0
- package/dist/client/blocks/library/block-copy.js.map +1 -1
- package/dist/client/extensions/ExtensionsSidebarSection.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionsSidebarSection.js +32 -0
- package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
- package/dist/client/i18n.d.ts.map +1 -1
- package/dist/client/i18n.js +5 -0
- package/dist/client/i18n.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/localization/actions/set-localization-preference.d.ts.map +1 -1
- package/dist/localization/actions/set-localization-preference.js +2 -2
- package/dist/localization/actions/set-localization-preference.js.map +1 -1
- package/dist/localization/shared.d.ts +1 -1
- package/dist/localization/shared.d.ts.map +1 -1
- package/dist/localization/shared.js +43 -0
- package/dist/localization/shared.js.map +1 -1
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/observability/routes.d.ts +3 -3
- package/dist/resources/handlers.d.ts +2 -2
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +39 -0
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +2 -2
- package/dist/server/onboarding-html.d.ts.map +1 -1
- package/dist/server/onboarding-html.js +96 -0
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/templates/default/app/i18n/index.ts +2 -0
- package/dist/templates/default/app/i18n/zh-TW.ts +466 -0
- package/dist/templates/default/app/root.tsx +8 -0
- package/docs/content/locales/zh-TW/a2a-protocol.md +392 -0
- package/docs/content/locales/zh-TW/actions.md +583 -0
- package/docs/content/locales/zh-TW/agent-mentions.md +164 -0
- package/docs/content/locales/zh-TW/agent-surfaces.md +397 -0
- package/docs/content/locales/zh-TW/agent-teams.md +171 -0
- package/docs/content/locales/zh-TW/agent-web-surfaces.md +161 -0
- package/docs/content/locales/zh-TW/audit-log.md +111 -0
- package/docs/content/locales/zh-TW/authentication.md +332 -0
- package/docs/content/locales/zh-TW/automations.md +268 -0
- package/docs/content/locales/zh-TW/blueprint-installer.md +83 -0
- package/docs/content/locales/zh-TW/cli-adapters.md +129 -0
- package/docs/content/locales/zh-TW/client.md +398 -0
- package/docs/content/locales/zh-TW/cloneable-saas.md +114 -0
- package/docs/content/locales/zh-TW/code-agents-ui.md +436 -0
- package/docs/content/locales/zh-TW/components.md +368 -0
- package/docs/content/locales/zh-TW/context-awareness.md +373 -0
- package/docs/content/locales/zh-TW/creating-templates.md +411 -0
- package/docs/content/locales/zh-TW/cross-app-sso.md +188 -0
- package/docs/content/locales/zh-TW/database.md +183 -0
- package/docs/content/locales/zh-TW/deployment.md +348 -0
- package/docs/content/locales/zh-TW/dispatch.md +146 -0
- package/docs/content/locales/zh-TW/drop-in-agent.md +260 -0
- package/docs/content/locales/zh-TW/durable-resume.md +65 -0
- package/docs/content/locales/zh-TW/embedding-sdk.md +597 -0
- package/docs/content/locales/zh-TW/evals.md +155 -0
- package/docs/content/locales/zh-TW/extensions.md +360 -0
- package/docs/content/locales/zh-TW/external-agents.md +619 -0
- package/docs/content/locales/zh-TW/faq.md +142 -0
- package/docs/content/locales/zh-TW/file-uploads.md +122 -0
- package/docs/content/locales/zh-TW/frames.md +153 -0
- package/docs/content/locales/zh-TW/getting-started.md +199 -0
- package/docs/content/locales/zh-TW/harness-agents.md +349 -0
- package/docs/content/locales/zh-TW/human-approval.md +86 -0
- package/docs/content/locales/zh-TW/internationalization.md +147 -0
- package/docs/content/locales/zh-TW/key-concepts.md +312 -0
- package/docs/content/locales/zh-TW/local-file-mode.md +433 -0
- package/docs/content/locales/zh-TW/mcp-apps.md +147 -0
- package/docs/content/locales/zh-TW/mcp-clients.md +330 -0
- package/docs/content/locales/zh-TW/mcp-protocol.md +279 -0
- package/docs/content/locales/zh-TW/messaging.md +461 -0
- package/docs/content/locales/zh-TW/migration-workbench.md +33 -0
- package/docs/content/locales/zh-TW/multi-app-workspace.md +312 -0
- package/docs/content/locales/zh-TW/multi-tenancy.md +52 -0
- package/docs/content/locales/zh-TW/native-chat-ui.md +321 -0
- package/docs/content/locales/zh-TW/notifications.md +231 -0
- package/docs/content/locales/zh-TW/observability.md +294 -0
- package/docs/content/locales/zh-TW/observational-memory.md +77 -0
- package/docs/content/locales/zh-TW/onboarding.md +216 -0
- package/docs/content/locales/zh-TW/plan-plugin.md +200 -0
- package/docs/content/locales/zh-TW/pr-visual-recap.md +384 -0
- package/docs/content/locales/zh-TW/processors.md +106 -0
- package/docs/content/locales/zh-TW/progress.md +199 -0
- package/docs/content/locales/zh-TW/pure-agent-apps.md +39 -0
- package/docs/content/locales/zh-TW/real-time-collaboration.md +680 -0
- package/docs/content/locales/zh-TW/recurring-jobs.md +142 -0
- package/docs/content/locales/zh-TW/routing.md +79 -0
- package/docs/content/locales/zh-TW/sandbox-adapters.md +227 -0
- package/docs/content/locales/zh-TW/security.md +330 -0
- package/docs/content/locales/zh-TW/server.md +265 -0
- package/docs/content/locales/zh-TW/sharing.md +219 -0
- package/docs/content/locales/zh-TW/skills-guide.md +281 -0
- package/docs/content/locales/zh-TW/template-analytics.md +259 -0
- package/docs/content/locales/zh-TW/template-assets.md +303 -0
- package/docs/content/locales/zh-TW/template-brain.md +324 -0
- package/docs/content/locales/zh-TW/template-calendar.md +194 -0
- package/docs/content/locales/zh-TW/template-chat.md +129 -0
- package/docs/content/locales/zh-TW/template-clips.md +368 -0
- package/docs/content/locales/zh-TW/template-content.md +402 -0
- package/docs/content/locales/zh-TW/template-design.md +173 -0
- package/docs/content/locales/zh-TW/template-dispatch.md +220 -0
- package/docs/content/locales/zh-TW/template-forms.md +178 -0
- package/docs/content/locales/zh-TW/template-mail.md +239 -0
- package/docs/content/locales/zh-TW/template-plan.md +814 -0
- package/docs/content/locales/zh-TW/template-slides.md +293 -0
- package/docs/content/locales/zh-TW/template-videos.md +222 -0
- package/docs/content/locales/zh-TW/tracking.md +236 -0
- package/docs/content/locales/zh-TW/using-your-agent.md +71 -0
- package/docs/content/locales/zh-TW/voice-input.md +81 -0
- package/docs/content/locales/zh-TW/what-is-agent-native.md +202 -0
- package/docs/content/locales/zh-TW/workspace-connections.md +321 -0
- package/docs/content/locales/zh-TW/workspace-management.md +175 -0
- package/docs/content/locales/zh-TW/workspace.md +323 -0
- package/docs/content/locales/zh-TW/writing-agent-instructions.md +173 -0
- package/package.json +1 -1
- package/src/templates/default/app/i18n/index.ts +2 -0
- package/src/templates/default/app/i18n/zh-TW.ts +466 -0
- package/src/templates/default/app/root.tsx +8 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "共用和隱私"
|
|
3
|
+
description: "Google Docs 風格的共用,內置於框架中。每個使用者建立的資源(檔案、儀表板、設計、演示文稿、剪輯、錄音、表單)都會獲得相同的預設私人模型以及一致的共用 UI。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 共用和隱私
|
|
7
|
+
|
|
8
|
+
使用者在代理原生應用程式中建立的每個資源(檔案、儀表板、設計、演示文稿、影片編輯、螢幕錄製、會議紀錄、表單、預訂連結)**預設情況下對建立者來說是私人的**。僅當建立者明確共用它或將其可見性更改為 `org` 或 `public` 時,其他人才能看到它。
|
|
9
|
+
|
|
10
|
+
它的外觀和工作方式與 Google 檔案類似。相同的共用按鈕、相同的對話框、相同的三層可見性模型、相同的每使用者/每組織授權 - 跨每個範本,無需針對每個應用進行重新設計。
|
|
11
|
+
|
|
12
|
+
## 為什么選取一種模型 {#why}
|
|
13
|
+
|
|
14
|
+
大多數應用程式框架都會共用每個功能的專案。結果:每個類似檔案的介面最終都會有自己的共用對話框、自己的權限模式、自己的存取檢查錯誤。在代理原生中,共用是一個**框架原語**。架構列、存取檢查幫助程序、共用快顯窗口和代理可調用共用 actions 均隨核心一起提供。新範本通過新增兩欄和一行註冊來獲得完整的分享故事。
|
|
15
|
+
|
|
16
|
+
這也意味著代理永遠不必為每個應用程式學習新的共用模型。告訴代理在任何範本中“與作為編輯者的 Alice 共用此內容”,並且會觸發相同的 `share-resource` 操作。
|
|
17
|
+
|
|
18
|
+
## 三個可見性級別 {#visibility}
|
|
19
|
+
|
|
20
|
+
粗略的可見性取決於資源本身;細粒度的贈款位於同伴共用表中。
|
|
21
|
+
|
|
22
|
+
| 可見度 | 誰可以看到它 |
|
|
23
|
+
| --------- | ------------------------------------------------------------------------- |
|
|
24
|
+
| `private` | 所有者+明確授予的人員。 **每個新資源的預設值。** |
|
|
25
|
+
| `org` | 所有者+顯式授權+同一組織中的任何人(唯讀)。 |
|
|
26
|
+
| `public` | 所有者+明確授予+任何知道連結的人(唯讀)。不會出現在其他人的列表/搜尋中。 |
|
|
27
|
+
|
|
28
|
+
`public` 是一個故意安靜的級別:可以通過直接連結存取公開資源,但它**不會**顯示在其他使用者的側邊欄、列表或搜尋中。這使得“共用 URL 的公開”與“跨使用者發現的公開”分開。真正想要跨使用者發現的畫廊和範本目錄明確選取加入。
|
|
29
|
+
|
|
30
|
+
```an-diagram title="視野,向外擴大" summary="資源的粗略可見性奠定了基礎;伴隨表中的顯式共用授予會在頂部新增指定人員。"
|
|
31
|
+
{
|
|
32
|
+
"html": "<div class=\"share-tiers\"><div class=\"diagram-card\"><span class=\"diagram-pill\">private</span><small class=\"diagram-muted\">owner + explicit grants only · <strong>default</strong></small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">↓</div><div class=\"diagram-card\"><span class=\"diagram-pill accent\">org</span><small class=\"diagram-muted\">+ anyone in the same org (read-only)</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">↓</div><div class=\"diagram-card\"><span class=\"diagram-pill warn\">public</span><small class=\"diagram-muted\">+ anyone with the link (read-only) · hidden from others' lists/search</small></div></div>",
|
|
33
|
+
"css": ".share-tiers{display:flex;flex-direction:column;align-items:stretch;gap:8px}.share-tiers .diagram-card{display:flex;flex-direction:column;gap:4px;padding:12px 16px}.share-tiers .diagram-arrow{text-align:center;font-size:20px;line-height:1}"
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## 股份授予中的角色 {#roles}
|
|
38
|
+
|
|
39
|
+
當您與特定使用者或組織共用時,您可以選取一個角色:
|
|
40
|
+
|
|
41
|
+
- **檢視者** — 唯讀。
|
|
42
|
+
- **編輯器** — 讀取 + 寫入。
|
|
43
|
+
- **管理員** — 讀取+寫入+管理共用(可以新增/刪除其他人)。
|
|
44
|
+
|
|
45
|
+
`admin` 是否會更改 NOT 的所有權 - 每個資源仍然只有一個所有者,這與共用授予不同。
|
|
46
|
+
|
|
47
|
+
## 涵蓋內容 {#covered}
|
|
48
|
+
|
|
49
|
+
每個存儲使用者創作作品的範本都使用此模型。具體來說:
|
|
50
|
+
|
|
51
|
+
- **內容** — 檔案
|
|
52
|
+
- **幻燈片** — 幻燈片
|
|
53
|
+
- **設計** — 設計和資產
|
|
54
|
+
- **影片** — 作品
|
|
55
|
+
- **剪輯** — 螢幕錄製(Loom 風格)
|
|
56
|
+
- **表單** — 表單定義
|
|
57
|
+
- **行事曆** — 活動和預訂連結
|
|
58
|
+
- **分析** - 儀表板(推出 - 請參閱分析範本的 `AGENTS.md`)
|
|
59
|
+
- **擴充功能** - 沙盒迷你應用程式(參見 [Extensions](/docs/extensions#sharing))
|
|
60
|
+
|
|
61
|
+
其中每一個都使用相同的 `ownableColumns()` 模式助手、相同的 `share-resource` 操作和相同的 `<ShareButton>` UI。從一個範本行動到另一個範本,共用對話框看起來相同。
|
|
62
|
+
|
|
63
|
+
## 未涵蓋的內容 {#not-covered}
|
|
64
|
+
|
|
65
|
+
一些區域故意位於共用系統之外:
|
|
66
|
+
|
|
67
|
+
- **個人資料應用程式**(郵件、宏)- 按設計限定使用者範圍。沒有“共用我的收件箱”概念。
|
|
68
|
+
- **外部真實來源應用程式** - 存取控制位於上游系統中,而不是代理本機應用程式中。
|
|
69
|
+
- **匿名公開 URLs** — 向登出使用者公開 URL 的表單發布 slugs 和預訂連結 slugs 是一個單獨的軸。它們與共用系統並存,而不是在其之上。
|
|
70
|
+
|
|
71
|
+
## 分享UI {#share-ui}
|
|
72
|
+
|
|
73
|
+
每個可共用資源的標題中都有一個共用按鈕。點選它會開啟一個錨定到按鈕(不是模式)的快顯窗口,其中包含:
|
|
74
|
+
|
|
75
|
+
- 可見性選取器(`Private` / `Organization` / `Public link`)。
|
|
76
|
+
- “新增人員或團隊”自動完成 - 搜尋組織中的使用者或貼上電子郵件。
|
|
77
|
+
- 用於個人電子郵件授權的 Google 檔案樣式 `通知 people` 核取方塊。
|
|
78
|
+
- 包含角色選取器和刪除控件的目前授權列表。
|
|
79
|
+
- 尊重目前可見性的複製連結按鈕。
|
|
80
|
+
|
|
81
|
+
共用按鈕是一次匯入:
|
|
82
|
+
|
|
83
|
+
```tsx
|
|
84
|
+
import { ShareButton } from "@agent-native/core/client";
|
|
85
|
+
|
|
86
|
+
<ShareButton
|
|
87
|
+
resourceType="deck"
|
|
88
|
+
resourceId={deck.id}
|
|
89
|
+
resourceTitle={deck.title}
|
|
90
|
+
/>;
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
對於列表,請在每行旁邊放置一個 `<VisibilityBadge visibility={row.visibility} />`,以便使用者可以一目了然地了解哪些是私人的,哪些是共用的。
|
|
94
|
+
|
|
95
|
+
## 與UI相同型號、代理商 {#agent-and-ui}
|
|
96
|
+
|
|
97
|
+
框架在每個範本中自動安裝這些 actions - 代理將它們稱為工具,UI 通過 `useActionQuery` / `useActionMutation` 調用它們:
|
|
98
|
+
|
|
99
|
+
| 行動 | 它的作用 |
|
|
100
|
+
| ------------------------- | ---------------------------------------------------------------------- |
|
|
101
|
+
| `share-resource` | 授予使用者或組織特定角色的存取權限。可選的 `notify` 控制電子郵件通知。 |
|
|
102
|
+
| `unshare-resource` | 撤銷使用者或組織的存取權限。 |
|
|
103
|
+
| `list-resource-shares` | 顯示目前可見性以及所有顯式授權。 |
|
|
104
|
+
| `set-resource-visibility` | 更改為 `private`、`org` 或 `public`。 |
|
|
105
|
+
|
|
106
|
+
告訴代理“與作為編輯的營銷團隊共用此設計”,它會針對 UI 使用的同一端點調用 `share-resource`。結果將顯示在下一次渲染的共用對話框中。
|
|
107
|
+
|
|
108
|
+
## 將其建置到新範本中 {#building}
|
|
109
|
+
|
|
110
|
+
如果您正在建立範本(請參閱 [Creating Templates](/docs/creating-templates)),則共用接線會很短。您的架構中新增了兩項內容:
|
|
111
|
+
|
|
112
|
+
```ts
|
|
113
|
+
import {
|
|
114
|
+
table,
|
|
115
|
+
text,
|
|
116
|
+
ownableColumns,
|
|
117
|
+
createSharesTable,
|
|
118
|
+
} from "@agent-native/core/db/schema";
|
|
119
|
+
|
|
120
|
+
export const decks = table("decks", {
|
|
121
|
+
id: text("id").primaryKey(),
|
|
122
|
+
title: text("title").notNull(),
|
|
123
|
+
data: text("data").notNull(),
|
|
124
|
+
...ownableColumns(), // adds owner_email, org_id, visibility
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
export const deckShares = createSharesTable("deck_shares");
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
```an-schema title="資源+同伴分享表" summary="Coarse visibility lives on the resource; each fine-grained grant is a row in the shares table."
|
|
131
|
+
{
|
|
132
|
+
"entities": [
|
|
133
|
+
{
|
|
134
|
+
"id": "deck",
|
|
135
|
+
"name": "decks",
|
|
136
|
+
"note": "...ownableColumns()",
|
|
137
|
+
"fields": [
|
|
138
|
+
{ "name": "id", "type": "text", "pk": true },
|
|
139
|
+
{ "name": "title", "type": "text", "nullable": false },
|
|
140
|
+
{ "name": "owner_email", "type": "text", "nullable": false, "note": "所有權的唯一事實來源。" },
|
|
141
|
+
{ "name": "org_id", "type": "text", "nullable": true },
|
|
142
|
+
{ "name": "visibility", "type": "enum", "nullable": false, "note": "私人|組織|民眾" }
|
|
143
|
+
]
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"id": "deckShare",
|
|
147
|
+
"name": "deck_shares",
|
|
148
|
+
"note": "createSharesTable() — one row per grant",
|
|
149
|
+
"fields": [
|
|
150
|
+
{ "name": "id", "type": "text", "pk": true },
|
|
151
|
+
{ "name": "resource_id", "type": "text", "fk": "decks.id", "nullable": false },
|
|
152
|
+
{ "name": "principal_type", "type": "enum", "note": "使用者 |組織" },
|
|
153
|
+
{ "name": "principal_id", "type": "text", "note": "email (user) or org id (org)" },
|
|
154
|
+
{ "name": "role", "type": "enum", "note": "觀眾|編輯|行政" },
|
|
155
|
+
{ "name": "created_by", "type": "text" },
|
|
156
|
+
{ "name": "created_at", "type": "text" }
|
|
157
|
+
]
|
|
158
|
+
}
|
|
159
|
+
],
|
|
160
|
+
"relations": [
|
|
161
|
+
{ "from": "deckShare", "to": "deck", "kind": "n-n", "label": "grants access to" }
|
|
162
|
+
]
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
`server/db/index.ts` 中的一次註冊電話:
|
|
167
|
+
|
|
168
|
+
```ts
|
|
169
|
+
import { registerShareableResource } from "@agent-native/core/sharing";
|
|
170
|
+
|
|
171
|
+
registerShareableResource({
|
|
172
|
+
type: "deck",
|
|
173
|
+
resourceTable: schema.decks,
|
|
174
|
+
sharesTable: schema.deckShares,
|
|
175
|
+
displayName: "Deck",
|
|
176
|
+
titleColumn: "title",
|
|
177
|
+
getResourcePath: (deck) => `/deck/${deck.id}`,
|
|
178
|
+
getDb,
|
|
179
|
+
});
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
之後,列表/讀取查詢通過 `accessFilter()` 傳遞,寫入 actions 使用 `assertAccess()` 來強制執行角色。
|
|
183
|
+
|
|
184
|
+
### 可選的強化標志 {#hardening-flags}
|
|
185
|
+
|
|
186
|
+
`registerShareableResource` 接受執行程式碼或承載提升信任的資源的兩個安全標志:
|
|
187
|
+
|
|
188
|
+
```ts
|
|
189
|
+
registerShareableResource({
|
|
190
|
+
type: "extension",
|
|
191
|
+
resourceTable: schema.extensions,
|
|
192
|
+
sharesTable: schema.extensionShares,
|
|
193
|
+
// ...
|
|
194
|
+
allowPublic: false, // Reject set-resource-visibility → "public"
|
|
195
|
+
requireOrgMemberForUserShares: true, // Reject user grants to non-org emails
|
|
196
|
+
});
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
`allowPublic: false` 阻止任何調用者(代理或 UI)將資源的可見性設定為 `public`。 `requireOrgMemberForUserShares: true` 拒絕個人使用者向資源所有者組織外部的電子郵件地址授予權限。擴充功能設定了兩者:擴充功能的 HTML 在調用 actions 和 DB 作為 _viewer_ 的 iframe 內執行,因此公開存取將是具有檢視者憑證的任意程式碼。
|
|
200
|
+
|
|
201
|
+
```an-callout
|
|
202
|
+
{
|
|
203
|
+
"tone": "risk",
|
|
204
|
+
"body": "For resources that execute code or carry elevated trust (like extensions), set `allowPublic: false` and `requireOrgMemberForUserShares: true`. Otherwise a public share becomes arbitrary code running with the *viewer's* credentials."
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
當代理或其他非 UI 呼叫者建立共用時,`getResourcePath` 會向通知電子郵件提供直接後備連結。完整的模式(包括建立操作所有權標記和現有表的遷移配方)存在於 `sharing` 代理技能中 - 代理在建置共用感知功能時按需讀取它。
|
|
209
|
+
|
|
210
|
+
## 安全保證 {#security}
|
|
211
|
+
|
|
212
|
+
共用依賴於框架更廣泛的資料範圍模型 - 對可擁有表的列表/讀/寫存取通過 `accessFilter()` / `resolveAccess()` / `assertAccess()`,並且 `org_id` 標記的資源在組織中不可見。有關完整管道、CI 防護和威脅面,請參閱 [Security → Data Scoping](/docs/security#data-scoping)。
|
|
213
|
+
|
|
214
|
+
## 另請參閱 {#see-also}
|
|
215
|
+
|
|
216
|
+
- [Security & Data Scoping](/docs/security) - 共用所依賴的存取過濾器和所有權模型。
|
|
217
|
+
- [Authentication](/docs/authentication) — 工作階段、組織以及身分如何流入請求上下文。
|
|
218
|
+
- [Extensions](/docs/extensions#sharing) — 在沙盒迷你應用表面中共用。
|
|
219
|
+
- [Creating Templates](/docs/creating-templates) — 將 `ownableColumns` 連線到新範本的架構中。
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Skills指南"
|
|
3
|
+
description: "skills 如何在代理原生中工作:框架 skills、域 skills 以及建立自訂 skills。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skills指南
|
|
7
|
+
|
|
8
|
+
Skills 是 Markdown 檔案,可讓代理深入了解特定模式和工作流程。
|
|
9
|
+
|
|
10
|
+
## skills是什么 {#what-are-skills}
|
|
11
|
+
|
|
12
|
+
Skills 位於 `.agents/skills/<name>/SKILL.md`,包含針對代理的詳細指導。每項技能都專注於一個問題 - 如何存儲資料、如何同步狀態、如何將工作委托給代理聊天。
|
|
13
|
+
|
|
14
|
+
每個技能的 frontmatter `name` 和 `description` 總是被注入到系統提示符的 skills 塊中,以便代理知道 skills 存在什么。當代理確定技能與工作相關時,會按需載入完整的技能主體(也通過 `docs-search` 顯示)。這就是為什么保持描述簡短且特定於觸發器很重要:描述是代理在決定是否載入其餘部分之前讀取的唯一內容。
|
|
15
|
+
|
|
16
|
+
```an-diagram title="漸進式披露" summary="只有每個技能的名稱+描述始終處於上下文中。當工作匹配時,全身會按需載入。"
|
|
17
|
+
{
|
|
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
|
+
"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}"
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 框架skills {#framework-skills}
|
|
24
|
+
|
|
25
|
+
這些是與 **預設範本** 捆綁在一起的 skills。任何給定應用程式中可用的確切集合取決於您建置的範本 - 檢查該範本的 `.agents/skills/` 目錄以了解它實際提供的內容。
|
|
26
|
+
|
|
27
|
+
| 技能 | 何時使用 |
|
|
28
|
+
| ---------------------- | --------------------------------------------- |
|
|
29
|
+
| `storing-data` | 新增資料模型,讀/寫設定或狀態 |
|
|
30
|
+
| `real-time-sync` | 接線輪詢同步,偵錯UI不更新 |
|
|
31
|
+
| `delegate-to-agent` | 將 AI 工作從 UI 或 actions 委托給代理 |
|
|
32
|
+
| `actions` | 建立或執行代理actions |
|
|
33
|
+
| `self-modifying-code` | 編輯應用來源、元件或樣式 |
|
|
34
|
+
| `create-skill` | 為代理新增新的 skills |
|
|
35
|
+
| `capture-learnings` | 紀錄更正和模式 |
|
|
36
|
+
| `frontend-design` | 建置或設計任何 Web UI、元件或頁面的樣式 |
|
|
37
|
+
| `adding-a-feature` | 四個區域清單:UI、actions、skills、應用狀態 |
|
|
38
|
+
| `internationalization` | 更新本機化的 UI 副本、語言目錄和 RTL 安全樣式 |
|
|
39
|
+
| `shadcn-ui` | 使用 shadcn/ui 原語和元件 |
|
|
40
|
+
| `security` | 驗證、存取控制和秘密處理 |
|
|
41
|
+
| `real-time-collab` | 多使用者協作編輯 |
|
|
42
|
+
| `agent-engines` | 交換或設定底層代理引擎 |
|
|
43
|
+
| `notifications` | 應用內和推送通知模式 |
|
|
44
|
+
| `progress` | 跟蹤和顯示後台工作進度 |
|
|
45
|
+
| `inline-embeds` | 在代理聊天中嵌入應用程式或 iframe |
|
|
46
|
+
|
|
47
|
+
`context-awareness` 和 `a2a-protocol` 是框架級 skills,位於儲存庫根目錄的 `.agents/skills/` 目錄中 - 請參閱每個範本自己的 `.agents/skills/` 了解其繼承的內容。
|
|
48
|
+
|
|
49
|
+
## 域名skills {#domain-skills}
|
|
50
|
+
|
|
51
|
+
範本包括特定於其域的 skills。它們位於相同的 `.agents/skills/` 目錄中,但涵蓋了特定於範本的模式。請參閱每個範本的 `.agents/skills/` 目錄以獲取完整列表;代表性樣本:
|
|
52
|
+
|
|
53
|
+
- **郵件範本** — `email-drafts`、`draft-queue`
|
|
54
|
+
- **表單範本** — `form-building`、`form-publishing`、`form-responses`
|
|
55
|
+
- **分析範本** — `adhoc-analysis`、`bigquery`、`cross-source-analysis`、`dashboard-management`、`data-querying`、`provider-api`、`gong`、`hubspot`、`prometheus`
|
|
56
|
+
- **幻燈片範本** — `create-deck`、`deck-management`、`design-systems`、`slide-editing`、`slide-images`
|
|
57
|
+
|
|
58
|
+
域 skills 遵循與框架 skills 相同的格式。它們對代理需要遵循的特定範本的模式進行編碼。
|
|
59
|
+
|
|
60
|
+
## 應用程式支持的 skills {#app-backed-skills}
|
|
61
|
+
|
|
62
|
+
應用程式支持的 skills 將代理本機應用程式打包為技能市場工件。該捆綁包可以包含代理指令、匯出的 skills、MCP 連線器元資料、託管/本機啟動指令和 UI 表面(例如 MCP 應用程式)。
|
|
63
|
+
|
|
64
|
+
> **完整詳細資訊如下:** [App-backed skills — full details](#app-backed-skills-full) 中介紹了應用程式支持的 skills 的機制(清單格式、CLI 指令、市場適配器、自動更新哈希)。
|
|
65
|
+
|
|
66
|
+
## 建立自訂 skills {#creating-skills}
|
|
67
|
+
|
|
68
|
+
在以下情況下建立技能:
|
|
69
|
+
|
|
70
|
+
- 代理應該重複遵循一個模式
|
|
71
|
+
- 工作流程需要分步指導
|
|
72
|
+
- 您想要從範本中建置檔案
|
|
73
|
+
|
|
74
|
+
在以下情況下不要建立技能:
|
|
75
|
+
|
|
76
|
+
- 該指導已存在於另一項技能中 - 請擴充功能它
|
|
77
|
+
- 該指導是一次性的 - 將其放入 `AGENTS.md` 或工作區內存中
|
|
78
|
+
|
|
79
|
+
## 技能格式 {#skill-format}
|
|
80
|
+
|
|
81
|
+
每個技能都是一個 Markdown 檔案,其 frontmatter 為 YAML:
|
|
82
|
+
|
|
83
|
+
```an-annotated-code title="SKILL.md 的剖析"
|
|
84
|
+
{
|
|
85
|
+
"filename": ".agents/skills/project-imports/SKILL.md",
|
|
86
|
+
"language": "markdown",
|
|
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
|
+
"annotations": [
|
|
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` 是始終處於上下文中的**唯一**文本。準確地說明該技能“何時”應用。" },
|
|
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
|
+
{ "lines": "27-30", "label": "交聯", "note": "指出相關技能,以便代理可以將它們連結起來,而不是重新得出指導。" }
|
|
93
|
+
]
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
frontmatter `name` 和 `description` 由代理的工具系統用於技能發現。描述應說明技能何時觸發——具體說明具體情況。
|
|
98
|
+
|
|
99
|
+
將檔案儲存在 `.agents/skills/my-skill/SKILL.md`。目錄名稱應與 frontmatter 中的 `name` 匹配。
|
|
100
|
+
|
|
101
|
+
> **另請參閱:** [Writing Agent Instructions](/docs/writing-agent-instructions) 了解如何措辭技能描述、應用漸進式披露以及保持 `AGENTS.md` 的精簡。兩個頁面均使用 `project-imports` 技能作為執行範例。
|
|
102
|
+
|
|
103
|
+
## 技能範圍:執行時與開發 {#skill-scope}
|
|
104
|
+
|
|
105
|
+
可選的 `scope` frontmatter 欄位控制技能適用於哪個代理:
|
|
106
|
+
|
|
107
|
+
| `scope` | 由執行時代理載入? | 用於 |
|
|
108
|
+
| --------- | ------------------ | ---------------------------------------------------------- |
|
|
109
|
+
| `both` | 是(預設) | Skills 對於應用內代理有用。當省略 `scope` 時,這是預設值。 |
|
|
110
|
+
| `runtime` | 是 | Skills 僅適用於應用內執行時代理。 |
|
|
111
|
+
| `dev` | 否 | Skills 僅適用於人類的編碼代理(例如 Claude 程式碼)。 |
|
|
112
|
+
|
|
113
|
+
```markdown
|
|
114
|
+
---
|
|
115
|
+
name: release-checklist
|
|
116
|
+
description: >-
|
|
117
|
+
Steps for cutting a release. Use when preparing or publishing a new version.
|
|
118
|
+
scope: dev
|
|
119
|
+
---
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
當 `scope` 不存在(或設定為無法識別的值)時,它預設為 `both`,因此每個現有技能都會在執行時載入 - 該欄位完全向後兼容。 `scope: dev` 技能對於任何地方的執行時代理都是不可見的:它被排除在注入系統提示符的 skills 塊和 `docs-search` 結果之外。
|
|
123
|
+
|
|
124
|
+
### 向您的編碼代理公開僅限開發的技能 {#dev-only-skills}
|
|
125
|
+
|
|
126
|
+
代理本機執行時從 `.agents/skills/` 讀取 skills。 Claude 程式碼獨立從 `.claude/skills/` 讀取 skills。要使編碼代理可用但對執行時代理隱藏的技能:
|
|
127
|
+
|
|
128
|
+
- 將其標記為 `.agents/skills/<name>/SKILL.md` 中的 `scope: dev`,以便執行時代理永遠不會載入它,和/或
|
|
129
|
+
- 將技能放置或鏡像到 `.claude/skills/<name>/SKILL.md` 下,以便 Claude 程式碼拾取它。
|
|
130
|
+
|
|
131
|
+
這取代了依賴 Claude 程式碼僅讀取 `.claude/skills` 的舊技巧 - `scope: dev` 使開發與執行時分割成為一流的顯式選取。
|
|
132
|
+
|
|
133
|
+
```an-diagram title="哪個代理載入哪個技能" summary="範圍決定應用程式內執行時代理是否看到技能。開發技能僅對您的編碼代理可見。"
|
|
134
|
+
{
|
|
135
|
+
"html": "<div class=\"sc-grid\"><div class=\"diagram-card\"><span class=\"diagram-pill\">.agents/skills/</span><div class=\"sc-row\"><span class=\"diagram-pill ok\">scope: both</span><small class=\"diagram-muted\">default</small></div><div class=\"sc-row\"><span class=\"diagram-pill ok\">scope: runtime</span></div><div class=\"sc-row\"><span class=\"diagram-pill warn\">scope: dev</span></div></div><div class=\"sc-targets\"><div class=\"diagram-box\">Runtime agent<br><small class=\"diagram-muted\">reads <code>both</code> + <code>runtime</code></small></div><div class=\"diagram-box\">編碼 Agent<br><small class=\"diagram-muted\">Claude Code reads <code>.claude/skills/</code> + <code>dev</code></small></div></div></div>",
|
|
136
|
+
"css": ".sc-grid{display:flex;gap:24px;flex-wrap:wrap;align-items:flex-start}.sc-grid .diagram-card{display:flex;flex-direction:column;gap:8px;padding:14px 16px}.sc-grid .sc-row{display:flex;align-items:center;gap:8px}.sc-grid .sc-targets{display:flex;flex-direction:column;gap:10px}"
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
> **另請參閱:** [Writing Agent Instructions](/docs/writing-agent-instructions) 了解如何措辭技能描述、應用漸進式披露以及保持 `AGENTS.md` 精簡。
|
|
142
|
+
|
|
143
|
+
## Skills vs AGENTS.md {#skills-vs-agents-md}
|
|
144
|
+
|
|
145
|
+
> **AGENTS.md** — 概述。列出所有腳本,描述資料模型,解釋應用程式架構。代理首先閱讀此內容以了解應用程式。
|
|
146
|
+
>
|
|
147
|
+
> **Skills** — 深入研究。每項技能都側重於一種模式,並包含詳細規則、程式碼範例和“注意事項”列表。當代理需要遵循特定模式時,它會讀取這些內容。
|
|
148
|
+
|
|
149
|
+
`AGENTS.md` 告訴代理應用程式的用途。 Skills 告訴代理*如何*正確地做特定的事情。兩者都是必需的 - `AGENTS.md` 用於定向,skills 用於執行。
|
|
150
|
+
|
|
151
|
+
## Skills 與內存 {#skills-vs-memory}
|
|
152
|
+
|
|
153
|
+
> **Skills** — 編寫的、可重複使用的操作指南。適用於每個使用者,在工作匹配時按需調用。
|
|
154
|
+
>
|
|
155
|
+
> **內存 (`LEARNINGS.md` / `memory/MEMORY.md`)** — 共用專案學習和每輪都會載入的個人結構化內存。
|
|
156
|
+
|
|
157
|
+
如果這些知識適用於在應用程式中工作的*每個人*(“總是更喜歡 CTE 而不是子查詢”),那么它就是一項技能或共用的 `LEARNINGS.md`。如果它是關於*這個特定使用者*(“史蒂夫喜歡簡潔的答案”),它就屬於 `memory/MEMORY.md`。完整治療請參見[Workspace Memory](/docs/workspace#memory)。
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
# 高級
|
|
162
|
+
|
|
163
|
+
## 應用程式支持的 skills — 完整詳細資訊 {#app-backed-skills-full}
|
|
164
|
+
|
|
165
|
+
應用程式支持的 skills 將代理本機應用程式打包為技能市場工件。
|
|
166
|
+
捆綁包可以包含代理指令、匯出的 skills、MCP 連線器
|
|
167
|
+
元資料、託管/本機啟動說明和 UI 介面,例如 MCP 應用程式。
|
|
168
|
+
|
|
169
|
+
每個應用程式支持的技能都以應用程式根目錄中的 `agent-native.app-skill.json` 開頭:
|
|
170
|
+
|
|
171
|
+
```json
|
|
172
|
+
{
|
|
173
|
+
"schemaVersion": 1,
|
|
174
|
+
"id": "assets",
|
|
175
|
+
"hosted": {
|
|
176
|
+
"url": "https://assets.agent-native.com",
|
|
177
|
+
"mcpUrl": "https://assets.agent-native.com/_agent-native/mcp"
|
|
178
|
+
},
|
|
179
|
+
"mcp": { "serverName": "agent-native-assets" },
|
|
180
|
+
"skills": [
|
|
181
|
+
{
|
|
182
|
+
"path": ".agents/skills/asset-generation",
|
|
183
|
+
"visibility": "both",
|
|
184
|
+
"exportAs": "assets"
|
|
185
|
+
}
|
|
186
|
+
]
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
技能可見性控制運送的內容:
|
|
191
|
+
|
|
192
|
+
| 可見度 | 含義 |
|
|
193
|
+
| ---------- | ------------------------------------ |
|
|
194
|
+
| `internal` | 由應用自己的代理使用,不匯出到市場。 |
|
|
195
|
+
| `exported` | 匯出到市場,但應用內部不需要。 |
|
|
196
|
+
| `both` | 內部使用並匯出。 |
|
|
197
|
+
|
|
198
|
+
Hosted 是預設安裝路徑。本機啟動是明確的定制,
|
|
199
|
+
離線工作,或隱私敏感的使用。
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
# 愉快的路徑:匯出的指令加上託管的 MCP 連線器。
|
|
203
|
+
npx @agent-native/core@latest skills add visual-plan
|
|
204
|
+
npx @agent-native/core@latest skills add assets
|
|
205
|
+
|
|
206
|
+
# 回購優先內容 docs/blog/MDX 編輯。
|
|
207
|
+
npx @agent-native/core@latest skills add content --mode local-files --scope project
|
|
208
|
+
|
|
209
|
+
# Vercel/open技能CLI:僅匯出指令,無MCP設定。
|
|
210
|
+
npx skills@latest add BuilderIO/agent-native --skill assets
|
|
211
|
+
|
|
212
|
+
# 為本機代理用戶端註冊託管 MCP 連線器。
|
|
213
|
+
npx @agent-native/core@latest app-skill ensure --manifest templates/assets/agent-native.app-skill.json
|
|
214
|
+
|
|
215
|
+
# 實現並執行可編輯的本機來源。
|
|
216
|
+
npx @agent-native/core@latest app-skill launch --manifest templates/assets/agent-native.app-skill.json --local --into ./assets-local
|
|
217
|
+
|
|
218
|
+
# 建置市場適配器:Codex 外掛、Claude 市場、Vercel 技能、
|
|
219
|
+
# plain/Claude技能和MCP設定。
|
|
220
|
+
npx @agent-native/core@latest app-skill pack --manifest templates/assets/agent-native.app-skill.json --out ./dist/assets-skill
|
|
221
|
+
|
|
222
|
+
# 使用 Vercel/open 技能 CLI 安裝本機匯出的包。
|
|
223
|
+
npx skills@latest add ./dist/assets-skill --skill assets -a codex -y
|
|
224
|
+
|
|
225
|
+
# 新增生成的 Claude Code 市場,然後安裝其 Assets 外掛。
|
|
226
|
+
claude plugin marketplace add ./dist/assets-skill/adapters/claude-marketplace
|
|
227
|
+
claude plugin install agent-native-assets@agent-native-apps
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
對技能檔案保密。清單應包含僅 URL 連線器
|
|
231
|
+
元資料; OAuth/設備設定發生在 MCP 主機中或通過應用程式的正常設定
|
|
232
|
+
設定流程。
|
|
233
|
+
|
|
234
|
+
Vercel Labs `skills` 適配器是便攜式 `skills/<name>/SKILL.md` 捆綁包
|
|
235
|
+
適用於 `npx skills@latest add ...`,但原始 `skills` CLI 僅安裝說明。
|
|
236
|
+
它不執行儲存庫定義的安裝後腳本或註冊 MCP 連線器。
|
|
237
|
+
將 Agent Native CLI 保留為本機代理的預設檔案路徑,因為它
|
|
238
|
+
還註冊 MCP 連線器。 `BuilderIO/agent-native`是真正的GitHub
|
|
239
|
+
Vercel/open Skills CLI 的儲存庫來源; `skills.sh` 是一個發現,並且
|
|
240
|
+
排行榜目錄,而不是npm風格的包命名空間。
|
|
241
|
+
|
|
242
|
+
Claude 程式碼市場適配器寫入
|
|
243
|
+
`adapters/claude-marketplace/.claude-plugin/marketplace.json` 加一個嵌套
|
|
244
|
+
包含 `skills/<name>/SKILL.md` 和 `.mcp.json` 的外掛目錄。在Claude
|
|
245
|
+
編碼,新增市場,安裝`agent-native-assets@agent-native-apps`,
|
|
246
|
+
重新載入外掛,然後從 `/mcp` 驗證僅限 URL 的 MCP 連線器。
|
|
247
|
+
|
|
248
|
+
生成的外掛清單設定為自動更新:Claude 程式碼
|
|
249
|
+
市場入口集 `autoUpdate: true`(帶有 commit-SHA 版本控制)和
|
|
250
|
+
Codex 外掛 `version` 嵌入捆綁的 skills 和 MCP 的內容哈希
|
|
251
|
+
端點,因此安裝的外掛無需重新打包即可獲取技能更改。
|
|
252
|
+
計畫應用程式以這種方式發布為儲存庫根目錄中的可隨時新增的市場 —
|
|
253
|
+
請參閱 [Plan plugin & marketplace](/docs/plan-plugin) 以了解端對端安裝
|
|
254
|
+
和自動更新流程。
|
|
255
|
+
|
|
256
|
+
對於通過通用CLI而不是安裝複製的skills的使用者
|
|
257
|
+
外掛市場,使用CLI新鮮度指令:
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
npx @agent-native/core@latest skills status visual-plan
|
|
261
|
+
npx @agent-native/core@latest skills update visual-plan
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
`skills update` 掃描已知的 Codex/Claude 專案和使用者技能資料夾,進行比較
|
|
265
|
+
將資料夾哈希複製到最新的捆綁技能,並重寫舊資料夾
|
|
266
|
+
地點。新複製的 Agent Native skills 包括 `agent-native-skill.json`
|
|
267
|
+
標記,以便將來的狀態輸出可以識別來源和哈希值。
|
|
268
|
+
|
|
269
|
+
生成的 Agent Native 應用程式和工作區還包括框架提供的
|
|
270
|
+
`.agents/skills` 下的 skills(或 `packages/shared/.agents/skills` 中的
|
|
271
|
+
工作區)。使用以下指令從目前/最新的 CLI 刷新那些支架 skills:
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
npm run skills:update
|
|
275
|
+
# 或者,不依賴本機包腳本:
|
|
276
|
+
npx @agent-native/core@latest skills update scaffold --project
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
`AGENTS.md` 和 `.agents/skills` 保持規範。更新指令還可以修複
|
|
280
|
+
Claude 兼容性連結(`CLAUDE.md` 和 `.claude/skills`),因此 Claude 程式碼可見
|
|
281
|
+
相同的說明,無需維護第二個副本。
|