AI 코딩 에이전트에게 복잡한 기능 구현을 맡기고 몇 시간 뒤 돌아왔을 때, 테스트는 통과했지만 정작 요구사항과는 엉뚱한 결과물이 나와 있는 장면을 마주한다. 세션이 끊기면 지금까지 쌓아온 맥락이 사라져 처음부터 다시 설명해야 하거나, 에이전트가 스스로 짠 코드를 스스로 검증하며 오류를 지나치는 상황이 반복된다.
Tenet의 자율 실행 구조와 기술 스펙
Tenet은 장시간 자율 실행이 가능한 AI 코딩 에이전트 하네스(에이전트가 안정적으로 작동하도록 돕는 제어 프레임워크)다. 전체 동작 흐름은 요구사항을 구체화하는 인터뷰에서 시작해 기술 조사, 아키텍처 다이어그램 및 UI 목업 제작으로 이어진다. 이후 구현 스펙과 테스트 검증 하네스, 시나리오를 문서로 고정하며, 전체 작업을 DAG(방향성이 있고 사이클이 없는 그래프) 형태로 쪼개어 독립적인 작업들을 병렬로 실행한다.
각 작업의 완료 여부를 판단하기 위해 3중 크리틱(평가자) 파이프라인을 거친다. 구현이 스펙 의도와 맞는지 확인하는 코드 크리틱, 현재 테스트가 해당 작업을 검증하기에 충분한지 판단하는 테스트 크리틱, 그리고 Playwright(웹 브라우저 자동화 테스트 도구)를 이용해 실제 사용자 관점에서 동작을 확인하는 e2e 평가가 그것이다. 주목할 점은 이 평가 과정이 작성자의 맥락과 분리된 신선한 컨텍스트(Fresh Context)에서 이루어진다는 사실이다.
시스템의 지속성을 위해 .tenet/ 디렉토리에 interview, spec, harness, visuals, knowledge, journal, steer, status, SQLite state 등 모든 의사결정과 작업 흔적을 남긴다. 기술적으로는 Claude Code(Anthropic의 코딩 전용 AI 도구), OpenCode(오픈소스 기반 코딩 인터페이스), Codex(OpenAI의 초기 코딩 특화 모델) 어댑터를 지원하며, MCP(AI 모델과 외부 도구를 연결하는 표준 규격) 서버와 CLI(명령어 입력 기반 인터페이스)를 통해 작동한다. 상태 관리는 SQLite와 WAL(데이터 변경 사항을 먼저 로그에 기록하는 방식) 기반의 영속성 상태를 사용하며, 중단된 작업을 복구하는 orphan job recovery 기능을 포함한다. 이를 통해 사람의 개입 없이 6시간 넘게 실행되어 즉시 사용 가능한 결과물을 도출하는 성능을 확인했다.
세션형 에이전트에서 상태 기반 엔지니어링으로의 전환
기존의 AI 코딩 도구들이 채팅 기반의 세션형 구조를 가졌다면, Tenet은 상태 기반의 기록 구조를 취한다. 일반적인 에이전트는 자신이 작성한 코드를 스스로 검토하는 경향이 있어 오류를 쉽게 간과한다. 반면 Tenet은 평가 단계를 완전히 분리함으로써 자기 승인 편향을 억제하고 검증의 객관성을 확보했다. 특히 테스트의 존재 여부보다 테스트가 실제로 제대로 검증하고 있는지를 따지는 구조를 설계했다.
작업 도중 방향을 수정하는 방식에서도 차이가 난다. 기존에는 방향을 바꾸려면 전체 맥락을 다시 설명하거나 세션을 재시작해야 했다. 그러나 Tenet은 steer message(방향 수정 메시지)를 던지면 이를 저장해 두었다가 이후 관련 작업에서 자동으로 반영하게 한다. 루프를 끊지 않고도 필요한 단계에서 수정 사항을 픽업하는 비동기적 제어가 가능하다는 의미다.
결과적으로 Tenet은 단순한 코드 생성기가 아니라 프리랜서나 외주 개발자에게 업무를 맡길 때 필요한 문서화와 검증, 핸드오프 구조를 AI 에이전트에 이식한 형태다. .tenet/ 폴더에 쌓이는 기록들은 일회성 대화 로그가 아니라 다음 작업에서도 참고할 수 있는 개발 지식 베이스가 된다. 이는 AI 코딩의 단위를 단일 함수나 파일 수준에서 전체 프로젝트의 생명주기 관리 수준으로 확장한 시도라고 분석된다.
AI 코딩의 성패는 모델의 지능이 아니라, 작업의 원자성을 보장하고 검증하는 하네스의 정교함에서 결정된다.




