LangGraph学习笔记——Agent的输入输出
LangGraph文档解释:https://github.langchain.ac.cn/langgraphjs/agents/run_agents/#streaming-output
一、输入格式
代理输入必须是一个包含 messages 键的对象,支持多种输入形式,且会自动转换为 LangChain 内部消息格式。具体格式如下:
- 字符串格式
{ messages: "Hello" }
会被解释为HumanMessage(用户消息)。 - 消息对象格式
{ messages: { "role": "user", "content": "Hello" } }
直接指定角色(如user)和内容。 - 消息列表格式
{ messages: [{"role": "user", "content": "Hello"}] }
支持多条消息按顺序传入。 - 带自定义状态格式
{ messages: [{"role": "user", "content": "Hello"}], "user_name": "Alice" }
若定义了stateSchema,可添加额外字段(如user_name),用于动态调整代理行为。
二、输出格式
代理输出是一个字典,包含以下核心内容:
- messages
执行过程中所有消息的列表,包括用户输入、助手回复、工具调用等完整交互记录。 - structuredResponse(可选)
若配置了结构化输出(如 JSON 格式),会在此字段中包含解析后的结果。
LangGraph配置结构化输出文档 - 自定义状态字段(可选)
若定义了stateSchema,输出会包含工具执行结果或提示逻辑更新的状态值(如user_name)。
示例
{
"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 } |
messages、user_id(状态保留) |
**四、延伸
- 输入转换逻辑:所有输入格式最终都会被解析为 LangChain 消息对象,确保代理能统一处理不同形式的输入。
- 输出扩展性:通过
stateSchema可自定义输出字段,适用于需要持久化用户状态或工具调用结果的场景(如多轮对话中保存用户偏好)。 - 与流式输出的结合:流式输出时,每次更新会逐步返回
messages中的内容片段,提升用户交互体验(如实时显示 LLM 生成过程)。
LangGraph学习笔记——Agent的输入输出的更多相关文章
- java学习笔记--1_常见输入输出语句熟悉篇章
今天上oj,想来是准备做做算法和数据结构的.看了看以前做的基础题目,想着就先熟悉一下java的语言吧! 以下是今天做的10道题目. 备注:oj有时候对格式要求非常严格,因为不在格式上纠结太久,只要ec ...
- Python学习笔记一,输入输出
输出:用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'hello, world',用代码实现如下>>>print('hello,world') 也可以是多 ...
- STM32学习笔记3-IO配置输入输出
STM32的IO配置时没什么特殊的,有个注意点就是有用IO前须要先打开其时钟线,下面是验证过oK的程序: RCC->APB2ENR|=GpioBApb2enrEn; //使能PORTB时钟 GP ...
- shell编程学习笔记之标准输入输出(read&echo)
2017-07-17 09:32:07 输入read: 用途: 从标准输入读取一行,或者从文件描述符FD(file descriptor)中读取一行,并且将其分割成字段. 用法: read [-ers ...
- 第六周学习笔记,vc各类控件的输入输出
6w学习笔记 vc控件的输入输出 单选按钮 当单击 RadioButton 控件时,其 Checked 属性设置为 true,并且调用 Click 事件处理程序.当 Checked 属性的值更改时,将 ...
- ELK日志分析 学习笔记
(贴一篇之前工作期间整理的elk学习笔记) ELK官网 https://www.elastic.co ELK日志分析系统 学习笔记 概念:ELK = elasticsearch + logstas ...
- swift学习笔记2——函数、闭包
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案
一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- [DL学习笔记]从人工神经网络到卷积神经网络_1_神经网络和BP算法
前言:这只是我的一个学习笔记,里边肯定有不少错误,还希望有大神能帮帮找找,由于是从小白的视角来看问题的,所以对于初学者或多或少会有点帮助吧. 1:人工全连接神经网络和BP算法 <1>:人工 ...
随机推荐
- Krita的语言选项里没有中文
sudo apt install krita-l10n 即可,
- 启智树提高组day4T1 T1(t1.cpp,1s,512MB)
启智树提高组day4T1 T1(t1.cpp,1s,512MB) 题面描述 对⼀个⻓度为2n 的实数序列A考虑下列问题: 设S为序列中所有元素的和.你可以做下列操作n次: 选择两个未被选中过的下标i和 ...
- Web前端入门第 62 问:JavaScript 循环结构注意事项
HELLO,这里是大熊的前端开发笔记. 循环作为 算法与数据结构 中的基石,JS 与其他编程语言一样,都提供了多种循环结构用于处理数据. for 循环 事物的开端往往都是从最常用的开始,循环结构咱们从 ...
- python基础—基本数据类型—数字,字符串,列表,元组,字典
1.运算符 (1)基本运算符 + 加法 - 减法 * 乘法 / 除法 ** 幂 // 取整(除法) % 取余(除法) (2)判断某个东西是否在某个东西里面包含 in no ...
- 题解:P1032 [NOIP 2002 提高组] 字串变换
题目链接:link. 为了高效地解决这道题目,我们考虑使用双向搜索解决. 我们从 \(A\) 和 \(B\) 同时开始搜索,要是中间有相遇,那么就说明 \(A\) 能变成 \(B\) 这样我们就结束搜 ...
- Windows11 关闭搜索栏中的Web网页搜索
️ Win11 搜索栏总弹出网页搜索通过注册表彻底关闭 在 Windows 11 系统中,当你通过任务栏中的搜索栏查找内容时,除了显示本地文件.应用和设置外,系统还会自动集成 Bing 搜索结果,展示 ...
- DataOps不是工具,而是帮助企业实现数据价值的最佳实践
2008年,"大数据"一词在<大数据时代>中被首次提出,距今已有整整14个年头.在这14年中,许多人亲眼见证了数据的力量,以及目睹它如何改变世界.大部分企业的决策者都明 ...
- [Ynoi2014] 人人本着正义之名
题传 考虑 3/4/5/6 操作,发现本质上是对某段颜色相同的段向左/右拓展. 考虑 1/2 为区间推平操作,其它操作只会减少颜色段,因此总颜色段为 \(O(n+m)\) 的,直接平衡树维护即可. 然 ...
- C# 生成一天内不重复的int 值
public static int ConvertDateTimeToInt(System.DateTime time) { System.DateTime sta ...
- Uniapp 实现新手引导访问功能组件
最近有个需求需要在小程序中实现一个新手引导组件,通过遮罩.高亮区域和提示框的组合,为应用提供流畅的用户引导体验. 组件功能概述 这个引导组件提供了以下核心功能: 分步引导:支持多步骤引导流程 智能定位 ...