第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」

第四章 00:开篇 ------ 从「会聊天」到「记得住、会干活、能协作」

课程专题 :《AI Agents 开发实践》

原文链接 :https://s.juejin.cn/ds/TAqu_hbSmd8/

章节 :第四章 LangChain 进阶 ------ 记忆、工具与多 Agent

作者:Java 开发者转型 AI 全栈


前情回顾:我们已经走到哪了

前三章走完,我们的智能体长这样:

章节 拿到的能力 但它仍然
第一章 会调用模型(invoke / stream / batch) 只是一个孤立的函数
第二章 长在一个真正的系统里(NestJS + RBAC) 只会答这一句
第 2.5 章 有权限防线(JWT + 权限拦截) 不记得上一句说了什么
第三章 会模板、会链、会结构化输出、会绑工具 每次对话都是第一次见面

第三章结束时我自我感觉良好,直到第四章开篇的实验打脸:上一轮刚说完的约定,下一轮模型就"失忆"了。

第四章要解决的问题

一句话概括:把「单轮应答机」变成「能干活的同事」。

一个能干活的同事需要什么?

  1. 记得住 ------ 上次聊到哪了?(→ Memory)
  2. 会干活 ------ 不只嘴上说说,能查文件、写报告(→ Tools)
  3. 找得到 ------ 「上下文太长怎么办」这种问法也能搜到对应知识(→ Embeddings + Vector Store)
  4. 能协作 ------ 复杂任务拆给多个专职角色并行干(→ Multi-Agent)

这四块能力,正好对应 4.2 ~ 4.5 四节;4.1 先把「为什么」讲透,4.6 用一个统一入口把所有能力收束成一次调用,4.7 小结。

整章只围绕一个任务

和第三章一样,第四章全程围绕一个具体任务:做一个「需求分析智能体」------它面向需求分析师,能多轮澄清、能读需求单、能自动裁剪长对话上下文、能产出结构化的需求分析报告并落盘。

每新增一块能力,都是往这个智能体身上装一个器官,而不是换一个 demo。

技术栈全景图

复制代码
┌─────────────────────── ch04 新增 ───────────────────────┐
│                                                          │
│  Memory      RunnableWithMessageHistory + trimMessages   │
│              InMemoryChatMessageHistory (Map<sid, Hist>) │
│                                                          │
│  Tools       tool() + zod schema + tool loop (≤5 轮)     │
│              + safePath 路径沙箱                          │
│                                                          │
│  Embeddings  @xenova/transformers 本地模型(384 维)      │
│              + MemoryVectorStore (@langchain/classic)    │
│                                                          │
│  Multi-Agent 5 Agent 小链 + Fixed Workflow 编排          │
│              Promise.all 并行 + 澄清短路                  │
│                                                          │
│  统一入口     AdvancedAnalysisService.analyze()          │
│              编排 → 落盘 → 写回记忆(闭环)                │
└──────────────────────────────────────────────────────────┘

依赖新增 :@xenova/transformers(本地向量化)、@langchain/classic(MemoryVectorStore)。

Java 开发者对照

本章概念 Java 世界对应物
RunnableWithMessageHistory Spring AI 的 ChatMemory + Advisor 机制
InMemoryChatMessageHistory ConcurrentHashMap 做的 Session 仓库(生产换 Redis)
trimMessages 滑动窗口裁剪,类似消息队列的 maxRetention
tool() + zod schema Spring AI @Tool + Bean Validation
工具循环 Function Calling 协议的 while 循环
MemoryVectorStore 嵌入式向量库(生产换 pgvector = 换 PostgreSQL)
Fixed Workflow 编排 编排服务 + CompletableFuture.allOf 并行
analyze() 统一入口 DDD 的 Application Service / Facade

前置条件

  • ch03 的 services/chat 已跑通(第四章在 ch03 基础上继续)
  • .env 里配置好 API Key(DashScope 兼容模式)
  • 本章多了一个本地模型下载步骤(~90MB),国内网络需要配镜像------踩坑见 04 篇

学习路径

复制代码
4.1 失真问题(为什么)  ← 先承认:模型没有记忆
 │
 ▼
4.2 Memory(记得住)    ← 历史回填 + 裁剪
 │
 ▼
4.3 Tools(会干活)     ← 模型发意图、服务端执行
 │
 ▼
4.4 Embeddings(找得到)← 语义检索
 │
 ▼
4.5 Multi-Agent(能协作)← 5 专职 Agent + 编排
 │
 ▼
4.6 统一入口(收束)     ← analyze() 闭环
 │
 ▼
4.7 本章小结             ← 判断标准

回到索引 :第四章博客索引

相关推荐
爱敲代码的小黄8 小时前
神经网络入门指南:从 CNN、RNN 到 Attention
人工智能·面试·程序员
Wang's Blog9 小时前
Java 项目实战: 交友项目 - FastDFS:入门案例
java·开发语言·交友
一只爱撸猫的程序猿9 小时前
我看着一个 AI 引擎在 14 天里,从"记忆"走进了"搜索"
人工智能·后端·架构
我登哥MVP10 小时前
DeepSeek-Harness-Super-Agent-学习笔记
人工智能·深度学习·神经网络·机器学习·自然语言处理·agent
LucianaiB10 小时前
【元宝搜索开发者征文大赛】AI时代,学得慢就不用学?用元宝搜索打造一个教程保质期,确保每一个教程符合你的现状
前端·人工智能·ai编程
apcipot_rain10 小时前
C++转Java日记(03)
java·开发语言·c++
皮皮林55110 小时前
Java实现微信扫码登录
java
布莱克60510 小时前
C++ 中 map 的 insert 与 emplace:key 已存在时会覆盖吗?
开发语言·数据结构·c++·算法·map
xys_67811 小时前
深挖C++:类和对象(中)
开发语言·c++
灿飞屋11 小时前
Rust 编程其实很简单
开发语言·rust