Dodo-Agent 项目文档
本目录包含 dodo-agent 模块的完整技术文档,基于 code-review-graph 知识图谱对代码进行系统化解读生成。
模块定位
dodo-agent 是 LLMentor 项目下的企业级端到端通用智能体(End-to-End Universal Agent)平台模块,基于 Spring AI 生态构建,深度融合大语言模型(LLM)能力与现代软件工程架构,提供从感知、推理到执行的全链路智能化解决方案。
文档目录
模块结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
| dodo-agent/ ├── DodoAgentApplication.java # Spring Boot 启动类 ├── agent/ # 智能体实现 │ ├── BaseAgent.java # 抽象基类 │ ├── deepresearch/ # 深度研究 │ │ ├── PlanExecuteAgent.java │ │ └── SimpleReactAgent.java │ ├── file/ # 文件问答 │ │ └── FileReactAgent.java │ ├── pptx/ # PPT 生成 │ │ ├── PPTBuilderAgent.java │ │ ├── PptIntentRecognizer.java │ │ └── strategy/ # 状态机策略 │ │ ├── PptStateStrategy.java │ │ ├── PptStateStrategyContext.java │ │ ├── PptStateStrategyFactory.java │ │ ├── RequirementStrategy.java │ │ ├── TemplateStrategy.java │ │ ├── SearchStrategy.java │ │ ├── OutlineStrategy.java │ │ ├── SchemaStrategy.java │ │ ├── RenderStrategy.java │ │ ├── SuccessStrategy.java │ │ └── FailedStrategy.java │ ├── skills/ # Skills 智能体 │ │ ├── SkillsReactAgent.java │ │ └── manual/ # 手动 Skills 模式 │ │ ├── SkillManager.java │ │ ├── SkillPromptFormatter.java │ │ ├── config/SkillConfig.java │ │ ├── model/ # 元数据 + 异常 │ │ ├── registry/ # 技能注册中心 │ │ └── tool/ReadSkillTool.java │ └── websearch/ # 联网搜索 │ └── WebSearchReactAgent.java ├── common/ # 通用响应对象 │ ├── AgentResponse.java │ ├── BaseResult.java │ └── ImageProvider.java ├── config/ # 配置类 │ ├── CorsConfig.java │ ├── MinioClientConfiguration.java │ ├── MySQLDataSourceConfig.java │ ├── RedisConfig.java │ └── VectorStoreConfig.java ├── context/ # 上下文压缩 │ ├── ContextCompactor.java │ ├── ContextPolicy.java │ └── TokenEstimator.java ├── controller/ # REST 控制器 │ ├── AgentController.java │ ├── FileController.java │ └── SessionController.java ├── entity/ # 数据模型 │ ├── AiFileInfo.java │ ├── AiSession.java │ ├── OverAllState.java │ ├── SlideImage.java │ ├── event/ # 事件对象 │ ├── record/ # 业务记录模型 │ │ ├── AgentState.java │ │ ├── FileInfo.java │ │ ├── PlanTask.java │ │ ├── RoundMode.java │ │ ├── RoundState.java │ │ ├── SearchResult.java │ │ ├── TaskResult.java │ │ ├── CritiqueResult.java │ │ ├── ReactAgentResult.java │ │ ├── SimpleReactResult.java │ │ ├── TemplateSelectionResult.java │ │ └── pptx/ # PPT 专用 │ └── vo/ # 视图对象 ├── exception/ # 全局异常处理 │ └── GlobalExceptionHandler.java ├── mapper/ # MyBatis Mapper │ ├── AiFileInfoMapper.java │ ├── AiPptInstMapper.java │ ├── AiPptTemplateMapper.java │ └── AiSessionMapper.java ├── prompts/ # LLM 提示词常量 │ ├── BaseAgentPrompts.java │ ├── PlanExecutePrompts.java │ ├── PptBuilderPrompts.java │ └── ReactAgentPrompts.java ├── service/ # 业务服务 │ ├── AgentTaskManager.java # 任务并发 + Redis Pub/Sub │ ├── AiPptInstService.java │ ├── AiPptTemplateService.java │ ├── AiSessionService.java │ ├── EmbeddingService.java # RAG 核心 │ ├── FileInfoService.java │ ├── FileManageService.java # 文件管理门面 │ ├── FileParserService.java # 文件解析 │ ├── MinioService.java # 对象存储 │ ├── PptPythonRenderService.java # PPT 渲染 │ └── impl/ # 实现 ├── splitter/ # 文本切分 │ └── OverlapParagraphTextSplitter.java ├── tool/ # 工具集 │ ├── BashTool.java # Shell 执行 │ ├── FileContentService.java # 文件内容加载 + RAG │ ├── FileSystemTools.java # 文件系统操作 │ ├── GrepTool.java # 内容搜索 │ ├── MarkdownParser.java # Markdown 解析 │ ├── ShellSessionManager.java # Shell 会话管理 │ ├── SkillsTool.java # Skills 工具(Spring AI 原生) │ ├── ToolMergeUtils.java # 工具合并工具 │ └── WeatherService.java └── utils/ # 工具类 ├── AppContextClient.java # Bean 容器访问 ├── DynamicPgVectorStoreFactory.java ├── HtmlRenderService.java ├── HtmlToPptService.java ├── HttpClientUtil.java ├── ImageGenerationService.java # 图片生成(grsai/nanobanana) ├── ImageToPptService.java └── ThinkTagParser.java # <think/> 标签解析
|
核心特性一览
- 多模式智能体:WebSearch / File / PPT / PlanExecute / Skills 五大智能体
- 统一 SSE 协议:
thinking / text / reference / recommend / error 五类事件 - RAG 检索增强:Query 压缩 + 多查询扩展 + 向量召回 + 元数据过滤
- PPT 状态机:8 个状态节点 + 断点续传 + 意图识别
- 深度研究:需求澄清 → 主题生成 → 计划-执行-批判循环
- 任务并发控制:基于 Redis Pub/Sub 的跨实例停止能力
- 上下文压缩:双层压缩(micro + auto)防止超长对话
- 多模态能力:PDF/Word/TXT 解析 + 图片多模态识别
快速导航