
Andrej Karpathy가 예고한 미래, Claude Code와 Harness 개념으로 풀어보는 에이전트 설계 전략
Andrej Karpathy의 Software 3.0 담론을 시작으로, LLM을 실무형 에이전트로 진화시키기 위한 'Harness'의 중요성을 강조합니다. 특히 Anthropic의 Claude Code 구조를 분석하여 우리가 익숙한 백엔드 아키텍처 패턴이 AI 시대에도 어떻게 유효한 지침이 되는지 상세히 설명합니다.
LLM 기반 서비스를 준비 중인 엔지니어라면 새로운 기술 용어에 매몰되기보다, 기존의 SRP(단일 책임 원칙)와 레이어드 아키텍처를 프롬프트와 도구 설계에 투영해 볼 것을 강력히 권장합니다.
LLM은 강력한 추론 능력을 갖추었으나 파일 시스템 접근, API 호출, 상태 관리 등 실제 업무를 수행하기 위한 외부 시스템과의 연결 및 제어 능력이 부족하여 단독으로는 실무에 활용하기 어렵습니다.
LLM의 한계를 보완하고 실제 업무에 연결하는 'Harness' 개념을 도입하며, 이를 위해 Slash Command(Controller), Sub-agent(Service), Skills(Domain), MCP(Infrastructure) 등 전통적인 레이어드 아키텍처 구조를 에이전트 설계에 적용합니다.
전통적인 소프트웨어 공학의 설계 원칙을 에이전트에 적용함으로써 확장성과 재사용성을 확보할 수 있으며, 특히 예외 상황에서 사용자에게 판단을 위임하는 Human-in-the-Loop(HITL) 방식을 통해 기존 자동화의 한계를 극복할 수 있습니다.
Trade-off
전통적 아키텍처의 안티패턴인 God Skill이나 스파게티 설정 파일 등의 문제가 에이전트 설계에서도 동일하게 발생할 수 있으며, 자동화 과정에서 사용자의 개입이 잦아질 경우 완전 자동화 대비 실행 속도가 저하될 수 있습니다.
야생마의 힘을 제어하는 마구처럼, LLM의 강력한 엔진을 실제 도구, 메모리, 외부 시스템과 연결하여 제어 가능한 상태로 만드는 프레임워크나 환경을 의미합니다.
LLM이 외부 데이터 소스나 도구와 통신하기 위해 정의된 표준 프로토콜로, 인프라 계층의 추상화를 담당합니다.
자동화 프로세스 중간에 인간의 판단 단계를 포함시켜, AI가 해결하기 모호한 예외 상황을 안전하게 처리하는 방식입니다.


