From a783ad044b709f0a1ba9920cdae95df8b4146929 Mon Sep 17 00:00:00 2001 From: Aman Jaiswal Date: Thu, 2 Oct 2025 15:14:51 -0400 Subject: [PATCH 1/2] make langchain optional in xray --- src/agentlab/analyze/agent_xray.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/agentlab/analyze/agent_xray.py b/src/agentlab/analyze/agent_xray.py index 6dbec117..bdf33b0f 100644 --- a/src/agentlab/analyze/agent_xray.py +++ b/src/agentlab/analyze/agent_xray.py @@ -14,7 +14,6 @@ import pandas as pd from attr import dataclass from browsergym.experiments.loop import StepInfo as BGymStepInfo -from langchain.schema import BaseMessage, HumanMessage from openai import OpenAI from openai.types.responses import ResponseFunctionToolCall from PIL import Image @@ -30,6 +29,11 @@ from agentlab.llm.llm_utils import Discussion from agentlab.llm.response_api import MessageBuilder, ToolCalls +try: + from langchain.schema import BaseMessage, HumanMessage +except ImportError: + BaseMessage, HumanMessage = None, None + select_dir_instructions = "Select Experiment Directory" AGENT_NAME_KEY = "agent.agent_name" TASK_NAME_KEY = "env.task_name" @@ -746,7 +750,7 @@ def format_chat_message(message: BaseMessage | MessageBuilder | dict): """ Format a message to markdown. """ - if isinstance(message, BaseMessage): + if BaseMessage and isinstance(message, BaseMessage): return message.content elif isinstance(message, MessageBuilder): return message.to_markdown() @@ -859,7 +863,7 @@ def submit_action(input_text): global info agent_info = info.exp_result.steps_info[info.step].agent_info chat_messages = deepcopy(agent_info.get("chat_messages", ["No Chat Messages"])[:2]) - if isinstance(chat_messages[1], BaseMessage): # TODO remove once langchain is deprecated + if BaseMessage and isinstance(chat_messages[1], BaseMessage): # TODO remove once langchain is deprecated assert isinstance(chat_messages[1], HumanMessage), "Second message should be user" chat_messages = [ make_system_message(chat_messages[0].content), From bc5fa8070b693f7541653a3a003b329203d580a2 Mon Sep 17 00:00:00 2001 From: Aman Jaiswal Date: Thu, 2 Oct 2025 15:18:40 -0400 Subject: [PATCH 2/2] black --- src/agentlab/analyze/agent_xray.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/agentlab/analyze/agent_xray.py b/src/agentlab/analyze/agent_xray.py index bdf33b0f..2edefc92 100644 --- a/src/agentlab/analyze/agent_xray.py +++ b/src/agentlab/analyze/agent_xray.py @@ -863,7 +863,9 @@ def submit_action(input_text): global info agent_info = info.exp_result.steps_info[info.step].agent_info chat_messages = deepcopy(agent_info.get("chat_messages", ["No Chat Messages"])[:2]) - if BaseMessage and isinstance(chat_messages[1], BaseMessage): # TODO remove once langchain is deprecated + if BaseMessage and isinstance( + chat_messages[1], BaseMessage + ): # TODO remove once langchain is deprecated assert isinstance(chat_messages[1], HumanMessage), "Second message should be user" chat_messages = [ make_system_message(chat_messages[0].content),