最近在搭一个有点复杂的Agent,需要让它先读文档、再总结、再根据历史对话做决策。结果发现只要文档稍微长一点,或者对话轮次多了,Prompt就经常被截断,导致后面的指令直接失效,输出就开始胡说八道。试过把关键指令提前放,但有时候前置条件又依赖后面的内容,就很矛盾。也想过自己做个简单的压缩,但怕破坏语义。想问下各位大佬,在Agent设计里一般怎么处理这种超长上下文的?是直接用长上下文模型硬扛,还是有什么工程上的技巧?最好能分享下实际踩坑经验,谢谢了。
最近在搭一个有点复杂的Agent,需要让它先读文档、再总结、再根据历史对话做决策。结果发现只要文档稍微长一点,或者对话轮次多了,Prompt就经常被截断,导致后面的指令直接失效,输出就开始胡说八道。试过把关键指令提前放,但有时候前置条件又依赖后面的内容,就很矛盾。也想过自己做个简单的压缩,但怕破坏语义。想问下各位大佬,在Agent设计里一般怎么处理这种超长上下文的?是直接用长上下文模型硬扛,还是有什么工程上的技巧?最好能分享下实际踩坑经验,谢谢了。
我一般是把文档先过一遍做摘要再塞进prompt,虽然会丢点细节但比直接截断强。另外可以试试把决策逻辑拆成多个小步骤,每步只带必要的上下文,别一次性全塞。长上下文模型我也用过,贵是真贵,而且中间那段信息它经常记不住。压缩的话建议用模型自己压,别手写规则,效果差挺多。
我一般把文档摘要和决策指令分两段放,中间用分隔符隔开,比硬塞一起稳多了。