메뉴를 열고 닫는 동안 화면은 계속 바뀌지만 업무는 제자리일 수 있다. 반대로 같은 상태를 여러 번 읽어야 정상인 대기도 있다. 북극성의 초기 에이전트 개발에서는 반복을 무조건 차단하기보다 다시 검토할 신호를 남겼다. 현재 남은 코드와 제거된 실행 경로도 구별해 그 선택을 설명한다.

호출 이름만 세면 정상 작업도 반복처럼 보인다

같은 browser.observe라도 다른 페이지를 읽는 경우와 같은 메뉴를 맴도는 경우는 다르다. BehaviorMonitor는 동작 지문과 관찰 지문을 따로 보관한다. 관찰에는 탭·URL·문서와 프레임의 범위, 본문·표·매체·컨트롤 상태를 반영한다. snapshot ID가 매번 새롭다는 이유만으로 진행했다고 보지 않는다.

ref가 있는 동작은 최근 관찰에서 같은 컨트롤을 찾을 수 있을 때 역할·이름 같은 설명으로 동작 지문을 만든다. 이 설명은 반복 비교용이며 다음 클릭에 쓸 실행 ref가 아니다. 입력값의 대소문자까지 임의로 정규화해 서로 다른 입력을 같은 행동으로 묶는 방식도 쓰지 않는다. 반복 판정용 요약과 실제 조작 권한은 역할이 다르다.

같은 화면뿐 아니라 열기·닫기 순환도 본다

최근 동작과 화면 지문은 각각 제한된 길이만 남긴다. 동일 동작이 여러 번 나오고 화면 재방문도 반복되는 경우나 연속 정체가 쌓이는 경우에 signal을 만든다. 소스의 기준은 동작 반복 다섯 번과 관찰 재방문 세 번을 함께 보거나 연속 정체 다섯 번을 보는 식이다. 관찰이 없는 반복에는 별도 조건이 적용된다.

메뉴 열림과 닫힘이 번갈아 나오면 매번 DOM이 달라질 수 있다. 그렇다고 모두 업무 진행으로 인정하면 끝없이 순환할 수 있다. 관련 시험은 이 두 화면이 반복될 때도 신호가 생기는지 본다. 다만 이 횟수가 모든 사이트에서 최적의 정확도를 가진 검출 기준으로 검증된 것은 아니다. 작고 설명 가능한 보조 규칙이다.

수동 대기와 정상 페이지 이동은 구별한다

waitFor·verifyOutcome·verifyField는 passive로 분류해 동작 반복 목록에 더하지 않는다. 새로운 페이지로 진행하는 읽기와 서로 다른 탭의 읽기도 같은 정체로 몰지 않도록 범위가 들어간다. 원본 시험에는 정상 페이지 이동, 다른 탭, 수동 결과 대기가 신호를 만들지 않는 사례가 있다.

신호에는 반복과 정체 수치, 다시 관찰하라는 설명이 남는다. 입력 원문이나 민감한 컨트롤 이름을 진단 문장에 그대로 내보내지 않는 시험도 있다. 그렇다고 모든 내부 메모리에 아무 원문도 없다는 주장으로 넓히지는 않는다. 공개된 신호에 무엇이 포함되는지와 내부 관찰 보관의 범위는 별개로 읽어야 한다.

참고 신호는 실행 차단이나 완료 증거가 아니다

runAgent는 다음 모델 문맥에 loopSignal을 붙일 수 있지만 signal이 있다고 바로 실패나 완료를 반환하지 않는다. 정상 반복이라고 판단하면 계속할 수 있다. 단위시험도 신호를 받은 뒤 done까지 진행하는 흐름을 본다. 반복 경고가 실제 목표 달성을 대신 판정해서는 안 된다.

화면 변경 요약도 같은 원칙이다. 추가·삭제·상태 변화는 알려 주지만 조작에는 최신 호스트 ref가 필요하다. 바뀌었다는 설명만으로 저장 성공이나 새 제출 권한을 만들지 않는다. 특히 이미 완료했거나 결과가 불확실한 전송은 경고를 없애기 위해 다시 보내면 안 된다. 기존 중지·인증·결과 검증 경계가 우선이다.

현재 제품의 연결 상태를 과거 설명과 나눈다

이 기능은 내부 에이전트를 운용하던 0.1.117의 구현과 시험에 근거한다. 현재 bootstrap의 내부 모델 gateway는 제거 오류를 반환하고 외부 MCP call은 programCall을 거쳐 broker로 간다. 남아 있는 runAgent·BehaviorMonitor 소스만으로 현재 모든 외부 에이전트 응답에 신호가 붙는다고 설명하지 않는다.

이번에는 코드를 읽었고 원래 브라우저나 모델을 새로 실행하지 않았다. 당시 보고서도 반복 감지 자체가 모델 호출을 줄인 효과를 따로 측정하지 않았다고 명시한다. 공유 사용량 원장 역시 그 효과를 만들어 내는 검출기가 아니다. 나는 보조 신호의 설계 가치와 실제 연결·효과가 확인된 범위를 함께 남기는 방식으로 이 역사를 공개한다.