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: 인터랙티브 계획 검토와 수정
에이전트가 계획을 만들면 콜백이 그걸 표시하고 인간 사용자에게 다음을 요청해요.
- 계획 승인
- 계획 수정
- 실행 취소
예시 상호작용:
============================================================
🤖 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 워크플로우
- 에이전트가 복잡한 태스크로 시작해요.
- 계획 스텝이 만들어지고 인간 검토를 위해 실행이 멈춰요.
- 인간이 계획을 검토하고 선택적으로 수정해요(Human-in-the-Loop).
- 승인·수정된 계획으로 실행이 재개돼요.
- 모든 스텝이 이후 실행을 위해 보존돼, 투명성과 통제를 유지해요.
오류 처리
예시는 다음 오류 처리를 포함해요.
- 사용자 취소
- 계획 수정 오류
- 실행 재개 실패
요구 사항
- smolagents 라이브러리
- DuckDuckGoSearchTool(smolagents에 포함)
- InferenceClientModel(HuggingFace API 토큰 필요)
교육적 가치
이 예시는 다음을 보여줘요.
- 커스텀 에이전트 동작을 위한 스텝 콜백 구현
- 멀티스텝 에이전트의 메모리 관리
- 에이전트 시스템의 사용자 상호작용 패턴
- 동적 에이전트 통제를 위한 계획 수정 기법
- 인터랙티브 에이전트 시스템의 오류 처리
전체 코드는 examples/plan_customization에서 볼 수 있어요.
출처: 공식문서