AI 에이전트에게 명령 대신 목표를 던져야 하는 이유
AI 에이전트와 협업하며 깨달은 사실은 지시 방식이 결과물의 질을 완전히 결정한다는 점이다. 과거의 코딩이 어떻게(How)를 작성하는 과정이었다면 에이전트 시대의 코딩은 무엇을(What) 달성할지 정의하는 과정으로 변하고 있다. 명령형 지시와 목표 지향적 지시의 차이를 이해하는 것이 에이전틱 엔지니어링의 핵심이다.
명령형 지시는 단계별 절차를 나열하는 방식이다. 예컨대 토스트 메시지가 겹쳐 보이는 문제를 해결해달라고 요청하는 식이다. 이 경우 에이전트는 눈앞의 현상만 해결하려 든다. z-index 값을 높이거나 위치를 살짝 조정하는 임시방편을 선택할 확률이 높다. 에이전트에게 추론의 여지를 주지 않고 특정 행동만 강요하기 때문에 발생하는 문제다.
반면 목표 지향적 지시는 최종적으로 도달해야 할 상태를 선언한다. 동시에 여러 토스트가 발생해도 화면에는 최대 세 개까지만 수직으로 쌓여야 하며 초과 시 오래된 것부터 제거되어야 한다는 성공 기준을 명시하는 방식이다. 이렇게 지시하면 에이전트는 내부적으로 큐 매니저를 설계하거나 상태 관리 로직을 도입하는 등 근본적인 해결책을 스스로 찾아낸다.
AI 에이전트의 내부 구조 자체가 목표를 향해 설계되어 있다는 점을 이해해야 한다. 에이전트는 목표를 받으면 계획을 세우고 실행한 뒤 결과를 관찰하며 성공 기준에 도달했는지 검증한다. 목표가 명확할수록 에이전트는 자율적으로 예외 상황을 처리하고 최적의 경로를 탐색한다. 규칙이 많아질수록 지시 이행 능력이 떨어지는 거대 언어 모델의 특성상 세부 규칙을 나열하기보다 성공 상태를 정의하는 편이 훨씬 효율적이다.
이 맥락에서 테스트 주도 개발(TDD)은 강력한 목표 정의 수단이 된다. 테스트 코드는 에이전트가 통과해야 할 이진화된 성공 기준을 제공한다. 지시문이 길어지면 에이전트의 컨텍스트가 흐트러질 수 있지만 테스트 스위트는 기준점을 명확히 유지해준다. 에이전트가 테스트를 통과시키기 위해 스스로 코드를 수정하고 검증하는 루프를 돌게 만드는 것이 핵심이다.
좋은 지시는 역할과 목표 그리고 제약 사항과 성공 기준의 구조를 갖춰야 한다. 정체성을 부여하고 달성하려는 상태를 선언형 문장으로 정의한다. 금지 사항을 명시한 뒤 완료되었다고 판단할 수 있는 구체적인 조건을 붙인다. ~해라가 아닌 ~한 상태여야 한다는 표현을 사용하는 것만으로도 에이전트의 추론 능력을 극대화할 수 있다.
개발자의 역할은 이제 코드를 한 줄씩 적는 타이피스트에서 시스템의 목표 상태를 설계하는 설계자로 옮겨가고 있다. 에이전트에게 무엇이 성공인지 명확히 알려줄수록 우리는 더 적은 노력으로 더 견고한 시스템을 얻게 된다.
AI 에이전트에게 명령 대신 목표를 던져야 하는 이유