mu 사용하기
목표 모드와 마무리
작업 프레임, /goal, 그리고 실행이 일찍 멈추거나, 옆길로 새거나, 제자리를 맴돌지 않게 하는 검사들.
긴 작업이 실패하는 가장 흔한 방식은 틀린 답이 아니라 일찍 멈추는 거예요. 모델은 거의 다 했어요라고 하는데, 테스트는 한 번도 돌지 않았어요. mu에는 이를 막는 장치가 여럿 있고, 모두 여러분이 실제로 원하는 것을 담은 하나의 기록, 작업 프레임 위에 있어요.
작업 프레임
작업 프레임에는 목표, 여러분이 원문 그대로 남긴 반드시 지킬 제약과 그 출처, 현재 하위 목표, 인수 조건이 들어 있어요. 인수 조건은 모델이 하나씩 체크하는 할 일 목록이기도 해요.
여러분이 보내는 메시지는 모두 한 번씩 판정돼요(task.frame). 새 작업인지, 새로운 반드시 지킬 제약인지, 정정인지, 새 하위 목표인지, 변화 없음인지요. 변화가 있을 때만 모델이 프레임을 다시 쓰기 때문에, 그냥 고마워 같은 말에는 비용이 들지 않아요. /frame은 현재 프레임을 보여 줘요. 프레임은 대화 트리를 따라가요. 분기하거나 되돌리면 그 브랜치의 프레임이 돌아와요.
목표 모드
/goal packages/api의 모든 테스트가 통과하고, README에 새 플래그가 문서화되어 있다
에이전트는 바로 시작하고 조건이 충족될 때까지 계속 일해요. /goal만 입력하면 목표, 그 상태, 마지막 확인의 이유, 다음 단계를 보여 주고, 목표가 없으면 조건을 물어요. /goal clear는 목표를 끝내요. 앱에서는 입력창에서 목표를 정하고, 목표 줄이 그 상태를 보여 줘요.
에이전트가 멈추려고 할 때마다 모델이 증거를 읽고 결정해요. 충족, 구체적인 다음 단계와 함께 계속, 또는 여러분이 필요함. 증거는 목표, 아직 열린 인수 조건, 편집한 뒤로 확인하지 않은 파일, 마지막 테스트·빌드·린트 실행과 그 결과, 실행에서 한 일, 마무리 메시지예요. 말보다 사실이 이겨요. 열린 인수 조건이나 검증하지 않은 편집이 있으면, 마무리 메시지가 뭐라고 하든 항상 아직이에요. Jev(goal.met)는 확인하는 모델이 답을 내지 못할 때만 답해요.
다음과 같을 때는 스스로 멈추고 그 이유를 알려 줘요.
| 이유 | 기본값 |
|---|---|
| 여러분이 필요함(여러분만 할 수 있는 선택) | |
| 여러분이 Esc를 누르거나, 모델 호출이 실패함 | |
| 도구 호출이 하나도 없이 끝난 실행이 연속으로 | 2 |
| 진전이 없다고 판정된 실행 | 2(처음에는 방향을 바꾸라고 알려 줌) |
| 여러분의 마지막 메시지 이후 이어 간 횟수 | 20 |
| 여러분의 마지막 메시지 이후 지난 시간(분) | 180 |
잠시 멈춘 뒤에는 여러분의 다음 메시지가 목표를 다시 이어 가요. 세션을 다시 열면 진행 중이던 목표는 일시 정지 상태로 돌아오고, 바로 실행되지는 않아요.
턴마다 끝에 하는 검사
목표가 없어도 턴마다 다음 검사를 해요.
- 완료 확인(
turn.completion). 모델이 다 했다고 하면, mu는 그걸 검증한 것이 있는지 물어요. 없으면 확인하라고 한 번 짚어 줘요. 예를 들면 테스트를 돌리라고요. - 중간에 멈춤(
turn.continue). 다음으로 테스트를 돌릴게요로 끝나고 실제로는 하지 않았거나, 이미 시킨 일인데 진행해도 되는지 물으며 끝난 실행은 하던 일로 돌려보내요. 메시지마다 최대 두 번이에요. 푸시, 게시, 삭제, 결제처럼 되돌리기 어렵거나 이 컴퓨터 밖까지 닿는 단계로는 절대 이렇게 밀지 않아요.
이탈과 막다른 길
- 이탈 감시(
turn.drift). 도구 호출 6번마다 mu는 작업이 아직 목표에 도움이 되는지 확인해요. 다른 실패인 제자리 맴돌기는 규칙이 잡아내요. 최근 8번 안에 같은 호출이 3번 나오면 맴도는 거예요. - 판정 기반 되감기(
turn.rewind). 에이전트가 제자리를 맴돌거나 명령 하나가 계속 실패하면, 판정기가 이 방법이 막다른 길인지 물어요. 진전 없는 막다른 길이 확실할 때만 턴의 체크포인트로 돌아가자고 제안하고, 무엇을 시도했고 왜 그만뒀는지 메모를 붙여요. 제안은 2분 동안 여러분을 기다리고, 답이 없으면 실행이 계속돼요. 스스로 되돌리는 일은 절대 없어요.
직접 되돌리기
/checkpoints는 현재 브랜치의 스냅샷을 최신순으로 나열해요. 번호, 턴, 시각, 그 뒤로 바뀐 파일 수가 나와요. /rewind는 가장 최근 것으로, /rewind 3은 3번으로 돌아가요. 먼저 어떤 파일이 되돌려지고, 삭제되고, 복원될지 보여 준 다음, 파일과 대화 중 무엇을 되돌릴지(또는 둘 다) 물어요. /rewind undo는 되돌리기를 취소해요. 자세한 내용은 권한과 안전에 있어요.