Pi 에이전트 루프 프롬프트 개선과 워크 로거 구현

26년 05월 20일

루프가 자꾸 질문으로 끊긴다

이날은 내가 쓰는 코딩 에이전트 환경을 커스터마이징한 날이었다.

자율 루프가 자꾸 질문으로 끊기는 문제를 막았다.

세션 작업 기록을 자동으로 옵시디언에 남기게 만들었다.

브라우저 자동화도 붙였다.

자율 루프는 메인 에이전트가 목표를 향해 작업하고 검증 에이전트가 결과를 확인하는 반복 구조다.

검증이 실패하면 다시 고치고 전부 통과하면 끝난다.

문제는 에이전트가 자꾸 루프를 빠져나와서 사용자한테 질문하는 거였다.

자율 루프의 의미가 없다.

사람이 확인하지 않아도 끝까지 가야 하는데, 중간에 “이거 어떻게 할까요”라고 묻는 거다.

XML 태그 구조

프롬프트를 XML 태그 구조로 바꿨다.

루프 규칙을 담는 태그랑 사용자 목표를 담는 태그를 분리했다.

규칙은 실행마다 같고 목표는 실행마다 다르다.

이걸 분리하니까 프롬프트가 명확해졌다.

그리고 모든 후속 프롬프트를 하나의 구조로 통일했다.

루프 시작, 루프 계속, 검증 실패, 루프 재개 전부 같은 구조를 쓴다.

프롬프트가 일관되니까 에이전트가 헷갈리지 않는다.

질문 도구 3중 차단

핵심은 질문 도구를 막는 거였다.

에이전트가 사용자한테 질문하는 도구를 3중으로 차단했다.

첫 번째는 상수로 도구를 차단한다.

두 번째는 활성화 제어 함수로 켜고 끈다.

세 번째는 이벤트 핸들러로 런타임에 막는다.

이렇게 3중으로 두면 하나를 우회해도 다음이 잡는다.

벨트와 서스펜더다.

안전망을 여러 개 두는 거다.

루프 초기화 버그

그리고 루프 초기화 버그도 잡았다.

세션이 시작될 때 루프 상태를 복원하는데, 지워진 상태까지 복원하는 문제가 있었다.

초기화 마커를 추가해서 지워진 상태에서는 복원을 멈추게 만들었다.

워크 로거 구현

두 번째는 세션 작업 기록을 자동으로 남기는 워크 로거다.

에이전트가 세션에서 작업하면, 그 기록이 날아간다.

세션이 끝나면 대화 기록이 사라지니까. 근데 작업 기록을 나중에 보고 싶을 때가 있다.

뭘 했는지, 어떻게 했는지. 그래서 자동으로 기록을 남기게 만들었다.

옵시디언에 한국어 작업 로그

세션이 종료될 때, 구조화된 한국어 작업 로그를 옵시디언에 자동으로 생성한다.

프로젝트 정보, 작업 내용, 접근 방식, 결과, 검증 내용을 구조화된 형태로 남긴다.

기존에 다른 에이전트 환경에서 쓰던 워크 로거 패턴을 가져왔다.

거기서 검증된 형식이랑 출력 위치를 그대로 썼다.

옵시디언 수집함에 타임스탬프 파일로 남긴다.

이 로그는 나중에 위키 정리 파이프라인의 입력이 된다.

세션 기록이 위키 문서로 정제되는 흐름의 시작점이다.

Playwright 스킬 통합

세 번째는 브라우저 자동화를 붙인 거다.

에이전트한테 브라우저 제어 능력이 없었다.

근데 가끔 브라우저가 필요하다.

예를 들어 인증이 필요한 페이지에서 파일을 내려받거나, 화면을 확인하거나. 그래서 Playwright MCP를 연동했다.

브라우저 자동화 도구를 에이전트한테 제공하는 거다.

인증된 브라우저 세션의 쿠키를 활용할 수 있어서 인증이 필요한 페이지에 접근할 수 있다.

임시 파일 경로 통일

마지막으로 임시 파일 경로를 통일했다.

에이전트 설정 파일이 임시 파일을 시스템 임시 디렉토리에 쓰고 있었다.

이건 작업 공간 밖이다.

격리가 안 되고 정리도 어렵다.

도커 환경에서도 문제가 된다.

그래서 작업 공간 안으로 경로를 바꿨다.

4개 파일에서 시스템 임시 디렉토리를 작업 공간 상대 경로로 변경했다.

작업 공간 안에 있으니까 격리되고 정리도 쉽다.

마무리

이날은 내가 쓰는 도구를 더 자율적으로 만든 날이었다.

루프가 질문으로 끊기는 문제가 가장 크다.

자율 루프는 사람이 개입하지 않고 끝까지 가야 하는데, 중간에 질문하면 의미가 없다.

3중 차단으로 막으니까, 루프가 끝까지 간다.

“물어보지 말고 알아서 해”를 강제하는 거다.

워크 로거도 중요했다.

작업 기록이 자동으로 남으니까, 나중에 “그때 뭘 했더라”를 찾을 수 있다.

세션이 끝나면 기록이 날아가는데, 로거가 자동으로 남겨주니까 걱정이 안 된다.

이런 자동화가 쌓이면 도구가 점점 더 자율적으로 된다.

사람이 개입해야 하는 부분을 하나씩 없애는 거다.

질문 차단, 기록 자동화, 브라우저 자동화까지. 전부 사람이 하던 일을 기계한테 넘기는 작업이다.