강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

support님의 프로필 이미지
support

작성한 질문수

LangGraph를 활용한 AI Agent 개발 (feat. MCP)

3.3 LangGraph에서 도구(tool) 활용 방법

should_continue를 통과하며 데이터 전송

작성

·

20

0

노드에게 데이터를 전달하려고 하는데요.

from langgraph.graph import START, END

graph_builder.add_edge(START, 'order_detection_agent')
graph_builder.add_conditional_edges('order_detection_agent', should_continue_user_info, [END, 'parser_agent'])
graph_builder.add_edge('parser_agent', END)

구조는 이러한데,

 

def order_detection_agent(state: AgentState) -> AgentState:
    products = get_products()
    query = state['question']
    
    rag_chain = order_detection_prompt | llm | StrOutputParser()
    
    response = rag_chain.invoke({'query': query, 'products': products})
    print("order_agent 주문 판단 여부:", response)

    print(products['products'])
    if response.strip().lower() == 'true':
        state['products'] = products['products']
        return 'parser_agent', state

    return {'message': '주문이 아닌 것으로 판단.'}

이 노드에서 return 'parser_agent', state

이런식으로 노드별로 데이터 전달이 가능한 것은 확인하였습니다. 다만, should_continue를 통과하게 되면 에러가 나는데 should_continue를 통과하여 데이터를 전달할 수는 없나요?

답변 1

0

강병진님의 프로필 이미지
강병진
지식공유자

안녕하세요! 좋은 질문 감사합니다.

should_continue 는 node같아보이지만 다음에 어떤 node를 실행할 지 결정하는 edge의 역할을 하기 때문에, 만약 도구 실행 전 새로운 값을 전달하고 고 싶으시다면, tools로 가기전에 별도의 node를 작성하고, 해당 node의 작업이 끝나면 tools를 실행하는 식으로 작업하셔야 합니다.

support님의 프로필 이미지
support

작성한 질문수

질문하기