You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免LangChain中的Agent超出Token长度限制?

解决LangChain Agent超出Token长度限制的问题

问题分析

你遇到的InvalidRequestError是因为加载的WolframAlpha AI插件元数据(包含工具描述、参数说明等)内容过长,加上设置的max_tokens=1000,导致输入消息与请求的完成token总和超过了GPT-3.5-turbo模型4097的token上限。

具体解决方法

  • 降低完成token上限:减少ChatOpenAI的max_tokens参数值,确保输入消息+完成token的总和不超过模型上限。修改代码如下:

    llm = ChatOpenAI(temperature=0, streaming=True, max_tokens=500)
    
  • 精简工具描述:手动裁剪AIPluginTool的工具描述,只保留核心功能说明,大幅减少token占用:

    tool = AIPluginTool.from_plugin_url("https://www.wolframalpha.com/.well-known/ai-plugin.json")
    # 替换为精简的核心描述
    tool.description = "用于求解数学问题(如微分方程)的计算工具"
    
  • 切换大上下文模型:如果业务需要保留较长的完成token或工具描述,可以更换为支持更大上下文的模型,比如GPT-3.5-turbo-16k(支持16384 tokens):

    llm = ChatOpenAI(model_name="gpt-3.5-turbo-16k", temperature=0, streaming=True, max_tokens=1000)
    
  • 使用上下文压缩工具:利用LangChain的上下文压缩能力,自动精简工具描述等文本内容:

    from langchain.retrievers.document_compressors import LLMChainExtractor
    from langchain.schema import Document
    
    llm = ChatOpenAI(temperature=0, streaming=True, max_tokens=1000)
    compressor = LLMChainExtractor.from_llm(llm)
    
    tool = AIPluginTool.from_plugin_url("https://www.wolframalpha.com/.well-known/ai-plugin.json")
    # 压缩工具描述
    compressed_doc = compressor.compress_documents([Document(page_content=tool.description)])[0]
    tool.description = compressed_doc.page_content
    

内容的提问来源于stack exchange,提问作者tobias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:32:48