Anthropic의 효율적인 에이전트 개발(3)-에이전트
에이전트는 일반적으로 사용자의 명령이나 대화식 상호작용으로 작업을 시작한다. 작업 목표가 명확해지면, 에이전트는 스스로 계획을 세우고 독립적으로 작업을 수행하며, 필요할 경우 추가 정보나 판단을 얻기 위해 사용자와 다시 상호작용할 수 있다. 오늘의 노트는 에이전트에 좀 더 상세히 정리해 보겠다.
1. 에이전트 - LLM 핵심 능력
- LLM 핵심 능력
- 복잡한 입력을 이해하는 능력
- 추론과 계획을 수행하는 능력
- 도구를 안정적으로 사용하는 능력
- 오류에서 회복하는 능력
-
작업을 수행하는 동안, 각 단계에서 도구 호출 결과나 코드 실행 결과와 같은 ‘현실 정보(ground truth)’를 통해 진행 상황을 점검하는 것이 매우 중요
-
에이전트는 체크포인트나 문제 상황에서 사용자의 피드백을 받기 위해 일시 정지할 수 있음
-
일반적으로 작업이 완료되면 종료되지만, 최대 반복 횟수 같은 중단 조건을 설정해 작업을 제어 가능하게 유지하는 것도 흔한 방식
-
에이전트는 복잡한 작업을 처리할 수 있지만, 구현 자체는 종종 단순한 구조로 되어 있음
- 환경 피드백에 따라 도구를 사용하는 LLM 루프일 뿐이며, 도구(toolset)의 설계와 문서화는 명확하고 신중하게 이루어져야 함
2. 에이전트를 언제 사용할까?
- 에이전트는 문제의 정답이 열려 있거나,필요한 작업 단계 수를 예측하거나 고정된 경로를 하드코딩하는 것이 어렵거나 불가능한 상황에 적합
- LLM은 여러 차례에 걸쳐 동작할 수 있으며,그 의사결정에 일정 수준 이상의 신뢰를 가질 필요가 있음
- 에이전트는 자율성을 바탕으로 작업을 수행하므로,신뢰할 수 있는 환경 내에서 대규모 작업을 확장하기에 이상적
- 에이전트의 자율성은 비용 증가와 오류 누적 가능성
- 샌드박스 환경에서의 충분한 테스트와적절한 가드레일 설정을 강력히 권장
3. Anthropic의 실제 구현
-
SWE-bench 작업 해결을 위한 코딩 에이전트: 작업 설명에 따라 여러 파일을 수정해야 하는 복잡한 문제 해결
-
“Computer-Use” 참조 구현: Claude가 실제 컴퓨터를 사용해 과업을 수행하는 에이전트 시스템
4. 에이전트 패턴의 결합과 맞춤화
- 빌딩 블록들은 정해진 규칙이 아니라, 개발자가 다양한 사용 사례에 맞게 유연하게 조합하고 맞춤화할 수 있는 공통 패턴
- LLM 기능과 마찬가지로 성능을 측정하고 반복적으로 개선하는 것이 성공의 핵심
- 복잡성을 추가할 때는 반드시 결과 향상이 입증될 경우에만 고려해야 함
댓글남기기