AI 전문성을 쌓을 수 있는 기회의 창이 닫히고 있습니다
사람들은 AI 데모와 프로덕션 시스템을 마치 같은 것처럼 이야기합니다. 하지만 그렇지 않습니다.
화려한 데모와 실제 세상에서 작동하는 시스템 사이에는 거대한 격차가 존재합니다.
모두가 모든 것을 에이전트(agent)라고 부릅니다. 메모리가 있는 챗봇도 에이전트이고, 루프가 있는 스크립트도 에이전트라고 합니다. 이는 잘못된 생각입니다. 이러한 오류는 잘못된 엔지니어링으로 이어집니다.
결국 단순한 작업은 과하게 설계(over-engineering)하고, 어려운 작업은 부실하게 설계(under-engineering)하게 됩니다.
진짜 정의는 다음과 같습니다: 에이전트는 목표(objective)를 가집니다. 스스로 다음 단계를 결정합니다. 실패를 처리합니다. 작업이 언제 끝나는지 압니다. 그 외의 모든 것은 단순한 함수 호출(function call)일 뿐입니다.
차이점을 구별하는 방법: • 사람이 매 단계마다 가이드를 주어야 한다면, 그것은 채팅 인터페이스입니다. • 시스템이 실패한 도구 호출(tool call)로부터 스스로 복구한다면, 그것은 에이전트입니다. • 시스템이 목표를 하위 작업(subtasks)으로 분해한다면, 그것은 진정한 에이전트입니다.
성공적인 팀은 단순히 새로운 모델만을 쫓지 않습니다. 그들은 다음 세 가지에 집중합니다:
- 도구 설계(Tool design): 인터페이스가 얼마나 깔끔한가?
- 실패 처리(Failure handling): 도구가 아무것도 반환하지 않을 때 어떤 일이 발생하는가?
- 관측 가능성(Observability): 에이전트가 왜 그런 결정을 내렸는가?
사용하는 프레임워크보다 따르는 패턴이 더 중요합니다. LangChain이나 CrewAI는 단지 도구일 뿐입니다. 중요한 것은 아키텍처입니다.
다음 패턴을 사용하세요:
- 계획 후 실행(Plan then execute): 한 단계에서는 계획을 세우고, 별도의 단계에서 실행합니다.
- 검색과 추론의 분리(Separate retrieval from reasoning): 데이터를 가져오는 것과 데이터를 사용하는 것은 서로 다른 작업입니다.
- 명시적 인계(Explicit handoffs): 한 에이전트가 다른 에이전트에게 작업을 넘길 때 구조화된 로그(structured logs)를 사용합니다.
RAG 또한 문제를 일으키고 있습니다. 대부분의 사람들이 청킹(chunking)에서 실패합니다. 청크(chunk)가 문맥을 끊어버리면 모델은 환각(hallucination)을 일으킵니다. 모델을 탓하기 전에 청킹과 메타데이터를 먼저 수정해야 합니다.
모델은 더 좋아질 것이고, 토큰 비용은 더 저렴해질 것입니다. 하지만 이것이 엔지니어링 과제를 해결해주지는 않습니다.
진짜 과제는 신뢰할 수 있는 시스템을 구축하는 것입니다. 거버넌스(governance)와 신뢰할 수 있는 도구 사용이 필요합니다.
2년 뒤에 중요해질 엔지니어는 프롬프트 엔지니어가 아닙니다. 그들은 시스템 설계자(systems designers)입니다. 그들은 다른 사람들도 유지보수할 수 있는 AI를 만듭니다.
Optional learning community: https://t.me/GyaanSetuAi
