当前位置: 首页 > news >正文

自研上下文管理熬到崩溃,Claude Agent SDK真香

文章目录

  • 1 先唠唠我为啥把LangGraph给弃了
    • 1.1 一开始的想法有多美好
    • 1.2 现实就有多打脸
  • 2 我找到的救命神器:五级上下文压缩
    • 2.1 第一级:大文件自动存硬盘
    • 2.2 第二级:长结果掐头去尾
    • 2.3 第三级:过期内容自动清走
    • 2.4 第四级:历史对话折叠成摘要
    • 2.5 第五级:终极压缩救大命
  • 3 我的研报Agent架构长啥样
    • 3.1 MCP工具:6个就够,多了没用
    • 3.2 7个Skills:把流程拆明白
    • 3.3 用提示词做编排,比画状态图爽多了
  • 4 踩过的那些坑,个个都能给我整emo
    • 4.1 环境变量的坑,差点给我整破防
    • 4.2 Agent总干一半跑路怎么办
  • 5 跑通之后的真心话
    • 5.1 不崩的感觉,真的太爽了
    • 5.2 别没事自己造基础设施


P.S. 无意间发现了一个巨牛的人工智能教程,非常通俗易懂,对AI感兴趣的朋友强烈推荐去看看, 传送门https://blog.csdn.net/HHX_01

1 先唠唠我为啥把LangGraph给弃了

1.1 一开始的想法有多美好

前段时间折腾一个金融研报自动生成的项目。

最开始用LangGraph搭的,配的qwen3-max。

想法很简单:让Agent自动抓三家公司的三年财务报表,算指标、画图表,最后组装成完整研报。

我当时都想好了,等做出来直接解放双手,上班摸鱼都有底气了。

1.2 现实就有多打脸

结果刚跑起来就给我浇了盆冷水:上下文直接炸了。

256K的上下文窗口,听着像个大平层。

结果三家公司的三年三张报表一塞,直接变群租房,连下脚的地方都没有。

一家公司一年的资产负债表就上百个字段。

乘三家乘三年,再算上Agent的推理记录,token直接指数级往上窜。

别说写研报了,连原始数据都装不下。

合着我充的token全用来听模型报“溢出”了是吧?

当时我还不信邪,自己手搓了一套节点间的文件传递逻辑。

每个节点算完存本地文件,上下文只留路径。

听起来简单对吧?实际操作起来边界情况多到离谱。

不是读不到文件就是传错路径,天天跟bug打架。

那阵子我天天怀疑人生,我到底是写Agent的,还是专门修数据管道的?

2 我找到的救命神器:五级上下文压缩

后来偶然摸到了Claude Agent SDK。

看到它自带五级渐进式上下文压缩的时候,我差点当场泪目。

这不就是我熬了好几个夜手搓的东西吗?人家直接做进SDK里了,还比我完善一万倍。

2.1 第一级:大文件自动存硬盘

工具返回的结果超过5万字符,系统自动把完整内容存到磁盘。

上下文里只留个文件指针,告诉你东西在哪。

就像你办公桌放不下厚文件,自动给你塞抽屉,桌上只留个便签。

以前我得自己写代码塞抽屉,现在人家自动帮你收拾,省老事了。

2.2 第二级:长结果掐头去尾

对于不算特别长但也占地方的输出,自动保留头部和尾部,中间省略。

就像看长帖子只看开头和结尾。

重点信息没丢,还省了不少空间。

2.3 第三级:过期内容自动清走

给历史工具结果设了保质期,超时的直接清空内容,只留个标记。

相当于工作台只留最近用的文件,更早的都收去储物柜。

桌面永远清爽,不用你自己收拾。

2.4 第四级:历史对话折叠成摘要

把之前所有的推理、工具调用记录,压缩成一段简短的摘要。

就像聊天记录太长了,给你生成个重点回顾。

不用翻几百条消息找信息,一眼就能看明白之前干了啥。

2.5 第五级:终极压缩救大命

真到了极端情况,直接fork个子Agent。

用大模型把整个历史消息浓缩成高度摘要,永久替换原上下文。

这招破坏力最强,但架不住救命啊,总比直接溢出崩了强。

这五级策略层层递进,SDK后台自己管理,开发者完全不用操心。

我当时就一个想法:早知道有这东西,我之前熬那几个夜图啥啊?

3 我的研报Agent架构长啥样

顺着这个SDK,我搭了个叫FinScribe的项目。

整体架构很清晰,分三层:工具层、技能层、编排层。

3.1 MCP工具:6个就够,多了没用

首先是数据层,我封装了6个MCP工具。

5个是AKShare的财务数据接口,1个是联网搜索。

工具这东西真不是越多越好。

你给Agent塞一堆工具,它先得花一半上下文认工具,正事都没精力干了。

就像你上班背一书包工具,真要用的时候找半天,还不如就带几样常用的。

这里有个核心细节:工具只返回文件路径,不返回完整数据。

要是直接把整张表的内容返回,瞬间就能把上下文塞满。

返回路径,Agent需要的时候自己读,压缩机制自动接管,稳得很。

还有异常处理千万别抛异常,全在函数内部接住,返回错误文本让Agent自己判断。

不然一个接口崩了,整个Agent直接停摆,那才叫亏大了。

3.2 7个Skills:把流程拆明白

工具解决了“拿数据”的问题,研报的完整流程,我拆成了7个标准化的Skill。

从竞争对手研究、数据采集、指标计算,到可视化、估值、写报告、最终组装,一步一个Skill。

Skill是按需加载的,平时不在上下文里占地方。

需要执行哪个任务,就把对应的操作手册调出来。

