Dodo-Agent 项目文档

本目录包含 dodo-agent 模块的完整技术文档,基于 code-review-graph 知识图谱对代码进行系统化解读生成。

模块定位

dodo-agentLLMentor 项目下的企业级端到端通用智能体(End-to-End Universal Agent)平台模块,基于 Spring AI 生态构建,深度融合大语言模型(LLM)能力与现代软件工程架构,提供从感知、推理到执行的全链路智能化解决方案。

文档目录

序号文档内容
01架构概览整体分层架构、技术栈、核心概念
02REST API 接口所有 HTTP 接口定义、请求/响应格式
03智能体框架BaseAgent 抽象基类、通用机制
04WebSearch 智能体WebSearchReactAgent 联网搜索
05File 智能体FileReactAgent 文件问答 + RAG
06深度研究智能体PlanExecuteAgent 计划-执行-批判
07PPT Builder 智能体PPTBuilderAgent 状态机驱动
08Skills 智能体SkillsReactAgent 技能加载与工具融合
09RAG 与向量检索EmbeddingService、向量库、RAG 流水线
10文件管理服务文件上传、解析、向量化
11会话与任务管理会话持久化、任务并发控制
12上下文压缩ContextCompactor 双层压缩
13工具集通用工具与 Skills/Bash/FileSystem
14配置与基础设施数据库、Redis、MinIO、PgVector 配置
15数据模型Entity、VO、Record、Enum

模块结构

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 解析 + 图片多模态识别

快速导航