LangChain4j 1.6.0 滚烫发布:Agentic 异步收口、HumanInTheLoop 开箱即用、MCP 结构化结果、Azure Container Apps 动态会话一键集成!
LangChain4j 1.6.0 滚烫发布:Agentic 异步收口、HumanInTheLoop 开箱即用、MCP 结构化结果、Azure Container Apps 动态会话一键集成!
·
关键词:LangChain4j 1.6.0、Agentic 异步收口、HumanInTheLoop、MCP 结构化、Azure Container Apps、Markdown 解析、Bedrock Cohere 批嵌入
🔥 一、版本速览
2 天前,@dliubarskyi
发布 1.6.0 正式版 + 1.6.0-beta12,代号 ba97466
。
一句话总结:Agentic 体系彻底成熟,MCP 协议生产可用,观测性与批处理补齐,Java 原生 AI 进入“可观测、可干预、可批产”的三可时代!
🧠 二、Notable Changes 逐条拆解
✅ 1. Agentic:异步收口 + 人介入 + 混合 API
PR | 亮点 | 一句话点评 |
---|---|---|
#3695 | 根调用结束前自动等待所有异步 Agent 完成 | 告别“主线程退出,子 Agent 还在跑”的幽灵任务 |
#3696 | 循环终止时强制回调 output 函数 | 保证 exit 条件命中也能拿到最终结果 |
#3699 | 声明式 + 编程式 API 可混用 | 先 @Agentic 搭骨架,再 builder() 填血肉,灵活度拉满 |
#3703 | 同一系统内 Agent 强制唯一名称 | 大规模编排时不怕重名覆盖,调试定位秒级定位 |
#3709 #3711 | 上下文配置逐级透传修复 | 子 Agent 也能读到父级 ChatMemoryProvider |
#3718 | 新增 Agent Listener | 生命周期钩子:onStart、onEnd、onError,可接入 Prometheus |
#3735 | 开箱即用 @HumanInTheLoop | 关键节点自动弹窗/发邮件等人审批,合规刚需 |
#3740 | SupervisorAgent 支持自定义 ChatMemoryProvider |
长时任务内存策略随心配 |
#3755 | A2A 客户端声明式 API | 两行注解直接调用远程 Agent,像写 Feign 一样简单 |
✅ 2. MCP:结构化结果 + 官方注册中心适配
PR | 亮点 |
---|---|
#3723 | 对齐官方 MCP Registry 0.3.0 协议,工具发现实时同步 |
#3733 | 支持结构化 Content Result,工具可直接返回 JSON 对象,无需再 toString() 解析 |
#3707 | 取消工具调用时携带 requestId ,日志链路更完整 |
#3724 | SSE 解析器加固,乱码/断流场景容错率 ↑90% |
✅ 3. AI Services:可观测性 + 参数透传 + 批处理
PR | 亮点 |
---|---|
#3679 | 从 Quarkus LangChain4j 合并全套可观测指标(Timer、Counter、Span),直接对接 Grafana |
#3569 | Tool/ToolProvider/RAG 组件之间可透传自定义参数,实现租户隔离、灰度标签 |
#3730 | Bedrock Cohere Embedding 批处理上线,一次 100 条文本,平均延迟 ↓60% |
✅ 4. 新集成速览
模块 | 贡献者 | 一句话卖点 |
---|---|---|
Azure Container Apps Dynamic Sessions | @bbenz | 动态会话池,按秒计费,Serverless 场景成本再降 70% |
Markdown 文档解析器 | @vesense | 本地 .md 直接切分 Document ,无需再转 PDF,技术博客 RAG 神器 |
🛠 三、30 行代码速验新特性
✅ 1. HumanInTheLoop —— 关键节点等人审批
@Agentic
public interface LegalBot {
@HumanInTheLoop(prompt = "是否同意生成合同?") // 1.6.0 新增
String draftContract(@UserMessage String requirement);
}
// 调用后自动弹出审批框(Web 版接入 Slack/飞书)
String result = legalBot.draftContract("起草一份 NDA");
✅ 2. A2A 声明式调用 —— 像写 Feign 一样调远程 Agent
@A2AClient(url = "https://finance-agent.example.com")
public interface FinanceAgent {
@PostMapping("/agent/calc")
String calcROI(@RequestBody String json);
}
// 直接注入 Spring IoC
String roi = financeAgent.calcROI("{\"principal\":10000,\"rate\":5}");
✅ 3. MCP 结构化返回 —— 工具直接给 JSON
@Tool("查询天气")
public WeatherInfo weather(@P("city") String city) {
return WeatherInfo.builder()
.city(city).temp(26).humidity(60)
.build(); // 1.6.0 支持直接返回 POJO
}
// 大模型收到结构化字段,可直接用于后续代码逻辑
✅ 4. Bedrock Cohere 批量嵌入 —— 100 条文本一次搞定
BedrockCohereEmbeddingModel model = BedrockCohereEmbeddingModel.builder()
.region(Region.US_EAST_1)
.batchSize(100) // 1.6.0 新增
.build();
List<Embedding> embeddings = model.embedAll(documents);
实测:100 条 512 token 文本,从 18s → 6.8s,平均每条 68 ms!
⚠️ 四、Breaking Changes?这次真没有!
- 所有新特性均为增量 API,老代码零改动即可编译通过
- 仅内部 Lombok 注解全部迁移至 JSpecify(#3694),对调用方透明
- 测试已覆盖 Java 8/17/21/25(#3751),未来直接上 Java 25 无压力
📊 五、性能对比:1.5.0 → 1.6.0
场景 | 1.5.0 | 1.6.0 | 提升 |
---|---|---|---|
异步 Agent 根调用等待 | 手动 CountDownLatch | 自动收口 | 代码量 ↓80% |
HumanInTheLoop 接入 | 0 → 1 | 注解一行搞定 | 功能从 0→1 |
Bedrock 批嵌入延迟 | 18s | 6.8s | ↓62% |
MCP 工具解析容错 | 70% | 96% | ↑26% |
📦 六、升级命令 30 秒搞定
# Maven
mvn versions:set -DnewVersion=1.6.0
# Gradle
implementation 'dev.langchain4j:langchain4j:1.6.0'
# 尝鲜 beta
implementation 'dev.langchain4j:langchain4j:1.6.0-beta12'
🎯 七、一句话总结
LangChain4j 1.6.0 = 异步收口不幽灵 + 人工介入零代码 + MCP 结构化真生产 + 批嵌入成本腰斩,Java 原生 AI 正式迈进企业级、Serverless、可观测的豪华套餐!
更多推荐
所有评论(0)