本次会议明确了客户分析功能的重大变更方向,重点围绕多客户分析支持和对比分析功能展开,涉及UI交互、数据结构和异步任务管理的调整
会议内容详细阐述
1. 会议基本信息
- 会议主题:客户分析功能变更安排
- 时间:2025年4月18日 16:34 - 16:53
- 参与人员:说话人A(主导)、说话人B(技术讨论)、其他未明确发言的成员(如朱晨、小关等)。
2. 核心议题与讨论内容
2.1 客户分析功能变更概述
- 主要变更点:
- 一个任务下支持多个客户分析(原为单一客户分析)。
- 新增独立分析和对比分析两种模式,需调整UI和数据结构。
2.2 独立分析流程
- 任务创建与客户添加:
- 用户点击“创建”即生成任务,任务包含客户列表。
- 客户来源:暂仅支持手动输入(名称/网址),未来可能支持从客户库选择。
- 执行分析:
- 勾选客户后执行独立分析,每个客户生成独立报告(表格形式)。
- 进度显示:通过拆分分析步骤(如5步,每步20%进度)并更新数据库实现。
- 状态控制:支持“分析中”“已完成”“停止/重启分析”(需异步检测任务取消状态)。
2.3 对比分析流程
- 实现逻辑:
- 先对选中的多个客户分别执行独立分析,再基于独立报告生成合并的对比报告。
- 对比分析结果以合并表格形式展示,并生成独立的思维导图和文本报告。
- 数据存储:
- 保留所有中间报告(如3个客户对比会生成4份报告),后续可能根据需求隐藏独立报告。
2.4 报告生成与导出
- 自动生成:分析完成后自动生成报告(含封面、思维导图、文本)。
- 导出功能:
- 支持PDF导出(思维导图以Markdown文本形式存储,导出时转换)。
- 文本内容直接导出。
2.5 数据结构调整
- 任务类型扩展:
- 原任务表(
agent_task
)需扩展字段或新建表(如job
表)以区分任务类型(客户分析/原任务)。 - 抽象任务结构,支持不同类型任务的动态渲染。
- 原任务表(
2.6 其他技术细节
- 停止分析实现:需在任务中循环检测取消状态,异步队列无法直接终止任务。
- 流式对象输出:小关需评估实现难度,优先处理。
- 批量删除功能:根据老板需求,由小关通过Server Action实现。
2.7 待确认问题
- 对比分析报告的展示方式(是否隐藏独立报告)。
- 任务表结构调整方案(扩展字段或新建表)。
3. 任务分配与后续计划
- 朱晨:
- 处理分析进度更新逻辑(队列步骤拆分)。
- 评估“自动扩充产品库”功能的优先级。
- 小关:
- 实现批量删除功能(Server Action)。
- 研究流式对象输出技术难点。
- 全体:
- 文档更新(客户分析功能变更说明)。
会议总结
本次会议明确了客户分析功能的重大变更方向,重点围绕多客户分析支持和对比分析功能展开,涉及UI交互、数据结构和异步任务管理的调整。关键结论如下:
- 功能设计:独立分析与对比分析需分阶段实现,优先保证基础流程,再优化细节(如报告展示)。
- 技术实现:需重构任务表结构,异步任务控制需自定义取消逻辑。
- 分工协作:开发团队分头处理进度更新、批量删除等具体任务,并持续同步进展。
- 灵活性保留:部分设计(如报告存储)暂按宽松方案实现,后续根据反馈调整。
下一步:各成员按分工推进开发,优先解决技术难点(如流式输出),后续会议跟进进度。
客户分析任务的创建和执行流程
1. 创建客户分析任务
创建基本任务
- 调用
createCustomerAnalysisTask
函数(位于companyResearch/actions.ts
) - 生成默认任务名称(格式:
yyyy-MM-dd-HH:mm:ss客户分析
) - 在
agentTaskTable
表中插入新记录:- 任务类型:
customer_analysis
- 状态:
pending
- 任务类型:
绑定公司研究到任务
- 单个公司:使用
bindCompanyResearchToTask
函数 - 多个公司:使用
bindMultipleCompanyResearchToTask
函数 - 每个公司创建一条
companyResearch
记录:- 状态:
pending
- 分析模式:
independent
(独立分析)
- 状态:
- 注意:这些函数仅创建记录,不启动实际分析
启动分析
- 单个分析:调用
startCompanyResearchAnalysis
- 多个分析:调用
startMultipleCompanyResearchAnalysis
- 将公司研究任务添加到 Bull MQ 队列处理
2. 分析执行流程
独立分析过程
- 创建
CompanyResearch
类实例 - 执行多个研究步骤(通过
run
方法):- 研究公司概况 (
researchCompanyProfile
) - 研究公司进口信息 (
researchCompanyImports
) - 分析网站流量 (
researchWebsiteTraffic
) - 研究公司产品 (
researchCompanyProducts
) - 研究公司新闻 (
researchCompanyNews
) - 研究团队成员 (
researchTeamMembers
) - 生成最终报告 (
generateFinalReport
) - 生成思维导图 (
generateMindMap
)
- 研究公司概况 (
- 更新数据库中的状态和结果
对比分析过程
- 使用
createComparisonAnalysis
创建对比分析 - 将多个独立分析关联到同一个
comparisonId
- 通过
startComparisonAnalysis
开始对比分析 - 系统先确保所有独立分析完成,再执行对比分析
研究深度流程
- 每个研究步骤使用
deepResearchFlow
功能(ReAct循环):- 思考
- 搜索
- 访问网页
- 使用的代理(agents):
researchThinkingAgent
:决定下一步行动searchAndAnalyzerAgent
:执行搜索并分析结果webContentReaderAgent
:读取和分析网页内容generateResearchReportAgent
:生成最终研究报告
3. 数据结构
AgentTask
- 表示客户分析任务
- 关键字段:
id
,name
,employeeId
,status
,taskType
- 任务类型:
customer_analysis
- 状态包括:
pending
,processing
,completed
,failed
CompanyResearch
- 表示公司研究
- 关键字段:
uid
,name
,status
,result
,agentTaskId
,analysisMode
- 分析模式:
independent
(独立分析)comparative
(对比分析)
- 状态包括:
pending
,processing
,completed
,failed
,canceled
4. 结果和通知
- 分析完成后:
- 结果保存在
companyResearch
表的result
字段(JSON格式) - 结果包括:
finalReport
,mindMap
,traffic
等 - 系统向员工发送电子邮件通知
- 结果保存在
- 对比分析:
- 检查所有独立分析是否完成
- 如果完成,自动启动对比分析
整个系统使用队列处理耗时分析任务,并使用AI执行研究分析工作。