AI Agents · 강의

조건부 라우팅 및 분기

add_conditional_edges를 사용해 상태에 따라 전달해보세요. 에이전트가 다음에 이동할 위치를 결정합니다.

레슨 3/414개 단계

조건부 라우팅 및 분기은(는) CoddyKit의 무료 AI Agents 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Agents 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.

이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.

조건부 간선이 필요한 이유

실제 에이전트는 결정을 내립니다. 한 단계를 마친 뒤의 다음 단계는 현재 상태에 따라 달라집니다. 조건부 간선이 이러한 로직을 표현합니다.

조건부 간선 추가하기

세 가지 요소가 필요합니다. 출발 노드, 라우터 함수, 도착지 매핑입니다:

def route_after_planning(state: AgentState) -> str:
    if state.get('confidence', 0) > 0.8:
        return 'execute'
    return 'replan'

graph.add_conditional_edges(
    'planner',
    route_after_planning,
    {
        'execute': 'executor',
        'replan': 'planner'
    }
)

라우팅 함수 시그니처

라우터는 전체 상태를 받고 문자열을 반환합니다. 병렬 분기의 경우 문자열 목록을 반환합니다.

자기 반복

간선은 같은 노드로 되돌아갈 수 있으며, 재시도에 사용됩니다:

graph.add_conditional_edges(
    'validator',
    lambda s: 'retry' if not s['valid'] else 'done',
    {'retry': 'planner', 'done': END}
)

병렬 분기

여러 하위 노드를 병렬로 실행하려면 실행할 노드 이름의 목록을 반환합니다:

def fan_out(state):
    return ['search_news', 'search_arxiv', 'search_github']

graph.add_conditional_edges('planner', fan_out)

병렬 분기 합치기

병렬 분기는 공통된 다음 노드에서 다시 합쳐집니다. 상태 병합은 각 분기의 출력을 결합하며, 목록과 딕셔너리에는 리듀서를 사용합니다.

도구 호출에 따른 라우팅

전형적인 패턴은 LLM이 응답한 뒤 도구 호출을 확인하고 그에 따라 경로를 정하는 것입니다:

def should_use_tool(state):
    last_msg = state['messages'][-1]
    if last_msg.tool_calls:
        return 'tools'
    return END

graph.add_conditional_edges('agent', should_use_tool, {'tools': 'tools', END: END})

다중 경로 라우팅

분기 선택 로직입니다:

def route_by_intent(state):
    intent = classify(state['messages'][-1])
    return {'q': 'qa_agent', 'order': 'order_agent', 'support': 'support_agent'}.get(intent, 'fallback')

LLM 호출을 사용한 라우팅

LLM을 사용해 다음에 어디로 이동할지 결정할 수 있습니다:

def llm_router(state):
    decision = llm.invoke(f'Route this to: search, calculate, or end?\nState: {state}').content.strip()
    return decision  # 'search' / 'calculate' / END

무한 반복 방지

단계 카운터가 없으면 에이전트가 영원히 반복할 수 있습니다. 상태에 카운터를 추가하십시오:

class State(TypedDict):
    step: int
    ...

def route(state):
    if state['step'] >= MAX_STEPS:
        return END
    return 'continue'

Increment Counter Reducer

def add(old: int, new: int) -> int:
    return old + new

class State(TypedDict):
    step: Annotated[int, add]

def any_node(state):
    return {'step': 1}   # increments by 1

분기 시각화

조건부 간선이 있는 그래프의 Mermaid 다이어그램에는 의사 결정 마름모가 표시되어 검토에 유용합니다:

print(app.get_graph().draw_mermaid())

조건부 간선

add_conditional_edges의 라우터 함수는 무엇을 반환합니까?

복습

조건부 간선은 에이전트가 결정을 내리는 방식입니다. 반복을 피하려면 단계 카운터를 추가하고, 계속 관리하려면 그래프를 시각화하십시오.

무료로 시작

AI 튜터와 함께 AI Agents을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
60
레슨
239

자주 묻는 질문

“조건부 라우팅 및 분기” 강의는 무료인가요?

네 — “조건부 라우팅 및 분기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Agents 강의 전체를 잠금 해제할 수 있습니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.

“조건부 라우팅 및 분기”에서 뭘 배우나요?

add_conditional_edges를 사용해 상태에 따라 전달해보세요. 에이전트가 다음에 이동할 위치를 결정합니다. 브라우저에서 직접 실행하는 실습 코드로 AI Agents을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AI Agents을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AI Agents은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“조건부 라우팅 및 분기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AI Agents 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AI Agents 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 그래프가 평면 체인보다 뛰어난 이유
  2. 노드, 간선 및 상태
  3. 조건부 라우팅 및 분기
  4. 그래프 상태 보존(체크포인트)
← AI Agents(으)로 돌아가기