第四章 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 本章小结             ← 判断标准

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

相关推荐
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 个人资料管理的更新接口实现与坑
java·开发语言·交友
石狮松松1 小时前
第 05 章 你的第一行"AI"代码:拟合一条直线
人工智能
Promising_GEO1 小时前
GEE实战02期:从卫星波段开始:利用 Sentinel-2 自己计算 NDVI
java·sentinel·遥感·空间分析
用户360055579001 小时前
Kestrel_VLLM - 14 · router 两个方向判否,与 decode 的真瓶颈
人工智能
狒狒AI1 小时前
Remotion / GSAP+Three / HyperFrames / Skia 四栈实测:代码渲染知识视频的选栈方法(附开源技能)
前端·人工智能·aigc
大文说跨境1 小时前
亚马逊多账号管理浏览器怎么选?云登/紫鸟/AdsPower 对比
java·前端·自动化
自养Agent1 小时前
Agent Harness 从用到会造:报错的那层,往往不是坏掉的那层
人工智能
RockChinQ1 小时前
一个 Telegram 群,三条事件路由:欢迎、群规问答与群管理各归一个 Agent
人工智能
果霸大叔1 小时前
从根上吃透AI Agent:Agent拆解系列之DeerFlow2.0深度拆解
人工智能