@agent-native/core 0.79.1 → 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 +30 -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 +54 -2
- 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/resources/handlers.d.ts +2 -2
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +55 -2
- package/dist/server/agent-chat-plugin.js.map +1 -1
- 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,312 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "關鍵概念"
|
|
3
|
+
description: "代理本機應用程式的工作原理:首先是 actions、SQL 資料庫、應用程式代理循環、可選的 UI、輪詢同步、外部代理入口點、上下文感知和可移植性。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 關鍵概念
|
|
7
|
+
|
|
8
|
+
代理本機應用程式如何在幕後工作 - 原則和架構。此頁面為合同;有關以這種方式建置的願景和案例,請參閱 [What Is Agent-Native?](/docs/what-is-agent-native)。
|
|
9
|
+
|
|
10
|
+
## 架構 {#the-architecture}
|
|
11
|
+
|
|
12
|
+
每個代理本機應用程式都由三部分協同工作:
|
|
13
|
+
|
|
14
|
+
> **代理** — 讀取資料、寫入資料、執行 actions 和修改程式碼的自主 AI。可使用 skills 和說明進行定制。
|
|
15
|
+
>
|
|
16
|
+
> **應用** — 試劑週圍的產品表面。一開始這可能只是操作、丰富的聊天、小型控制平面或帶有儀表板、流程和可視化的完整 React 介面。
|
|
17
|
+
>
|
|
18
|
+
> **計算機** — 資料庫、瀏覽器、程式碼執行。代理直接使用SQL和內置工具進行工作; MCP 伺服器是可選的附加元件,而不是基礎。
|
|
19
|
+
|
|
20
|
+
```an-diagram title="代理、應用程式和計算機" summary="三層在一個共用的 SQL 存儲上協同工作。代理和應用程式讀取和寫入相同的資料。"
|
|
21
|
+
{
|
|
22
|
+
"html": "<div class=\"diagram-arch\"><div class=\"diagram-row\"><div class=\"diagram-card\"><span class=\"diagram-pill accent\">Agent</span><small class=\"diagram-muted\">讀取和寫入資料、執行 actions、修改程式碼</small></div><div class=\"diagram-card\"><span class=\"diagram-pill\">Application</span><small class=\"diagram-muted\">action-only, chat, control plane, or full React 介面</small></div></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">↓ ↑</div><div class=\"diagram-box\" data-rough>Computer<br><small class=\"diagram-muted\">SQL 資料庫 · browser · code execution</small></div></div>",
|
|
23
|
+
"css": ".diagram-arch{display:flex;flex-direction:column;align-items:center;gap:10px}.diagram-arch .diagram-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.diagram-arch .diagram-card{display:flex;flex-direction:column;gap:6px;padding:14px 16px;min-width:220px}.diagram-arch .diagram-arrow{font-size:20px;line-height:1}.diagram-arch .diagram-box{text-align:center;padding:12px 18px}"
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
無頭應用程式可以使用 `pnpm agent` 從資料夾執行相同的正式環境應用程式代理循環,而 UI 應用程式則安裝嵌入式代理面板並使用 `pnpm dev` 在本機執行。在雲端中,Builder.io 提供了一個託管框架(在您的應用旁邊託管代理的環境),為團隊提供協作、可視化編輯和託管基礎架構。
|
|
28
|
+
|
|
29
|
+
## 代理建置塊 {#agent-building-blocks}
|
|
30
|
+
|
|
31
|
+
每個代理本機應用程式都具有相同的代理建置塊,無論是否
|
|
32
|
+
產品表面是無頭的、聊天優先的或完整的 UI:
|
|
33
|
+
|
|
34
|
+
```an-file-tree title="指導和行為"
|
|
35
|
+
{
|
|
36
|
+
"entries": [
|
|
37
|
+
{ "path": "AGENTS.md", "note": "始終生效的指令:目的、核心規則、狀態鍵、actions 索引、skills 索引" },
|
|
38
|
+
{ "path": ".agents/skills/<name>/SKILL.md", "note": "可複用行為:workflow 步驟、策略、範例、參考以及做/不做清單" },
|
|
39
|
+
{ "path": "actions/<name>.ts", "note": "可執行能力:暴露給代理、UI、CLI、HTTP、MCP、A2A、jobs 和 webhooks 的型別化操作" }
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
| 建置塊 | 使用它 | 載入時間 |
|
|
45
|
+
| ----------- | ---------------------------------------------------------------------- | -------------------------------- |
|
|
46
|
+
| **說明** | 代理應在每項工作中進行穩定的指導:應用程式是什么、不變數、語氣、索引 | 每個回合 |
|
|
47
|
+
| **Skills** | 可重用行為:如何遵循工作流程、應用策略、檢查證據或驗證輸出 | 當技能描述與工作匹配時按需 |
|
|
48
|
+
| **Actions** | 實際操作:讀取或寫入資料、調用 API、發送訊息、執行審批、生成型別化結果 | 每次都被列為工具;僅在調用時執行 |
|
|
49
|
+
|
|
50
|
+
Skills 和 actions 一起工作。一項技能教代理如何做一類
|
|
51
|
+
工作;操作是它在執行該工作時可以調用的程式碼路徑。例如,
|
|
52
|
+
`customer-research` 技能可能會告訴代理要檢查哪些來源
|
|
53
|
+
如何在 `search-crm` 和 `create-brief` actions 獲取的同時總結證據
|
|
54
|
+
並寫入實際資料。
|
|
55
|
+
|
|
56
|
+
管理架構的六項規則:
|
|
57
|
+
|
|
58
|
+
1. **資料存在於 SQL** - 所有應用程式狀態都通過 Drizzle ORM 存在於資料庫中
|
|
59
|
+
2. **所有 AI 都通過代理** - 無內聯 LLM 調用
|
|
60
|
+
3. **Actions 用於代理操作** — 複雜的工作作為 actions 執行
|
|
61
|
+
4. **實時同步使 UI 保持同步** — 通過 SSE 進行資料庫更改流,並以輪詢作為通用回退
|
|
62
|
+
5. **代理可以修改程式碼** - 應用程式會隨著您的使用而不斷發展
|
|
63
|
+
6. **SQL 中的應用程式狀態** — 臨時 UI 狀態存在於資料庫中,代理和 UI 都可讀
|
|
64
|
+
|
|
65
|
+
## 四個區域清單 {#four-area-checklist}
|
|
66
|
+
|
|
67
|
+
每個面向使用者的功能都應該更新所有適用的區域。跳過適用區域會破壞代理與本機合約;將 UI 強制到僅動作原語上也是一種氣味。
|
|
68
|
+
|
|
69
|
+
| 區域 | 描述 |
|
|
70
|
+
| ------------------- | ---------------------------------------- |
|
|
71
|
+
| **1. UI** | 使用者與之互動的頁面、元件或對話框 |
|
|
72
|
+
| **2。行動** | actions/中的代理可調用操作用於相同操作 |
|
|
73
|
+
| **3. Skills** | 更新 AGENTS.md 和/或建立紀錄該模式的技能 |
|
|
74
|
+
| **4。應用程式狀態** | 導覽狀態、視圖螢幕資料和導覽指令 |
|
|
75
|
+
|
|
76
|
+
只有 UI 的功能對於代理來說是不可見的。僅包含 actions 的完整 UI 功能對使用者來說是不可見的。沒有應用程式狀態的功能意味著代理對使用者正在做的事情一無所知。無頭操作可以合法地從操作 + 指令開始,並在稍後當人們需要瀏覽、批準、設定或共用時新增 UI/應用程式狀態。
|
|
77
|
+
|
|
78
|
+
## SQL中的資料 {#data-in-sql}
|
|
79
|
+
|
|
80
|
+
所有應用程式狀態都通過 Drizzle ORM 存儲在 SQL 資料庫中。模式與提供者無關;支持的資料庫、`DATABASE_URL` 設定和可移植性規則位於 [Database](/docs/database) 中。
|
|
81
|
+
|
|
82
|
+
核心 SQL 商店是自動建立的,並且在每個範本中都可用:
|
|
83
|
+
|
|
84
|
+
- `application_state` - 短暫的 UI 狀態(導覽、草稿、選取)
|
|
85
|
+
- `settings` — 持久鍵值設定
|
|
86
|
+
- `oauth_tokens` — OAuth 憑證
|
|
87
|
+
- `sessions` — 驗證工作階段
|
|
88
|
+
|
|
89
|
+
```an-schema title="核心 SQL 商店" summary="在每個範本中自動建立 - 代理和 UI 都可以讀取和寫入這些範本。"
|
|
90
|
+
{
|
|
91
|
+
"entities": [
|
|
92
|
+
{ "id": "application_state", "name": "application_state", "note": "代理讀取上下文的臨時 UI 狀態", "fields": [
|
|
93
|
+
{ "name": "key", "type": "text", "pk": true, "note": "e.g。 '導覽'" },
|
|
94
|
+
{ "name": "value", "type": "json", "note": "檢視、選取、草稿" }
|
|
95
|
+
] },
|
|
96
|
+
{ "id": "settings", "name": "settings", "note": "持久鍵值設定", "fields": [
|
|
97
|
+
{ "name": "key", "type": "text", "pk": true },
|
|
98
|
+
{ "name": "value", "type": "json" }
|
|
99
|
+
] },
|
|
100
|
+
{ "id": "oauth_tokens", "name": "oauth_tokens", "note": "OAuth 憑證", "fields": [
|
|
101
|
+
{ "name": "provider", "type": "text", "pk": true },
|
|
102
|
+
{ "name": "token", "type": "text" }
|
|
103
|
+
] },
|
|
104
|
+
{ "id": "sessions", "name": "sessions", "note": "驗證工作階段", "fields": [
|
|
105
|
+
{ "name": "id", "type": "text", "pk": true },
|
|
106
|
+
{ "name": "userId", "type": "text" }
|
|
107
|
+
] }
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
```ts
|
|
113
|
+
// Drizzle schema for domain data
|
|
114
|
+
import { table, text, integer } from "@agent-native/core/db/schema";
|
|
115
|
+
|
|
116
|
+
export const forms = table("forms", {
|
|
117
|
+
id: text("id").primaryKey(),
|
|
118
|
+
title: text("title").notNull(),
|
|
119
|
+
schema: text("schema").notNull(), // JSON
|
|
120
|
+
ownerEmail: text("owner_email"),
|
|
121
|
+
createdAt: integer("created_at").notNull(),
|
|
122
|
+
});
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# 資料庫快速檢查和一次性維護的核心動作
|
|
127
|
+
pnpm action db-schema # show all tables
|
|
128
|
+
pnpm action db-query --sql "SELECT * FROM forms"
|
|
129
|
+
pnpm action db-exec --sql "UPDATE forms SET status = ? WHERE id = ?" --args '["closed","form-1"]'
|
|
130
|
+
# 大型文本列上的 Surgical find/replace — 發送差異,而不是整個值
|
|
131
|
+
pnpm action db-patch --table documents --column content \
|
|
132
|
+
--where "id='doc-1'" --find "old heading" --replace "new heading"
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
正式環境代理聊天外掛預設啟用原始資料庫寫入
|
|
136
|
+
(`databaseTools: "write"`),以便代理可以修複應用程式擁有的資料,而無需等待
|
|
137
|
+
新型別的動作。這些寫入的範圍僅限於經過驗證的使用者/組織。設定
|
|
138
|
+
`databaseTools: "read"` 僅保留 `db-schema` / `db-query` 檢查,或
|
|
139
|
+
`databaseTools: "off"` / `false` 要求型別化應用程式 actions 獲取所有資料
|
|
140
|
+
存取。
|
|
141
|
+
|
|
142
|
+
## 代理聊天橋 {#agent-chat-bridge}
|
|
143
|
+
|
|
144
|
+
UI 從不直接調用 LLM。當使用者點擊“生成圖表”或“寫入摘要”時,UI 通過 `postMessage` 向代理發送訊息。代理完成工作 - 具有完整的對話歷史紀錄、skills、指令和迭代能力。
|
|
145
|
+
|
|
146
|
+
```ts
|
|
147
|
+
// In a React component — delegate AI work to the agent
|
|
148
|
+
import { sendToAgentChat } from "@agent-native/core/client";
|
|
149
|
+
|
|
150
|
+
sendToAgentChat({
|
|
151
|
+
message: "Generate a chart showing signups by source",
|
|
152
|
+
context: "Dashboard ID: main, date range: last 30 days",
|
|
153
|
+
submit: true,
|
|
154
|
+
});
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
為什么不調用 LLM 內聯?
|
|
158
|
+
|
|
159
|
+
- **人工智能是不確定的。**您需要對話流來提供意見回饋和迭代——而不是一次性按鈕。
|
|
160
|
+
- **上下文很重要。**代理擁有您的完整程式碼庫、說明、skills 和歷史紀錄。內聯調用則沒有這些。
|
|
161
|
+
- **代理可以做更多事情。**它可以執行 actions、瀏覽網頁面、修改程式碼以及將多個步驟連結在一起。
|
|
162
|
+
- **無頭執行。**因為一切都通過代理進行,所以任何應用程式都可以完全由 Slack、Telegram 或其他代理通過 [A2A](/docs/a2a-protocol) 驅動。
|
|
163
|
+
|
|
164
|
+
## Actions系統 {#actions-system}
|
|
165
|
+
|
|
166
|
+
當代理需要做一些複雜的事情時——調用 API、處理資料、查詢資料庫——它會執行一個**操作**。 Actions 是 `actions/` 中的 TypeScript 檔案,匯出預設的 `defineAction()`:
|
|
167
|
+
|
|
168
|
+
```ts
|
|
169
|
+
// actions/fetch-data.ts
|
|
170
|
+
import { defineAction } from "@agent-native/core/action";
|
|
171
|
+
import { z } from "zod";
|
|
172
|
+
|
|
173
|
+
export default defineAction({
|
|
174
|
+
description: "Fetch data from a source API.",
|
|
175
|
+
schema: z.object({
|
|
176
|
+
source: z.string().describe("Data source key, e.g. 'signups'"),
|
|
177
|
+
}),
|
|
178
|
+
run: async ({ source }) => {
|
|
179
|
+
const res = await fetch(`https://api.example.com/${source}`);
|
|
180
|
+
return await res.json();
|
|
181
|
+
},
|
|
182
|
+
});
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
一次 `defineAction()` 調用將為您提供:
|
|
186
|
+
|
|
187
|
+
- **代理工具** — 代理通過 zod 派生的 JSON 架構看到它並可以調用它。
|
|
188
|
+
- **前端鉤子** - `useActionMutation("fetch-data")` 具有完整的 TypeScript 推理。
|
|
189
|
+
- **框架傳輸** - 自動安裝在用戶端掛鉤後面。
|
|
190
|
+
- **CLI** — `pnpm action fetch-data --source=signups` 用於腳本和代理開發循環。
|
|
191
|
+
- **MCP 工具/A2A 工具** — 當啟用 MCP 伺服器或 A2A 時,也會顯示相同的操作。
|
|
192
|
+
|
|
193
|
+
相同的邏輯,一個定義,自動連線到每個消費者。請參閱 [Actions](/docs/actions) 獲取完整參考。
|
|
194
|
+
|
|
195
|
+
## 實時同步 {#polling-sync}
|
|
196
|
+
|
|
197
|
+
資料庫更改通過`useDbSync()`同步到UI。同進程通過`/_agent-native/events`寫流; `/_agent-native/poll` 仍然是跨進程和無伺服器的後備方案。當代理寫入資料庫(應用程式狀態、設定或域資料)時,版本計數器會遞增,並且用戶端會使相關的 React 查詢快取無效。
|
|
198
|
+
|
|
199
|
+
```ts
|
|
200
|
+
// Client: subscribe to agent/UI data changes once near the app shell
|
|
201
|
+
import { useDbSync } from "@agent-native/core/client";
|
|
202
|
+
|
|
203
|
+
useDbSync({ queryClient });
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
流程是:
|
|
207
|
+
|
|
208
|
+
1. 代理執行寫入資料庫的操作
|
|
209
|
+
2. 伺服器使用 `"action"` 或 `"settings"` 等來源發出更改事件
|
|
210
|
+
3. `useDbSync` 通過 SSE 或輪詢回退接收它
|
|
211
|
+
4. `useActionQuery` 掛鉤和來源版本 `useQuery` 掛鉤重新獲取
|
|
212
|
+
5. 元件無需重新載入頁面即可呈現新資料
|
|
213
|
+
|
|
214
|
+
```an-diagram title="實時同步流程" summary="代理寫入變成 UI 渲染,無需手動刷新 - 首先是 SSE,輪詢作為通用後備。"
|
|
215
|
+
{
|
|
216
|
+
"html": "<div class=\"diagram-sync\"><div class=\"diagram-node\">Agent 操作<br><small class=\"diagram-muted\">寫入資料庫</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-node\">變更事件<br><small class=\"diagram-muted\">source: action / settings</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-panel center\"><span class=\"diagram-pill accent\">useDbSync</span><small class=\"diagram-muted\">SSE · poll fallback</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">→</div><div class=\"diagram-node\">重新獲取查詢<br><small class=\"diagram-muted\">渲染,無需重載</small></div></div>",
|
|
217
|
+
"css": ".diagram-sync{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.diagram-sync .diagram-arrow{font-size:22px;line-height:1}.diagram-sync .center{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 14px}"
|
|
218
|
+
}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
這適用於所有部署環境(包括無伺服器和邊缘),因為它使用資料庫,而不是內存狀態或檔案系統觀察器。
|
|
222
|
+
|
|
223
|
+
## 框架 {#frames}
|
|
224
|
+
|
|
225
|
+
_frame_ 是在您的應用程式旁邊託管代理的環境 - 在本機是嵌入式面板;在雲端端,它是 Builder.io 的託管表面。參見[Frames](/docs/frames)。
|
|
226
|
+
|
|
227
|
+
代理本機應用程式包括一個嵌入式代理面板,該面板與應用程式 UI 一起提供 AI 代理。這就是架構發揮作用的原因:代理需要計算機(資料庫、瀏覽器、程式碼執行),而應用程式需要代理來進行 AI 工作。
|
|
228
|
+
|
|
229
|
+
> **嵌入式代理面板** - 每個應用程式中內置聊天和可選的 CLI 終端。支持 Claude 程式碼、Codex、Gemini、OpenCode 和 Builder.io。在本機執行。免費且開來源。
|
|
230
|
+
>
|
|
231
|
+
> **雲端** — 通過實時協作、可視化編輯、角色和權限部署到任何雲端。最適合團隊。
|
|
232
|
+
|
|
233
|
+
## 情境感知 {#context-awareness}
|
|
234
|
+
|
|
235
|
+
代理始終知道使用者在看什么。 UI 在每次路由更改時將 `navigation` 金鑰寫入應用程式狀態。代理在執行操作之前通過 `view-screen` 操作讀取它。
|
|
236
|
+
|
|
237
|
+
例如,當您開啟電子郵件線程時,UI 會插入一行,例如:
|
|
238
|
+
|
|
239
|
+
```json
|
|
240
|
+
{ "key": "navigation", "value": { "view": "thread", "threadId": "th_abc123" } }
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
UI 在路線變更時寫入此資訊;代理在采取任何操作之前都會讀取它(通過 `view-screen`),因此它始終知道您關注的是哪個線程 - 或圖表或幻燈片。
|
|
244
|
+
|
|
245
|
+
請參閱 [Context Awareness](/docs/context-awareness) 了解完整模式:導覽狀態、視圖螢幕、導覽指令和抖動預防。
|
|
246
|
+
|
|
247
|
+
## 一個動作,多個表面 {#protocols}
|
|
248
|
+
|
|
249
|
+
將一個域操作作為一個動作執行一次;該框架將其暴露給每個消費者。相同的 `defineAction()` 成為代理工具、型別安全 UI 掛鉤、HTTP 端點、CLI 指令、MCP 工具和 A2A 工具,並且僅在表面需要時新增可選的 `link`、`mcpApp` 或顯式本機小部件元資料。 Skills 和說明涵蓋行為。
|
|
250
|
+
|
|
251
|
+
有關完整的協議/表面矩陣(MCP 伺服器和 OAuth、MCP 應用程式、A2A、深層連結、本機聊天小部件、AgentChatRuntime 連線器、Agent Web 以及 ACP 和 A2UI 的適配器範圍),以及選取產品形狀(無頭、丰富聊天、嵌入式邊車或完整應用程式),請參閱[Agent Surfaces](/docs/agent-surfaces)。
|
|
252
|
+
|
|
253
|
+
## 代理修改程式碼 {#agent-modifies-code}
|
|
254
|
+
|
|
255
|
+
這是一個功能,而不是一個錯誤。代理可以安全地編輯應用程式的來源程式碼:元件、路由、樣式、actions。
|
|
256
|
+
|
|
257
|
+
沒有需要破壞的共用程式碼庫。您擁有該應用程式,代理會隨著時間的推移為您改進它:
|
|
258
|
+
|
|
259
|
+
1. 分叉範本(例如分析範本)
|
|
260
|
+
2. 通過詢問代理進行定制
|
|
261
|
+
3. “為同期群分析新增新的圖表型別”——代理建置它
|
|
262
|
+
4. “連線到我們的 Stripe 帳戶”- 代理編寫整合
|
|
263
|
+
5. 您的應用無需手動開發即可不斷改進
|
|
264
|
+
|
|
265
|
+
## 預設為便攜式 {#hosting-agnostic}
|
|
266
|
+
|
|
267
|
+
兩條架構規則使應用程式可以跨資料庫和主機移植:
|
|
268
|
+
|
|
269
|
+
- **與資料庫無關。** 使用 `@agent-native/core/db/schema` 寫入模式並使用 Drizzle 的可移植查詢 DSL 進行讀/寫,因此相同的程式碼可以在任何支持的提供程序上執行。僅將原始 SQL 用於附加遷移或一次性維護,保持參數化且與方言無關。參見[Database](/docs/database)。
|
|
270
|
+
- **與主機無關。** 伺服器在 Nitro 上執行並編譯為任何部署目標。切勿在伺服器路由或外掛中使用特定於節點的 API(`fs`、`child_process`、`path`),並且切勿假設持久伺服器進程 - 無伺服器和邊缘是無狀態的,因此將所有狀態保留在 SQL 中。參見[Deployment](/docs/deployment)。
|
|
271
|
+
|
|
272
|
+
## 工作區 {#workspace}
|
|
273
|
+
|
|
274
|
+
每個使用者都會獲得一個個人**工作空間** - 指令、skills、內存、自訂子代理、計畫作業和連線的 MCP 伺服器 - 全部存儲在 SQL 而不是檔案中。這使得 Claude 程式碼級定制可以在多租戶 SaaS 中實現,而無需為每個使用者啟動一個容器。參見[Workspace](/docs/workspace)。
|
|
275
|
+
|
|
276
|
+
## 相關建置塊 {#building-blocks}
|
|
277
|
+
|
|
278
|
+
這些位於同一個合約之上,並且有自己的深入研究:
|
|
279
|
+
|
|
280
|
+
- **[Dispatch](/docs/dispatch)** — 工作區控制平面:共用收件箱、機密庫、計畫作業以及通過 A2A 委托給專業應用程式的編排器。
|
|
281
|
+
- **[Extensions](/docs/extensions)** — 代理在執行時建立的沙盒 Alpine.js 迷你應用,無需更改來源或遷移。
|
|
282
|
+
- **[A2A Protocol](/docs/a2a-protocol)** — 同一工作區中的應用如何通過 JSON-RPC 發現並相互調用。
|
|
283
|
+
|
|
284
|
+
## 您免費獲得的東西 {#what-you-get-for-free}
|
|
285
|
+
|
|
286
|
+
采用該框架很有價值,主要是因為您不再需要建置什么。一旦您的應用遵循這六個規則,您就繼承了:
|
|
287
|
+
|
|
288
|
+
- **一個操作 = 每個表面。** 使用 `defineAction()` 定義的每個操作同時是一個代理工具、型別安全前端掛鉤 (`useActionQuery` / `useActionMutation`)、框架擁有的 HTTP 傳輸、CLI 指令、用於外部用戶端的 MCP 工具以及用於其他代理本機應用程式的 A2A 工具。可選的 `link` 和 `mcpApp` 元資料新增深層連結和 MCP 應用 UI,無需第二次實現。
|
|
289
|
+
- **每個使用者一個完整的工作區。** Skills、共用 `LEARNINGS.md`、個人 `memory/MEMORY.md`、`AGENTS.md`、自訂子代理、計畫作業、連線的 MCP 伺服器 — 所有 SQL 支持,無需開發盒。參見[Workspace](/docs/workspace)。
|
|
290
|
+
- **插入 React 元件。** `<AgentPanel />` 和 `<AgentSidebar />` 在應用程式中的任何位置呈現聊天 + 工作區。參見[Drop-in Agent](/docs/drop-in-agent)。
|
|
291
|
+
- **BYO 代理聊天執行時。** 相同的聊天 UI 可以位於 OpenAI 代理、OpenAI 回應、Claude 代理 SDK、Vercel AI SDK、AG-UI 或您自己的規範化 HTTP 流之上。參見[Native 聊天介面](/docs/native-chat-ui#byo-agent-runtimes)。
|
|
292
|
+
- **代理和 UI 之間的實時同步。**同一進程立即通過 `/_agent-native/events` 寫入流;輕量級輪詢使無伺服器、cron 和跨進程寫入保持收斂。改變 actions 會自動使操作支持的查詢失效,因此無需手動刷新即可顯示代理建立的紀錄。請參閱下面的 [Live Sync](#polling-sync)。
|
|
293
|
+
- **Auth、orgs、RBAC。** 每個範本都內置了帶有 orgs/members/roles 的更好的驗證。參見[Authentication](/docs/authentication)。
|
|
294
|
+
- **上下文感知。**代理始終通過 `navigation` 應用狀態鍵了解使用者正在檢視的內容。參見[Context Awareness](/docs/context-awareness)。
|
|
295
|
+
- **MCP 用戶端 + 伺服器,雙向。** 應用程式攝取 MCP 伺服器(本機、遠端、集線器共用)*並且*將其自己的 actions 公開為 MCP 伺服器。請參閱 [MCP Clients](/docs/mcp-clients) 和 [MCP Protocol](/docs/mcp-protocol)。
|
|
296
|
+
- **應用程式間委托。**不同應用程式中的代理通過 [A2A](/docs/a2a-protocol) 進行通信。同來源部署跳過JWT;跨域使用共用的`A2A_SECRET`。
|
|
297
|
+
- **子代理團隊。** 生成一個具有自己的線程和工具的子代理,以聊天中內聯的芯片形式出現。參見[Agent Teams](/docs/agent-teams)。
|
|
298
|
+
- **可移植性。**任何 Drizzle 支持的 SQL 資料庫、任何 Nitro 兼容的主機(Node、Workers、Netlify、Vercel、Deno、Lambda、Bun)。
|
|
299
|
+
|
|
300
|
+
這就是“以及其他所有東西”,否則你需要自己將它們粘合在一起。
|
|
301
|
+
|
|
302
|
+
## 深入研究 {#deep-dives}
|
|
303
|
+
|
|
304
|
+
有關特定模式的詳細指導:
|
|
305
|
+
|
|
306
|
+
- [What Is Agent-Native?](/docs/what-is-agent-native) — 願景和理念
|
|
307
|
+
- [Context Awareness](/docs/context-awareness) — 導覽狀態、視圖螢幕、導覽指令
|
|
308
|
+
- [Skills Guide](/docs/skills-guide) — 框架 skills,域 skills,建立自訂 skills
|
|
309
|
+
- [Native 聊天介面](/docs/native-chat-ui) — 操作聲明的表格、圖表和 BYO 執行時狀態
|
|
310
|
+
- [Agent Surfaces](/docs/agent-surfaces) — 無頭、丰富的聊天、嵌入式 sidecar 和完整應用路徑
|
|
311
|
+
- [A2A Protocol](/docs/a2a-protocol) — 代理間通信
|
|
312
|
+
- [Multi-App Workspace](/docs/multi-app-workspace) — 在一個單一儲存庫中託管多個應用程式,並具有共用驗證、skills、元件和憑證
|