5

I tried executing a langchain agent. I want to save the output from verbose into a variable, but all I can access from the agent.run is only the final answer.

How can I save the verbose output to a variable so that I can use later?

My code:

import json
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain.llms import OpenAI
from langchain.agents import Tool
from langchain.utilities import PythonREPL

llm = OpenAI(temperature=0.1)

## Define Tools
python_repl = PythonREPL()

tools = load_tools(["python_repl", "llm-math"], llm=llm)

agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)

response = agent.run("What is 3^2. Use calculator to solve.")

I tried accessing the response from the agent, but it's only the final answer instead of the verbose output.

printing response gives only 9. But I would like the verbose process like:

> Entering new AgentExecutor chain...
 I need to use the calculator to solve this.
Action: Calculator
Action Input: 3^2
Observation: Answer: 9
Thought: I now know the final answer.
Final Answer: 9
Soumendra
  • 1,518
  • 3
  • 27
  • 54
Troyanovsky
  • 53
  • 1
  • 3

1 Answers1

3

I don't find any API to save verbose output as a variable.

However, I think an alternative solution to the question can be achieved by access intermediate steps in this link.

That is set return_intermediate_steps=True,

agent = initialize_agent(
  tools, 
  llm,
  agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, 
  verbose=True,
  return_intermediate_steps=True
)

and use response = agent({"input":"What is 3^2. Use calculator to solve"}) instead of agent.run.

Finally, you can access the intermediate steps in response["intermediate_steps"]

Hope this will help.

Tyler2P
  • 2,324
  • 26
  • 22
  • 31
Licheng
  • 46
  • 3