LangGraph 0.4.1 正式发布!本次更新带来了多项关键改进,包括 Pydantic V2 全面支持、UI 消息合并能力、状态图执行优化 等,让开发者体验更流畅、更稳定!
🔥 核心更新点
1. 全面迁移至 Pydantic V2,移除 Pydantic V1 支持
- 背景:Pydantic V2 在性能和功能上大幅提升,LangGraph 0.4.1 正式移除对 Pydantic V1 的兼容,确保代码更高效。
- 关键改动:
SchemaCoercionMapper
不再支持 Pydantic V1 模型。- 优化了
pydantic.utils
,使用 Pydantic V2 的 API,并引入lru_cache
缓存模型创建,提升性能。 - 修复了字段名称冲突问题,避免与 Pydantic 内部机制冲突。
📌 影响:
- 如果你的项目仍依赖 Pydantic V1,升级前需迁移至 V2。
- 性能提升,特别是在频繁创建 Pydantic 模型的场景。
2. UI 消息合并能力(新增 merge
参数)
- 背景:在 UI 交互中,开发者经常需要动态更新消息内容,而不是完全替换。
- 关键改动:
- 新增
merge
参数,允许push_ui_message
增量更新 UI 消息,而不是覆盖。 - 优化
ui_message_reducer
,支持合并新旧消息的props
,提升交互灵活性。 - 修复了
push_ui_message
的元数据处理逻辑,避免意外覆盖。
- 新增
📌 适用场景:
- 动态更新聊天 UI(如逐步显示 AI 生成内容)。
- 优化实时数据展示,减少 UI 闪烁。
3. 修复状态图终止问题(END
处理优化)
- 背景:部分情况下,状态图在返回
END
时未正确终止,导致意外行为。 - 关键改动:
- 修复
StateGraph.get_writes
和_control_static
对END
的处理,确保正确终止执行。
- 修复
📌 影响:
- 状态图执行更稳定,避免无限循环或意外中断。
4. TAG_NOSTREAM
优化(兼容性调整)
- 背景:
TAG_NOSTREAM
用于标记无需流式处理的消息,但旧值"langsmith:nostream"
不够直观。 - 关键改动:
- 改为
"nostream"
,更简洁清晰。 - 保留
TAG_NOSTREAM_ALT
(旧值)确保向后兼容。
- 改为
📌 影响:
- 新代码建议使用
"nostream"
,旧代码仍可正常运行。
5. 文档优化 & 其他改进
- 全面增强
docstrings
,提升代码可读性。 - 修复
BaseChannel
的文档说明,明确其用途。
💡 升级建议
✅ 推荐升级:
- 如果你依赖 Pydantic V2,或需要 UI 消息合并能力,强烈建议升级!
- 如果你的项目仍在使用 Pydantic V1,需先迁移至 V2。
🚨 注意事项:
- 检查
TAG_NOSTREAM
的使用,建议更新为"nostream"
。 - 测试
StateGraph
的终止逻辑,确保无意外行为。
🎯 总结
LangGraph 0.4.1 带来了多项关键优化,包括 Pydantic V2 支持、UI 消息合并、状态图执行修复,让开发更高效、更稳定!
📢 立即升级:
pip install --upgrade langgraph