AI 应用专家知识体系(共 60 篇)
阶段定位:面向 Java 专家向 AI 应用专家的转型,从 AI Agent 基础概念建立认知,到掌握 LangChain4j/MCP 核心框架,到构建企业级 RAG 系统与多 Agent 协作,最终交付完整的商业级 AI 应用。本体系是"会用 Java 写后端"到"能设计、构建、维护企业级 AI 应用系统"的跨越。
系列间依赖关系
flowchart LR
subgraph 基础认知[" 基础认知层 "]
A1["① AI Agent 基础概念<br/>与架构总览<br/>(8 篇)"]
end
subgraph 框架与协议[" 框架与协议层 "]
B1["② AI 应用核心框架<br/>与协议<br/>(12 篇)"]
end
subgraph 核心技能[" 核心技能层 "]
C1["③ RAG 系统深度<br/>工程实战<br/>(10 篇)"]
C2["④ 提示词工程与<br/>Agent 深度实战<br/>(12 篇)"]
end
subgraph 高级应用[" 高级应用层 "]
D1["⑤ 多 Agent 系统与<br/>AI 应用解决方案<br/>(18 篇)"]
end
A1 --> B1
A1 --> C1
A1 --> C2
B1 --> C1
B1 --> C2
B1 --> D1
C1 --> C2
C1 --> D1
C2 --> D1
style A1 fill:#fff3e0,stroke:#e65100
style B1 fill:#e3f2fd,stroke:#1565c0
style C1 fill:#e8f5e9,stroke:#2e7d32
style C2 fill:#fce4ec,stroke:#880e4f
style D1 fill:#f1f8e9,stroke:#33691e
| 系列 | 层级 | 核心问题 |
|---|---|---|
| ① AI Agent 基础概念与架构总览 | 基础认知层 | Agent 究竟是什么?LLM/Memory/Tools/Planning 各自是什么?它们如何协同工作? |
| ② AI 应用核心框架与协议 | 框架与协议层 | LangChain4j 如何用 Java 设计模式编排 AI 应用?MCP 协议如何标准化工具调用?如何构建可观测的 AI 基础设施? |
| ③ RAG 系统深度工程实战 | 核心技能层 | 文档如何解析与切片?向量嵌入如何选型与微调?多路检索如何融合?生成如何引用归因与防幻觉? |
| ④ 提示词工程与 Agent 深度实战 | 核心技能层 | Prompt 如何系统化设计?记忆系统如何落地?工具生态如何构建?Agent 如何安全审计与故障排查? |
| ⑤ 多 Agent 系统与 AI 应用解决方案 | 高级应用层 | 多 Agent 如何协作?企业智能客服/代码助手/数据分析智能体如何架构?AI 应用如何 FinOps 与评测? |
依赖摘要:
- ① → ②:系列一建立 Agent 四要素的认知基础,系列二在此基础上深入 LangChain4j 框架(对应 Tools/Memory 的工程实现)和 MCP 协议(对应 Tools 的标准化),是"认知→框架"的递进。
- ① → ③ / ④:系列一讲清 RAG 在 Agent 中的定位(知识检索 Tool),系列三深入 RAG 完整工程;系列一讲清 Agent 四要素,系列四深入 Prompt 设计、记忆系统、工具生态的 Java 实战落地。
- ② → ③ / ④ / ⑤:系列二的 LangChain4j 是系列三 RAG 实现和系列四 Agent 开发的框架基座;MCP 协议是系列四工具生态和系列五多 Agent 协作的标准化通信基础;可观测性贯穿所有后续系列的运维。
- ③ → ④:RAG 是 Agent 最核心的知识检索 Tool,系列三的检索策略、重排序、幻觉检测直接应用于系列四的 Agent 实战(个人知识助手、数据分析 Agent)。
- ③ → ⑤:系列三的企业级知识库架构直接支撑系列五的企业智能客服、知识库中台、代码助手等方案。
- ④ → ⑤:系列四的单 Agent 全功能实战是系列五多 Agent 协作的基础,掌握了单 Agent 的规划、工具、安全机制,才能理解多 Agent 的协作架构与故障排查。
系列一:AI Agent 基础概念与架构总览(8 篇)
| 序号 | 文章标题 | 稳定性 | 优先级 | 知识点 |
|---|---|---|---|---|
| 1 | AI Agent 究竟是什么:从 LLM 到自主系统的演进 | 🟢 | ⭐⭐⭐⭐⭐ | 直观类比:LLM(大脑)→ Tools(手脚)→ Memory(海马体)→ Planning(前额叶)。 正式定义:感知环境→自主决策→执行动作→反馈学习的闭环系统,与规则引擎/工作流的本质区别(目标驱动 vs 流程固定)。 能力分级:L1 简单反应(关键词触发)→ L2 有状态推理(多轮对话)→ L3 目标驱动规划(任务分解)→ L4 自我进化(反思与工具学习)。 关键里程碑:LLM 能力突破(GPT-3.5+)+ Function Calling 出现 + LangChain/AutoGPT 等框架使 Agent 工程化成为可能。 能力边界:能做决策但不能承担法律/安全后果,适合辅助决策而非完全替代,人机协同(Human-in-the-Loop)是落地的关键安全机制。 |
| 2 | Agent 的四要素架构:LLM、Memory、Tools、Planning 全景图 | 🟢 | ⭐⭐⭐⭐⭐ | 四象限架构图:中央推理引擎(LLM)+ 三个外围子系统(Memory/Tools/Planning)。 信息流:User Input → LLM Reasoning → Decision(Action/Response)→ Tool Call → Observation → Memory Write → Next Loop。 各要素职责:LLM 负责“理解意图与推理决策”,Tools 负责“执行外部动作”,Memory 负责“维护上下文与知识”,Planning 负责“分解与调度”。 耦合与解耦:四要素的松耦合设计(可独立替换),比如 LLM 从 GPT-4 切换到 Claude 不影响 Memory 结构。 最小 Agent 代码骨架:LangChain4j 的 AiServices.builder() → chatModel + tools + chatMemory → build() 创建 Agent。 |
| 3 | LLM:Agent 的“大脑”——能力、局限与调用方式 | 🟢 | ⭐⭐⭐⭐⭐ | 本质:自回归概率模型,每一步预测下一个 Token 的分布,不是数据库,不是搜索引擎。 核心能力:语言理解与生成、常识推理、模式识别、多语言翻译、少样本学习。 核心局限:知识截止日期(训练数据截止时间)、幻觉(虚构不存在的引用/事实)、无法精确计算(数学/逻辑需外部工具辅助)、缺乏持久状态。 API 调用:REST/SSE/gRPC 三种方式,请求体结构(messages/parameters),响应体(choices/message/usage)。 关键参数:Temperature(控制随机性,0→确定性,1→高发散)、Top-P(核采样,累积概率阈值)、Max Tokens(硬截断)、Frequency/Presence Penalty(重复抑制)。 Token 计费:输入/输出 Token 分别计费,1 Token ≈ 0.75 英文单词 ≈ 0.5 中文字,嵌入模型与对话模型价格差异。 |
| 4 | Memory:Agent 的“记忆”——三层记忆模型详解 | 🟢 | ⭐⭐⭐⭐⭐ | 为什么需要 Memory:LLM 无状态(每次 API 调用独立),Memory 提供上下文连续性。 三层模型:① 工作记忆(当前对话的注意力窗口,存在于 LLM 的上下文窗口中,受 Token 限制,通常 4K-128K)→ ② 短期记忆(当前会话内的累积信息,存于服务端 Redis/内存 Map,可跨多次 API 调用共享)→ ③ 长期记忆(跨会话的持久化知识,存于向量库/关系数据库)。 管理策略:窗口滑动(丢弃最旧消息,实现简单)、摘要压缩(将历史对话压缩为摘要,保留语义)、实体提取(抽取关键实体和关系存入长期记忆)。 混合记忆模式:窗口+摘要结合(窗口保存最近 N 轮,更早的用摘要表示),实体记忆与向量检索结合。 |
| 5 | Tools:Agent 的“手和脚”——Function Calling 是怎样工作的 | 🟢 | ⭐⭐⭐⭐⭐ | 为什么需要 Tools:LLM 只会“说”,不会“做”。Tools 提供外部能力(查询数据库、调用 API、操作文件)。 工具的抽象:一个带自然语言描述的函数(name, description, parameters JSON Schema, execute 函数)。 LLM 选择机制:模型根据用户意图在工具列表中匹配,生成函数名和 JSON 参数,类似“意图识别+槽位填充”。 完整流程:用户输入→模型分析需要的工具→返回 tool_call 消息→系统执行函数→将结果包装为 tool 消息→返回模型→模型生成自然语言回答。 工具设计原则:描述清晰(像写给陌生人看)、参数最小化(减少模型幻觉参数)、返回结果格式化(结构化数据转为自然语言摘要)。 MCP 协议:标准化工具描述和调用协议,让 Agent 可以动态发现和使用任何 MCP 兼容工具。 |
| 6 | Planning:Agent 的“执行计划”——如何分解复杂任务 | 🟢 | ⭐⭐⭐⭐⭐ | 为什么需要 Planning:复杂任务(如“策划三日游”)无法一步完成,需要分解为子任务逐步执行。 Plan-and-Solve:先让 LLM 生成完整计划(步骤列表),再顺序执行每个步骤。 ReAct 循环:Thought(思考下一步做什么)→ Action(执行工具)→ Observation(观察结果)→ 循环直到任务完成。 树搜索方法:Tree-of-Thought(生成多个候选步骤,树状搜索最优路径)、Monte Carlo Tree Search(探索-利用平衡)。 自我反思(Reflexion):执行失败后触发反思,分析原因并记录教训(“不要使用 xxx 工具,它不稳定”),存入长期记忆。 规划与执行分离:Planner 负责生成子任务序列,Executor 负责执行,两者解耦,可独立优化和替换。 |
| 7 | Agent 的协同工作:单 Agent vs 多 Agent 的基本认知 | 🟢 | ⭐⭐⭐⭐ | 单 Agent 适用场景:任务边界清晰、工具数量可控、领域知识单一(如个人助手、知识问答)。 多 Agent 的基本形态:① 对话式协作(两个 Agent 互相讨论,像同事商量,AutoGen 模式);② 层级式协作(Master Agent 分配任务给多个 Specialist,汇总结果);③ 流水线式(Agent A 的输出是 Agent B 的输入,如“需求分析→架构设计→编码实现”)。 何时需要多 Agent:需要不同领域专业知识、需要多步骤并行、需要角色扮演(如“评审员+开发者”相互 critique)。 通信方式:共享消息队列(Kafka/Redis Pub-Sub)、直接 HTTP/gRPC 调用、共享黑板模型(Redis Hash)。 挑战:状态一致性、死锁(互相等待)、上下文膨胀、成本控制。 |
| 8 | 从零搭建你的第一个 Agent:Hello, Agent World! | 🟢 | ⭐⭐⭐⭐⭐ | 目标:构建能查询天气和时间的个人助手 Agent。 技术栈:Java 17 + Spring Boot 3 + LangChain4j + OpenAI API。 组件清单: ChatLanguageModel(GPT-4o-mini)、两个 @Tool(天气查询、时间查询)、ChatMemory(TokenWindowMemory 保留最近 20 条消息)。项目结构:Controller(Web 端点)→ AiService 接口(@AiService 注解)→ Tool 类(@Tool 注解)。 核心代码: AiServices.builder() 配置、@SystemMessage 设定角色、chat() 方法调用。运行观察:控制台打印 ReAct 日志(Thought → ToolCall → Observation → Final Answer),理解 Agent 的决策过程。 能力边界:当前只能执行预定义工具,无自主规划多步骤任务能力,下一系列将逐步增强。 |
系列二:AI 应用核心框架与协议(12 篇)
| 序号 | 文章标题 | 稳定性 | 优先级 | 知识点 |
|---|---|---|---|---|
| 1 | LangChain 生态全景:Python 与 Java 双版本的架构对比 | 🟢 | ⭐⭐⭐⭐⭐ | 框架定位:不是简单的 LLM SDK,而是 AI 应用编排框架,提供 Chains/Agents/Retrieval 等高阶抽象。 核心抽象六层:Model I/O(模型输入输出标准化)、Retrieval(文档加载/切片/嵌入/检索)、Chains(链式调用,组合多个组件)、Agents(智能体,LLM 动态决策)、Memory(对话上下文管理)、Callbacks(钩子系统,日志/监控)。 Python LangChain:动态类型、社区庞大、快速迭代但 API 不稳定、适合原型开发。 Java LangChain4j:强类型、Builder 模式、编译期安全、Spring 生态集成、适合生产级应用。 选型建议:算法探索/快速原型用 Python,企业级 Java 应用用 LangChain4j,两者可混合(Python 做模型服务,Java 做业务编排)。 未来趋势:MCP 协议可能统一工具调用层,减少对框架特定抽象的依赖。 |
| 2 | LangChain4j 源码透析:核心抽象与设计模式 | 🟢 | ⭐⭐⭐⭐⭐ | 核心接口体系:ChatLanguageModel(同步)vs StreamingChatLanguageModel(流式)、EmbeddingModel(文本→向量)、ImageModel(文生图)、ModerationModel(内容审核)。AiServices 动态代理: @AiService 注解标记接口,运行时通过 JDK Proxy 生成代理对象,拦截方法调用转换为 LLM 请求(方法参数→Prompt 变量,返回值→LLM 响应解析)。责任链模式: ChatMemory→Retriever→ChatModel 流水线,组件可插拔替换。Builder 模式: AiServices.builder() 流式组装,配置模型、记忆、工具、重试策略等。SPI 扩展机制: META-INF/services 注册自定义模型适配器,支持接入任何第三方模型。输出解析器: UserMessage/AiMessage/SystemMessage/ToolExecutionResultMessage 类型层次,JSON/CSV/自定义结构化输出解析。 |
| 3 | LangChain4j 的 Spring Boot 3.x 深度集成 | 🟢 | ⭐⭐⭐⭐⭐ | 自动配置原理:langchain4j-spring-boot-starter 通过 @Configuration 条件装配,解析 application.yml 中 langchain4j.openai.* 属性。Bean 作用域: ChatModel 默认单例(线程安全)、ChatMemory 默认会话作用域(每个用户独立)、Tool 从 Spring 容器注入(可使用 @Autowired)。GraalVM Native Image 兼容:AOT 编译需配置反射元数据( @RegisterReflectionForBinding 标记 DTO、reflect-config.json 注册动态代理类)。与 Spring Cloud 集成:服务发现(Nacos/Consul)、配置中心(Nacos/Apollo)、熔断降级(Resilience4j CircuitBreaker 保护 LLM 调用)。 多模型管理: @Qualifier 区分不同模型 Bean,动态路由到不同模型。可观测性增强:集成 Micrometer 暴露 Token 消耗/延迟等指标,自定义 ChatModelListener 记录每次调用。 |
| 4 | LLM 服务化协议内核:REST、SSE 与 gRPC 的工程解析 | 🟢 | ⭐⭐⭐⭐⭐ | OpenAI API 规范:Chat Completion 端点结构(model/messages/temperature/tools/stream),响应体(choices/delta/usage),错误码(401/429/500)。 SSE 协议: text/event-stream,data: {...}\n\n 格式,[DONE] 终止信号,Java 中用 WebClient + Flux<ServerSentEvent> 消费。流式 vs 非流式:非流式等待完整响应(高延迟但完整),流式逐 Token 返回(低首 Token 延迟,适合聊天体验)。 gRPC 高性能调用:Triton Inference Server gRPC 协议, ModelInfer RPC,Protocol Buffers 定义 InferInputTensor/InferOutputTensor,支持双向流。HTTP 客户端选型: RestClient(同步简单)、WebClient(响应式流式)、OkHttp(连接池高效)、连接池参数(maxIdleConnections/keepAliveDuration)。 |
| 5 | MCP 协议深度解析(一):架构设计与概念模型 | 🟢 | ⭐⭐⭐⭐⭐ | MCP 定义:Model Context Protocol(Anthropic 提出),AI 应用与外部工具的标准化通信协议,类比 USB-C 统一接口。 为什么需要 MCP:解决“每个 LLM/Agent 都要重新适配工具”的碎片化问题,实现工具即插即用。 架构设计:Client-Server 模型(Host 发起,Client 管理连接,Server 提供服务),Transport 层(Stdio/SSE/WebSocket),Message 层(JSON-RPC 2.0)。 四大核心概念:① Resources(数据源,如文件/数据库,URI 标识,支持 read/subscribe);② Tools(可执行函数,带 JSON Schema 参数,AI 可调用);③ Prompts(预定义提示词模板,可带参数);④ Sampling(Server 请求 Host 的 LLM 能力,实现 Agent 间委托推理)。 能力协商: initialize 握手时交换 capabilities,声明支持的功能(如 tools/resources/sampling)。 |
| 6 | MCP 协议深度解析(二):通信流程与消息类型 | 🟢 | ⭐⭐⭐⭐⭐ | 生命周期:initialize(Client 发送能力+版本→Server 返回能力+版本)→ initialized 通知 → 正常通信 → shutdown 优雅关闭。核心请求/响应: tools/list(获取工具列表及 JSON Schema)、tools/call(执行工具,传入参数,返回结果或流式内容)、resources/list(获取资源列表)、resources/read(读取资源内容,支持二进制 base64)、prompts/get(获取提示词模板,填充参数返回完整 Prompt)。通知类型: notifications/resources/updated(资源变更推送)、notifications/tools/list_changed(工具列表变更)。错误处理:JSON-RPC 标准错误码(-32700 解析错误, -32600 无效请求, -32601 方法未找到),自定义 data 字段传递额外信息。流式内容: tools/call 支持 streamable 模式,通过多次 notifications/progress 推送进度或部分结果。 |
| 7 | MCP 协议深度解析(三):Java 实现与 Spring Boot 集成 | 🟢 | ⭐⭐⭐⭐⭐ | MCP Server 实现:基于 Spring Boot 暴露 HTTP SSE 端点,实现 ListToolsRequest/CallToolRequest 处理逻辑。Tool 注册:将 Java Service 方法映射为 MCP Tool,注解驱动配置 @McpTool(name, description),自动生成 JSON Schema。MCP Client 实现:在 LangChain4j 中自定义 ChatModelListener 或 ToolProvider,通过 MCP Client 动态获取远程工具列表并注入 Agent。Transport 实现:Stdio(进程间通信,适合本地工具)、SSE(HTTP 长连接,适合微服务)、WebSocket(全双工,适合实时双向)。 与 Function Calling 对比:MCP 是标准化协议(一次适配,所有 Agent 可用),Function Calling 是厂商特定实现(OpenAI/Anthropic 格式不同),MCP 可适配为 Function Calling。 安全:传输加密(TLS/SSH)、身份认证(API Key/OAuth2)、工具执行权限校验(RBAC)。 |
| 8 | MCP 生态与市场:Servers、Clients 与未来展望 | 🟢 | ⭐⭐⭐⭐ | 官方预构建 Server:Filesystem(文件操作)、GitHub(Issues/PR)、Slack(消息发送)、Postgres(数据库查询)、Puppeteer(浏览器自动化)、Brave Search(网页搜索)。 Client 集成:Claude Desktop(原生支持)、Continue(IDE 编码助手)、Codex CLI(命令行 Agent),可通过 MCP Client 扩展能力。 范式转变:Agent 工具从“硬编码”走向“即插即用”,类似于云计算时代的 API 经济,MCP Marketplace 可能出现。 与传统协议竞合:OpenAPI(面向开发者描述 REST API)→ MCP(面向 AI 描述工具),GraphQL(灵活查询)→ MCP Resources(数据查询),可能长期共存。 局限与挑战:流式结果支持有限、长连接可靠性、安全审计、版本兼容性。 |
| 9 | AI 应用的可观测性:OpenTelemetry 与 LLM 全链路追踪 | 🟢 | ⭐⭐⭐⭐⭐ | 全链路追踪:用户请求→Prompt 组装→LLM 调用→Tool 调用→响应生成,每个环节生成 Span,W3C Trace Context 跨服务传播。 LLM 专用 Spans: gen_ai.request(模型/参数/Token 数)、gen_ai.content.prompt(输入内容)、gen_ai.content.completion(输出内容)。核心指标:TTFT(首 Token 时间)/TPOT(每 Token 时间)/P50/P95/P99 延迟、Token 消耗速率(输入/输出分别统计)、每用户/每对话成本归因、缓存命中率、错误率(按错误码分类)。 Langfuse 集成:Trace(一次完整调用)→ Generation(LLM 调用)→ Event(工具调用/记忆操作),通过 ChatModelListener 发送,提供可视化 Dashboard。告警规则:P95 延迟突增(> 2x 基线)→ 模型或网络问题;成本异常飙升(> 50% 日预算)→ 缓存失效或 Prompt 变长;幻觉率超阈值(> 5%)→ Prompt 或模型退化。 |
| 10 | 向量数据库深度实战:Milvus、Elasticsearch 与 Redis 选型调优 | 🟢 | ⭐⭐⭐⭐⭐ | 向量索引算法:HNSW(图索引,召回率高,内存消耗大)、IVF_PQ(倒排+乘积量化,内存低,召回率略低)、DiskANN(SSD 索引,容量巨大,延迟稍高)。 Milvus 核心调优:集合分片数( shardsNum,对应 CPU 核数)、段合并策略(segment.rowCount)、索引参数(nlist 聚类数,通常 4*sqrt(n);M 图连接数,通常 16-64)。Elasticsearch 向量: dense_vector 类型,index_options(hnsw/int8_hnsw/flat),混合打分 script_score+BM25,reciprocal_rank_fusion 无监督融合。Redis Stack: FT.CREATE 创建向量索引,FT.SEARCH 混合查询,支持 KNN + FILTER,轻量级适合缓存层。Java 客户端最佳实践:Milvus Java SDK MilvusServiceClient 连接池化(MilvusServiceClient 内部维护 gRPC 连接池)、ES BulkProcessor 批量插入、Redis JedisPool 连接池。 |
| 11 | 语义缓存与重复请求消除 | 🟢 | ⭐⭐⭐⭐ | 缓存粒度:① 精确缓存(完全相同 Prompt Hash 命中,实现简单但命中率低)→ ② 语义缓存(Embedding 相似度 > 阈值命中,召回率高但精度略低)→ ③ 前缀缓存(多轮对话共享前缀,适合长对话场景)。 向量缓存实现:历史问答存储为(Embedding, Response, Metadata),新问题 Embedding 后 ANN 检索,相似度阈值 0.95+ 触发缓存命中,离线评估阈值。 Redis 增强方案:Redis Stack FT.CREATE 创建向量索引,FT.SEARCH KNN 查询,EXPIRE 设置 TTL,MAXMEMORY LRU 淘汰。效果衡量:缓存命中率(Hit Rate)、P50 延迟下降(从 2s→50ms)、成本节省(缓存命中不消耗 LLM Token),负面案例监控(命中但答非所问的占比)。 失效策略:知识库更新时批量清除相关缓存、时间过期(TTL)+ LRU 双重淘汰。 |
| 12 | AI 网关架构:认证、限流、路由与审计统一管控 | 🟢 | ⭐⭐⭐⭐ | 统一网关架构:所有 AI 请求经过网关,统一处理 API Key 认证、按 Key/用户/租户限流、多模型动态路由、请求/响应全量日志。 Spring Cloud Gateway 实现:自定义 GatewayFilter 解析 API Key 并鉴权、RequestRateLimiter 基于 Redis 令牌桶按 Key 限流、RoutePredicateFactory 根据请求头/参数路由到不同模型。安全防护:Prompt 注入过滤器(正则匹配恶意模式 + 分类模型检测)、敏感信息脱敏(身份证/手机号/API Key 在日志中掩码)、输出合规审查(色情/暴力/政治敏感)。 联邦网关模式:企业内部统一 AI 访问门户,后端对接多个供应商(OpenAI/Azure/自建),对业务方透明切换,实现供应商锁定解除。 可观测性集成:网关层记录所有请求的 TraceId/耗时/Token 消耗,与后端的 Span 串联形成全链路。 |
系列三:RAG 系统深度工程实战(10 篇)
| 序号 | 文章标题 | 稳定性 | 优先级 | 知识点 |
|---|---|---|---|---|
| 1 | RAG 总体架构与决策框架 | 🟢 | ⭐⭐⭐⭐⭐ | 核心流程三阶段:① 离线索引(文档加载→切片→嵌入→向量索引+倒排索引)→ ② 在线检索(查询改写→嵌入→ANN+关键词混合检索→重排序→Top-K)→ ③ 生成(Prompt 模板填充检索结果→LLM 生成→引用归因)。 关键评估指标:Hit Rate@K(Top-K 中包含正确答案的比例)、MRR(第一个正确答案的平均倒数排名)、NDCG@K(考虑位置权重的排序质量)、Faithfulness(生成的答案是否完全由检索文档支持)。 RAG vs 微调决策:数据新鲜度要求(RAG 实时,微调需重新训练)、领域专业度(微调强)、幻觉控制(RAG 可溯源,微调黑盒)、成本(RAG 低,微调需 GPU)、延迟(RAG 含检索开销,微调更快)。 RAG 与 Agent 的关系:RAG 是 Agent 的“知识检索 Tool”,也可独立作为问答系统,Agent 可动态决定是否调用 RAG。 |
| 2 | 文档解析管道:多格式、多模态与 OCR 的 Java 实现 | 🟢 | ⭐⭐⭐⭐⭐ | 多格式解析:Apache Tika Tika().parseToString() 自动检测 MIME 类型(PDF/Word/PPT/HTML/Markdown/Email),Apache PDFBox PDDocument.load() 深度处理(提取文本+坐标+字体信息,用于高亮定位)。多模态文档:Layout Detection(LayoutLMv3 识别标题/正文/表格/图片区域),Table Transformer(检测表格结构并转换为 HTML/Markdown),图文分离后图片单独描述(用多模态模型生成 alt text)。 分布式解析架构:Spring Batch ItemReader/ItemProcessor/ItemWriter 分区处理大量文档,MinIO 对象存储中间文件,解析状态机(PENDING→PARSING→CHUNKING→INDEXING→DONE/ERROR)。容错与重试:PDF 损坏时跳过并记录,文件过大时分页解析,解析超时自动中断。 |
| 3 | 智能切片策略:从固定长度到语义感知的深度实现 | 🟢 | ⭐⭐⭐⭐⭐ | 切片策略演进:固定长度(500 字符+50 重叠)→ 递归字符分割(优先段落边界,兼顾语义完整性)→ 语义分块(计算相邻句子的 Embedding 余弦距离,在差异最大处切割)。 高级模式:① Parent Document Retriever(检索时返回小块,生成时返回小块所属的大块,兼顾准确性和上下文完整性)→ ② Sentence Window Retrieval(检索命中句子,生成时带前后各 N 句窗口)→ ③ 多粒度索引(同一文档建大小两种粒度索引,粗筛用小粒度,精排用大粒度)。 元数据策略:注入文档标题( doc_title)、页码(page_number)、章节层级(section_path)、文档类型(doc_type)、时间戳(last_modified),便于检索后过滤和排序。切片评估:人工标注理想切片边界 vs 自动切片边界的重叠率、下游任务(问答)的准确率回归测试。 |
| 4 | 嵌入模型工程:本地部署、批量推理与微调策略 | 🟢 | ⭐⭐⭐⭐⭐ | 模型选型:BGE v1.5(C-MTEB 中文榜单第一,支持 512/1024/2048 维度)、Cohere Embed v3(混合检索友好,输入类型可区分 search_document/search_query)、text-embedding-3-large(维度可变,256-3072,成本灵活)。本地部署:TEI(HuggingFace Text Embedding Inference)Docker 部署,支持 Flash Attention 加速、CPU/GPU 混合推理,gRPC API 供 Java 调用。 批量推理:批量大小(batch_size 32-256,影响 GPU 吞吐和延迟),异步+连接池并行( CompletableFuture + Semaphore 控制并发),断点续传(记录已处理文档 ID,中断后从断点继续)。微调策略:对比学习(用正样本对(查询,相关文档)和负样本对(查询,不相关文档)训练),Matryoshka 损失(同时优化 256/512/1024/2048 维度的表示,实现弹性维度),LoRA 微调(低秩适配,仅训练 r=8 的矩阵,资源消耗低)。 |
| 5 | 检索策略深度:多路召回、融合排序与自查询检索 | 🟢 | ⭐⭐⭐⭐⭐ | 三路召回:① 向量语义检索(ANN,召回语义相似文档)→ ② 稀疏关键词检索(BM25 或 TF-IDF,召回精确匹配)→ ③ 知识图谱检索(Neo4j 查询相关实体和关系)。 融合算法:倒数排名融合(RRF, score = 1/(k+rank),k=60,无需调参)、线性加权融合(需训练权重,可结合用户点击反馈优化)、学习排序(LTR,基于特征(向量得分/BM25得分/文档质量分)训练 LightGBM 模型)。自查询检索:LLM 将自然语言查询转为结构化过滤条件( {"date": {">=": "2024-01-01"}, "category": "技术文档"}),结合向量检索进行过滤后检索。多阶段检索:第一阶段高速粗筛(IVF/HNSW,K=100),第二阶段精细重排(Cross-Encoder 精排,保留 Top-5)。 查询改写:原始查询→LLM 扩展(生成多个语义变体)→ 多路查询融合,提高召回覆盖率。 |
| 6 | 重排序技术内核:Cross-Encoder 与 ColBERT 的工程权衡 | 🟢 | ⭐⭐⭐⭐ | Cross-Encoder 精排:将查询与文档拼接为 [CLS] query [SEP] doc [SEP] 输入 Transformer,输出一个相关性标量,计算复杂度 O(N×Q),精确但慢。ColBERT 晚交互:查询编码为 Token 矩阵(d×Q),文档编码为 Token 矩阵(d×D),检索时计算 MaxSim(每查询 Token 找最相似文档 Token,求和),文档向量可预计算存储。 性能优化:FP16/INT8 量化(模型体积减半,推理加速 2-4x)、GPU 批量推理(输入拼接多个查询-文档对,一次前向计算多个分数)、Java 客户端通过 gRPC 调 TEI 推理服务。 延迟 vs 精度:Cross-Encoder (BGE-Reranker) MRR@10 0.85, P99 200ms vs ColBERT MRR@10 0.80, P99 50ms(预计算后),根据场景选择。 多阶段架构:第一阶段 ANN 召回 100 篇(5ms),第二阶段 ColBERT 粗排到 20 篇(20ms),第三阶段 Cross-Encoder 精排到 5 篇(100ms)。 |
| 7 | 生成干预与引用归因:强制引用与幻觉检测 | 🟢 | ⭐⭐⭐⭐ | 引用强制:Prompt 模板 "请基于以下文档回答问题,每个回答必须引用来源 [编号]",后处理正则 \[(\d+)\] 提取引用 ID 验证是否在检索结果中。NLI 幻觉检测:将“前提(检索文档)”和“假设(生成句子)”输入 NLI 模型(如 RoBERTa-MNLI),输出 entailment/neutral/contradiction,contradiction 标记为潜在幻觉。SelfCheckGPT:同一查询多次采样(Temperature=0.5),计算各句子的语义一致性,一致性低的句子可能是幻觉。 流式干预:逐句生成后立即 NLI 检测,发现幻觉时中断生成或追加“澄清询问”。 前端高亮:返回引用 ID 映射到原始文档片段,前端鼠标悬停显示原文,增强可解释性和用户信任。 |
| 8 | GraphRAG:知识图谱增强 RAG 的工程实现 | 🟢 | ⭐⭐⭐⭐ | 三元组抽取管道:LLM 从文档中抽取(主语, 关系, 宾语)三元组,批量抽取后去重(同义词合并)和冲突解决(一致性检查)。 图存储:Neo4j 存三元组,Cypher 查询多跳关系( MATCH (a:Entity)-[r:RELATED_TO]->(b:Entity) WHERE a.name='X' RETURN b.name)。微软 GraphRAG 剖析:实体提取→关系构建→社区检测(Leiden 算法)→社区摘要生成→三级问答:全局搜索(社区摘要级)、局部搜索(实体关系级)、问题生成(基于实体的问题扩展)。 混合查询:向量检索(语义相似)+ 图检索(实体关联),结果合并去重后输入 LLM。 Java 集成:Spring Data Neo4j @Node/@Relationship 定义实体,@Query 执行 Cypher,图谱结果转文本注入 Prompt。 |
| 9 | 企业级知识库架构:权限、版本与增量同步 | 🟢 | ⭐⭐⭐⭐ | 文档级权限:检索前过滤(Pre-filtering),在 ANN 查询时携带用户 ID/角色,Milvus 使用 Partition Key 或 scalar filtering,ES 使用 filter 上下文,确保用户只能检索有权限的文档。版本管理:索引别名( knowledge_latest→knowledge_v2),切换时原子操作指向新索引,回滚同理。支持 Git-like 版本历史,可查询特定时间点的知识状态。增量同步:CDC(Change Data Capture),Debezium 监控 MySQL/PostgreSQL 知识库 Binlog→Kafka→消费者更新向量索引,定时全量扫描做一致性校验(每天凌晨)。 跨知识库联邦:查询分发到多个知识库,结果按来源加权融合,用户可选择搜索范围。 |
| 10 | RAG 反模式与诊断宝典 | 🟢 | ⭐⭐⭐⭐⭐ | 五大反模式领域:① 切片反模式(语义断裂/忽略元数据/切片过大丢失细节);② 嵌入反模式(模型不匹配如英文模型处理中文/向量未归一化/维度不匹配);③ 检索反模式(只看向量忽略 BM25/Top-K 过大引入噪声/没有重排序);④ 生成反模式(无引用约束导致胡编/上下文过长稀释注意力/Prompt 不强调“仅基于给定文档”);⑤ 运维反模式(无缓存导致成本爆炸/索引腐化无增量更新/无监控盲飞)。 诊断工具集:Langfuse(RAG Trace 可视化,观察检索结果与生成质量)、RAGAS(Faithfulness/AnswerRelevancy/ContextPrecision/Recall 自动化评估)、查询日志分析(高频未命中查询分析,指导切片/检索优化)。 故障案例:每个反模式含“错误现象→复现步骤→排查过程(日志/指标/检索结果分析)→根因定位→修正方案→预防措施”六步法。 |
系列四:提示词工程与 Agent 深度实战(12 篇)
| 序号 | 文章标题 | 稳定性 | 优先级 | 知识点 |
|---|---|---|---|---|
| 1 | 提示词工程(一):System Prompt 与角色设定原则 | 🟢 | ⭐⭐⭐⭐⭐ | System Prompt 作用域:角色定义(“你是一个专业的数据分析师”)、行为边界(“只能基于提供的数据回答,不得编造”)、输出格式(“请使用 JSON 格式”)、行为约束(“用中文回答”)。 指令设计法则:肯定句优先(“请输出 JSON” 比 “不要用文本” 好)、步骤分解(“第一步...第二步...”)、分界符使用( ### 参考文档 ### 分隔不同部分)。避免 Prompt 漂移:长对话中每 N 轮重新插入 System Prompt( ChatMemory 的 systemMessage 重注入策略),或使用摘要记忆时确保关键约束不丢失。多角色模板:分离 Planner(“制定计划”)、Executor(“按计划执行”)、Reviewer(“检查执行结果”)的 System Prompt,组合使用。 |
| 2 | 提示词工程(二):Few-Shot、CoT 与自动优化 | 🟢 | ⭐⭐⭐⭐⭐ | Few-Shot 设计:示例数量(3-5 个,过多稀释注意力)、多样性(覆盖不同情况)、格式严格对齐(示例的输入输出格式必须与期望一致)。 CoT 原理:让模型“边思考边回答”,将隐式推理步骤显式化,提升数学/逻辑/多步推理任务准确率(+20-30%),常用“Let's think step by step”。 自动 Prompt 优化:DSPy 编译思想(将 Prompt 视为可优化参数,定义 Signatures(输入输出),自动搜索最佳 Few-Shot 示例),PromptBreeder 遗传算法进化 Prompt。 对抗性防御:输入层过滤(检测“忽略以上指令”等注入模式)、格式强制(要求输出 JSON 拒绝执行指令)、输出编码(HTML Entity 防 XSS)。 |
| 3 | 提示词工程(三):结构化输出与约束生成 | 🟢 | ⭐⭐⭐⭐ | JSON Schema 约束:OpenAI response_format: {"type": "json_object"},Anthropic tool_use 约束,LangChain4j @StructuredPrompt 注解定义输出类。结构化输出解析: AiServices 方法返回类型为 POJO,框架自动将 LLM 输出 JSON 反序列化,错误处理(JSON 解析失败时重试或提取 JSON 块)。YAML/XML 输出:Prompt 中指定格式,后处理用 Jackson/SnakeYAML 解析,适合嵌套配置生成。 流式结构化输出:逐 Token 拼接 JSON 字符串,在检测到完整 JSON 对象时进行部分解析(如逐字段输出进度)。 |
| 4 | Agent 记忆系统实战:窗口、摘要与向量化记忆的 Java 实现 | 🟢 | ⭐⭐⭐⭐⭐ | 窗口记忆:MessageWindowChatMemory 保留最近 N 条消息(默认 10),简单高效,适合短对话。Token 计数窗口: TokenWindowChatMemory 基于 Token 数限制(如 4000),Tokenizer 组件统计 Token 数,精确控制上下文长度。摘要记忆: SummarizingChatMemory 当对话超过阈值时,用 LLM 将历史对话压缩为摘要(可配置摘要 Prompt),摘要+最近消息组成新上下文。向量化长期记忆:将用户关键信息(偏好、历史决策、教训)提取为实体,存入向量数据库,每轮对话检索相关记忆注入上下文。 时间衰减与固化:记忆权重随时间衰减( weight = 1 / (1 + days_since_creation)),被多次检索引用的记忆提高重要性权重。 |
| 5 | Agent 工具生态系统实战:从单工具到 MCP 集成 | 🟢 | ⭐⭐⭐⭐⭐ | 工具定义:@Tool("天气查询") 注解 + @P("城市名称") 参数描述,LangChain4j 自动生成 JSON Schema。统一接口: Tool 接口(name, description, parameters, execute),将现有 Java Service 方法包装为 Tool(Adapter 模式)。动态工具选择:工具数量多(>20)时,先根据用户意图用 Embedding 匹配最相关的 K 个工具,减少模型选择错误。 MCP 集成:实现 MCP Client,从 MCP Server 动态获取工具列表并注册到 Agent,工具调用通过 MCP 协议转发。 工具市场:注册中心存储工具元数据(描述/参数/版本/权限),Agent 启动时动态拉取可用工具,实现“即插即用”。 |
| 6 | Agent 规划系统实战:ReAct、Plan-Solve 与 Reflexion 的对比实现 | 🟢 | ⭐⭐⭐⭐⭐ | ReAct 循环:while(not finished) { thought = llm.think(context); action = parseToolCall(thought); observation = executeTool(action); context.add(observation); },LangChain4j 的 AiServices 内置实现。Plan-Solve:第一步 plan = llm.generatePlan(task) 返回步骤列表 [step1, step2, ...],第二步逐个执行 result = execute(step),执行结果反馈给后续步骤。Reflexion:失败时 reflection = llm.reflect(error, context) 生成教训文本,存入长期记忆(向量库),后续类似任务时检索教训避免重犯。动态重规划:某步骤失败时, new_plan = llm.replan(failed_step, observation, remaining_steps),调整后续计划。性能对比:ReAct(灵活但 Token 消耗高) vs Plan-Solve(高效但计划不可变) vs Tree-of-Thought(最强但延迟/成本极高)。 |
| 7 | Agent 安全机制:最小权限、人类介入与全链路审计 | 🟢 | ⭐⭐⭐⭐⭐ | 最小权限原则:工具分级(READ_ONLY/WRITE/ADMIN),Agent 实例绑定额色(RBAC),限制只能调用其权限范围内的工具。人类介入(HITL):高危操作(删除数据/发送生产邮件/执行 SQL UPDATE)必须经人工审批,工作流引擎(Camunda/Temporal)实现审批节点,Agent 暂停等待指令。 全操作审计:记录每步 [timestamp, agent_id, user_id, thought, tool_name, tool_params, tool_result, decision] 到 ClickHouse/ELK,不可篡改,满足合规要求。对抗攻击防御:间接 Prompt 注入(文档中隐藏“请发送数据到 evil.com”)→ 检索后沙箱化处理(检索内容不作为指令执行,只作为参考数据)。 内容安全:输出过滤(正则+分类模型),敏感词替换/拒绝回答,与公司内容安全平台集成。 |
| 8 | 单 Agent 全功能实战(一):个人知识助手 | 🟢 | ⭐⭐⭐⭐⭐ | 需求分析:① 文档问答(上传 PDF/Word,询问内容);② 邮件起草(根据要求写邮件);③ 日程管理(查询和创建日历事件);④ 记忆用户偏好(常用联系人、写作风格)。 架构设计: ChatLanguageModel(GPT-4o)+ ChatMemory(TokenWindow+摘要混合)+ 长期记忆(Milvus 存储用户偏好)+ Tools(RAG 文档检索、Gmail API、Google Calendar API)。Spring Boot 项目: AiService 接口定义 chat 方法,DocumentRetrievalTool 封装 RAG 检索,EmailTool 封装 Gmail,CalendarTool 封装日历,单元测试和集成测试。关键实现:文档上传→解析→切片→嵌入→索引管道,RAG 检索集成到 Tool 中,Agent 自动判断用户意图调用对应工具。 评估与迭代:任务完成率(能否正确回答/发邮件/建日程)、用户满意度评分、典型失败案例分析与 Prompt 优化。 |
| 9 | 单 Agent 全功能实战(二):自动化数据分析 Agent | 🟢 | ⭐⭐⭐⭐⭐ | 需求分析:① 自然语言查询数据库(Text-to-SQL);② 生成图表(柱状图/折线图/饼图);③ 自动生成数据洞察报告(趋势/异常/建议)。 架构设计: ChatLanguageModel + ChatMemory + Tools(SQL 执行器、图表生成器、洞察分析器)。Schema RAG:将数据库表结构(表名/字段/注释)切片嵌入,用户查询时检索最相关表,注入 Prompt 引导生成正确 SQL。 安全 SQL 执行:只读数据库账户、结果集行数限制( LIMIT 1000)、敏感字段脱敏(手机号/身份证)、超时熔断(5s)。图表生成:LLM 生成 ECharts JSON 配置,前端渲染,支持常见图表类型(bar/line/pie/scatter),自动根据数据类型推荐图表。 自动洞察:定期查询数据,LLM 分析趋势(同比/环比)、检测异常(3-sigma)、生成自然语言报告推送。 |
| 10 | Agent 的可观测性与调试 | 🟢 | ⭐⭐⭐⭐ | Trace 可视化:每一步 Thought → Action(Tool) → Observation 生成 Span,Langfuse 自动记录并展示 ReAct 循环图,快速定位哪一步出错。常见异常诊断:① 无限循环(工具调用结果无法满足目标,检测循环次数阈值自动终止)→ ② 幻觉参数(工具调用参数不存在或类型错误,对比 JSON Schema 校验)→ ③ 上下文溢出(超出模型 Token 限制,监控 Token 消耗趋势)→ ④ 工具调用失败(网络超时/API 异常,检测错误日志)。 性能瓶颈定位:分阶段耗时统计(LLM 推理/Tool 执行/Memory 检索),火焰图分析。 调试技巧:本地运行开启 verbose=true 打印完整 Prompt 和响应,单元测试 Mock 工具隔离 LLM 行为。 |
| 11 | Agent 评估体系:任务成功率、幻觉率与用户满意度 | 🟢 | ⭐⭐⭐⭐ | 任务成功率:定义典型任务集(如“预订明天下午 3 点的会议室”),自动化执行并检查是否完成预定动作,成功率 = 完成数/总数。 幻觉率:对 Agent 的陈述进行事实核查(与工具返回结果对比),标注哪些是编造的,计算幻觉率 = 幻觉陈述数/总陈述数。 RAGAS 指标:Faithfulness(生成内容是否被检索文档支持)、Answer Relevancy(回答与问题的相关度)、Context Precision(检索结果中相关文档的比例)。 Elo 评分:两个 Agent(A/B)回答同一问题,标注员盲评胜负,动态更新 Elo 分,适合 Prompt 优化 A/B 测试。 评估陷阱:Goodhart 定律(指标变成目标后失效)、位置偏差(前排结果更容易被点击)、长度偏差(更长的回答常被评更好)。 |
| 12 | Agent 反模式与故障排查手册 | 🟢 | ⭐⭐⭐⭐⭐ | 六大反模式:① 无限循环(工具结果无法收敛,缺少 maxIterations 限制);② 幻觉参数(工具参数值不在合法范围内,缺少参数校验);③ 上下文溢出(长对话+检索结果超出 Token 限制,没有 Token 计数和截断);④ 工具过载(一次给 50+ 工具,模型选错率飙升,没有工具检索筛选);⑤ 信息泄漏(多租户共用一个 Memory,租户 A 看到租户 B 的信息);⑥ 目标偏离(用户故意引导 Agent 偏离初始任务,缺少目标锚定机制)。诊断流程:每个反模式含“错误现象→日志分析→Trace 回溯→根因定位→代码修复→预防措施(如增加校验/限制/隔离)”。 |
好的,以下是系列五完整版,每篇文章的知识点均已全面丰富,与其他系列保持一致的深度和密度。
系列五:多 Agent 系统与 AI 应用解决方案(18 篇)
系列定位:从单 Agent 走向多 Agent 协作,并最终落地为完整的商业级 AI 应用。涵盖架构设计、场景实战、平台建设与决策框架。
| 序号 | 文章标题 | 稳定性 | 优先级 | 知识点 |
|---|---|---|---|---|
| 1 | 多 Agent 协作架构:对话式、层级式与市场式 | 🟢 | ⭐⭐⭐⭐ | 对话式协作(AutoGen 模式):两个 Agent 自由对话,User Proxy Agent 代表用户执行操作,Assistant Agent 负责推理建议,多轮讨论直到达成共识或达到最大轮次。 层级式协作(Master-Slave):Master Agent 负责任务分解与分派,Specialist Agent 各自处理子任务(如“需求分析 Agent”“编码 Agent”“测试 Agent”),结果逐级汇总。 市场式协作:Agent 根据自身能力对任务出价,Scheduler 根据历史成功率、当前负载、出价选择执行者,类似微服务中的负载均衡。 消息总线实现:Kafka Topic 隔离( agent.{agentId}.inbox),消息格式 {taskId, fromAgent, toAgent, type(REQUEST/RESULT/ERROR), payload, timestamp},死信队列处理超时消息。状态共享与冲突:Redis Hash 作为共享黑板(Blackboard), WATCH+MULTI+EXEC 乐观锁解决并发写入冲突,失败重试。协作失败处理:某个 Specialist Agent 失败时,Master Agent 决定重试/替换 Agent/跳过该步骤/降级处理。 |
| 2 | Agent 性能优化:并行执行、批处理与异步编排 | 🟢 | ⭐⭐⭐⭐ | 并行工具调用:CompletableFuture.allOf(f1, f2, f3).join() 并行执行无依赖工具(如同时查天气和查新闻),anyOf() 处理竞速场景(多个数据源任意一个返回即可)。LLM 批处理:多个独立子任务合并为单次 messages 数组调用,利用 vLLM prefix caching 共享系统提示词,减少重复推理开销。模型分级路由:小模型(8B,如 Llama-3-8B,延迟 100ms)处理简单任务(意图分类/参数提取/情感分析),大模型(70B,延迟 800ms)处理复杂推理(多步规划/代码生成),路由决策本身也用模型判断任务复杂度。 超时熔断: CompletableFuture.orTimeout(5, SECONDS) + Resilience4j TimeLimiter + CircuitBreaker(失败率 > 50% 时熔断 30s),防止单个工具/模型故障拖垮整个 Agent。资源池化:工具执行线程池(核心线程=CPU核数,最大=2倍),LLM 调用连接池(HikariCP 思想,最大连接数=API 并发限制),避免资源竞争。 |
| 3 | GUI Agent:屏幕理解与自动化工作流 | 🟢 | ⭐⭐⭐ | 纯视觉方案:截图→多模态模型(GPT-4V/Gemini Pro Vision/Claude 3 Vision)→输出操作指令 {"action":"click","coordinate":[x,y],"description":"点击搜索按钮"},适合无法获取 UI 树的场景。可访问性树方案:获取 UI 元素树(Android UIAutomator/Web Accessibility Tree/iOS XCUITest),每个元素有唯一 ID、类型、文本、坐标,模型输出元素 ID 操作,精确度高。 混合方案:视觉定位粗略位置 + 可访问性树精确定位元素(视觉找“搜索按钮在右上角”,a11y tree 找类型为 button 且文本为“搜索”的元素)。 执行驱动:Appium WebDriver 执行移动端操作,Selenium WebDriver 执行 Web 端操作,UIAutomator 处理 Android 系统级交互(返回/Home/通知栏)。 验证循环:操作后截屏→与预期状态对比(结构对比:a11y tree 是否出现目标元素;视觉对比:截图差异度),不匹配则重试(最多 3 次)或触发人工介入。 适用场景:移动端自动化测试、RPA 流程自动化(报销审批/数据录入)、辅助用户完成复杂 App 操作(如“帮我在淘宝找一件低于 200 的蓝牙耳机”)。 |
| 4 | 代码 Agent:生成、调试与自主修复的工程闭环 | 🟢 | ⭐⭐⭐⭐ | 安全沙箱:Docker 容器执行代码(docker run --rm --network=none --memory=512m --cpus=1 --read-only code-sandbox:latest),限制网络访问/内存/CPU/文件系统只读,超时 30s 自动 kill。AST 验证:Tree-sitter 解析生成代码,检查语法错误,提取函数/类/变量结构,验证与需求是否匹配(如函数签名是否正确)。 自修复循环: while(tests_fail && retries < MAX_RETRIES) { error_output = run_tests(); fix_prompt = build_fix_prompt(code, error_output); fix_result = llm.generate(fix_prompt); code = apply_patch(code, fix_result); },最多 3 次迭代。代码审查 Agent:接入 SonarQube/Checkstyle/ESLint 规则库,加载项目编码规范,对 Git Diff 逐文件审查,生成评论 {"file":"xxx.java","line":42,"severity":"MAJOR","message":"方法过长,建议拆分","suggestion":"..."}。测试生成 Agent:读取源码→分析函数签名和逻辑→生成单元测试骨架(JUnit 5 + Mockito)→运行测试→分析覆盖率→补充边界用例→迭代直到覆盖率达标(>80%)。 数据隐私:代码不上传公有云,使用本地部署模型(如 CodeLlama/DeepSeek-Coder)或私有化部署的 LLM 服务。 |
| 5 | 企业级 Agent 平台:多租户、调度与全生命周期管理 | 🟢 | ⭐⭐⭐ | Agent 生命周期:创建(Web UI 配置 LLM/Tools/Memory/Prompt)→ 测试(沙箱环境验证)→ 部署(打包 Docker 镜像,推送到 Harbor)→ 运行(K8s Deployment/Job)→ 监控(Prometheus+Grafana)→ 下线(优雅关闭,清理资源)。 K8s 调度策略:Job 模式(一次性任务,如“生成周报”)+ CronJob(定时触发,如“每天早上 9 点推送昨日数据洞察”),GPU 节点 nodeSelector/affinity 调度,ResourceQuota 限制每租户资源。 多租户隔离:Namespace 隔离(每租户一个 K8s Namespace),Secret 独立管理(每租户的 API Key 存于各自 Secret),NetworkPolicy 禁止跨租户网络访问。 Agent 版本管理:Helm Chart 管理部署版本,支持金丝雀发布(10% 流量到新版 Agent,观察指标后全量切换),回滚到上一版本。 可观测性集成:OpenTelemetry Agent 自动注入 Pod,每个 Agent 实例的 Trace/Metrics 汇聚到 Jaeger/Prometheus,Grafana Dashboard 展示全局 Agent 运行状态。 |
| 6 | 多 Agent 复杂系统实战:自动化 DevOps 团队模拟 | 🟢 | ⭐⭐⭐⭐ | 场景设计:模拟一个 DevOps 团队,包含 4 个 Agent:需求分析 Agent(分析用户需求,输出 PRD)→ 架构设计 Agent(设计系统架构图/API 定义/数据库 Schema)→ 开发 Agent(生成代码)→ 测试 Agent(生成测试用例并执行)。 协作流程:层级式协作,Master Agent 接收用户需求→分派给需求分析 Agent→输出 PRD→Master 审核→分派给架构 Agent→输出设计文档→Master 审核→分派给开发 Agent 和测试 Agent 并行工作→测试 Agent 反馈 Bug→开发 Agent 修复→循环直到通过。 消息流转:Kafka 作为消息总线,每个 Agent 订阅自己的 Topic,Master Agent 发布任务消息,Agent 完成后发布结果消息。 人工审核节点:Master Agent 在关键节点(PRD/架构设计/部署)暂停,通过 WebSocket 推送审核请求给人类 DevOps 工程师,工程师批准/驳回后继续流程。 完整项目:Spring Boot 多模块项目, agent-master/agent-analyst/agent-architect/agent-developer/agent-tester 五个服务,Docker Compose 本地运行,K8s 生产部署。 |
| 7 | 企业智能客服架构:意图路由、人机协同与全渠道接入 | 🟢 | ⭐⭐⭐⭐⭐ | 意图识别引擎:基于 LLM 的少样本意图分类(Few-Shot Prompt 列举 10-20 个意图及示例),置信度阈值 0.7+ 自动处理,低于阈值转人工或反问澄清。 知识路由策略:意图→知识库映射表(“售后问题”→售后知识库,“产品参数”→产品手册 RAG),Agent 根据意图自动选择检索源。 人机协同流程:Agent 无法解决时自动创建工单(ServiceNow/Zendesk/Jira Service Management),附带完整对话摘要( SummarizingChatMemory 生成的摘要)、用户信息、失败原因,工单状态回写对话(“您的工单 #12345 已被工程师张三受理”)。全渠道接入:WebSocket(网页聊天窗口)+ 钉钉/飞书/企微机器人(Webhook 回调)+ 邮件(IMAP 轮询收件,SMTP 发送回复)+ 电话(语音识别 ASR→文本→Agent→TTS→语音回复),统一接入层适配各渠道消息格式。 SLA 保障:P99 延迟 < 2s(监控 Dashboard),高峰期自动扩容(KEDA 基于 Prometheus 指标触发 HPA),降级策略(高峰期仅返回缓存答案 + 引导创建工单)。 |
| 8 | 企业知识库与搜索中台:从关键词到语义理解 | 🟢 | ⭐⭐⭐⭐⭐ | 混合搜索中台架构:统一搜索入口(Search API),同时查询 Elasticsearch(结构化数据+关键词全文检索)和 Milvus(非结构化文档语义检索),结果融合(RRF 倒数排名融合)。 个性化搜索重排序:基于用户画像(部门/角色/历史搜索)和文档属性(部门归属/权限级别),在检索后重排序,优先展示用户权限范围内最可能相关的文档。 知识图谱辅助消歧:维护企业知识图谱(产品/部门/人员/项目的关系),搜索“苹果”时根据用户上下文(技术部门→Apple Inc.,采购部门→水果供应商)自动消歧。 反馈闭环:记录用户行为(点击/收藏/纠错/“未找到”),定期分析高频未命中查询→补充知识或优化切片策略,高点击文档提权,低点击文档降权,形成数据飞轮。 多模态搜索:支持以图搜图(CLIP 嵌入)、以文搜图(文本查询匹配图片描述)、混合搜索(文档正文+图片描述+表格数据联合索引)。 |
| 9 | AI 代码助手架构:补全、审查与测试生成 | 🟢 | ⭐⭐⭐⭐⭐ | 代码补全:基于 FIM(Fill-In-the-Middle)模式,<PRE> prefix <SUF> suffix <MID> completion,IDE 插件(IntelliJ/VSCode)提取光标前后的代码,发送到推理服务,延迟必须 <200ms(本地模型或边缘推理)。代码库 RAG:将项目代码文件切片(按函数/类粒度),通过 Embedding 建索引,补全时检索当前文件相关的函数/类定义/import 语句,注入 Prompt 提升补全准确性。 代码审查 Agent:解析 Git Diff( git diff main...feature),加载项目编码规范(Checkstyle/SonarQube 规则),逐文件逐行审查,输出结构化审查意见(文件/行号/严重级别/问题描述/修改建议)。单元测试生成:读取源码→LLM 分析函数签名/依赖/逻辑→生成测试骨架(JUnit 5+Mockito)→ mvn test 运行→分析失败原因→修复测试代码→迭代直到通过或覆盖率达标。数据隐私方案:代码不上传公有云,使用本地部署模型(CodeLlama/DeepSeek-Coder/StarCoder),或通过 VPN 专线连接私有化部署的 LLM 服务,IDE 插件支持配置私有推理端点。 |
| 10 | AI 数据分析智能体:Text-to-SQL、自动洞察与可视化 | 🟢 | ⭐⭐⭐⭐ | Text-to-SQL 精准生成:Schema RAG(将数据库 Schema 的“表名+字段名+注释”切片嵌入,用户查询时检索最相关表和字段),Few-Shot 示例(每个表提供 3-5 个自然语言→SQL 示例),生成后语法校验(JSqlParser/Calcite 解析 SQL,失败则反馈错误给 LLM 重试)。 安全查询执行:只读数据库账户( GRANT SELECT ON database.*),结果集行数限制(LIMIT 1000,超出提示用户缩小范围),敏感字段自动脱敏(手机号/身份证/邮箱在输出时替换为 ***),超时熔断(5s)。自动洞察:定时查询核心业务表→LLM 分析趋势(同比 (current-last_year)/last_year,环比 (current-last_month)/last_month)→检测异常(3-Sigma 准则,x-μ > 3σ 标记为异常)→生成自然语言报告(“本周订单量环比下降 15%,主要下降品类为电子产品”)→推送到钉钉/邮件。可视化推荐:根据查询结果的数据类型和意图,自动推荐最佳图表类型(趋势→折线图,对比→柱状图,占比→饼图,分布→散点图),生成 ECharts JSON 配置,前端渲染。 |
| 11 | 大模型微调即服务平台 | 🟢 | ⭐⭐⭐ | 数据管理:用户上传原始数据(CSV/JSON/对话日志)→平台自动清洗(去重/脱敏/格式校验)→转换为训练格式(Alpaca 格式 {"instruction":"...","input":"...","output":"..."} 或 ShareGPT 格式 {"conversations":[...]})→数据集版本管理(v1/v2/latest)。微调任务编排:用户选择基座模型(Llama-3/Qwen-2/DeepSeek)+ 配置超参数(LoRA rank=8, alpha=16, learning_rate=2e-4, epochs=3)→提交训练 Job→K8s 调度到 GPU 节点(A100/H100)→训练脚本(Unsloth/LLaMA-Factory)执行→日志实时推送前端。 模型管理:MLflow Tracking 记录每次训练的 Loss 曲线/超参数/评估指标(Perplexity/ROUGE/BLEU)→对比多次实验→选择最佳模型→MLflow Model Registry 注册( Staging/Production 阶段)→A/B 测试验证→上线。推理部署:训练完成的 LoRA 权重合并到基座模型→部署为推理服务(vLLM/TGI)→暴露 API 供业务调用→自动扩缩容(HPA 基于请求队列深度)。 成本核算:按 GPU 时计费(A100 80G ≈ ¥15/小时),每个训练任务记录 GPU 消耗时间,月度账单 = 训练时长 × 单价 + 存储费用 + 推理调用费用。 |
| 12 | 多模态内容生成平台:文生图、视频与审核 | 🟢 | ⭐⭐⭐ | 模型统一抽象:ImageModel 接口(generate(prompt, size, style) -> Image),Stable Diffusion(自有部署,WebUI API)+ DALL-E 3(OpenAI API)+ Midjourney(Discord Bot 代理),统一封装,业务方无感切换。ComfyUI 工作流引擎:ComfyUI 工作流 JSON 定义(节点/连线/参数),平台将用户需求翻译为工作流 JSON 提交执行,支持文生图/图生图/ControlNet 条件控制/Inpainting 局部重绘等复杂管线。 内容审核:生成前 Prompt 审核(NSFW 词汇过滤),生成后图片审核(NSFW 分类模型 + Skin Tone 检测),不通过则拒绝返回并记录日志。 数字水印:生成图片嵌入不可见水印(DWT 频域水印),包含生成时间/用户 ID/模型版本,可溯源,防止滥用。 异步任务处理:生成任务耗时较长(10-30s),提交任务返回 taskId→RabbitMQ 异步处理→用户轮询 GET /task/{taskId} 或 WebSocket 推送完成通知→任务结果(图片 URL)缓存 24h。 |
| 13 | AI 驱动的自动化测试平台 | 🟢 | ⭐⭐⭐⭐ | 测试用例自动生成:输入需求文档(PRD/Markdown)→LLM 提取功能点→生成 BDD 风格的测试用例(Gherkin 格式:Given... When... Then...)→人工审核/编辑→保存为 .feature 文件。端到端测试执行 Agent:基于 Playwright 的浏览器操作 Agent,读取 Gherkin 步骤→翻译为 Playwright 操作( page.click()/page.fill()/page.waitForSelector())→执行→截图每步结果→生成测试报告。视觉回归测试增强:页面截图→与基线截图对比(Pixelmatch 像素级对比)→多模态模型分析差异(“登录按钮从蓝色变为绿色”)→生成人类可读的差异描述。 失败结果分析:测试失败日志→LLM 分析(是环境问题/产品 Bug/测试脚本问题)→自动分类→Bug 自动创建 Jira Issue 并附上截图/日志/复现步骤→如果是测试脚本问题,自动生成修复建议或直接提交修复 PR。 |
| 14 | 实时 AI 应用架构:WebSocket、SSE 与双向流式 Agent | 🟢 | ⭐⭐⭐⭐ | 协议选型指南:SSE(单向流,text/event-stream,适合“AI 打字机输出”场景,实现简单,兼容性好)vs WebSocket(全双工,适合“用户可打断/发送新指令”场景,低延迟,需管理连接状态)vs WebTransport(基于 QUIC,支持多路复用,未来方向,目前浏览器支持有限)。双向流式 Agent:用户通过 WebSocket 发送任务,Agent 执行过程中主动推送思考过程( {"type":"thought","content":"正在查询天气..."})、工具调用({"type":"tool_call","tool":"getWeather","params":{...}})、工具结果({"type":"tool_result","data":{...}})和最终回答({"type":"answer","content":"..."}),用户可随时发送中断指令({"type":"interrupt"})。连接管理:Spring WebFlux Reactive WebSocketSession 管理,心跳机制(每 30s ping/pong,3 次无响应断开),异常断线时客户端指数退避重连(1s→2s→4s→8s→最大 30s)。消息可靠性:消息去重(每条消息带 messageId,服务端缓存最近 1000 条已处理消息 ID,幂等处理),离线消息推送(FCM/APNs 推送“您有新的 AI 回复”通知),聊天记录持久化(MongoDB 存完整对话历史)。 |
| 15 | AI 应用的成本架构与 FinOps | 🟢 | ⭐⭐⭐⭐ | 成本归因模型:每 Token 成本(GPT-4o 15/1M output)× 实际消耗量,GPU 租赁费用(A100 $1.5/h)× 使用时长,按租户/项目/部门的成本分摊,月度账单展示各维度成本。 多层缓存降本体系:① 前端缓存(浏览器 LocalStorage,缓存用户高频问题,命中直接展示);② 服务端语义缓存(Redis 向量相似度缓存,相似度 > 0.95 命中直接返回);③ 数据库缓存(热点知识预先计算好答案存 MySQL,定时更新);④ 混合模型路由(简单问题→GPT-3.5/8B 本地模型,复杂问题→GPT-4o/70B 模型)。 成本最优路由:查询复杂度评估(LLM 打分 0-1)→阈值 0.3 以下用小模型(成本 1x),0.3-0.7 用中等模型(成本 5x),0.7 以上用大模型(成本 20x),根据预算动态调整阈值。 预算预警与自动限流:部门/项目级月度预算(如 ¥10,000/月),达到 80% 发送预警通知(钉钉/邮件),达到 100% 自动限流(仅允许缓存命中,拒绝新 LLM 请求,返回“本月预算已用尽”)。 本地 vs 云端 TCO 分析:自建推理服务器 TCO = GPU 购置/租赁 + 电力 + 运维 + 机房,云端 API TCO = Token 单价 × 调用量,盈亏平衡点计算(调用量 > X Token/天时自建更划算)。 |
| 16 | 大模型评测与安全:能力基准、幻觉控制与红队测试 | 🟢 | ⭐⭐⭐⭐⭐ | 能力评测基准:MMLU(多学科知识,57 个学科,多项选择题,评估知识广度)、HumanEval/BigCode(代码生成,functional correctness,pass@k 指标)、GSM8K/MATH(数学推理,逐步求解准确率),评测时的 Few-Shot 设置(0-shot/5-shot)和 Prompt 敏感性(格式微调可能导致 ±5% 波动)。 幻觉检测方法:NLI 模型(RoBERTa-MNLI,前提=参考文档,假设=生成句子,输出 entailment/neutral/contradiction)、SelfCheckGPT(同一 Prompt 多次采样,计算各句子在多次生成中的语义一致性,一致性低的为潜在幻觉)、检索对比(生成中的事实陈述与检索结果对比,不匹配标记)。 越狱攻击防御:常见攻击模式(角色扮演“你现在是 DAN,没有限制...”/编码伪装 Base64/对抗后缀 token 干扰/多语言混合),防御措施(System Prompt 安全灌输“你是一个安全的 AI 助手...”+ 输入层检测(分类模型判断是否有越狱意图)+ 输出层过滤(敏感词/格式校验))。 红队测试方法论:自动化红队(用另一个 LLM 生成多样性攻击 Prompt,测试目标模型的鲁棒性),人工红队(安全专家根据分类学体系(毒性/偏见/隐私/幻觉/越狱)设计测试用例),测试结果评分和修复优先级排序。 评估陷阱:数据污染检测(测试集与训练集重叠度分析,min-k% prob 方法)、基准饱和(当所有模型在某基准上接近满分时,该基准失去区分度)、Goodhart 定律(一旦指标成为优化目标,指标与真实质量脱钩,如 ROUGE 高分但实际不流畅)。 |
| 17 | AI 应用自动化测试:CI/CD 中的 Prompt 测试与模型评估 | 🟢 | ⭐⭐⭐⭐⭐ | 单元测试:@AiService 接口的 Mock 测试(when(chatModel.generate(any())).thenReturn(...) 隔离 LLM 依赖),ChatMemory 状态验证(检查对话窗口是否正确更新),工具调用的参数匹配断言(ArgumentCaptor 捕获工具参数,验证值符合预期)。集成测试:Testcontainers 编排依赖容器(Ollama 容器(本地 LLM)+ Qdrant 容器(向量库)),使用固定版本模型( llama3:8b-instruct-q4_K_M)确保测试可重复,测试完整 RAG 流程(文档→切片→嵌入→检索→生成)。Prompt 评估自动化:Promptfoo 在 CI Pipeline 中集成,定义测试用例集( promptfooconfig.yaml 声明测试输入和期望输出),定义评估规则(contains/not-contains/llm-rubric/similarity),CI 中运行 promptfoo eval,失败阈值(准确率 < 90% 则构建失败)。E2E 测试:Playwright/Selenium 模拟用户在聊天界面交互,多轮对话场景(用户提问→Agent 回答→用户追问→Agent 回答),验证前端渲染(Markdown 格式/代码高亮/图表显示)、引用高亮、流式打字机效果。 CI/CD 集成:GitHub Actions/Jenkins Pipeline 中添加 AI 测试 Stage,每次 PR 自动运行测试套件,失败则阻止合并,构建门禁(质量门禁:单元测试通过率 100% + 集成测试通过率 100% + Prompt 评估准确率 > 90%)。 |
| 18 | AI 应用蓝图:从需求到架构的决策框架 | 🟢 | ⭐⭐⭐⭐⭐ | 需求分析方法:将模糊需求“加个 AI 客服”拆解为精确的技术需求(功能需求:意图识别/知识问答/工单创建;非功能需求:P99 延迟 <2s/支持 1000 QPS/准确率 >85%),使用用户故事(User Story)和验收标准(Acceptance Criteria)描述。 技术选型决策树:问答场景→知识时效性高(实时更新)→RAG(低成本,易维护);知识稳定且需深度推理→微调(高准确率,需 GPU);需要多步操作(查数据→计算→发邮件)→Agent(工具调用+规划);固定流程→传统工作流引擎。 非功能需求考量:安全合规(数据不出境→本地化部署;用户隐私→PII 脱敏+审计日志;行业合规→SOC2/GDPR/HIPAA);可扩展性(无状态服务→水平扩展;向量库→分片扩展;LLM API→多供应商负载均衡);容灾设计(LLM API 故障→降级为缓存答案;向量库故障→降级为关键词搜索)。 团队构建建议:AI 应用团队角色(提示词工程师(设计/优化 Prompt)+ AI 评测工程师(构建测试集/评估质量)+ 应用开发工程师(Java/Spring Boot,你的核心定位)+ MLOps 工程师(模型部署/监控)),与现有 Java 团队的关系(应用开发可复用 80% 现有技能,仅需学习 LLM 调用和 Prompt 设计)。 演进路线图:MVP 阶段(2-4 周,API 调用 + 简单 RAG,验证可行性)→ 产品化阶段(2-3 个月,加缓存/监控/CI/CD/权限,提升可靠性)→ 智能化阶段(持续迭代,引入 Agent/微调/多模态,提升智能度)。 |