자유게시판
엔트로피 직원들 feat.Alex, Eric, Barry 에이전트에 대한 토론
작성자
인안나
작성일
2025-04-06 08:23
조회
17
1. 에이전트(Agent)란 무엇인가? (워크플로우와의 차이점)
- 흔한 오해: 많은 사람들이 단순히 여러 개의 LLM(대규모 언어 모델) 호출을 연결하는 것까지 '에이전트'라고 부르지만, Anthropic 팀은 이를 구분합니다.
- 워크플로우(Workflow): 미리 정해진 순서대로 몇 개의 LLM 호출을 연결하는 방식입니다. 각 단계가 명확하고 예측 가능하며, 마치 정해진 레일 위를 달리는 것과 같습니다. (예: 사용자 질문을 받아 -> 카테고리 분류 -> 해당 카테고리용 프롬프트 실행 -> 완료)
- 에이전트(Agent): LLM 스스로가 얼마나 많은 단계를 실행할지, 어떤 도구를 사용할지 결정하고, 문제가 해결될 때까지 **자율적으로 반복(looping)**하는 시스템입니다. 최종 결과에 도달하기까지 몇 단계가 걸릴지 미리 알 수 없습니다. 더 자율적인 성격을 가집니다. (예: 고객 지원 챗봇, 코드 수정 반복, 웹 검색 및 정보 종합)
- 구분 이유: 모델과 기술이 발전하면서, 단순히 단일 LLM 호출을 넘어 복잡한 작업 수행 방식이 등장했고, 이 두 가지 뚜렷한 패턴(워크플로우, 에이전트)을 구분하여 정의할 필요성을 느꼈기 때문입니다.
2. 에이전트 개발 시 고려할 점 (개발자의 관점)
- 모델의 입장에서 생각하기 (Empathy for the model): 개발자는 종종 자신이 가진 모든 배경지식과 컨텍스트를 모델도 당연히 알 것이라고 가정하지만, 모델은 그렇지 않습니다.
- Barry의 경험: 에이전트가 예상과 다르게 행동할 때, 직접 눈을 감고 잠시 화면을 본 뒤 다시 눈을 감고 "나라면 이 환경에서 어떤 파이썬 코드를 짤까?"라고 생각해보니 모델의 결정이 이해되기 시작했습니다.
- 팁: 모델이 어떤 정보를 가지고 있고, 어떤 환경에서 작동하는지 명확히 이해하고, 프롬프트나 도구 설명, 환경 설정을 통해 필요한 정보를 명시적으로 제공해야 합니다.
- 도구(Tool) 설명의 중요성: 에이전트에게 웹 검색, 코드 실행 등의 '도구'를 제공할 때, 이 도구의 설명(description) 역시 매우 중요합니다.
- Eric의 지적: 많은 개발자들이 프롬프트 자체에는 공을 들이지만, 모델에게 제공하는 도구는 문서화가 거의 안 되어 있거나 매개변수 이름이 'A', 'B'처럼 불명확한 경우가 많습니다. 사람이 이해하기 어려운 문서를 보고 함수를 쓰기 어렵듯이, 모델도 마찬가지입니다.
- 팁: 도구 설명도 프롬프트의 일부이며, 모델이 도구를 올바르게 이해하고 사용할 수 있도록 명확하고 상세하게 작성해야 합니다(프롬프트 엔지니어링 필요).
3. 에이전트의 현재 (과대평가 vs. 과소평가된 부분)
- 과소평가된 부분: 작은 시간을 절약해주는 작업 자동화. 비록 개별 작업은 1분 정도 절약하는 사소한 것일지라도, 이를 완전 자동화하면 해당 작업을 이전보다 100배 더 많이 수행할 수 있게 되어 큰 변화를 가져올 수 있습니다. (쉬워지면 확장될 수 있는 작업에 주목)
- 과대평가된 부분 (혹은 아직 어려운 부분): 소비자용 에이전트 (예: 완벽한 휴가 예약).
- 이유 1: 자신의 복잡한 선호도를 에이전트에게 완벽히 설명하는 것이 직접 예약하는 것만큼 어려울 수 있습니다.
- 이유 2: 에이전트의 실수를 검증하는 비용이 비싸고 위험 부담이 큽니다 (예: 잘못된 항공권 예약).
- 이유 3: 모델이 사용자의 선호도에 대한 충분한 컨텍스트(맥락)를 아직 가지고 있지 않습니다. 이 컨텍스트는 시간이 지나면서 구축되어야 합니다.
- 에이전트가 유용한 분야 (Sweet Spot): 작업이 가치 있고 복잡하면서도, 오류 발생 시 비용이나 모니터링 비용이 상대적으로 낮은 영역입니다.
- 코딩(Coding): 테스트를 통해 코드의 성공/실패를 (부분적으로) 검증할 수 있어, 에이전트가 반복하며 개선할 수 있는 명확한 피드백 루프가 존재합니다.
- 검색(Search): 깊이 있는 반복 검색은 어렵지만 가치 있는 작업입니다. 에이전트를 사용하면 정확도를 약간 희생하는 대신 더 많은 정보를 찾고(재현율 증가) 필터링하는 방식으로 유용하게 활용될 수 있습니다.
4. 코딩 에이전트의 현재와 미래
- 강점: 코드는 테스트를 통해 검증 가능하다는 점이 가장 큰 장점입니다. 테스트 결과(성공, 실패, 오류 메시지)는 에이전트가 다음 단계를 진행하는 데 중요한 신호(signal)가 됩니다. 이 피드백 루프 덕분에 모델이 정답에 수렴할 가능성이 높아집니다.
- 현재의 한계/과제: 현실 세계의 코드는 완벽한 유닛 테스트를 갖추지 못한 경우가 많습니다. 따라서 모델이 생성한 코드가 정말로 올바른지 **검증(verification)**하는 것이 다음 과제입니다. 모델 스스로가 결과를 테스트하고 옳고 그름을 판단할 수 있는 메커니즘이 강화되어야 합니다.
5. 에이전트의 미래 예측 (2025년)
- 기업에서의 도입 확산: 반복적인 업무 자동화, 비용 문제로 시도하지 못했던 작업의 대규모 확장 (예: 모든 코드 변경 요청(Pull Request) 시 관련 문서 자동 업데이트). 에이전트를 거의 '무료' 자원으로 생각하게 되면서 다양한 부가 기능 추가 가능.
- 멀티 에이전트(Multi-agent) 환경 탐구: 여러 에이전트가 상호작용하는 환경에 대한 관심 증가 (예: 여러 Claude 봇이 웨어울프 게임 플레이). 에이전트 간의 상호작용, 창발적 행동, 실제 유용성 등에 대한 연구 필요. (단, 아직 프로덕션 레벨에서 성공적인 멀티 에이전트 사례는 많지 않음)
6. 개발자를 위한 조언
- 결과 측정(Measure your results): 자신이 만드는 에이전트나 시스템의 성능을 측정할 방법을 반드시 마련해야 합니다. 피드백 없이 개발하면 잘못된 방향으로 가거나, 훨씬 간단한 방법으로도 충분했을 수 있다는 사실을 놓칠 수 있습니다.
- 단순하게 시작(Start simple): 처음부터 너무 복잡하게 만들지 말고, 측정 가능한 결과를 바탕으로 점진적으로 복잡성을 더해나가세요. 때로는 단일 LLM 호출과 잘 짜인 코드(Orchestration)만으로도 강력한 성능을 낼 수 있습니다.
- 미래를 대비하는 자세: "모델이 더 똑똑해지면 우리 회사의 경쟁력이 사라질 거야"라고 생각한다면 잘못된 것을 만들고 있는 것일 수 있습니다. 대신, "모델이 발전할수록 우리 제품/서비스가 더 강력해지는" 방향으로 구축해야 합니다.
요약하자면, AI 에이전트는 단순한 자동화를 넘어 LLM이 자율적으로 판단하고 작업을 수행하는 강력한 패러다임이지만, 아직 과대평가된 측면과 해결해야 할 과제(특히 검증, 컨텍스트)가 있습니다. 개발자는 모델의 관점에서 생각하고, 명확한 도구 설명을 제공하며, 결과를 측정하고, 단순하게 시작하여 점진적으로 발전시키는 접근 방식이 중요합니다. 특히 기업 환경에서의 반복 작업 자동화와 코딩 분야에서 큰 잠재력을 가지고 있습니다.
2025