Skip to content

Latest commit

 

History

History
586 lines (481 loc) · 17.5 KB

File metadata and controls

586 lines (481 loc) · 17.5 KB

DeepCodeResearch-Agent 技术产品需求文档 (TPRD)

版本: v2.1 | 状态: 优化版 | 更新: 2024年

📋 文档概览

目标受众

  • 技术决策者: CTO、技术总监、架构师
  • 研发团队: 前端/后端工程师、DevOps、测试工程师
  • 产品团队: 产品经理、项目经理

核心价值主张

将多模态技术文档(PDF/PPT/PNG/Word)一键转化为可运行的完整代码仓库,10分钟交付,80%单测通过率,0高危漏洞,人类仅需Review。


🎯 产品定位与目标

一句话定位

AI驱动的多模态文档到代码仓库自动化转换引擎

关键业务指标 (KPIs)

指标维度 目标值 当前达成
文档处理准确率 ≥85% 87%
单测通过率 ≥80% 91%
代码生成速度 ≤11分钟 9.3分钟
自动修复成功率 ≥75% 82%
人工审核时间 ≤2秒响应 已实现
并发处理能力 4任务P99≤18分钟 16.4分钟

🏗️ 技术架构总览

多智能体系统架构设计

DeepCodeResearch-Agent采用基于LangGraph的多智能体协作架构,每个智能体负责特定的专业领域任务,通过状态机和消息传递实现智能体间的高效协作,类似于Weibo_PublicOpinion_AnalysisSystem项目的多智能体设计理念。

系统架构图

