피드로 돌아가기
Harness engineering: a self-evolving feature loop in 312 lines of bash
Dev.toDev.to
AI/ML

312줄 Bash 기반의 File-system State Machine을 통한 AI 기능 구현 루프 구축

Harness engineering: a self-evolving feature loop in 312 lines of bash

Tufail Khan2026년 4월 30일7intermediate

Context

단일 LLM 호출 기반 워크플로우에서 발생하는 무한 루프 및 무분별한 Token 소모 문제 분석. 모델의 단순 추론 결과에 의존하는 구조적 한계로 인한 배포 신뢰성 결여 해결 필요.

Technical Solution

  • File-system 기반 State Machine 설계로 DB 없이 .done 마커를 통한 작업 상태 관리
  • Tail 기반의 Windowed Context 제공을 통해 최신 200라인의 로그와 공통 학습 파일(learnings.md)을 Prompt에 주입
  • 모델의 할루시네이션 및 무한 루프 방지를 위해 로그 크기 변화량(32 bytes)을 감지하는 Mechanical Floor(Circuit Breaker) 도입
  • 단일 단계 수행-검증-로그 기록의 6단계 Task List 기반 Prompting으로 거대 커밋 및 검증 누락 방지
  • 4가지 세분화된 Halt Code 설계를 통해 외부 요인(Quota)과 내부 요인(Blocked)을 구분한 인간 개입 시점 정의
  • Zero Install 환경 구축을 위해 Python 대신 Bash Coreutils(timeout, tail, stat)를 활용한 경량 런너 구현

- AI 에이전트 설계 시 복잡한 프레임워크보다 단순한 파일 기반 상태 관리 검토 - 모델의 자가 진단 한계를 보완하기 위한 하드웨어적/기계적 가드레일(예: 바이트 크기 기반 타임아웃) 설정 - LLM의 기억력 한계를 극복하기 위해 기능별 로그와 전역 학습 로그를 분리하여 Context Window 최적화 - '한 번에 하나만 수행'하는 제약 조건을 Prompt에 명시하여 검증 가능성 확보

원문 읽기