프로그래밍/AI,ML
Agent를 고도화하면서 겪은 문제점들
Lou Park
2025. 4. 9. 15:48
- Tool이 늘어날 수록 멍청해지고, Input Token도 빠르게 소모했음
- 다소 무의미해보이는 도구 호출 증가
- Tool 설명을 위한 Input Token의 증가
- Tool을 줄이기 위한 노력
- CAG 활용 → 관련되지 않은 질문에도 들어갔기 때문에 Input Token이 심하게 소모되어 비슷하고 항상 같이 사용되는 Tool을 하나로 합치는 방향으로 다시 작업
- 계속 같은 패턴으로 사용하는 도구를 하나로 합침 → 회사 정보조회 도구
- Slack 채널을 조회하는 도구
- Slack UserGroup을 조회하는 도구
- Slack UserGroup 소속 멤버를 조회하는 도구
- Tool 설명을 간결하고 명확한 방향으로 수정
- 거대해진 프롬프트, 이를 무시하는 LLM
- Claude는 주어진 문제에 적절한 도구를 잘 사용하지만, 친근하게 대하라는 System Prompt를 자꾸 무시하는 경향
- Gemini/GPT는 System Prompt를 잘 따르지만, 문제를 올바르게 풀지 못함.
- 1차시도 : System Prompt 개선
- 요구사항을 구조화 (마크업)
- 많은 부분을 바꾸지는 못함. Claude를 메인으로 사용하면서 “재미있으면서 문제 해결도 잘하는” 에이전트를 원했지만 0.2 재미 정도만 얻음.
- 2차시도 : MultiAgent
- 일 잘하지만 커뮤니케이션을 못하는 개발자와, 그들을 이끄는 팀장님을 떠올림…
- Supervisor / Researcher / Communicator로 나눠서 시도
- Communicator와 Researcher 간 시스템 프롬프트를 크게 다르게 바꾸지 못했고, 나누다보니 Communicator는 번역기처럼 단순히 말투만 바꿔줘도 되는 작업밖에 남지 않음.
- 일 잘하지만 커뮤니케이션을 못하는 개발자와, 그들을 이끄는 팀장님을 떠올림…
- 3차시도 : generate 단계 추가
- 기존 플로우대로 답변하고, 마지막에 답변을 생성하는 단계를 하나 더 추가
- 조사한 내용을 빠뜨리지 않고 답변하도록 지침하여 재미와 유용함을 동시에 챙김 (출력 토큰의 희생이 있었다)
- 기존 플로우대로 답변하고, 마지막에 답변을 생성하는 단계를 하나 더 추가
- 1차시도 : System Prompt 개선
- Agent를 뜯어고치면서 미묘하게 달라지는데 성능을 확인할 명확한 지표가 필요함.
- 초기부터 테스트용 질문을 만들어두고, 그에 대한 대답을 잘 하는지 계속 확인하는 것이 중요.
- 아니면 Agent를 테스트하는 Agent를 만들 수도 있음.