1616from openai import OpenAI
1717from PIL import Image
1818
19+ from agentlab .agents import agent_utils
1920from agentlab .analyze import inspect_results
2021from agentlab .experiments .exp_utils import RESULTS_DIR
2122from agentlab .experiments .loop import ExpResult , StepInfo
2425from agentlab .llm .llm_utils import BaseMessage as AgentLabBaseMessage
2526from agentlab .llm .llm_utils import Discussion
2627from agentlab .llm .response_api import MessageBuilder
27- from agentlab .agents import agent_utils
2828
2929select_dir_instructions = "Select Experiment Directory"
3030AGENT_NAME_KEY = "agent.agent_name"
@@ -628,6 +628,31 @@ def dict_to_markdown(d: dict):
628628 return res
629629
630630
631+ def dict_msg_to_markdown (d : dict ):
632+ if "role" not in d :
633+ return dict_to_markdown (d )
634+ parts = []
635+ for item in d ["content" ]:
636+
637+ if hasattr (item , "dict" ):
638+ item = item .dict ()
639+
640+ match item ["type" ]:
641+ case "image" :
642+ parts .append (f"" )
643+ case "text" :
644+ parts .append (f"\n ```\n { item ['text' ]} \n ```\n " )
645+ case "tool_use" :
646+ tool_use = f"Tool Use: { item ['name' ]} { item ['input' ]} (id = { item ['id' ]} )"
647+ parts .append (f"\n ```\n { tool_use } \n ```\n " )
648+ case _:
649+ parts .append (f"\n ```\n { str (item )} \n ```\n " )
650+
651+ markdown = f"### { d ["role" ].capitalize ()} \n "
652+ markdown += "\n " .join (parts )
653+ return markdown
654+
655+
631656def update_chat_messages ():
632657 global info
633658 agent_info = info .exp_result .steps_info [info .step ].agent_info
@@ -637,7 +662,7 @@ def update_chat_messages():
637662
638663 if isinstance (chat_messages , list ) and isinstance (chat_messages [0 ], MessageBuilder ):
639664 chat_messages = [
640- m .to_markdown () if isinstance (m , MessageBuilder ) else dict_to_markdown (m )
665+ m .to_markdown () if isinstance (m , MessageBuilder ) else dict_msg_to_markdown (m )
641666 for m in chat_messages
642667 ]
643668 return "\n \n " .join (chat_messages )
0 commit comments