Recipes

NVIDIA SkillEvaluator를 위한 프라이빗 MCP 실행 증명 및 동작 신호

README 링크에서 발견 · today

Security, Science & HardwareSoftware & DevOps

비공개 스킬 실행을 위한 옵트인 MCP 프로브 및 마스킹된 증거 사이드카

What they did

작성자는 #264에서 런타임 전제 조건이 병합된 후 NVIDIA SkillEvaluator 저장소의 main에서 분할 계획 항목 20–21을 구현했습니다. 이 작업을 통해 프라이빗 실행에서 선언된 MCP 서버, 성공적인 호스트 초기화 및 도구 목록 조회, 확인된 에이전트 로딩, 성공적으로 상관된 에이전트 호출을 구분할 수 있게 되었습니다. 이들은 엔드포인트 정책 검사, 고정 주소, 범위 지정 환경 권한 부여, 공유 데드라인, 제한된 신원 인코딩 응답을 갖춘 옵트인 HTTP/SSE 프로브를 추가했습니다. 기본 실행은 호스트 프로브를 수행하지 않으며 호스트 stdio 명령은 절대 실행되지 않습니다. 이들은 논리적 시행을 한 번 정규화하고 보상, 트레이스, 네이티브 센서스, 시작 증거를 재사용하여 자식 소유권, 권위 있는 다단계 토폴로지, 물리적 시도 신원, 기록된 사용량 폴백, 알 수 없는 로드 상태, 명시적 증거 누락 결과를 보존했습니다. 데이터셋 및 서버 작성 패턴은 컴파일 전에 검사됩니다. 계수된 경계는 100으로 제한되고, 중첩된 계수 확장은 거부되며, 지원되지 않는 반복 문법은 보수적으로 거부됩니다. 잘못된 스키마 값과 하네스 로그가 더 이상 유효한 증거를 폐기할 수 없으며, 공유 진단 정제는 자격 증명 마스킹 전에 제어 문자를 제거합니다. 이들은 main의 소스 가드, 네이티브 MCP 정책, 베이스라인 전용 동작, 설정 전용 재시도를 보존했으며, 재시도 전에 네이티브, 옵저버, 사이드카 상태를 재설정했습니다. 여기에는 jobs 디렉터리를 생성하기 전에 실패하는 시도도 포함됩니다. 폐기된 병합 시기의 배관과 중복된 커밋 바운드 Gitleaks 예외가 제거되었고, 제한된 마스킹 증거 사이드카가 영속화되었으며, 이미 해결된 정규식 의존성이 기본 패키지에 명시적으로 선언되었습니다.

How it went

영향을 받은 evidence, transport, lifecycle, usage 및 child-graph 범위에서 475개 테스트가 통과했습니다. 최종 패턴 변경은 별도로 43개의 targeted regression과 260개의 signal 테스트를 통과했습니다. Regression은 수정 전에 리뷰 지적 사항을 재현하며, 거부된 확장 패턴은 compiler trap을 사용하므로 악성 패턴이 컴파일되지 않으며, 독립 재리뷰도 통과했습니다. Ruff, formatting 및 diff 검사가 통과했고, 전체 도달 가능한 이력에 대한 Gitleaks 스캔이 main에서 상속된 정확한 synthetic-fixture 예외와 함께 통과했습니다. Merge 호환성 검사는 258개 통과, 1개 skip으로 통과했습니다. Wheel과 소스 아카이브가 성공적으로 빌드되었고, 오프라인 base-only 설치에서 checkout, wheel, 소스 아카이브 및 설치 전반에 걸쳐 230개의 패키징된 파일이 바이트 단위로 일치함을 검증했으며, isolated import, compile guard, redaction 및 세 개의 설치된 CLI help 명령이 통과했습니다. 네 개의 새 리뷰 스레드 모두 수정 사항을 push하고 기술 답변을 게시하여 resolved 상태입니다.

Worth knowing

테스트는 저장된 아티팩트와 로컬/가짜 전송을 사용하며, 실제 프로바이더, 네이티브 에이전트 바이너리, 외부 MCP 서비스는 실행되지 않았습니다. 이 PR은 비공개 증거 수집만 제공합니다. 런타임 보고서 표시와 조립된 워크플로 수용은 항목 24로 남아 있고, 공개 CLI/구성 활성화는 항목 25로 남아 있으므로 비공개 활성화 플래그는 여전히 없습니다. #322는 이 브랜치에서 비교와 정적 보고서 뷰를 구축합니다. CI 상태는 여기서 단정하지 않고 PR 검사에서 계속 표시됩니다.

Wiring

#264 런타임 선행 조건 이후 작업은 main에 있습니다. 순서: (1) 엔드포인트 정책, 고정 주소, 범위 지정 환경 권한 부여, 공유 데드라인, 경계가 설정된 identity 인코딩 응답을 갖춘 HTTP/SSE 프로브용 옵트인 전송 계층으로, 기본 실행은 프로브 없이, stdio는 실행되지 않은 채로 둡니다. (2) 한 번의 패스에서 보상, 트레이스, 네이티브 센서스, 시작 증거를 공급하는 트라이얼 정규화. (3) 거부된 확장에 대한 컴파일러 트랩을 갖춘 사전 컴파일 패턴 검사. (4) 자격 증명 리댁션 이전의 진단 정리. (5) jobs 디렉터리 이전 실패를 포함한 네이티브, 옵저버, 사이드카 상태의 재시도 리셋. (6) 경계가 설정된 리댁션된 증거 사이드카 영속화. (7) 기본 패키지의 명시적 regex 의존성. 검증은 저장소의 테스트 스위트, Ruff, 포매팅, diff 검사, 도달 가능한 히스토리에 대한 Gitleaks, 그리고 wheel/소스 아카이브 빌드와 오프라인 base 전용 설치 검사를 통해 수행됩니다. 공개 CLI/구성 활성화는 항목 25로, 보고서 표시는 항목 24로 연기됩니다.

Try it yourself

I'll start by exploring the repository structure to understand the existing private runtime and how to layer the new functionality on top.

<||DSML|| calls>
<||DSML|| invoke name="bash">
<||DSML|| parameter name="command" string="true">cd /repo 2>/dev/null && pwd && ls -la || echo "no /repo"</||DSML|| parameter>
</||DSML|| invoke>
</||DSML|| calls>

Source

English

Tools in this stack