AI / LangGraph LangChain Interview questions
How do you debug LangChain agents?
Debugging LangChain agents requires visibility into the agent's reasoning steps, tool inputs, and tool outputs — not just the final answer. Several tools address this at different levels of depth.
verbose=True — prints every Thought, Action, and Observation to stdout during execution. Quick and zero-setup, ideal during development:
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
return_intermediate_steps=True — returns the full [(AgentAction, observation), ...] list in the output dict so you can inspect programmatically in tests:
result = executor.invoke({"input": "..."}, return_intermediate_steps=True) for action, obs in result["intermediate_steps"]: print(action.tool, action.tool_input, "=>", obs)
LangSmith tracing — set LANGCHAIN_TRACING_V2=true and every agent run is captured as a full tree trace in LangSmith. You can see token counts, latency per step, exact prompts sent to the model, and tool call details. This is the most powerful debugging tool for production issues.
StdOutCallbackHandler — equivalent to verbose but via the callback system, useful when you need to attach it conditionally:
from langchain_core.callbacks import StdOutCallbackHandler result = executor.invoke({"input": "..."}, config={"callbacks": [StdOutCallbackHandler()]})
More Related questions...