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 } messagesuser_id(状态保留)

**四、延伸

  • 输入转换逻辑:所有输入格式最终都会被解析为 LangChain 消息对象,确保代理能统一处理不同形式的输入。
  • 输出扩展性:通过 stateSchema 可自定义输出字段,适用于需要持久化用户状态或工具调用结果的场景(如多轮对话中保存用户偏好)。
  • 与流式输出的结合:流式输出时,每次更新会逐步返回 messages 中的内容片段,提升用户交互体验(如实时显示 LLM 生成过程)。

LangGraph学习笔记——Agent的输入输出的更多相关文章

  1. java学习笔记--1_常见输入输出语句熟悉篇章

    今天上oj,想来是准备做做算法和数据结构的.看了看以前做的基础题目,想着就先熟悉一下java的语言吧! 以下是今天做的10道题目. 备注:oj有时候对格式要求非常严格,因为不在格式上纠结太久,只要ec ...

  2. Python学习笔记一,输入输出

    输出:用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'hello, world',用代码实现如下>>>print('hello,world') 也可以是多 ...

  3. STM32学习笔记3-IO配置输入输出

    STM32的IO配置时没什么特殊的,有个注意点就是有用IO前须要先打开其时钟线,下面是验证过oK的程序: RCC->APB2ENR|=GpioBApb2enrEn; //使能PORTB时钟 GP ...

  4. shell编程学习笔记之标准输入输出(read&echo)

    2017-07-17 09:32:07 输入read: 用途: 从标准输入读取一行,或者从文件描述符FD(file descriptor)中读取一行,并且将其分割成字段. 用法: read [-ers ...

  5. 第六周学习笔记,vc各类控件的输入输出

    6w学习笔记 vc控件的输入输出 单选按钮 当单击 RadioButton 控件时,其 Checked 属性设置为 true,并且调用 Click 事件处理程序.当 Checked 属性的值更改时,将 ...

  6. ELK日志分析 学习笔记

    (贴一篇之前工作期间整理的elk学习笔记) ELK官网 https://www.elastic.co   ELK日志分析系统 学习笔记 概念:ELK = elasticsearch + logstas ...

  7. swift学习笔记2——函数、闭包

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  8. CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案

    一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...

  9. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  10. [DL学习笔记]从人工神经网络到卷积神经网络_1_神经网络和BP算法

    前言:这只是我的一个学习笔记,里边肯定有不少错误,还希望有大神能帮帮找找,由于是从小白的视角来看问题的,所以对于初学者或多或少会有点帮助吧. 1:人工全连接神经网络和BP算法 <1>:人工 ...

随机推荐

  1. Krita的语言选项里没有中文

    sudo apt install krita-l10n 即可,

  2. 启智树提高组day4T1 T1(t1.cpp,1s,512MB)

    启智树提高组day4T1 T1(t1.cpp,1s,512MB) 题面描述 对⼀个⻓度为2n 的实数序列A考虑下列问题: 设S为序列中所有元素的和.你可以做下列操作n次: 选择两个未被选中过的下标i和 ...

  3. Web前端入门第 62 问:JavaScript 循环结构注意事项

    HELLO,这里是大熊的前端开发笔记. 循环作为 算法与数据结构 中的基石,JS 与其他编程语言一样,都提供了多种循环结构用于处理数据. for 循环 事物的开端往往都是从最常用的开始,循环结构咱们从 ...

  4. python基础—基本数据类型—数字,字符串,列表,元组,字典

    1.运算符 (1)基本运算符 +  加法   -   减法 *   乘法 /   除法 **   幂 //   取整(除法) %   取余(除法) (2)判断某个东西是否在某个东西里面包含 in no ...

  5. 题解:P1032 [NOIP 2002 提高组] 字串变换

    题目链接:link. 为了高效地解决这道题目,我们考虑使用双向搜索解决. 我们从 \(A\) 和 \(B\) 同时开始搜索,要是中间有相遇,那么就说明 \(A\) 能变成 \(B\) 这样我们就结束搜 ...

  6. Windows11 关闭搜索栏中的Web网页搜索

    ️ Win11 搜索栏总弹出网页搜索通过注册表彻底关闭 在 Windows 11 系统中,当你通过任务栏中的搜索栏查找内容时,除了显示本地文件.应用和设置外,系统还会自动集成 Bing 搜索结果,展示 ...

  7. DataOps不是工具,而是帮助企业实现数据价值的最佳实践

    2008年,"大数据"一词在<大数据时代>中被首次提出,距今已有整整14个年头.在这14年中,许多人亲眼见证了数据的力量,以及目睹它如何改变世界.大部分企业的决策者都明 ...

  8. [Ynoi2014] 人人本着正义之名

    题传 考虑 3/4/5/6 操作,发现本质上是对某段颜色相同的段向左/右拓展. 考虑 1/2 为区间推平操作,其它操作只会减少颜色段,因此总颜色段为 \(O(n+m)\) 的,直接平衡树维护即可. 然 ...

  9. C# 生成一天内不重复的int 值

    public static int ConvertDateTimeToInt(System.DateTime time)        {            System.DateTime sta ...

  10. Uniapp 实现新手引导访问功能组件

    最近有个需求需要在小程序中实现一个新手引导组件,通过遮罩.高亮区域和提示框的组合,为应用提供流畅的用户引导体验. 组件功能概述 这个引导组件提供了以下核心功能: 分步引导:支持多步骤引导流程 智能定位 ...