Dawn AI 架构图

Plan-and-Execute + ReAct 混合智能体范式
Java 17 Spring Boot 3.2.5 Spring AI 1.1.4 PGVector Redis SSE Streaming
同步调用
异步调用
事件驱动
1
REST API 接入层
HTTP / SSE 入口
ChatController
POST /api/v1/chat 同步对话
POST /api/v1/chat/stream SSE 流式
GET /api/v1/chat/simple 简单问答
RagController
POST /api/v1/rag/ingest
支持 JSON / PDF / Word / Excel / 文本上传
GET /api/v1/rag/search 知识检索
TopicController
研究课题管理
关联知识库文档
AiInteractionController
AI 交互日志查询
调试 & 可观测
2
Service 服务层
业务编排 & 状态管理
ChatService
对话请求编排入口。同步调用 AgentOrchestrator.chat()
流式通过 SseEmitter + 专用线程池 chatStreamExecutor
调用 AgentOrchestrator.streamChat()
管理超时、取消、容量溢出错误处理。
MemoryService
Redis List 存储会话记忆 ai:session:{sessionId}
20 条消息滑动窗口,2 小时 TTL
淘汰消息进入 pending list,达阈值触发 SummarizationRequestEvent
Redis 不可用时降级为内存 ConcurrentHashMap
3
Agent 核心层
智能体编排、规划、执行、工具、技能
AgentOrchestrator 核心编排流程
STEP 1
StepCollector.init()
初始化请求状态
STEP 2
TaskPlanner.plan()
LLM 生成执行计划
STEP 3
Build System Prompt
组装系统提示词
STEP 4
Spring AI ReAct Loop
Reason → Act → Observe
STEP 5
StepCollector.collect()
收集执行步骤
STEP 6
Persist to Redis
持久化会话记忆
PHASE 1
TaskPlanner — 计划生成
独立 LLM 调用(temperature=0.3),接收用户消息 + 全部工具描述,
输出结构化 List<PlanStep>,每个步骤包含 step / action / reason

解析方式:BeanOutputConverter 结构化输出
校验规则:所有 action 必须在 ToolRegistry 中注册,计划必须以 finish 结尾
容错:规划失败时优雅降级为直接执行
注入方式:计划作为系统提示词中的强制执行指令
PHASE 2
Spring AI ChatClient — ReAct 执行
Spring AI 原生工具调用循环,LLM 自主完成 推理 → 调用工具 → 观察结果 → 继续推理

约束机制:Phase 1 的计划注入 system prompt,约束工具选择顺序
工具发现:ToolRegistry 自动扫描 Spring Bean(Function<> + @Description
步骤追踪:AOP 切面 ToolExecutionAspect 拦截所有 tool.apply() 调用
安全限制:StepCollector 强制最大步骤数,超出抛出 MaxStepsExceededException
Tool 工具系统
Spring Bean 自动发现 — 实现 Function<> + @Description 即注册
KnowledgeSearchTool
知识库检索,接入 RAG Pipeline。支持 metadata 过滤,防重复调用去重,软/硬过滤降级策略。
CalculatorTool
递归下降解析器,支持基本四则运算表达式求值。
WeatherTool
Mock 天气查询,硬编码 4 城市数据,用于演示和测试。
LoadSkillTool
渐进式披露 Layer 2 — 加载 skill 完整 SKILL.md 内容并列出子资源。
ReadSkillResourceTool
渐进式披露 Layer 3 — 读取已加载 skill 目录下的资源文件,含路径穿越防护。
Skill 技能系统 — 渐进式披露
SkillRegistry 启动扫描:classpath*:skills-builtin/*/SKILL.md + ${app.skills.path}/*/SKILL.md  |  支持热重载 POST /actuator/skills
LAYER 1 — SYSTEM PROMPT
名称 + 描述
skill 的 name 和 description 注入系统提示词,LLM 可见但不加载全文
LAYER 2 — load_skill
完整指令
LLM 调用 load_skill 工具,获取 SKILL.md 全部 Markdown 内容
LAYER 3 — read_skill_resource
子资源文件
LLM 调用 read_skill_resource,读取 skill 目录下嵌入的模板/参考文件
AOP 步骤追踪 & 可观测性
tool.apply() 调用
ToolExecutionAspect
StepCollector
AgentStep 记录
Prometheus 指标
StepCollector 基于 ThreadLocal + Micrometer ThreadLocalAccessor 实现跨 Reactor Netty 线程传播。
Prometheus 指标:ai.tool.duration(耗时)、ai.tool.calls.total(调用次数)
4
Data & Infrastructure 数据与基础设施层
三层记忆系统
短期 → 中期 → 长期,事件驱动逐级沉淀
1
Working Memory 工作记忆
20 条消息滑动窗口 · 2h TTL · MemoryService
Redis
2
Summary Memory 摘要记忆
批量 LLM 摘要 · 向量化存储 · MemorySummarizer
PGVector
3
Reflection Memory 反思记忆
提炼用户偏好/习惯 · ReflectionWorker · importance=0.9
PGVector
MemoryService
SummarizationRequestEvent
MemorySummarizer
ConsolidationEvent
ReflectionWorker
配套组件:
UserProfileService — Redis Hash 存储用户画像,注入 system prompt
ImportanceDecayManager — 每日 03:30 指数衰减 importance(半衰期 30 天)
EvictionPolicyManager — 每日 03:00 清理低重要性过期文档
MemoryAccessUpdater — RAG 命中时异步刷新 lastAccessedAt
RAG 检索增强生成
文档摄入 + 多策略检索 + 重排序
摄入流程
Document
OverlapTextSplitter
Embed
PGVector
Token-aware 分块 · 500 tokens/chunk · 50 tokens overlap · 标点边界感知
检索流程
Query Rewriter
RetrievalRouter
Dense
PGVector
+
Sparse
BM25
RRF Fusion
Top-K
HyDE 扩展(可选,默认关闭)   Cross-Encoder Reranking(可选)
短查询/精确查找 → HYBRID 策略 · 其他 → DENSE 策略 · RRF rank constant = 60
PostgreSQL + PGVector
文档向量嵌入 · 记忆文档存储 · BM25 全文检索
metadata: type / sessionId / importance / createdAt / lastAccessedAt
Redis
工作记忆(会话历史)· 用户画像(Hash)· 会话状态
Key 模式:ai:session:{sessionId} · ai:profile:{userId}
可观测性 Observability
Prometheus + Grafana
Micrometer 指标采集 · token 计数器 · agent 延迟 · 工具耗时/调用次数 · RAG 检索统计 · Redis 失败率 · 规划结果
Langfuse 分布式追踪
Micrometer Tracing + OpenTelemetry OTLP 导出
全链路 LLM 调用追踪 & 可视化
AiInteractionLogger
记录所有 LLM Provider HTTP 请求/响应
逻辑 Chat 请求/响应对日志
关键设计模式
贯穿系统的核心架构决策
Progressive Disclosure 渐进式披露
AOP-based Observability 切面可观测
Event-Driven Memory 事件驱动记忆
ThreadLocal Context Propagation 上下文传播
Graceful Degradation 优雅降级
Deduplication 查询去重
Hard/Soft Filter Fallback 过滤降级
Exponential Importance Decay 重要性衰减