• linyin

    有个任务要读 40 个文件做交叉分析,跑一半就报 context length exceeded。

    问题不在模型,在我给的东西太多。三个改动:

    1. 工具输出加截断

    读文件工具默认返回全文,改成超过 300 行只返回前 200 行 + 结构摘要(函数名列表)。模型需要细节会再读,不需要就省了。

    1. 中间结果落盘

    分析完一个文件,结论写进临时文件,上下文里只留「已处理 X,结论见 tmp/x.md」一行。需要时再读回来。

    1. 历史消息压缩

    超过 20 轮,把前面的对话让模型自己总结成 500 字,替换掉原文。

    三招下来,同样任务从爆上下文变成用掉 40% 窗口。

    最重要的认知:上下文不是越大越好。塞太多无关信息,模型注意力会被稀释,准确率反而下降。

    主楼
  • alan

    曾经也以为是大窗口的问题,后来发现是注意力稀释。

    #1
  • alan

    我是反过来做的:先让它写方案,我改完再让它实现,返工少很多。

    #2

发表回复

登录后回复