1. KeyError: 'intermediate_steps'
agent_scratchpad=lambda x: format_log_to_str(x["intermediate_steps"]),
~^^^^^^^^^^^^^^^^^^^^^^
KeyError: 'intermediate_steps'
报错原因:在 Agent 执行流程中,传入 agent_scratchpad 的输入字典缺少 intermediate_steps 键。这是 LangChain 新旧版本差异和 Prompt 配置不匹配的典型问题。
解决办法:需要使用AgentExecutor, 会自动传入intermediate_steps。 主要还是版本问题。
AgentExecutor 自动注入 intermediate_steps,但依赖 Prompt 含 {agent_scratchpad}
测试代码:
prompt = hub.pull("hwchase17/react")
agent = create_react_agent(model, tools=tools,prompt=prompt)
agent_executor = AgentExecutor(
agent=agent,
tools=tools,
verbose=True, # 开启详细日志,方便观察思考过程
max_iterations=5, # 防止无限循环
handle_parsing_errors=True # 开启可以转化为反思
)
result = await agent_executor.ainvoke({"input": query})