如何轻松提取并打印LangChain Agent的AI输出内容?
提取LangChain Agent最终AI回复的简便方法
方法一:直接获取run方法的返回值
LangChain的agent_chain.run()方法本身会直接返回最终的AI回复内容,无需从日志文本中提取。修改你的代码即可实现:
# ... 保留原有导入、环境变量、工具、内存及LLM初始化代码 ... # 接收run方法的返回值 final_response = agent_chain.run(input="how is the weather in wismar?") # 打印最终回复 print("最终AI回复:", final_response)
执行后会直接输出:
最终AI回复: The current weather in Wismar is 66°F.
这是最简便且符合框架设计的方案,Agent执行完成后会自动返回最终思考结果。
方法二:自定义回调捕获结果(适用于需拦截输出的场景)
如果需要在日志输出的同时捕获结果,可通过LangChain的官方回调机制实现,避免解析日志文本的不稳定问题:
from langchain.callbacks.base import BaseCallbackHandler # ... 保留原有导入、环境变量、工具、内存及LLM初始化代码 ... # 自定义回调处理器,捕获Agent最终输出 class FinalResponseCallback(BaseCallbackHandler): def __init__(self): self.final_response = "" def on_agent_finish(self, finish, **kwargs): # 捕获Agent的最终返回内容 self.final_response = finish.return_values["output"] # 初始化回调实例 response_callback = FinalResponseCallback() agent_chain = initialize_agent( tools, llm, agent=AgentType.CONVERSATIONAL_REACT_DESCRIPTION, verbose=True, memory=memory, callbacks=[response_callback] # 绑定回调 ) agent_chain.run(input="how is the weather in wismar?") # 打印捕获的最终回复 print("最终AI回复:", response_callback.final_response)
不推荐解析日志文本的原因
直接从日志中匹配“AI:”内容虽然可行,但LangChain的日志格式可能随版本更新发生变化,稳定性差。使用官方提供的返回值或回调接口,是更可靠的实现方式。
内容的提问来源于stack exchange,提问作者Pepe Diedrich
相关产品推荐
相关产品推荐

