늦은 밤, 개발자의 터미널 화면.

CI/CD 파이프라인은 초록색으로 빛나지만 정작 코드를 실행하면 컴파일 에러가 쏟아진다. 에이전트가 스스로 작업을 끝냈다고 선언했지만 실제로는 덜 끝낸 상황이다.

이런 허탈한 풍경을 바꾸려는 시도가 시작됐다.

/goals 기능과 Haiku 평가 모델의 작동 방식

Anthropic(앤스로픽)은 Claude Code(터미널 기반 코딩 에이전트)에 /goals 기능을 도입했다. 코딩 에이전트는 기본적으로 파일을 읽고, 명령어를 실행하고, 코드를 수정한 뒤 작업 완료 여부를 확인하는 루프를 반복한다. /goals는 이 루프 위에 두 번째 층을 쌓은 구조다. 사용자가 `/goal all tests in test/auth pass, and the lint step is clean`처럼 구체적인 완료 조건을 프롬프트로 설정하면, 에이전트는 매 단계가 끝날 때마다 평가 모델의 검토를 받는다. 평가 모델로는 기본적으로 Haiku(Anthropic의 작고 빠른 모델)가 사용되며, 이 모델은 오직 작업이 완료되었는지 여부만 판단한다. 조건이 충족되지 않으면 에이전트는 멈추지 않고 계속 작업을 수행하며, 조건이 충족된 순간에만 대화 기록에 로그를 남기고 목표를 해제한다.

수동 설정에서 네이티브 평가 체계로의 전환

기존의 에이전트 루프는 모델 하나가 작업과 판단을 동시에 수행했다. OpenAI는 모델이 스스로 종료 시점을 결정하게 두되 사용자가 외부 평가자를 붙이는 방식을 취한다. LangGraph(LLM 기반 워크플로우 구축 프레임워크)나 Google ADK(에이전트 개발 키트)는 독립적인 평가가 가능하지만, 개발자가 직접 비평 노드를 정의하고 종료 로직과 관찰 가능성 설정을 짜야 하는 번거로움이 있었다. Google ADK의 경우 LoopAgent(반복 작업을 수행하는 에이전트)를 배포할 수 있지만 그 로직을 설계하는 것은 전적으로 개발자의 몫이었다. 반면 Claude Code는 평가 모델을 기본값으로 내장해 별도의 인프라 구축 없이도 작업자와 판사 역할을 완전히 분리했다.

결정론적 작업의 신뢰도 상승과 관찰 가능성

개발자가 바로 체감하는 변화는 더 이상 에이전트의 자기 과신에 속지 않아도 된다는 점이다. Anthropic은 성공적인 조건 설정을 위해 테스트 결과나 빌드 종료 코드, 파일 개수 같은 측정 가능한 종료 상태와 npm test exits 0 같은 구체적인 확인 방법, 그리고 다른 테스트 파일이 수정되지 않아야 한다는 제약 조건을 명시할 것을 권장한다. 이러한 구조는 Devin(자율형 AI 소프트웨어 엔지니어)이나 SWE-agent(소프트웨어 엔지니어링 작업을 수행하는 에이전트) 같은 최신 추론 시스템들이 지향하는 방향과 일치한다. 특히 마이그레이션이나 깨진 테스트 세트 수정처럼 결과가 명확한 결정론적 작업에서 효과가 크다. 기업 입장에서는 별도의 관찰 플랫폼이나 커스텀 로그 없이도 에이전트의 작업 과정을 더 명확하게 감사하고 추적할 수 있게 된다.

이제 AI 에이전트의 핵심 경쟁력은 모델의 지능이 아니라, 누가 더 정교하게 끝을 정의하고 검증하느냐의 싸움으로 옮겨간다.