掘金 人工智能 23小时前
LangGraph官方文档笔记(七)——Agent的输入输出
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文详细介绍了 LangGraph 中代理的输入和输出格式,包括字符串、消息对象、消息列表和自定义状态等多种输入形式,以及 messages、structuredResponse 和自定义状态字段等输出内容。通过清晰的示例和对比,阐述了 LangGraph 如何统一处理不同类型的输入,并支持结构化输出和状态管理,适用于简单文本交互、复杂对话历史、工具调用和自定义状态管理等多种场景。文章还强调了 LangGraph 与流式输出的结合,提升用户交互体验。

💬 **输入格式多样化**: LangGraph 代理支持多种输入形式,包括字符串、消息对象、消息列表等,所有输入最终都会被转换为 LangChain 内部消息格式,实现统一处理。

📤 **输出格式核心内容**: 代理输出主要包含 `messages` 字段,记录了完整的交互记录。若配置了结构化输出,则会包含 `structuredResponse` 字段。通过定义 `stateSchema`,还可以添加自定义状态字段。

🔄 **不同场景应用**: LangGraph 的输入输出格式适用于多种场景,如简单文本交互、复杂对话历史、工具调用和自定义状态管理等。例如,在工具调用场景中,输出会包含工具调用记录和结构化结果。

💡 **输入转换与输出扩展**: LangGraph 能够将不同输入格式统一解析为 LangChain 消息对象,确保代理的兼容性。通过 `stateSchema`,用户可以自定义输出字段,实现状态持久化和灵活的工具调用结果处理。

LangGraph文档解释:github.langchain.ac.cn/langgraphjs…

一、输入格式

代理输入必须是一个包含 messages 键的对象,支持多种输入形式,且会自动转换为 LangChain 内部消息格式。具体格式如下:

二、输出格式

代理输出是一个字典,包含以下核心内容:

示例

{  "messages": [    {"role": "user", "content": "what is the weather in sf"},    {"role": "assistant", "content": "Thinking... need to call weather tool"},    {"role": "tool", "name": "getWeather", "parameters": {"location": "SF"}},    {"role": "assistant", "content": "The weather in SF is sunny."}  ],  "structuredResponse": {"weather": "sunny", "temperature": "22°C"},  "user_name": "Alice"  // 自定义状态字段}

三、对比与应用场景

场景输入格式示例输出格式核心字段
简单文本交互{ messages: "What's today's date?" }messages(包含助手回复)
复杂对话历史{ messages: [{"role": "user", "content": "First question"}, ...] }messages(按顺序记录所有消息)
工具调用场景{ messages: ["Get weather in NY"], "location": "New York" }messages(包含工具调用记录)、structuredResponse(天气数据)
自定义状态管理{ messages: ["Hello"], "user_id": 123 }messagesuser_id(状态保留)

四、延伸

原文地址:https://www.cnblogs.com/LiShengTrip/p/18957212

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

LangGraph 输入格式 输出格式 代理 LangChain
相关文章