AI 에이전트를 만들면서 배운 점들
What building AI agents taught me
핵심 요약
AI 에이전트 개발 시 LLM에만 의존하지 말고, 명확한 목표 설정과 상황에 맞는 결정론적 접근, 그리고 철저한 관찰이 중요하다는 경험담.
- 목표 중심 설계 — LLM의 기능보다 해결하려는 문제와 최종 결과물에 집중함
- 컨텍스트 최적화 — 모든 정보를 제공하기보다 필요한 정보만 선별하여 오류 가능성을 줄임
- 결정론적 접근 — 모든 작업에 LLM을 쓰지 말고 단순 작업은 기존 코드로 처리함
- 에이전트 관찰 — 에이전트의 추론 과정을 기록하고 분석하여 디버깅과 성능 개선을 수행함
지난 몇 년 동안 AI 에이전트를 만들면서 진짜 몸으로 부딪히며 배운 게 참 많다.
이 분야에서 일하는 사람들을 많이 만나는데, 다들 하나같이 "3~4명 팀으로 고작 2~3개월 만에 이런 걸 만들다니 진짜 대박이다"라는 소리를 하더라.
그 말 들으면 나도 웃음이 난다. 나도 얼마 전까지만 해도 딱 그렇게 느꼈거든.
뭐 하나 만들어서 결과값이 나오기 시작하면, 마치 엄청난 진전을 이룬 것 같은 기분이 들지.
근데 곧 이상한 점들이 눈에 들어오기 시작할 거야.
똑같은 질문을 해도 답이 매번 다르게 나오고, 에이전트는 뭘 하면 안 되는지조차 모른다. 정보가 부족한데도 아주 그럴싸하게 거짓말을 늘어놓기도 하지.
결국 에이전트가 답을 내놓게 만드는 거랑, 일관성 있게 정답을 내놓게 하고 모르는 건 모른다고 거절하게 만드는 건 차원이 다른 문제라는 걸 깨닫게 될 거다.
전통적인 코딩은 뭐가 잘못되면 에러라도 뜨지, LLM은 완전히 틀린 답을 내놓으면서도 아주 자신만만하게 굴거든.
그래서 믿을 만한 에이전트를 만드는 게 처음 생각보다 훨씬 어려운 거야.
내가 겪으며 배운 몇 가지를 공유해 본다.
- 에이전트부터 만들지 말고, 최종 목표부터 정해라.
진짜 달성하려는 게 뭔지, 그걸 위해 어떤 정보가 필요한지, 중간에 어떤 결정을 내려야 하는지부터 따져봐야 한다.
더 중요한 건, 에이전트가 뭘 해야 하고 뭘 하지 말아야 하는지, 그리고 언제 그냥 "모르겠다"거나 "못 하겠다"고 말해야 하는지 정하는 거다.
LLM이 뭘 할 수 있는지부터 고민하는 것보다, 결과물에서부터 거꾸로 역산해 나가는 게 훨씬 효율적이더라.
-
문맥이 전부다. 하지만 문맥이 많다고 무조건 좋은 건 아니다.
내 경험상 에이전트 관련 작업은 결국 문맥(context) 문제인 경우가 많다.
올바른 정보를 찾고, 에이전트가 써먹을 수 있게 구조화하고, 필요 없는 정보를 걸러내는 게 이 일에서 가장 어려운 부분 중 하나다.
에이전트한테 가진 정보를 다 쑤셔 넣는 게 목표가 아니다. 작업을 완수하는 데 진짜 필요한 게 뭔지, 그 정보를 언제 줘야 하는지, 그리고 뭘 빼야 에이전트가 헛소리할 확률을 줄일 수 있는지 파악하는 게 핵심이다. -
LLM을 망치처럼 쓰지 마라.
LLM이 할 수 있다고 해서 무조건 시켜야 하는 건 아니다.
가능하면 결정론적(deterministic)인 방식을 먼저 쓰고, 추론이나 해석, 유연성이 진짜 필요한 곳에만 LLM을 쓰는 쪽으로 점점 마음이 기울고 있다.
모든 문제에 LLM이 필요한 건 아니고, 에이전트 워크플로우의 모든 단계를 LLM이 처리할 필요도 없다. -
에이전트 개발은 과학인 동시에 예술이다.
어디까지 자유를 주고 어디를 제한할지, 문맥을 얼마나 줄지, 또 언제 결정론적 시스템에 의존할지 정하는 건 결국 수많은 시행착오를 겪으며 배울 수밖에 없더라.
나도 아직 배우는 중이다. 너희들이 경험하면서 깨달은 게 있다면 뭐든 좀 알려줘라.

