Anthropic - Tips for building AI agents
에이전트는 단순한 LLM 호출을 넘어 여러 번의 반복을 통해 문제를 해결하는 자율적인 시스템으로 정의된다. 이는 고객 지원이나 코드 변경과 같은 작업에서 유용하다. 워크플로우는 고정된 단계로 이루어져 있지만, 에이전트는 더 많은 자율성을 가진다. 에이전트의 실용적 사용은 주로 복잡하지만 오류 비용이 낮은 작업에 적합하며, 코딩과 검색에서 특히 유용하다. 코딩 에이전트는 테스트를 통해 코드의 정확성을 검증할 수 있어 발전 가능성이 크다. 에이전트의 미래는 다중 에이전트 환경으로의 확장을 포함하며, 이는 더 많은 상호작용과 협력을 가능하게 할 것이다.
Key Points:
- 에이전트는 자율적으로 문제를 해결하는 시스템이다.
- 워크플로우는 고정된 단계로 이루어져 있다.
- 에이전트는 복잡하지만 오류 비용이 낮은 작업에 적합하다.
- 코딩 에이전트는 테스트를 통해 정확성을 검증할 수 있다.
- 다중 에이전트 환경은 더 많은 상호작용을 가능하게 한다.
Details:
1. 🔍 소비자 에이전트의 과대 평가 논의
- 소비자 에이전트가 과대 평가되고 있다고 지적합니다. 이들은 복잡한 작업을 처리할 수 있다고 하지만 실제로는 사용자가 직접 수행하는 것과 유사한 수준의 어려움이 존재합니다.
- 특히, 휴가 예약과 같은 구체적인 예를 들어, 에이전트가 대신 예약하는 것이 사용자 스스로 예약하는 것만큼 복잡할 수 있다는 점을 강조합니다.
- 소비자 에이전트의 기능적 한계를 이해하고, 이를 통해 소비자들이 더 나은 결정을 내릴 수 있도록 돕는 것이 중요합니다.
2. 🧑💻 에이전트의 정의와 역할
- 에이전트는 LLM이 스스로 얼마나 여러 번 실행할지 결정하여 문제 해결을 위해 반복 실행을 계속하는 구조를 가지며, 결과를 찾을 때까지 지속적으로 작동합니다.
- 워크플로우는 사전에 정의된 고정된 단계들로 이루어진 프로세스로, '레일 위의' 실행 흐름이라고 할 수 있습니다.
- 에이전트의 정의는 고객과의 여러 대화 및 다양한 팀들과의 협업을 통해 도출되었으며, 에이전트는 더욱 자율적으로 행동하게 됩니다.
- 예를 들어, 에이전트는 고객 지원 시 다양한 문제 해결 경로를 스스로 탐색하며, 워크플로우는 주어진 단계에 따라 특정 절차를 밟습니다.
3. 🔗 워크플로우와 에이전트 구분하기
- 워크플로우는 코드로 사전에 조율된 단계로 구성되어 있어, 각 단계의 결과를 예측 가능하며 검사할 수 있다. 예를 들어, 고객 주문 처리 워크플로우는 특정 순서로 진행되며 각 단계의 결과를 미리 정해진 대로 추적할 수 있다.
- 에이전트는 보다 개방적이며, 다양한 도구와 작업을 사용하여 문제를 풀어나가도록 설계되어 있다. 예를 들어, 고객 지원 에이전트는 고객의 다양한 요청에 따라 적절한 도구를 사용하여 즉각적인 해결책을 제공할 수 있다.
- 모델과 도구의 발전에 따라 에이전트의 역할과 역량이 점점 더 중요해지고 있다. 특히, AI 기반의 에이전트는 복잡한 문제 해결에서 더욱 강력한 성능을 보여주고 있다.
- 개발자는 워크플로우와 에이전트의 차이를 명확히 이해하고 이를 코드에 반영하여 구현해야 한다. 이를 통해 시스템의 유연성과 효율성을 극대화할 수 있다.
4. 🛠️ 도구 및 프롬프트 설계의 중요성
- 개발자는 모델의 지시사항을 이해하기 어려울 때 모델의 입장에서 생각해야 합니다. 이는 더 나은 에이전트 설계를 가능하게 합니다.
- 명확한 프롬프트와 도구 설명, 환경 설정을 통해 공감적 접근이 가능하며, 이는 모델이 세상을 보는 방식을 이해하는 데 중요합니다.
- 충분한 문서화가 없으면 모델이 도구를 효과적으로 사용할 수 없습니다. 따라서 프롬프트 엔지니어링은 도구 설명에도 적용되어야 합니다.
- 개발자는 모델의 관점이 인간의 관점과 다를 수 있음을 인정하고, 이를 바탕으로 도구와 프롬프트를 설계해야 합니다.
- 예를 들어, 특정 도구의 기능을 상세히 설명함으로써 모델이 보다 효과적으로 그 도구를 사용할 수 있도록 해야 합니다.
5. 📝 에이전트 정의의 필요성 및 과대평가 요소
5.1. 에이전트 정의의 필요성
5.2. 에이전트의 과대평가 요소
5.3. 생산 환경에서의 에이전트 활용
6. 🌟 에이전트의 활용 및 과소평가 요소
- 코드 에이전트는 피드백 루프를 통해 코드의 검증 가능성을 높이며, 이는 문제 해결 과정에서 올바른 해답에 수렴하도록 돕는다.
- SWE-bench 결과, 코드 작성 능력이 50% 이상 향상되었으며, 이는 코드 에이전트의 문제 해결 능력을 입증한다.
- 주요 장애물은 완벽한 유닛 테스트가 없는 실세계 사례들로, 모델이 자가 테스트 및 정확성 판단을 할 수 있는 방법을 개발해야 한다.
- 프로세스 내 피드백 루프의 통합은 코드 검증의 중요한 요소로 작용한다.
7. 👨💻 코딩 에이전트의 발전과 도전 과제
- 2025년까지 코딩 에이전트는 반복적인 작업을 자동화하여 작업량을 10배에서 100배까지 증가시킬 수 있을 것으로 예상되며, 이는 비용 효율성을 크게 향상시킬 것입니다.
- 멀티 에이전트 환경의 연구가 진행 중이며, 이는 기존의 단일 에이전트보다 더 많은 자원을 활용할 수 있는 가능성이 있습니다.
- 현재 프로덕션 환경에서 성공적으로 운영되는 단일 에이전트의 사례는 아직 부족하지만, 이러한 접근법의 실제 사용 사례가 증가할 가능성이 있습니다.
- 소비자용 에이전트는 사용자의 선호와 작업을 완전히 반영하는 것이 복잡할 수 있으며, 아직 과대평가된 부분이 있습니다.
- 소비자 에이전트는 명확한 사용 사례가 부족하며, 사용자의 선호를 학습하는 데 시간이 필요합니다.
8. 🤝 다중 에이전트 환경의 전망 및 개발자 조언
- 결과를 측정할 수 있는 방법을 마련해야 한다. 많은 개발자들이 피드백 없이 프로젝트를 진행하다가 효과적이지 않거나 더 간단한 방법이 있었음을 깨닫지 못할 수 있다.
- 가능한 한 간단하게 시작하고, 복잡성을 더할 때 측정 가능한 결과를 확보해야 한다.
- 자원 활용이 뛰어난 스타트업은 하나의 LLM 호출로 모든 작업을 수행하고, 코드의 오케스트레이션은 모델이 개선될수록 그들의 강점이 된다.
- 미래의 기술 향상을 통해 이익을 얻을 수 있는 제품을 개발해야 한다. 모델이 더 똑똑해질수록 제품이 더 좋아진다면 성공적인 개발이다.