인프런 커뮤니티 질문&답변
인터룹 관련 질문
작성
·
24
·
수정됨
0
from typing import Literal
from langgraph.types import interrupt, Command
def human_review(state: AgentState) -> Command[Literal['tools', 'agent']]:
"""
human_review node는 LLM의 도구 호출에 대해 사람의 검토를 요청합니다.
Args:
state (AgentState): 메시지 기록을 포함하는 state.
Returns:
Command: 다음 node로 이동하기 위한 Command를 반환합니다.
"""
messages = state['messages']
last_message = messages[-1]
tool_call = last_message.tool_calls[-1]
human_review = interrupt({
'question': '이렇게 진행하면 될까요?',
'tool_call': tool_call
})
review_action = human_review['action']
review_data = human_review.get('data', None)혹시 왜 왜 last_message.tool_calls[-1]를 쓰는지 여쭤봐도 될까요? 가장 최근에 호출한 도구를 검토시킨다는 것 같은데 이전 호출을 제외한 왜 가장 최근 도구 호출에 대한 검토인지 궁금합니다. 또한 이부분에 대해서는 마지막 하나의 메세지에 대한 도구 호출이 리스트 안 여러개라는 가정 전제 하가 맞을까요?
답변 2
0
안녕하세요! 좋은 질문 감사합니다. 답변을 드려보자면
last_message.tool_calls[-1]을 사용하는 이유는, 해당 도구의 실행이 AI 에이전트가 내린 결론이기 때문입니다. 중간에 다양한 호출이 있었을 수 있으나, AI가 판단하기에 "내가 지금 하고자 하는 작업이 가장 다음 단계로 적합하다" 라고 판단을 내렸을거라서 마지막 실행 결과만 본다고 보시면 됩니다리스트 안에 여러개일 수도 있고 하나일 수도 있습니다. 파이썬 문법 상
len(list)
0
안녕하세요, 인프런 AI 인턴입니다. 박수용님.
강의에서 제공된 코드의 last_message.tool_calls[-1] 부분에 대한 질문을 이해하고, 관련 내용을 설명드리겠습니다.
최근 도구 호출 검토
last_message.tool_calls[-1]는 최근 호출된 도구를 의미합니다. 다음은 이 표시가 필요한 이유입니다:
현재 컨텍스트의 중요성:
- 최근에 호출된 도구는 사용자가 현재 관심을 가지거나 다루고 있는 주제를 반영합니다. 가장 최근의 호출을 검토함으로써 사용자가 지금 현재의 상황을 바로 파악하고 필요한 조치를 취할 수 있습니다.
- 최근에 호출된 도구는 사용자가 현재 관심을 가지거나 다루고 있는 주제를 반영합니다. 가장 최근의 호출을 검토함으로써 사용자가 지금 현재의 상황을 바로 파악하고 필요한 조치를 취할 수 있습니다.
업데이트 사항의 반영:
- 도구 호출은 여러 차례 이루어질 수 있습니다. 따라서 이전의 호출보다는 가장 최근의 호출이 작업의 최신 상태를 반영하고 있을 가능성이 큽니다. 이는 실시간 피드백과 조정이 필요한 상황에서 특히 중요합니다.
- 도구 호출은 여러 차례 이루어질 수 있습니다. 따라서 이전의 호출보다는 가장 최근의 호출이 작업의 최신 상태를 반영하고 있을 가능성이 큽니다. 이는 실시간 피드백과 조정이 필요한 상황에서 특히 중요합니다.
여러 도구 호출의 가정
마지막 하나의 메시지에 여러 도구 호출이 포함될 수 있다는 가정 하에 작성된 코드로 보입니다. tool_calls는 리스트 형태로, 한 메시지가 여러 번의 도구 호출을 포함할 수 있기 때문에 코드에서는 가장 마지막 호출([-1])을 주로 검토 대상으로 삼습니다.
이러한 설계는 중간 단계에서 일어나는 도구 호출보다 마지막 상태에서의 도구 상태가 더 정확하고 시의적절한 피드백을 반영할 수 있기 때문입니다.
관련 토론이나 자세한 설명은 아래 링크를 통해 추가적인 학습을 돕기 위해 제공됩니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




