카페의 자료를 읽고 블로그에 쓰는 일은 두 탭을 오가야 한다. 마지막으로 읽은 탭을 현재 작성 위치로 삼으면 자료를 참고하러 갔다가 그곳에 글을 넣을 수 있다. 나는 읽기 위치와 작성 위치를 다른 역할로 기억하게 했다.
선택된 탭 하나로 전체 업무를 설명하지 않는다
사용자가 보는 활성 탭은 순간의 읽기 위치일 수 있다. 작업의 목적지는 그보다 오래 유지돼야 한다. 라우팅 자료는 sourceTabId와 destination, references를 별도 필드로 가진다. 참고 탭을 선택하는 행동이 destination 값을 자동으로 바꾸는 개념이 아니다.
이 구분이 없으면 에이전트는 페이지를 읽는 데 성공하고도 잘못된 편집기에 입력할 수 있다. 나는 자료 수집의 완료와 작성 대상 선택의 완료를 한 상태로 만들지 않았다. 읽은 순서가 글을 쓸 순서를 결정하지 않도록 업무 역할을 먼저 남겼다.
문장 안의 참고와 목적지를 나눠 읽는다
requestSites는 사이트 이름 주변의 표현을 보고 참고와 목적지 역할을 구별한다. “블로그에 대한 글”은 주제이고 “블로그에 작성”은 목적지다. 이미지나 영상의 최종 사용처도 지금 생성하는 서비스와 다를 수 있다. 알려진 표현을 가벼운 규칙으로 먼저 나눈다.
제목과 본문이 명시된 원고 구간은 라우팅 지시와 구별하는 처리도 있다. 원고 속 사이트 이름 때문에 작업 위치가 바뀌지 않도록 하려는 것이다. 이 규칙을 모든 자연어의 완전한 의미 파서라고 소개하지 않는다. 애매한 표현은 실제 요청과 필요한 페이지를 더 읽어 판단해야 한다.
정확한 탭 ID도 참고 역할이면 참고다
요청에 탭 ID가 있어도 그 내용을 참고하라는 역할이면 작성 대상으로 올리지 않는다. 관련 시험은 정확한 ChatGPT 탭을 참고로 주고 현재 카페에 쓰는 요청에서 destination은 카페에 남는지 확인한다. 구체적인 번호가 있다는 사실보다 그 번호의 역할이 중요하다.
references는 목적지와 다른 탭만 모으고 수를 제한한다. 실제로 필요한 것만 역할 목록에 남기려는 선택이다. 참고가 많으면 자동으로 모든 본문을 복사하는 구조도 아니다. 번호·제목·정리된 주소 같은 메타데이터로 연결하고 실제 자료 읽기는 필요한 시점에 한다.
주소 정보도 실행용과 설명용을 구별한다
routeTab은 실제 주소를 로컬 비교에 쓰되 역할 메타데이터에는 origin과 pathname을 중심으로 남긴다. 세션 쿼리와 hash를 그대로 설명 자료로 내보내지 않는다. 실행할 때 필요한 전체 주소와 대화에 보여 주는 식별 자료는 목적이 다르다.
제목과 계정 표시명도 실제 로그인 성공을 증명하지는 않는다. 참고 계정과 작성 계정을 혼동하지 않게 역할에 표시하되 실제 인증 상태가 필요하면 페이지에서 확인해야 한다. 메타데이터 정리가 모든 민감 정보를 자동 익명화한다는 뜻도 아니다. 공개할 자료는 별도로 검토한다.
과거 확인에서도 쓰지 않은 원고는 쓰지 않았다고 남긴다
당시 카페와 블로그 동시 탭 시험은 카페를 읽으며 블로그 편집기를 작성 대상으로 유지하고 한 문장 초안을 응답했다. 새 탭과 원고 변경은 없었다. 이것은 역할 유지의 근거이며 블로그에 실제 입력·발행한 성공으로 바꾸지 않는다.
현재는 외부 대화가 MCP context와 명시한 작업 범위를 사용한다. 옛 입력창의 역할 카드와 내장 CLI 동작을 지금 설치앱의 같은 UI로 단정하지 않는다. 이 글은 라우팅 함수·시험과 역사 보고를 읽어 만든 설명이다. 현재 서비스에 새 자료를 보내거나 원고를 변경한 검수는 아니다.
여러 자료로 일하는 회사 도구에도 적용한다
계약서와 거래처 자료를 읽어 보고서를 만드는 업무도 비슷하다. 참고 문서를 열었다고 최종 저장 폴더와 수신 계정이 따라 바뀌면 안 된다. 자료의 위치와 결과가 남을 위치를 다른 값으로 보관하면 중간 이동을 더 안전하게 설명할 수 있다.
나는 북극성에서 탭의 수보다 역할을 먼저 정했다. 에이전트가 여러 곳을 편하게 읽으면서도 최종 결과를 어디에 남겨야 하는지 잊지 않게 하려는 것이다. 아래 합성 문맥 모듈에서도 참고와 목적지를 분리한 실제 로컬 실행 기록을 볼 수 있으며 실제 계정 제어는 포함하지 않는다.