LangChain 宣布对其核心工具接口和文档进行了重要增强,旨在简化大语言模型(LLM)工具的开发和集成。据 LangChain 博客 介绍,这些更新旨在简化代码到工具的转换、处理多样化输入、丰富工具输出以及更有效地管理工具错误。
改进的工具集成
其中一个关键改进是能够将任何 Python 函数传递到 ChatModel.bind_tools()
中。 这使得开发人员可以直接将普通 Python 函数用作工具,简化了定义过程。LangChain 自动解析类型注释和文档字符串以推断所需的架构。此增强减少了工具集成中的复杂性,消除了自定义包装器或接口的需求。
此外,LangChain 现在支持将任何可运行对象转换为工具,使得重用现有的 LangChain 可运行对象(包括链和代理)更加容易。此功能通过减少冗余,帮助开发人员更快地部署新功能。例如,一个 LangGraph 代理现在可以配备另一个 “用户信息代理” 作为工具,允许其将相关问题委托给辅助代理。
处理多样化输入
LangChain 还引入了直接将模型生成的 ToolCalls 传递给工具的能力。这一功能简化了模型调用工具的执行过程。此外,开发人员现在可以通过注释指定哪些工具输入不应由模型生成。这对像用户 ID 之类的输入特别有用,因为这些输入通常由其他来源提供,而不是模型本身。
此外,LangChain 新增了有关如何将 LangGraph 状态传递给工具以及访问与运行相关的 RunnableConfig
对象的文档。这允许更好地参数化工具行为,通过链传递全局参数,并访问运行 ID 等元数据,从而提供了更好的工具管理控制。
丰富工具输出
为了提高开发人员效率,LangChain 工具现在可以通过 ToolMessages 中的 artifact
属性返回下游组件所需的结果。工具还可以流式传输自定义事件,提供实时反馈,增强工具的可用性。这些功能使开发人员对输出管理有更多控制,改善了整体用户体验。
管理工具错误
优雅地处理工具错误对于维护应用程序的稳定性至关重要。LangChain 已引入关于使用提示工程和回退机制来管理工具调用错误的文档。此外,可以在 LangGraph 图中使用流量工程来处理这些错误,确保即使工具失败,应用程序仍保持稳健。
未来发展
LangChain 计划继续添加如何指南和定义工具及设计工具使用架构的最佳实践。此外,各种工具和工具包集成文档也将刷新。这些努力旨在赋能用户,最大化 LangChain 工具在构建上下文感知推理应用中的潜力。
欲了解更多信息,开发人员可以浏览 LangChain 的 Python 和 JavaScript 文档。
Image source: Shutterstock