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>:人工 ...
随机推荐
- HTTP请求使用http、socks代理demo,包含有认证和无认证
package cn.daenx.myadmin.email.utils; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpU ...
- 如何正确理解IGBT参数
文档下载链接:https://cnblogs-img.oss-cn-hangzhou.aliyuncs.com/docs/正确理解IGBT模块规格书参数.pdf
- TypeScript中never类型的实用技巧
本文由 ChatMoney团队出品 妙用一 当我们在一个项目中,可能会去改动一个在整个项目中应用很广泛的函数的参数类型,但是可能由于代码量比较庞大,我们不好排查改了之后哪些地方会出现问题,此时我们可以 ...
- 搭建个人博客系列--(4) 利用Github Actions自动构建博客
经过前面的系列文章的学习和实践,相信你已经成功的利用Hexo构建自己的博客并且部署到了Github上. 目前整个发布博客的流程是,用markdown文件写好博客,然后使用Hexo编译成html, 最后 ...
- 好消息!数栈FlinkX技术团队将FlinkX开源项目同步推送到Gitee啦!
数栈是云原生-站式数据中台PaaS,我们在github上有一个有趣的开源项目:FlinkX FlinkX是一个基于Flink的批流统一的数据同步工具,既可以采集静态的数据,比如MySQL,HDFS等, ...
- Kong入门学习实践(3)路由转发
最近在学习Kong网关,因此根据老习惯,我会将我的学习过程记录下来,一来体系化整理,二来作为笔记供将来翻看.由于我司会直接使用Kong企业版,学习过程中我会使用Kong开源版. 本篇,我们学习快速配置 ...
- Excel中,文本显示的纯数字(超15位)处理建议
EXCEL中,对于文本显示的纯数字(只能认前15位),vlookup,countif都会出错,但可以用新函数xlookup,filter等处理就没问题.所以在统计文本显示的数字的时候,一定要多注意.
- 支持向量机(SVM)分类
支持向量机(Support Vector Machine,SVM)是一种经典的监督学习算法,主要用于分类任务,也可扩展到回归问题(称为支持向量回归,SVR).其核心思想是通过寻找一个最优超平面,最 ...
- Rust 修仙之道 第一章 灵值初开 · 掌握变量与函数的灵气流动
第一章:灵值初开 · 掌握变量与函数的灵气流动 那一年,顾行云尚是初入灵道的"代码童子",寄居在俗世码农村.他常听村中老人谈及一部残缺古卷,记载着失传已久的灵术之语--Rust经. ...
- visual studio 2019 运行vue 项目 npm run serve 提示 'vue-cli-service' 不是内部或外部命令,也不是可运行的程序
https://blog.csdn.net/wxb880114/article/details/104326449 package.json 中添加了 vue-cli-service 本地环境未安装v ...