这就像办公室有个文件柜,平时关着不占地,需要哪本拿哪本。

比把所有说明书都摊在桌上强多了,不然桌子上全是纸,你连键盘都摸不到。

每个Skill的描述一定要写清楚。

Agent就是靠描述判断什么时候调用这个Skill,写得模模糊糊的,Agent根本认不出来,等于白写。

3.3 用提示词做编排,比画状态图爽多了

以前用LangGraph,我得画状态图,定义节点定义边,各种条件跳转,跟画工程图似的。

现在倒好,直接把四阶段的工作流写进系统提示词里,让Agent自己调度。

金融研报这流程本来就是固定的线性流程,没必要搞那么重的编排。

简单直接才是王道,省下来的时间喝杯奶茶不好吗?

当然这里也有坑,后面踩坑部分细说。

4 踩过的那些坑,个个都能给我整emo

4.1 环境变量的坑,差点给我整破防

这个SDK兼容Anthropic协议,所以国产模型都能接,切换靠环境变量就行。

我最开始用setdefault设置变量,结果死活不生效。

排查了半天才发现,这函数只在变量不存在的时候设置。

已经存在的话直接静默跳过,连个提示都没有。

合着我搁这敲了半天代码,人家根本不理我,跟我玩沉默是金呢?

后来直接改成直接赋值,管你有没有,直接覆盖,世界瞬间清净了。

4.2 Agent总干一半跑路怎么办

最早的版本,Agent启动完第一阶段的两个任务,直接说一句“请稍候”就结束回合了。

后台任务跑完了,Agent也没影了,后面三个阶段直接没人管了。

合着我雇了个项目经理,开了个头就打卡下班了是吧?

后来我在提示词里硬加了一句:不许中途结束回合,每个任务做完、验证完产物存在,再进下一阶段。

加完之后,Agent终于老老实实在原地等着干活了。

还有个小技巧,让Agent每个阶段结束都检查一下输出文件有没有生成。

不然Agent有时候会幻觉,以为任务做完了,实际上脚本早崩了,白等半天。

5 跑通之后的真心话

5.1 不崩的感觉,真的太爽了

我拿青岛啤酒测了一下,分析2024和2025年的数据。

整个流程跑下来,Agent执行了三百多条消息。

生成了56个CSV文件,还有图表和最终的完整研报。

从头到尾,一次上下文溢出都没出现。

换以前LangGraph那套,光这56个CSV的原始数据就把窗口撑爆了,根本跑不完。

5.2 别没事自己造基础设施

项目跑通之后,我最大的感受不是这个SDK有多牛。

是真的别自研基础设施。

上下文管理这种事,本来就是SDK该干的活。

你一个写业务的,再怎么搓,也搓不过人家专门的工程团队天天迭代。

就像你开个餐馆,没必要自己去造冰箱,买个现成的不好吗?

省下来的精力好好研究菜谱、打磨菜品,不比啥都强。

把精力集中在业务逻辑上,才是正经事。

P.S. 无意间发现了一个巨牛的人工智能教程,非常通俗易懂,对AI感兴趣的朋友强烈推荐去看看,传送门https://blog.csdn.net/HHX_01

http://www.jsqmd.com/news/1367803/

相关文章:

  • 股票数据本地化存储实战:JSON、数据库与列式存储的方案对比
  • 连续值特征
  • RDPWrap完全指南:5分钟解锁Windows远程桌面多用户连接限制
  • Win10开机蓝屏提示PAGE_FAULT_IN_NONPAGED_AREA怎么办?软领驱动大师排查修复步骤
  • 络丝:肉身之下的精微维性底层基质15
  • IDBWrapper常见问题解答:解决你的IndexedDB开发痛点
  • 使用@datastructures-js/priority-queue解决LeetCode算法难题:实战案例分析
  • 六盘水CMA甲醛检测公司公共卫生检测如何选:安鑫甲醛检测实验室 - CMA甲醛检测中心
  • 实测封神!Pi+DeepSeek-v4-Flash极致编码组合
  • 2026威海卫生间漏水避坑指南 - 伶鹿到家
  • Kubernetes服务互通失败,先别急着改NetworkPolicy:四步定位真实阻断点
  • RPCS3终极指南:3步在PC上完美运行PS3游戏的完整方案
  • 怎么远程操作另一台手机 怎么远程控制别人的手机
  • 不用折腾源码!Windows Hermes 自动化工具快速搭建实操
  • 未来已来:Comedy框架即将推出的三大革命性特性
  • HTML打包APK实现视频全屏播放方法
  • AgentRAG和传统RAG差在哪企业推理的五个步骤
  • 切换线性动态系统(SLDS)完全指南:SSM如何融合HMM与LDS解决非线性问题
  • CPT Markets:从风险提示切入的路径观察
  • 比特币PoW共识机制:原理、实现与矿工生存指南
  • 龙岩CMA甲醛检测公司公共卫生检测如何选:安鑫甲醛检测实验室 - CMA甲醛检测中心
  • 仅77.9M参数量!VoxelModel v1超轻量级文本转3D模型部署教程
  • 掌握Swag集合操作:从基础到高级的完整教程
  • Koa.js设计模式-学习笔记:从入门到精通的完整指南
  • 铝壳电阻器哪家靠谱?品牌盘点指南 - 生活动态圈
  • Java团队做AI为什么是企业级落地被低估的优势
  • win11清理微信空间
  • Gin框架实战:Ginblog后端API设计与实现,10分钟掌握RESTful接口开发
  • 中山CMA甲醛检测公司公共卫生检测如何选:安鑫甲醛检测实验室 - CMA甲醛检测中心
  • 终极指南:3步解决ChatBox连接Ollama的404错误问题