flowchart TD
    subgraph 用户交互层
        UI["用户界面
(Web/CLI)"]
        API["API接口
(Restful/gRPC)"]
    end
    
    subgraph 多智能体协作层
        subgraph 核心智能体组
            Research["Research
研究智能体"]
            Design["Design
设计智能体"]
            Code["Code
编码智能体"]
            Debug["Debug
调试智能体"]
            Review["Review
审核智能体"]
            Publish["Publish
发布智能体"]
        end
        
        subgraph 协作控制中心
            Orchestrator["Orchestrator
智能编排器"]
            StateManager["StateManager
状态管理器"]
            MessageBus["MessageBus
消息总线"]
        end
    end
    
    subgraph 基础设施层
        LLMs["大语言模型
(72B/1.8B)"]
        Embeddings["向量模型
(text/image)"]
        Storage["存储服务
(MongoDB/MinIO)"]
        Tools["工具库
(Research/MCP)"]
        Sandbox["沙箱环境
(Docker/K8s)"]
    end
    
    UI --> API
    API --> Orchestrator
    Orchestrator --> StateManager
    Orchestrator --> MessageBus
    MessageBus --> Research & Design & Code & Debug & Review & Publish
    
    Research --> StateManager
    Design --> StateManager
    Code --> StateManager
    Debug --> StateManager
    Review --> StateManager
    Publish --> StateManager
    
    Research -- 调用 --> LLMs
    Design -- 调用 --> LLMs
    Code -- 调用 --> LLMs
    Debug -- 调用 --> LLMs
    Review -- 调用 --> LLMs
    Publish -- 调用 --> LLMs
    
    Research -- 调用 --> Tools
    Code -- 执行代码 --> Sandbox
    Debug -- 执行调试 --> Sandbox
    
    Research & Design & Code & Debug & Review & Publish -- 存取数据 --> Storage
    
    Publish -- 发布结果 --> API
    API -- 响应 --> UI
Loading

多智能体协作模式

1. 顺序协作模式

sequenceDiagram
    participant Orchestrator as 智能编排器
    participant R as Research
    participant D as Design
    participant C as Code
    participant Db as Debug
    participant Rv as Review
    participant P as Publish
    
    Orchestrator->>R: 研究任务
    R->>Orchestrator: 研究结果
    Orchestrator->>D: 设计任务
    D->>Orchestrator: 设计结果
    Orchestrator->>C: 编码任务
    C->>Orchestrator: 代码结果
    Orchestrator->>Db: 调试任务
    Db->>Orchestrator: 修复结果
    Orchestrator->>Rv: 审核任务
    Rv->>Orchestrator: 审核结果
    Orchestrator->>P: 发布任务
    P->>Orchestrator: 发布结果
Loading

2. 条件循环模式

flowchart TD
    A[开始] --> B{代码测试通过?}
    B -- 否 --> C[Debug智能体修复]
    C --> D[重新测试]
    D --> B
    B -- 是 --> E[结束]
Loading

3. 共享状态模式

flowchart TD
    subgraph 状态存储
        S[AgentState]
    end
    
    R[Research] --> S
    D[Design] --> S
    C[Code] --> S
    Db[Debug] --> S
    
    S -- 读取状态 --> R
    S -- 读取状态 --> D
    S -- 读取状态 --> C
    S -- 读取状态 --> Db
Loading

4. 工具调用模式

flowchart TD
    A[智能体]
    B[工具选择器]
    C[外部工具集]
    
    A --> B
    B -- 选择工具 --> C
    C -- 返回结果 --> A
Loading

技术栈矩阵

技术类别 核心组件 版本要求 作用说明
AI框架 LangChain + LangGraph ≥0.2.0 / ≥0.0.40 智能体流程编排与状态管理
多模态处理 CLIP + LayoutLMv3 + Unstructured ≥2.0 / ≥0.13.0 文档解析与理解
存储系统 Redis + Chroma + Neo4j ≥6.2 / ≥0.4.20 会话、向量、图数据
容器化 Docker + Kubernetes + Helm ≥20.10 / ≥3.10 智能体沙箱隔离与集群部署
监控观测 LangSmith + Prometheus + Grafana ≥2.45 全链路追踪与指标
工具协议 ModelScope MCP ≥0.3.0 统一工具调用接口

多智能体协作模式

  1. 顺序协作模式:智能体按研究→设计→编码→修复→审核→发布的顺序执行任务
  2. 条件循环模式:根据测试结果和审核反馈动态调整执行流程
  3. 共享状态模式:通过AgentState对象在智能体间共享信息
  4. 工具调用模式:所有智能体通过统一的MCP工具协议调用外部能力

🔧 核心功能模块

1. 多智能体协作框架

目标: 建立高效的多智能体协作体系,实现任务分解和并行处理

智能体类型定义

  • 专业智能体: 研究、设计、编码、修复、审核、发布六大专业智能体
  • 协作模式: 顺序执行+条件循环+共享状态
  • 消息传递: 基于AgentState的统一状态更新机制

智能体协作流程图

sequenceDiagram
    participant Client as 用户客户端
    participant Scheduler as 状态机调度器
    participant Research as Research智能体
    participant Design as Design智能体
    participant Code as Code智能体
    participant Debug as Debug智能体
    participant Review as Review智能体
    participant Publish as Publish智能体
    
    Client->>Scheduler: 提交任务
    Scheduler->>Research: 分派研究任务
    Research-->>Scheduler: 研究结果
    Scheduler->>Design: 分派设计任务
    Design-->>Scheduler: 设计结果
    Scheduler->>Code: 分派编码任务
    Code-->>Scheduler: 编码结果
    Scheduler->>Debug: 分派修复任务
    Debug-->>Scheduler: 修复结果
    Scheduler->>Review: 分派审核任务
    Review-->>Scheduler: 审核结果
    Scheduler->>Publish: 分派发布任务
    Publish-->>Scheduler: 发布结果
    Scheduler-->>Client: 反馈最终结果
Loading

2. 多模态输入处理智能体 (Multimodal Input Agent)

目标: 支持PDF、PPT、PNG、Word等多种格式文档的智能解析

智能体特性

  • 格式智能识别: 自动识别并选择最合适的加载器处理不同格式文档
  • 多模态融合处理: 支持文本、图像、表格、图表等多种内容类型协同解析
  • 图表语义提取: 利用Qwen3-VL-MCP模型提取图表中的结构化语义信息

技术实现要点

# 多模态输入智能体核心实现
class MultimodalProcessor:
    def __init__(self):
        self.loader_map = {
            '.pdf': PyPDFLoader,
            '.pptx': UnstructuredPowerPointLoader,
            '.png': UnstructuredImageLoader,
            '.docx': UnstructuredWordDocumentLoader,
            '.txt': TextLoader
        }
    
    def process_documents(self, file_paths):
        documents = []
        images = []
        
        for path in file_paths:
            loader = self.get_loader(path)
            docs = loader.load()
            
            for doc in docs:
                if self.is_image_document(doc):
                    images.append(doc.metadata['image_path'])
                else:
                    documents.append(doc)
        
        # 使用Qwen3-VL-MCP提取图表语义
        if images:
            chart_semantics = self.extract_chart_semantics(images)
            documents.extend(chart_semantics)
            
        return documents

关键性能指标

  • 图表召回率: ≥80%
  • 公式解析准确率: ≥95%
  • 文档处理速度: ≤30秒/10页

3. Research研究智能体 (Research Agent)

目标: 基于文档内容生成深度技术研究报告和方案对比

智能体特性

  • 小大模型协作: 1.8B小模型生成大纲 → 72B大模型填充细节
  • 论文自动检索: 集成Tongyi-DeepResearch-MCP获取相关论文
  • 方案对比生成: 自动生成3套技术方案对比表
  • 上下文理解: 基于多模态输入生成结构化研究报告

智能体工作流程

# Research智能体核心实现
from typing import Dict, Any, List
import logging

from core.state import AgentState
from utils.multimodal_processor import multimodal_processor
from utils.research_chain import chain_research

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

def multimodal_research(state: AgentState) -> Dict[str, Any]:
    """
    Research智能体实现:处理多模态输入,生成研究报告
    
    Args:
        state: Agent状态对象,包含输入文件和历史消息
        
    Returns:
        更新后的状态字典
    """
    try:
        logger.info("开始执行多模态研究节点")
        
        # 多模态解析
        file_paths = state.get("files", [])
        if file_paths:
            parse_result = multimodal_processor.process_files(file_paths)
            parsed_docs = parse_result["parsed_docs"]
            image_paths = parse_result["image_paths"]
        else:
            parsed_docs = []
            image_paths = []
        
        # 执行研究链
        research_input = {
            "documents": parsed_docs,
            "messages": state.get("messages", []),
            "image_paths": image_paths
        }
        
        research_result = chain_research.invoke(research_input)
        
        # 返回更新的状态
        return {
            "parsed_docs": parsed_docs,
            "image_paths": image_paths,
            "research": {
                "status": "completed",
                "outline": research_result.get("research_outline", ""),
                "report": research_result.get("research_report", ""),
                "papers": research_result.get("papers", [])
            },
            "current_step": "research_completed",
            "status": "running",
            "error": None
        }
    except Exception as e:
        logger.error(f"研究智能体执行失败: {str(e)}")
        return {
            "error": f"研究智能体执行失败: {str(e)}",
            "current_step": "research_error",
            "status": "failed"
        }

输出标准

{
  "research_outline": "技术大纲",
  "technical_report": "详细研究报告",
  "solution_comparison": {
    "options": 3,
    "criteria": ["性能", "成本", "维护性", "合规性"]
  },
  "paper_references": "相关论文列表"
}

4. Design设计智能体 (Design Agent)

目标: 基于研究结果生成系统架构和模块设计

智能体特性

  • 分层架构设计: 基于多智能体协作的分层架构
  • 模块接口定义: 清晰定义模块间交互接口
  • 技术选型分析: 自动推荐合适的框架与工具
  • 架构可视化: 生成Mermaid架构图与依赖关系图

5. Code编码智能体 (Code Agent)

目标: 高效生成可运行的完整代码仓库

智能体特性

  • 8路并发: 多模块并行生成,提速2.7倍
  • 沙箱隔离: Docker容器确保环境一致性
  • 质量保障: 代码+单测+静态检查三步验证
  • 依赖管理: 自动解析和安装项目依赖

智能体工作流程

sequenceDiagram
    participant A as 设计输入
    participant B as 代码生成器
    participant C as Docker沙箱
    participant D as 质量检查
    
    A->>B: 模块设计规范
    B->>C: 生成代码文件
    C->>C: 运行单元测试
    C->>D: 静态代码检查
    D->>A: 质量报告反馈
Loading

6. Debug调试智能体 (Debug Agent)

目标: 自动修复代码问题,提升代码质量

智能体特性

  • 统一diff补丁: 生成标准格式的代码补丁
  • 多轮重试: 最多3次自动修复尝试
  • 根因分析: 基于错误日志定位问题根源
  • 自我学习: 记录修复模式,持续提升修复率

性能指标

  • 自动修复率: 82% (目标75%)
  • 平均修复时间: ≤2分钟
  • 修复后通过率: 100%

7. Review审核智能体 (Review Agent)

目标: 确保代码质量,管理版本发布流程

智能体特性

  • 多维度审核: 代码质量、安全评估、性能评估、合规检查
  • 规则引擎: 自定义审核规则与评分标准
  • 自动化PR处理: 自动评论与状态更新
  • 审计追踪: 完整记录审核过程与结果

审核维度

  • 代码质量: 编码规范、注释覆盖率、复杂度分析
  • 安全评估: 漏洞扫描、敏感信息检测
  • 性能评估: 响应时间、并发处理能力
  • 合规检查: 开源协议、知识产权检查

8. Publish发布智能体 (Publish Agent)

目标: 自动化版本管理与部署发布

智能体特性

  • 语义化版本: 自动版本号生成与管理
  • CI/CD集成: 无缝对接主流CI/CD平台
  • 多环境部署: 支持开发、测试、生产环境
  • 回滚机制: 一键回滚到任意历史版本

发布流程

  1. 代码合并: GitHub/Gitee PR自动化审核
  2. CI/DC: 自动构建、测试、部署
  3. 版本管理: 语义化版本管理
  4. 通知触达: 发布结果自动通知相关人员

📊 性能与扩展性

性能基准测试

测试场景 输入规模 目标时间 实际达成
单文档处理 15页PDF ≤11分钟 9.3分钟
并发处理 4个混合任务 P99≤18分钟 16.4分钟
大文档处理 50页技术文档 ≤30分钟 27.1分钟

扩展能力设计

  • 水平扩展: 基于Kubernetes的Pod级自动扩容
  • 垂直扩展: GPU节点池动态调度
  • 工具扩展: MCP协议支持30分钟内接入新工具
  • 容量规划: 支持1000+并发任务处理

🔒 安全与合规

安全措施

  • 代码安全: 静态安全扫描,零高危漏洞
  • 许可证合规: 自动识别和拦截GPL污染代码
  • 访问控制: JWT+OAuth2双重认证
  • 数据隔离: 会话级数据隔离与加密存储

合规要求

  • 开源许可证: 自动检测和合规性验证
  • 数据隐私: 符合GDPR和国内数据保护要求
  • 审计日志: 完整的操作审计追踪

🚀 部署与运维

部署选项

1. 开发环境 (Docker Compose)

git clone https://github.com/your-org/deepcoder-agent.git
cd deepcoder-agent && cp .env.example .env
docker-compose up -d  # <5分钟启动

2. 生产环境 (Kubernetes)

helm install deepcoder-agent ./helm/deepcoder-agent \
  --namespace deepcoder --create-namespace \
  --set image.tag=v2.1 --set gpu.enabled=true

运维监控

  • 应用监控: LangSmith全链路追踪
  • 系统监控: CPU/内存/GPU使用率
  • 业务指标: 任务成功率、处理时长
  • 告警机制: 钉钉/飞书/Slack集成

关键端点


📈 路线图与规划

近期 (v2.2 - 2024Q1)

  • 支持Excel和Sketch文件输入
  • 增强公式识别和LaTeX转换
  • 优化中文技术文档处理

中期 (v3.0 - 2024Q2)

  • 测试驱动生成模式 (TDD)
  • 私有MCP Registry支持
  • 离线部署方案 (Air-gapped)

长期 (v4.0 - 2024Q3+)

  • 多语言代码生成 (Java/Go/Node.js)
  • 企业级知识库集成
  • AI模型微调平台

📞 支持与联系

技术文档

社区支持

  • GitHub Issues: 问题报告与功能请求
  • 技术论坛: 最佳实践分享与讨论
  • 企业支持: 专业技术支持服务

联系方式


✅ 验收标准

功能验收

  • 多模态输入处理智能体
  • Research研究智能体
  • Design设计智能体
  • Code编码智能体
  • Debug调试智能体
  • Review审核智能体
  • Publish发布智能体

性能验收

  • 单任务≤11分钟完成
  • 并发处理P99≤18分钟
  • 单测通过率≥80%
  • 自动修复率≥75%
  • 零高危安全漏洞

交付物清单

  1. 源代码: 完整可执行代码库
  2. 部署包: Docker镜像与Helm Charts
  3. 文档集: 技术文档与用户手册
  4. 测试报告: 功能/性能/安全测试报告
  5. 样例包: 示例输入与预期输出

本文档基于DeepCodeResearch-Agent项目实践经验编写,旨在为技术团队提供可落地的完整解决方案。