2026/2/17 23:49:13
网站建设
项目流程
科技幻想画,东莞搜索优化十年乐云seo,手机网站支付签约,公司备案网站负责人是谁文章讨论了大模型应用中智能体因上下文管理不当导致的异常终止问题。作者发现智能体在第二次思考时因上下文窗口超长而正常终止#xff0c;根本原因是历史记录未做好管理。在Langchain技术体系中#xff0c;作者提出创建TrimmedInMemorySaver类解决方案#xff0c;自动过滤思…文章讨论了大模型应用中智能体因上下文管理不当导致的异常终止问题。作者发现智能体在第二次思考时因上下文窗口超长而正常终止根本原因是历史记录未做好管理。在Langchain技术体系中作者提出创建TrimmedInMemorySaver类解决方案自动过滤思考过程和工具调用结果只保留对话内容从而控制上下文长度防止模型异常终止。“上下文管理是大模型应用稳定性的一个重要环节。”今天在优化智能体的时候发现一个问题就是智能体第一次思考和工具调用都是正常的但第二次思考的时候就输出一个think标签就结束了而且不是因为代码出现异常结束而是智能体输出了stop结束符。所以这个问题就很奇怪代码都是正常但智能体执行一般就正常结束了哪怕是出现异常导致结束也没问题但这种正常结束好像就没那么好排查了。所以经过测试发现复现的频率还挺高之后经过多轮复现之后发现问题大概率是出现上下文窗口上上下文超长导致模型正常终止。而出现这种问题归根结底就是模型的上下文管理有问题再准确点说就是模型历史记录没做好。智能体的历史记录在Langchain的技术体系中记忆或者说历史记录有两种实现一种是基于Memory的大模型记忆功能另一种是Langgraph中的检查点利用MemorySaver进行记忆存储。从记忆的持久性上又分为本地存储和外部存储(如redis)的方式但不论哪种方式本质上都是把对话内容保存下来供后续拼接到上下文中。而作者这次bug出现的原因就在于记忆没有管理好导致上下文超长最后模型结束。多说一句上下文管理是模型应用中的重要环节原因在于任何模型都会有上下文窗口限制并且不同的模型上下文窗口大小不同并且其理论窗口大小并不是最优窗口大小。举例来说现在最新的模型上下文长度能达到128K但其最优长度可能只有100K或者更少。所以怎么管理模型上下文模型上下文一般由以下几个部分组成用户问题历史记录参考内容系统提示词prompt而其中系统提示词的长度基本上是固定的用户问题的长度也有限因此上下文超长的主要原因基本上集中在历史记录和参考内容上。其中历史记录会根据存储的数据和对话次数的增大而不断增长参考文档也因为不同的文档切分和拼装方式导致其长度不固定。所以一般情况下会对历史对话的轮数以及参考文档的数量进行限制防止上下文超长。但在Langgraph中哪些东西有可能被存到历史记录中事实上在系统中那些内容被存到历史记录中这个是完全可以由开发人员控制的但在langgraph中已经实现的记忆存储中会把messges中的所有数据都存到记录记录中。但这在某些场景下是有问题的或者说在大部分场景下都是有问题的比如说具备思考模式的模型以及工具调用的结果其实这些内容是不需要被存储到历史记录中的这玩意就像在开会时做会议纪要只需要把每个人说的内容记下来就行而没必要把别人怎么想的也记下来。因此这时就需要在记忆模块把思考过程和工具返回的结果给过滤掉最终只记录对话过程中的问题和回答。class TrimmedInMemorySaver(InMemorySaver): 带自动裁剪功能的 InMemorySaverLangGraph v0.2 兼容 def __init__(self, max_tokens3000, strategylast, *args, **kwargs): super().__init__(*args, **kwargs) self.max_tokens max_tokens self.strategy strategy def put( self, config: RunnableConfig, checkpoint: Checkpoint, metadata: CheckpointMetadata, new_versions: ChannelVersions, ) - RunnableConfig: thread_id config.get(configurable, {}).get(thread_id) if not thread_id: return super().put(config, checkpoint, metadata, new_versions) # 尝试从 checkpoint 中提取 messages根据你项目 checkpoint 结构调整 messages None if isinstance(checkpoint, dict) and channel_values in checkpoint: messages checkpoint[channel_values].get(messages) elif isinstance(checkpoint, dict) and messages in checkpoint: messages checkpoint[messages] logger.info(fInMemorySaver中的messages: {messages}) # logger.info(fInMemorySaver中的messages过滤之后的messages: {messages}) list 类型 BaseMessage messages.type if messages: fliter_messages [ message for message in messages if not isinstance(message, ToolMessage) ] logger.info(f记忆去除toolmessage: {fliter_messages}) # 关键传入 token_counter这里用近似计数器 trimmed_messages trim_messages( fliter_messages, max_tokensself.max_tokens, strategyself.strategy, token_countercount_tokens_approximately, # 可选保证以 human 开始并以 human/tool 结束以确保消息序列有效 # start_onhuman, # end_on(human, tool), include_systemTrue, ) logger.info(ftrimmed_messages之后 记忆去除think标签和toolmessage: {trimmed_messages}) # 写回裁剪后的 messages视 checkpoint 具体结构 if channel_values in checkpoint: checkpoint[channel_values][messages] trimmed_messages else: checkpoint[messages] trimmed_messages # 继续调用父类的 put 执行真正保存 return super().put(config, checkpoint, metadata, new_versions)这样一是可以大大减少思考过程和工具调用结果对模型的干扰其次是可以控制历史记录的长度防止上下文超长带来问题。通过这样的方式就可以避免模型上下文超长问题但同样也会导致部分记忆丢失这时只能要想尽可能的保存记忆那就只能对记忆进行压缩。但不论怎么样只要上下文窗口限制还在那么就永远无法避免记忆丢失的问题。AI时代未来的就业机会在哪里答案就藏在大模型的浪潮里。从ChatGPT、DeepSeek等日常工具到自然语言处理、计算机视觉、多模态等核心领域技术普惠化、应用垂直化与生态开源化正催生Prompt工程师、自然语言处理、计算机视觉工程师、大模型算法工程师、AI应用产品经理等AI岗位。掌握大模型技能就是把握高薪未来。那么普通人如何抓住大模型风口AI技术的普及对个人能力提出了新的要求在AI时代持续学习和适应新技术变得尤为重要。无论是企业还是个人都需要不断更新知识体系提升与AI协作的能力以适应不断变化的工作环境。因此这里给大家整理了一份《2026最新大模型全套学习资源》包括2026最新大模型学习路线、大模型书籍、视频教程、项目实战、最新行业报告、面试题、AI产品经理入门到精通等带你从零基础入门到精通快速掌握大模型技术由于篇幅有限有需要的小伙伴可以扫码获取1. 成长路线图学习规划要学习一门新的技术作为新手一定要先学习成长路线图方向不对努力白费。这里我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。2. 大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF3. 大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。4. 大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。5. 大模型行业报告行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。6. 大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。为什么大家都在学AI大模型随着AI技术的发展企业对人才的需求从“单一技术”转向 “AI行业”双背景。企业对人才的需求从“单一技术”转向 “AI行业”双背景。金融AI、制造AI、医疗AI等跨界岗位薪资涨幅达30%-50%。同时很多人面临优化裁员近期科技巨头英特尔裁员2万人传统岗位不断缩减因此转行AI势在必行这些资料有用吗这份资料由我们和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。大模型全套学习资料已整理打包有需要的小伙伴可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】