# 项目开发指南 ## PRD拆解结构 **PRD = 组件 + 工作流 + 数据结构** 1. **组件** (Components) - 实现具体业务功能 2. **工作流** (Workflow) - 编排组件执行顺序和流程逻辑 3. **数据结构** (Data Structures) - 定义状态格式和数据传递规范 ## 实现原则 **优先复用,其次修改,最后完全新增** 1. **优先复用** - 已有组件完全符合 → 直接复用 (import) 2. **其次修改** - 已有组件部分符合 → Copy并修改 3. **最后完全新增** - 没有合适组件 → 从Base组件新建文件 **重要提醒**: 判断组件是否符合需求,需要查看具体代码实现,而不仅仅是组件名称 ## 开发约束 - **面向需求**:一切以PRD需求为准,已有的组件和工作流仅供参考 ## 组件架构设计原则 ### Agent vs Tool/Function 选择标准 **Agent组件特征**: - 任务类型: 不确定性任务 - 核心能力: LLM智能能力 (内置多模态理解,无需额外工具支持) - 处理内容: 推理、多模态理解、语义分析、语义对比、内容生成、模式识别、创意分析 - 依赖关系: 依赖LLM模型 *注:Agent 自身有多模态的能力,无需额外的tool支持* **Tool/Function组件特征**: - 任务类型: 确定性任务 - 核心能力: 数据处理 - 处理内容: 数值计算、数据转换、格式化、排序、统计、API调用、文件操作等代码能简单实现的任务 - 依赖关系: 无LLM依赖 ### Tool vs Function 选择标准 **唯一区别:是否可以被Agent调用** **Tool组件**: - Agent调用: ✅ 可以被Agent调用 - 技术实现: `@tool`装饰器或继承`BaseTool` **Function组件**: - Agent调用: ❌ 不能被Agent调用 - 技术实现: 普通函数或继承`BaseFunction` *注:除了Agent调用能力外,Tool和Function在功能上没有本质区别* ## 开发建议 1. **需要LLM能力** → Agent 2. **需要Agent调用** → Tool 3. **其他情况** → Function **架构原则**: 非必要情况下,组件以Agent为主 ## 现有组件清单 ### Agent组件 (15个) **agents/base.py** - BaseComponent/BaseAgent/BaseLLMAgent/BaseReactAgent/BaseGraphAgent - 功能: Agent基础抽象类,提供四种Agent实现模式 - 核心类: - BaseComponent: 最基础的组件抽象,定义初始化和状态管理 - BaseAgent: Agent通用接口,支持工具绑定和模型切换 - BaseLLMAgent: 基于LLM的单轮对话Agent,适用于简单任务 - BaseReactAgent: 基于LangGraph的ReAct模式Agent,支持工具调用和推理 - BaseGraphAgent: 基于StateGraph的复杂工作流Agent,支持多节点编排 **agents/comment_analysis_agent.py** - CommentAnalysisAgent - 功能: 从评论中提取帖子解构维度(两步法:评论过滤 → 维度提取) - 核心流程: - 第1步: 过滤评论,只保留描述物理特征的相关评论 - 第2步: 从相关评论中提取解构维度(处理状态、色彩特征、材质特征等) - 输出: deconstruction_dimensions(解构维度列表)、filtered_comments(过滤后的评论) **agents/content_filter_agent.py** - ContentFilterAgent - 功能: 从bodytext中识别并移除与帖子主内容不相关的话题标签 - 判断方法: 双重验证(显性匹配检查 + 主题相关性检查) - 输出: filtered_body(过滤后的bodytext)、removed_hashtags(移除的标签)、kept_hashtags(保留的标签) **agents/content_weight_agent.py** - ContentWeightAgent - 功能: 判断帖子中图片和文字的权重分配 - 评分维度: 信息量维度(0-10分)、独立理解性(0-10分)、核心价值承载(0-10分) - 输出: image_weight(图片权重)、text_weight(文字权重)、primary_source(主要信息源:image/text/both) **agents/inspiration_points_agent.py** - InspirationPointsAgent - 功能: 从创作者视角提取触发创作的刺激源(7步流程) - 核心流程: - Step1: 历史对比分析(三维度:共性内容、共性差异、全新内容) - Step2: 识别候选灵感点(按三种来源分类) - Step3: 逆向推导验证 - Step4: 去重检查 - Step5: 三维度评分(人设契合度、触发可能性、内容解释力) - Step6: 排序筛选 - Step7: 组装最终输出 - 输出: 分类的灵感点字典(全新内容、共性差异、共性内容)+ 元数据 **agents/key_points_agent.py** - KeyPointsAgent - 功能: 从消费者视角提取核心吸引点(5步流程) - 维度体系: 形式(风格、关系)、实质(元素、分类) - 核心流程: - Step1: 识别候选关键点 - Step2: 第一轮去重(与灵感点、目的点去重) - Step3: 第二轮去重(关键点之间去重) - Step4: 构建层级关系(树形结构) - Step5: 组装最终输出 - 输出: 具有层级关系的关键点树形结构 **agents/knowledge_requirement_agent.py** - KnowledgeRequirementAgent - 功能: 分析帖子需要的知识补充需求 - 输出: 知识需求列表(每个需求包含类别、描述、重要性等) **agents/post_summary_deconstruction_agent.py** - PostSummaryDeconstructionAgent - 功能: 帖子摘要解构 - 输出: 帖子的摘要解构结果 **agents/post_understanding_agent.py** - PostUnderstandingAgent - 功能: 帖子理解与分析 - 输出: 帖子理解结果 **agents/purpose_point_agent.py** - PurposePointAgent - 功能: 从创作者视角提取创作目的 - 输出: 创作目的点列表(包含维度、目的点、描述等) **agents/recursive_image_deconstruction_agent.py** - RecursiveImageDeconstructionAgent - 功能: 递归解构图像(多层级深度分析) - 输出: 图像的递归解构结果 **agents/recursive_text_deconstruction_agent.py** - RecursiveTextDeconstructionAgent - 功能: 递归解构文本(多层级深度分析) - 输出: 文本的递归解构结果 **agents/script_section_division_agent.py** - ScriptSectionDivisionAgent - 功能: 脚本段落划分 - 分析已有帖子的分段结构,理解创作者是如何组织内容的 - 核心流程: 根据图文权重策略识别创作者的分段逻辑 - 输出: 段落列表(树状结构)、内容品类 **agents/script_element_extraction_agent.py** - ScriptElementExtractionAgent - 功能: 脚本元素提取 - 从已有帖子内容中提取核心元素(实质性+概念性) - 核心流程(4步): - Step1: 候选元素识别(实质性元素+概念性元素) - Step2: 双维度评分(主题支撑性+多段落共性,分视角分析) - Step3: 严格筛选(阈值6.0) - Step4: 去重与整合(生成树状结构) - 输出: 元素列表(树状结构) **agents/topic_selection_understanding_agent.py** - TopicSelectionUnderstandingAgent - 功能: 选题理解与分析 - 输出: 选题理解结果 ### Tool组件 (4个) **tools/base.py** - BaseTool - 功能: Tool基础抽象类 - 特性: 可被Agent调用,使用@tool装饰器或继承BaseTool **tools/knowledge_retrieval_tools.py** - 知识检索工具集 - 功能: 根据Query词查询知识库 - 核心工具: knowledge_search(知识搜索) **tools/nanobanana_tools.py** - NanoBanana图像生成与编辑工具 - 功能: 图像生成、图像编辑、图片融合、图片元素提取 - 核心工具: generate_image、edit_image、merge_images、extract_elements **tools/segment_tools.py** - 图像分割工具 - 功能: 图像分割与目标检测 - 核心工具: segment_image(图像分割) ### Function组件 (3个) **functions/base.py** - BaseFunction - 功能: Function基础抽象类 - 特性: 不能被Agent调用,适用于纯函数式数据处理 **functions/json_utils.py** - JSON处理函数集 - 功能: JSON格式化、解析、验证 - 核心函数: format_json、parse_json、validate_json **functions/result_aggregation_function.py** - ResultAggregationFunction - 功能: 聚合多个组件的处理结果,生成最终输出 - 核心方法: aggregate(结果聚合) ### 公共组件 (Utils) **utils/json_extractor.py** - JSONExtractor - 功能: JSON提取和解析工具类 - 核心方法: - extract_json_from_response: 从LLM响应中提取JSON内容(支持markdown代码块) - safe_parse_json: 安全解析JSON,失败时返回默认值 - extract_and_parse: 一步完成提取和解析 **utils/logger.py** - DeconstructionLogger - 功能: 解构系统专用日志器(单例模式) - 核心方法: - get_logger: 获取指定名称的子日志器 - log_agent_start: 记录Agent开始执行 - log_agent_finish: 记录Agent完成执行 - log_tool_call: 记录工具调用 - log_validation_result: 记录验证结果 - log_error_with_context: 记录带上下文的错误 - 特性: 文件日志+控制台日志,自动创建日志目录 **utils/llm_invoker.py** - LLMInvoker - 功能: LLM调用封装工具类 - 核心方法: - safe_invoke: 安全的LLM调用,支持自动初始化、JSON解析、降级处理 **utils/utils.py** - 通用工具函数集 - 功能: 提供常用工具函数 - 核心方法: - remove_duplicates: 去重并保持元素顺序 - oss_resize_image: OSS图片URL尺寸调整 ## 现有工作流 ### WhatDeconstructionWorkflow - 数据结构: WhatDeconstructionState - 功能: What业务递归解构工作流 - 核心流程: 1. 内容过滤(ContentFilterAgent)- 过滤bodytext中的无关标签 2. 内容权重判断(ContentWeightAgent)- 判断图文权重 3. 评论分析(CommentAnalysisAgent)- 提取解构维度 4. 灵感点提取(InspirationPointsAgent)- 创作者视角的触发源 5. 目的点提取(PurposePointAgent)- 创作者视角的创作目的 6. 关键点提取(KeyPointsAgent)- 消费者视角的吸引点 7. 选题理解(TopicSelectionUnderstandingAgent)- 选题分析 8. 知识需求分析(KnowledgeRequirementAgent)- 知识补充需求 9. 结果汇总(ResultAggregationFunction)- 聚合所有结果 - 依赖组件: - Agent: ContentFilterAgent、ContentWeightAgent、CommentAnalysisAgent、InspirationPointsAgent、PurposePointAgent、KeyPointsAgent、TopicSelectionUnderstandingAgent、KnowledgeRequirementAgent - Function: ResultAggregationFunction ---