1- import os , sys
2- import coolname
1+ import os
2+ from typing import Annotated , Literal
33
4+ import coolname
45from langchain_core .messages import (
6+ AIMessage ,
57 HumanMessage ,
68 SystemMessage ,
7- AIMessage ,
8- ToolMessage ,
99)
10+ from langchain_core .tools import tool
1011from langchain_litellm import ChatLiteLLM
1112from langchain_openai import OpenAIEmbeddings
12-
13- from ursa .agents import ArxivAgent , RecallAgent , BaseAgent , BaseChatModel
14- from ursa .agents import ExecutionAgent , ExecutionState
15- from ursa .prompt_library .execution_prompts import summarize_prompt
16- from ursa .util .memory_logger import AgentMemory
17-
1813from langgraph .graph import END , START , StateGraph
1914from langgraph .graph .message import add_messages
20- from langgraph .prebuilt import ToolNode , InjectedState
21- from langchain_core .tools import tool
22-
23- from typing import Annotated , Literal
15+ from langgraph .prebuilt import InjectedState , ToolNode
2416from typing_extensions import TypedDict
2517
18+ from ursa .agents import (
19+ ArxivAgent ,
20+ BaseAgent ,
21+ BaseChatModel ,
22+ ExecutionAgent ,
23+ ExecutionState ,
24+ RecallAgent ,
25+ )
26+ from ursa .prompt_library .execution_prompts import summarize_prompt
27+ from ursa .util .memory_logger import AgentMemory
28+
2629# --- ANSI color codes ---
2730GREEN = "\033 [92m"
2831BLUE = "\033 [94m"
5154"""
5255
5356
54- class State (TypedDict ):
55- messages : Annotated [list , add_messages ]
56- current_progress : str
57- code_files : list [str ]
58- workspace : str
59- arxiv_results : list [str ]
60-
61-
6257model = ChatLiteLLM (
6358 model = "openai/o3" ,
6459 max_tokens = 50000 ,
@@ -164,7 +159,7 @@ def runner(self, state: State) -> State:
164159 )
165160 os .makedirs (new_state ["workspace" ], exist_ok = True )
166161
167- if type (new_state ["messages" ][0 ]) == SystemMessage :
162+ if isinstance (new_state ["messages" ][0 ], SystemMessage ) :
168163 new_state ["messages" ][0 ] = SystemMessage (content = self .runner_prompt )
169164 else :
170165 new_state ["messages" ] = [
@@ -187,7 +182,7 @@ def summarize(self, state: ExecutionState) -> ExecutionState:
187182 memories = []
188183 # Handle looping through the messages
189184 for x in state ["messages" ]:
190- if not type ( x ) == AIMessage :
185+ if not isinstance ( x , AIMessage ) :
191186 memories .append (x .content )
192187 elif not x .tool_calls :
193188 memories .append (x .content )
0 commit comments