Human-in-the-Loop: 에이전트 계획을 인터랙티브하게 커스터마이즈하기

Human-in-the-Loop: 에이전트 계획을 인터랙티브하게 커스터마이즈하기

이 페이지는 smolagents 라이브러리의 고급 사용법을 다뤄요. 특히 Human-in-the-Loop(HITL) 접근 방식에 초점을 맞춰요 — 인터랙티브한 계획 생성, 사용자 주도의 계획 수정, 에이전트 워크플로우에서의 메모리 보존까지요. 예시는 examples/plan_customization/plan_customization.py 코드를 기반으로 해요.

개요

이 예시는 Human-in-the-Loop 전략을 구현하는 방법을 가르쳐 줘요.

  • 계획이 만들어진 후 에이전트 실행을 중단(스텝 콜백 사용)
  • 실행 전에 사용자가 에이전트의 계획을 검토하고 수정하도록 허용(Human-in-the-Loop)
  • 에이전트의 메모리를 보존하면서 실행을 재개
  • 사용자 피드백에 따라 계획을 동적으로 업데이트해, 인간이 계속 통제하도록 유지

핵심 개념

계획 중단용 스텝 콜백(Step Callbacks)

에이전트는 계획을 만든 뒤 잠시 멈추도록 설정돼요. 이는 PlanningStep에 대한 스텝 콜백을 등록해서 이루어져요.

agent = CodeAgent(
    model=InferenceClientModel(),
    tools=[DuckDuckGoSearchTool()],
    planning_interval=5,  # Plan every 5 steps
    step_callbacks={PlanningStep: interrupt_after_plan},
    max_steps=10,
    verbosity_level=1
)

Human-in-the-Loop: 인터랙티브 계획 검토와 수정

에이전트가 계획을 만들면 콜백이 그걸 표시하고 인간 사용자에게 다음을 요청해요.

  1. 계획 승인
  2. 계획 수정
  3. 실행 취소

예시 상호작용:

============================================================
🤖 AGENT PLAN CREATED
============================================================
1. Search for recent AI developments
2. Analyze the top results
3. Summarize the 3 most significant breakthroughs
4. Include sources for each breakthrough
============================================================

Choose an option:
1. Approve plan
2. Modify plan
3. Cancel
Your choice (1-3):

이 Human-in-the-Loop 단계는 실행이 계속되기 전에 인간이 개입해 계획을 검토하거나 수정할 수 있게 해 주고, 에이전트의 행동이 인간의 의도와 일치하도록 보장해요. 사용자가 수정을 고르면 계획을 직접 편집할 수 있고, 업데이트된 계획이 이후 실행 단계에 사용돼요.

메모리 보존과 실행 재개

reset=False로 에이전트를 실행하면 이전의 모든 스텝과 메모리가 보존돼요. 이러면 중단이나 계획 수정 후에 실행을 재개할 수 있어요.

# First run (may be interrupted)
agent.run(task, reset=True)

# Resume with preserved memory
agent.run(task, reset=False)

에이전트 메모리 살펴보기

에이전트의 메모리를 검사해 지금까지의 모든 스텝을 볼 수 있어요.

print(f"Current memory contains {len(agent.memory.steps)} steps:")
for i, step in enumerate(agent.memory.steps):
    step_type = type(step).__name__
    print(f"  {i+1}. {step_type}")

예시 Human-in-the-Loop 워크플로우

  1. 에이전트가 복잡한 태스크로 시작해요.
  2. 계획 스텝이 만들어지고 인간 검토를 위해 실행이 멈춰요.
  3. 인간이 계획을 검토하고 선택적으로 수정해요(Human-in-the-Loop).
  4. 승인·수정된 계획으로 실행이 재개돼요.
  5. 모든 스텝이 이후 실행을 위해 보존돼, 투명성과 통제를 유지해요.

오류 처리

예시는 다음 오류 처리를 포함해요.

  • 사용자 취소
  • 계획 수정 오류
  • 실행 재개 실패

요구 사항

  • smolagents 라이브러리
  • DuckDuckGoSearchTool(smolagents에 포함)
  • InferenceClientModel(HuggingFace API 토큰 필요)

교육적 가치

이 예시는 다음을 보여줘요.

  • 커스텀 에이전트 동작을 위한 스텝 콜백 구현
  • 멀티스텝 에이전트의 메모리 관리
  • 에이전트 시스템의 사용자 상호작용 패턴
  • 동적 에이전트 통제를 위한 계획 수정 기법
  • 인터랙티브 에이전트 시스템의 오류 처리

전체 코드는 examples/plan_customization에서 볼 수 있어요.

출처: 공식문서