강의

멘토링

로드맵

Inflearn brand logo image

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

JAY probio님의 프로필 이미지
JAY probio

작성한 질문수

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

3.6 human-in-the-loop: 사람이 Agent와 소통하는 방법

human-in-the-loop질문드립니다

해결된 질문

작성

·

76

0

강사님 안녕하세요!

 

엣지 연결 마치고 계속 테스트하는데 중간에 interrupt가 되지 않고 'attention is all you need'논문을 바로 긁어와서 요약을 합니다 ㅜ

 

def should_continue(state: MessagesState):
    """
    주어진 state에 따라 다음 단계로 진행할지를 결정합니다.

    Args:
        state (AgentState): 메시지와 도구 호출 정보를 포함하는 state.

    Returns:
        Literal['tools', 'summarize_messages']: 다음 단계로 'tools' 또는 'summarize_messages'를 반환합니다.
    """
    # state에서 메시지를 가져옵니다.
    messages = state['messages']
    # 마지막 AI 메시지를 확인합니다.
    last_ai_message = messages[-1]
    
    # 마지막 AI 메시지가 도구 호출을 포함하고 있는지 확인합니다.
    if last_ai_message.tool_calls:
        # 도구 호출이 있으면 'tools'를 반환합니다.
        print('도구 호출이 있습니다 human_review로 이동합니다')
        return 'human_review'
    print('도구 호출이 없습니다 summarize_messages로 이동합니다')
    # 도구 호출이 없으면 'summarize_messages'를 반환합니다.
    return 'summarize_messages'

프린트 찍어보니 도구호출이 없습니다 로 바로 들어갑니다

 

그래서 쿼리를 '동탄역 맛집을 알려주세요' 하니

도구 호출이 있습니다. 하고 interrupt가 되더라구요

 

저 논문에 대한 정보를 LLM에서 이미 갖고있어서 Tool call을 안한거라고 보면 될까요?

답변 1

1

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

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

말씀하신 부분이 맞는 것 같습니다. 도구를 꼭 사용하길 희망하신다면 SystemMessage 를 선언하실 때 도구 사용을 꼭 해야한다고 명시하는 방법이 있을 것 같습니다

LLM이 도구를 사용하지 않고 직접 답변을 생성한다면, 토큰 사용량이 줄어들고, 답변이 더 빨리 나올거라서 사용자 경험 측면에서는 유리할 것 같아요. 하지만 사내 문서를 활용한 답변이 필요하시다거나, 개발하실 때 도구를 꼭 사용해야 한다고 판단하신다면 프롬프트에 도구 사용을 구체적으로 명시하는 편이 좋을 것 같습니다.

JAY probio님의 프로필 이미지
JAY probio

작성한 질문수

질문하기