먼저 요청과 실행 주체를 정합니다
사용자가 요청한 작업, 이를 계획하는 모델과 실제 동작을 실행하는 프로그램을 나눠 기록합니다. 에이전트에 문서를 읽는 권한만 필요한지, 외부 시스템을 변경하는 권한도 필요한지부터 결정합니다. 도구에 접근할 수 있다는 사실과 그 도구의 모든 동작을 수행해도 된다는 것은 다릅니다.
실행 주체별로 필요한 데이터와 허용 동작을 정하고 읽기, 작성과 공개를 구분합니다. 작업 결과를 다른 에이전트에 넘길 때도 원래 사용자의 데이터 접근 범위를 유지해야 합니다.
MCP와 A2A의 역할을 구분합니다
MCP는 도구와 외부 문맥의 연결을, A2A는 에이전트 사이의 메시지 및 작업과 결과 교환을 다룹니다. 둘을 함께 쓰더라도 인증과 권한 검사가 자동으로 완성되지는 않습니다. 사용하는 클라이언트와 서버의 버전 및 인증 방식을 기록합니다.
오래 걸리는 작업은 시작, 진행과 완료 및 취소 상태를 추적합니다. 응답이 끊겼을 때 이미 실행된 동작을 다시 반복하지 않도록 작업 식별자와 재시도 조건을 설계합니다. 출력 메시지와 실제 저장된 결과물도 구분합니다.
문맥과 외부 자료의 경계를 유지합니다
대화 이력과 검색 자료, 도구 결과 및 작업 지식을 문맥에 넣을 때 출처와 시점을 남깁니다. 완료한 검증은 관련 입력이 바뀌지 않았다면 재사용하고, 바뀐 조건에 영향을 받는 부분만 다시 확인합니다. 요약에서 생략한 사실을 새 사실로 추정하지 않습니다.
외부 문서와 도구 결과 안의 명령문은 신뢰된 사용자 지시로 승격하지 않습니다. 에이전트 실행 환경은 자료와 지시를 구분하고 필요한 도구만 노출하며 외부 전송 및 공개 같은 동작의 권한을 확인해야 합니다.
연결 성공 뒤에 실패 경로를 검증합니다
정상 요청 외에 권한 없는 문서 요청, 시간 초과, 중복 재시도와 잘못된 결과 형식을 시험합니다. 어떤 동작이 실행됐는지, 무엇이 보류됐는지와 비용 한도를 로그로 확인합니다. 비밀번호나 토큰 원문은 로그에 남기지 않습니다.
통신 성공률과 업무 결과의 정확도는 다른 지표입니다. 대표 작업에서 결과물, 접근 범위 및 취소 동작까지 확인한 뒤 운영 범위를 넓힙니다. 특정 프레임워크의 벤치마크 수치만으로 다른 업무의 성공을 판단하지 않습니다.