코딩 에이전트가 세상을 지배하게 되면서 개발자들은 일자리를 뺏길까 봐 걱정이 많다. 코딩 실력과 관계없이 막연한 두려움을 느끼고 있으며, AI 도구를 어떻게 활용해야 할지 고민하고 있다.
클로드 코드의 헤비 유저로서 다양한 시도를 통해 얻은 경험을 공유하고, 하네스 엔지니어링에 대한 오해를 풀고 개념을 정리하고자 한다. 같은 AI 도구를 사용해도 결과물의 차이가 발생하는 이유를 분석하고, 모델을 돌리는 환경의 문제점을 파악하는 것이 핵심이다.
모델은 똑같이 제공되지만, 모델을 돌리는 환경에 따라 결과가 달라진다.
하네스는 에이전트를 구성하는 요소로서, 기존의 툴 개념을 확장한 것이다.
하네스는 에이전트가 작업을 수행하는 데 필요한 모든 요소들을 포괄하는 개념이다.
엔지니어의 주요 업무가 코드 로직 작성에서 환경, 의도, 피드백 등을 루프형으로 설계하는 설계자의 역할로 넘어갔다.
원래 하네스는 마부가 말에게 씌워주는 장비를 뜻하며, 고비, 안장, 굴레 등으로 구성된다. AI 에이전트에서의 하네스 엔지니어링도 이와 유사하게 방향 지시(프롬프트), 실행 능력 부여(도구), 제약(가드레일) 등을 통해 에이전트를 제어하는 것을 의미한다.
기존에는 사람이 직접 요청을 작성하고 모델의 결과를 확인하며 문제점을 수정하는 방식을 사용했다. 이는 사람이 지치게 만들므로 자동화를 통해 개선해야 한다.
최종 목표를 설정하고 중간 검증 기준을 설정하여 에이전트가 스스로 코드베이스를 탐색, 수정, 생성하도록 한다. 검증에 실패하면 재시도하고, 목표 달성 시 사람에게 검토를 요청한다.
하네스를 구축하면 자동화된 개선 루프를 구축할 수 있다.
하네스를 잘 구축하기 위한 세 가지 축은 컨텍스트, 도구, 평가이다.
컨텍스트 윈도우는 제한되어 있으므로 가장 좋은 정보를 엄선해야 한다. 최근에는 컨텍스트 윈도우가 확장되었지만, 300K를 넘어가면 결과물의 효용성이 떨어진다.
과도한 컨텍스트로 인해 모델이 잘못된 답변을 내는 현상을 컨텍스트 스터핑이라고 한다. 토큰이 늘어나면 정확도가 떨어지는데, 이는 트랜스포머 구조의 특성 때문이다. 코덱스나 클로드 코드는 컨텍스트가 95% 차면 자동 압축을 해준다.
레포지토리 루트에 에이전트.md 파일을 두고 프로젝트의 간략한 내용(목차)을 담는다. 세부 내용은 각각의 문서에 작성한다.
실행 계획 문서를 꼭 남겨서 나중에 회고할 때 활용해야 한다.
바이패스 모드 설정은 지양하고, 승인 기반 루프를 통해 작업이 승인 하에 이루어진다는 것을 명시적으로 인지시켜야 한다.
엔트로픽의 사례처럼 10번째 승인 후에는 검토 없이 클릭만 하는 경우가 발생할 수 있다. 클로드 코드의 전체 소스 코드가 유출된 사고를 통해 잘 만들어진 하네스의 중요성을 깨달아야 한다.
코드베이스는 느낌으로 개선하는 것이 아니라, 평가를 통해 개선해야 한다. 결과물과 프로세스 모두 품질을 측정해야 한다.
작업 평가 방법 정의, 반복 실행, 채점, 실행 과정 기록, 결과 집계
모델은 자신이 낸 결과물을 잘 평가하는 경향이 있으므로, 코드 작성 세션 내에서 바로 평가를 시키면 편향이 발생한다.
유저가 스펙 입력 시 날리지 맵만 활용하고, 에이전트 하네스 컨트롤은 코드로 정의한다. 도구 동작 결과는 베리피케이션 또는 이밸류에이션을 통해 테스트하고, 모든 과정에 대해 모니터링해야 한다.
테스트 코드를 만족시키는 코드를 짤 때 루프를 돌리는 과정이 이밸류에이션과 지속적인 개선 과정과 유사하다.
코드 작성에 강점이 있지만, 계획에는 약하다. 티켓이 없으면 작업하지 않는 특징이 있다.
계획 작성, 컨텍스트 탐색, 작업 검증 능력 우수. 루프 컨트롤 및 오케스트레이션 영역에 강하다.
클로드로 계획을 짜고, 코덱스가 계획을 검토/수정 후 클로드가 코딩하는 방식이 효과적이다.
같은 모델이 만든 것을 같은 모델이 검증하지 않도록 교차 검증한다.
코드 작성 능력 부족으로 잘 사용하지 않는다.
편향 방지, 교차 검증, 서로 다른 관점 제공, 수정자와 검증자 분리
오픈 AI에서 제공하는 플러그인을 활용하여 클로드 코드에서 코덱스를 호출하여 사용한다.
클로드와 코덱스의 장점을 활용하여 하이브리드 방식으로 운영한다.
탐색 과정에서는 클로드와 코덱스 모두 활용, 구현은 클로드 우선
구현 계획이 충분히 의도를 담고 있는지 확인하기 위해 사람에게 역으로 물어보도록 한다.
운영 지식, 코딩 관련 내용 등을 공유 가능한 아티팩트로 만들어 공유한다.
회사/팀의 규칙을 모아둔 레포를 기대 서브 모듈로 연결하여 새로운 프로젝트에 적용한다.
REST API 베스트 케이스 등 스킬을 공유하여 팀원들이 활용하도록 한다.
린트, 테스트 스크립트, CI 등을 기존 스크립트에서 크게 변경하지 않는 선에서 활용한다.
지켜야 하는 규칙은 문서로 남기지 않고, 훅을 통해 강제 실행되도록 한다.
사람, 클로드, 코덱스의 관점을 융합하여 최적의 결과 도출
멀티 에이전트가 싱글 에이전트보다 작업 효율성이 높다.
에이전트를 평가할 때 하네스와 모델의 결합을 함께 평가한다.
어떤 도구를 쓰든 측정해야 평가가 가능하고, 평가해야 개선이 가능하다.
랭퓨즈 등 LM 옵스 플랫폼을 통해 클로드 코드, 코덱스 사용 기록을 수집하고 주기적으로 평가한다.
코드를 작성하는 사람이 아닌, 에이전트를 잘 다루는 사람이 될 것이다. 에이전트를 잘 다룬다는 것은 환경을 잘 설계하고 유지하는 것을 의미한다.
반복적인 업무를 가벼운 문서로 정리하고, 팀에 나만의 하네스를 만들어보는 시도를 시작해보자.