From c2a05681489d560b77af799ce071d44101f4fe46 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 12 Mar 2026 17:49:54 +0800 Subject: [PATCH] Add managed tree categories for agents --- .../settings/admin-settings-client.tsx | 123 ++++++++++++++ app/api/agents/[id]/route.ts | 23 ++- app/api/agents/route.ts | 77 ++++----- app/api/site-settings/route.ts | 73 ++++++++ components/agents/AgentPresetCard.tsx | 12 +- components/agents/AgentPresetDialog.tsx | 159 ++++++++++++++---- components/agents/AgentPresetPanel.tsx | 150 +++++++++++++++-- .../0056_add_agent_category_path.sql | 2 + lib/db/migrations/meta/_journal.json | 7 + lib/db/queries.ts | 45 ++--- lib/db/schema.ts | 6 + types/agent.ts | 21 ++- 12 files changed, 556 insertions(+), 142 deletions(-) create mode 100644 lib/db/migrations/0056_add_agent_category_path.sql diff --git a/app/(admin)/settings/admin-settings-client.tsx b/app/(admin)/settings/admin-settings-client.tsx index 70b1775e7..36b4c5163 100644 --- a/app/(admin)/settings/admin-settings-client.tsx +++ b/app/(admin)/settings/admin-settings-client.tsx @@ -230,6 +230,12 @@ type SiteSettings = { rankingEnabled: boolean; canvasEnabled: boolean; agentEnabled: boolean; + agentCategoryTreeConfig: { + productCategories: string[]; + audienceTags: string[]; + usageScenarios: string[]; + brands: string[]; + }; realtimeCanvasEnabled: boolean; aiDetailGenerationEnabled: boolean; canvasDefaultModelId: string | null; @@ -620,6 +626,12 @@ export function AdminSettingsClient() { rankingEnabled: true, canvasEnabled: true, agentEnabled: true, + agentCategoryTreeConfig: { + productCategories: [], + audienceTags: [], + usageScenarios: [], + brands: [], + }, realtimeCanvasEnabled: true, aiDetailGenerationEnabled: false, canvasDefaultModelId: null, @@ -692,6 +704,20 @@ export function AdminSettingsClient() { rankingEnabled: siteSettingsData.rankingEnabled ?? true, canvasEnabled: siteSettingsData.canvasEnabled ?? true, agentEnabled: (siteSettingsData as any).agentEnabled ?? true, + agentCategoryTreeConfig: { + productCategories: Array.isArray((siteSettingsData as any).agentCategoryTreeConfig?.productCategories) + ? (siteSettingsData as any).agentCategoryTreeConfig.productCategories + : [], + audienceTags: Array.isArray((siteSettingsData as any).agentCategoryTreeConfig?.audienceTags) + ? (siteSettingsData as any).agentCategoryTreeConfig.audienceTags + : [], + usageScenarios: Array.isArray((siteSettingsData as any).agentCategoryTreeConfig?.usageScenarios) + ? (siteSettingsData as any).agentCategoryTreeConfig.usageScenarios + : [], + brands: Array.isArray((siteSettingsData as any).agentCategoryTreeConfig?.brands) + ? (siteSettingsData as any).agentCategoryTreeConfig.brands + : [], + }, realtimeCanvasEnabled: (siteSettingsData as any).realtimeCanvasEnabled ?? true, aiDetailGenerationEnabled: siteSettingsData.aiDetailGenerationEnabled ?? false, canvasDefaultModelId: siteSettingsData.canvasDefaultModelId || null, @@ -5308,6 +5334,103 @@ export function AdminSettingsClient() { /> + {siteSettings.agentEnabled && ( +
+
+
智能体树形分类配置
+
+ 固定四级分类:产品品类 / 人群标签 / 使用场景 / 品牌。用户创建和筛选智能体时统一从这里选择,不再支持自定义创建分类。 +
+
+ +
+
+ +