import React, { useState } from 'react'; import { Bot, PlayCircle, ArrowLeft, Send, Clock, CheckCircle, AlertCircle, FileText, Sparkles, User, Settings, Zap, BookOpen, Lightbulb, Target, Users, MessageSquare, } from 'lucide-react'; import { useTheme } from '../contexts/ThemeContext'; import { PageType } from '../components/Sidebar'; interface AgentTrialProps { onNavigate: (page: PageType) => void; } // 单智能体能力卡片 const agentCapabilities = [ { id: 'goal', name: 'GoalAgent', role: '目标分析专家', description: '分析业务目标,提取核心KPI和成功标准', icon: Target, color: 'blue', skills: ['目标分解', 'KPI提取', '优先级排序'], example: '分析这次五四青年节宣传的核心目标是什么?', }, { id: 'audience', name: 'AudienceAgent', role: '受众分析专家', description: '定义目标受众画像,分析用户特征和需求', icon: Users, color: 'cyan', skills: ['用户画像', '行为分析', '需求挖掘'], example: '谁是我们的核心受众?他们的特征是什么?', }, { id: 'behavior', name: 'BehaviorAgent', role: '行为设计专家', description: '设计用户行为路径和转化漏斗', icon: Sparkles, color: 'green', skills: ['行为设计', '转化路径', '激励策略'], example: '我们希望用户产生什么样的行为?', }, { id: 'driver', name: 'DriverAgent', role: '驱动因素专家', description: '分析影响用户决策的核心驱动因素', icon: Lightbulb, color: 'yellow', skills: ['驱动分析', '动机挖掘', '阻力识别'], example: '什么因素会驱动用户做出我们期望的行为?', }, { id: 'narrative', name: 'NarrativeAgent', role: '叙事策略专家', description: '设计品牌叙事框架和内容策略', icon: MessageSquare, color: 'purple', skills: ['故事设计', '内容策略', '情感共鸣'], example: '我们应该如何讲述品牌故事?', }, { id: 'risk', name: 'RiskAgent', role: '风险评估专家', description: '识别项目风险,制定应对策略', icon: AlertCircle, color: 'red', skills: ['风险识别', '影响评估', '应对策略'], example: '这个方案有哪些潜在风险?', }, ]; const AgentTrial: React.FC = ({ onNavigate }) => { const { theme } = useTheme(); const isDark = theme === 'dark'; // 主题颜色类 const cardBg = isDark ? 'bg-slate-800/30' : 'bg-white'; const cardBorder = isDark ? 'border-blue-800/30' : 'border-red-200'; const textPrimary = isDark ? 'text-white' : 'text-gray-900'; const textSecondary = isDark ? 'text-slate-400' : 'text-gray-600'; const textMuted = isDark ? 'text-slate-500' : 'text-gray-500'; const btnSecondary = isDark ? 'bg-slate-700/50 hover:bg-slate-600/50 border-blue-800/30 text-slate-300' : 'bg-gray-100 hover:bg-gray-200 border-gray-300 text-gray-700'; const btnPrimary = isDark ? 'bg-blue-600 hover:bg-blue-500' : 'bg-red-600 hover:bg-red-500'; const inputBg = isDark ? 'bg-slate-900/50' : 'bg-gray-50'; const inputBorder = isDark ? 'border-blue-800/30' : 'border-gray-300'; const [selectedAgent, setSelectedAgent] = useState(null); const [inputText, setInputText] = useState(''); const [isRunning, setIsRunning] = useState(false); const [conversation, setConversation] = useState>([]); const currentAgent = agentCapabilities.find((a) => a.id === selectedAgent); const handleSelectAgent = (agentId: string) => { setSelectedAgent(agentId); const agent = agentCapabilities.find((a) => a.id === agentId); if (agent) { setInputText(agent.example); } }; const handleSend = async () => { if (!inputText.trim() || !currentAgent) return; const now = new Date().toLocaleTimeString('zh-CN', { hour: '2-digit', minute: '2-digit' }); // 添加用户消息 setConversation((prev) => [...prev, { role: 'user', content: inputText, time: now }]); const userInput = inputText; setInputText(''); setIsRunning(true); // 模拟智能体回复 setTimeout(() => { const responseTime = new Date().toLocaleTimeString('zh-CN', { hour: '2-digit', minute: '2-digit' }); let response = ''; switch (currentAgent.id) { case 'goal': response = `【目标分析完成】 基于您的描述,我分析出以下核心目标: 1. **主目标**:提升品牌在Z世代用户中的认知度 2. **次目标**:建立品牌年轻化形象,增强情感连接 3. **量化指标**: - 曝光量:500万+ - 互动率:5%+ - UGC数量:1000+ 建议优先聚焦主目标,确保资源集中。`; break; case 'audience': response = `【受众分析完成】 核心受众画像: **人口特征** - 年龄:18-25岁 - 身份:学生、基层青年工作者 - 地域:一二线城市为主 **行为特征** - 社交媒体重度用户 - 短视频爱好者 - 注重真实性和态度 **核心需求** - 社交认同与自我表达 - 归属感与群体认同 - 性价比与实用性`; break; case 'behavior': response = `【行为设计完成】 目标行为路径: 浏览 → 点赞 → 评论 → 转发 → 创作 **关键转化节点** 1. 引起注意:内容需有话题性 2. 激发互动:设置讨论话题 3. 促进创作:提供UGC模板和激励 **激励机制建议** - 虚拟勋章/积分 - 优质内容曝光 - 创作者社群归属`; break; case 'driver': response = `【驱动因素分析完成】 核心驱动因素: 1. **社交认同需求** - 年轻人渴望被关注和认可 - UGC是自我表达的重要方式 2. **群体归属感** - 青年节与年轻人天然关联 - 参与活动获得身份认同 3. **表达欲驱动** - 有态度的品牌内容激发创作 - 提供创作框架降低门槛 **主要阻力** - 注意力的稀缺 - 创作成本感知`; break; case 'narrative': response = `【叙事策略完成】 核心叙事框架: **主题**:真实、有态度的青年故事 **叙事结构** 1. 讲述真实的人物故事 2. 引发情感共鸣 3. 传递品牌价值观 4. 激发用户参与 **内容类型** - 人物专访型 - 事件记录型 - 观点表达型 **关键要素** - 真实感 > 精致感 - 态度感 > 说教感 - 参与感 > 观看感`; break; case 'risk': response = `【风险评估完成】 识别的风险项: **高风险** 1. 内容质量不稳定 - 风险:UGC质量参差不齐 - 对策:建立内容审核机制 **中风险** 2. 预算控制难度大 - 风险:投放效果不可控 - 对策:分阶段预算分配 3. 青年群体注意力分散 - 风险:话题热度难维持 - 对策:多波次内容规划 **建议**:重点关注内容质量风险`; break; default: response = '正在分析中...'; } setConversation((prev) => [...prev, { role: 'agent', content: response, time: responseTime }]); setIsRunning(false); }, 2000); }; return (
{/* 顶部操作栏 */}

单智能体试用

直接调用单个智能体进行专项分析

能力调用模式
{/* 左侧:智能体选择区 */}

选择智能体

{agentCapabilities.map((agent) => { const Icon = agent.icon; const isSelected = selectedAgent === agent.id; return ( ); })}
{/* 使用说明 */}

使用说明

1.

选择一个智能体进入专项分析模式

2.

输入您的问题或任务要求

3.

智能体将基于其专业能力给出分析结果

4.

结果可用于后续场景任务或直接参考

{/* 右侧:对话区 */}
{selectedAgent ? ( <> {/* 顶部智能体信息 */}
{currentAgent && ( <>

{currentAgent.name}

{currentAgent.role}

)}
独立运行中
{/* 对话区域 */}
{conversation.length === 0 ? (

开始与 {currentAgent?.name} 对话

{currentAgent?.description}
请在下方输入您的问题或任务要求

) : ( conversation.map((msg, i) => (
{msg.role === 'user' ? ( ) : ( )}
{msg.role === 'user' ? '您' : currentAgent?.name} · {msg.time}
{msg.content}
)) )} {isRunning && (
{currentAgent?.name} 正在分析中...
)}
{/* 输入区域 */}