Introduction
고무 오리는 GitHub Copilot 명령 줄 인터페이스 (CLI)에 내장된 에이전트로, 건설적인 비평가 역할을 합니다. 작업을 수행하는 동안, 세션의 주 CLI 에이전트는 검토를 위해 현재 진행 중인 계획, 디자인, 구현 또는 테스트를 고무 오리 에이전트에 전달할 수 있습니다. 고무 오리 에이전트는 사각지대, 디자인상의 결점 및 중요한 문제를 찾아 구체적이고 실행 가능한 피드백으로 보고합니다. Copilot 그런 다음 계속하기 전에 해당 비판을 고려합니다.
고무 오리 에이전트는 파일 자체를 변경하지 않고 제안된 변경 내용을 검토하도록 설계되었습니다. 세션의 주 에이전트는 피드백으로 수행할 작업을 결정합니다.
참고
고무 오리 에이전트는 현재 주 에이전트가 Claude 또는 GPT 큰 언어 모델을 사용하는 경우에만 사용할 수 있습니다.
왜 "고무 오리"?
이 이름은 코드 또는 제안된 솔루션을 설명하는 고무 더킹(rubber ducking )이라는 소프트웨어 엔지니어링 분야의 오랜 기술에서 비롯되었으며, 일반적으로 고무 오리라는 무생물 개체에 사용됩니다. 아이디어는 당신의 생각을 명확히함으로써, 당신은 종종 실수, 오해, 또는 논리적 결함을 발견한다는 것입니다.
고무 오리 에이전트는 유사한 아이디어를 Copilot에 적용합니다. 비사소한 변경을 진행하기 전에 Copilot이/가 중지하고 현재의 생각을 명확히 표현하며 독립적인 검토자가 이를 면밀히 검토할 수 있습니다. 실제 고무 오리와는 달리, 이 오리는 대답합니다: Copilot가 행동할 수 있는 구조화된 비판을 반환합니다.
다른 모델의 두 번째 의견
고무 오리 에이전트의 주요 디자인 기능은 세션을 구동하는 것과는 다른 AI 모델에서 의도적으로 실행된다는 것입니다. GitHub Copilot 명령 줄 인터페이스 (CLI) 는 현재 세션 모델과 대조되는 비평가 모델을 선택합니다. 예를 들어, 세션에서 클로드 모델을 사용하기로 선택한 경우, '고무 오리 에이전트'는 비평가로 GPT 모델을 사용할 수 있습니다. 코파일럿 CLI 유용한 비판을 제공하기 위해 적합한 모델을 사용할 수있는 경우에만 고무 오리 에이전트를 사용합니다.
다른 모델을 사용하는 이점은 비평가가 작업을 생성한 모델과 동일한 사각지대, 바이어스 또는 실패 모드를 공유할 가능성이 적다는 것입니다. 동일한 문제에 대한 두 가지 독립적인 관점을 효과적으로 얻을 수 있습니다.
적절한 비평가 모델은 현재 세션 모델에 따라 고무 오리 에이전트가 호출될 때마다 자동으로 선택됩니다. 세션 중간에 세션 모델을 전환하는 경우(예 /model : 명령을 사용하여) 고무 오리 에이전트의 다음 호출은 새 세션 모델에 대한 적절한 비평가를 선택합니다.
고무 오리 에이전트가 하는 일
고무 오리 에이전트가 참조될 때 다음을 수행합니다.
-
**컨텍스트에서 작업을 읽습니다.** 코드, 디자인 또는 제안이 수행하려는 작업, 시스템의 나머지 부분과 통합되는 방법 및 존재하는 가정을 이해합니다. -
**실제 문제를 식별합니다.** 버그, 논리 오류, 보안 취약성, 디자인 결함, 패턴 방지, 성능 병목 상태 및 작업의 성공에 진정으로 중요한 기타 문제를 찾습니다. -
**특정 수정 사항을 권장합니다.** 발견한 각 문제에 대해 문제, 영향 및 구체적인 제안된 변경 사항을 명시합니다. - 피드백을 심각도별로 분류합니다.
- 작업이 성공하려면 차단 문제를 수정해야 합니다.
- 비차단 문제는 품질을 개선하기 위해 수정해야 하지만 성공을 막지는 못합니다.
- 제안 - 결과에 실제 영향을 주는 우선 순위가 낮은 개선 사항입니다.
-
**중요한 결과만 보고합니다.** 문제가 발견되지 않으면 명시적으로 말합니다. 고무 오리 에이전트는 스타일, 서식 지정, 명명 규칙, 메모의 문법, 사소한 리팩터 또는 실제 문제를 방지하지 않는 모범 사례에 대해 언급하지 않도록 구성됩니다.
고무 오리 에이전트는 표준 탐색 도구를 통해 코드베이스에 대한 읽기 전용 액세스 권한을 가집니다. 파일을 편집하거나 환경을 변경하는 명령을 실행할 수 없습니다.
고무 오리 에이전트를 상담 하는 경우 Copilot
고무 오리 에이전트가 활성화되면 Copilot 단지 막혔을 때뿐만 아니라 중요한 순간에도 상담하도록 지시됩니다. 일반적인 상황은 다음과 같습니다.
- 중요한 변경을 계획한 후 구현하기 전입니다. 이것은 디자인 결함을 잡을 수있는 가장 높은 레버리지 순간이며 코스 수정은 여전히 저렴합니다.
- 구현 중간에, 복잡한 작업에서의 사각지대를 점검합니다.
- 테스트를 작성한 후 테스트 적용 범위가 포괄적이고 동작이 실제로 원래 요청을 충족하는지 확인합니다.
- 반복된 오류나 예기치 않은 결과가 발생할 경우 Copilot 동일한 방법을 재시도하지 않고 문제에 대한 독립적인 분석을 통해 문제를 이해하려 합니다.
작고 잘 이해되는 변경의 Copilot 경우 일반적으로 고무 오리 에이전트를 건너뜁니다.
Copilot가 고무 오리 에이전트를 참조할 때, 결과 비판을 그대로 반복하지 않고 타임라인 출력에 요약합니다. 예를 들어, "비판은 X 주위의 내 계획의 사각지대를 지적했기에, 나는 그것을 해결하기 위해 내 계획을 업데이트했다."
고무 오리 에이전트를 수동으로 호출
일반적으로 코파일럿 CLI가 자동으로 러버덕 에이전트를 호출합니다. 당신은 아무것도 할 필요가 없습니다. 타임라인 출력은 메인 에이전트가 고무 오리 비평을 받는 시기를 보여줍니다. 그러나 CLI에서 고무 오리 에이전트를 사용하지 않는 경우도 있습니다. 예를 들어, 변경 내용이 비판을 보증할 만큼 광범위하지 않다고 결정할 수 있습니다.
자연어 프롬프트를 사용하여 두 번째 의견을 명시적으로 요청할 Copilot 수 있습니다. 예를 들어 작업 계획을 생성하도록 요청한 Copilot 후 다음과 같은 프롬프트를 입력할 수 있습니다.
Rubber duck your plan.
변경 작업이 일부 진행 중일 때, 다음과 같은 메시지를 표시할 수 있습니다.
Get a critique of the changes you've made so far.
고무 오리 에이전트 사용의 이점
-
문제를 조기에 발견합니다. 실패하는 대부분의 비사소한 작업에는 계획 단계에서 비판이 포착할 수 있었던 문제가 있습니다. 코드를 작성하기 전에 피드백을 받는 것이 프로세스의 뒷부분에서 문제를 해결하는 것이 좋습니다.
참고
고무 오리 에이전트를 참조하는 것은 별도 모델에서 추가적인 추론 패스를 수행하므로 지연 시간이 약간 늘어나고 추가적인 모델 사용을 포함합니다. 앞의 시간과 리소스를 조금 더 소비하면 문제를 조기에 포착하고 작업을 완료하는 데 실패한 시도 횟수를 줄여 전체 시간과 모델 사용량을 절약할 수 있다는 것입니다.
-
단일 모델 사각지대를 줄입니다. 에이전트는 다른 패밀리의 모델을 사용하므로 원래 작업을 생성한 것과 동일한 추론을 다시 실행하는 대신 진정으로 다른 관점을 제공합니다.
-
복잡한 변경의 품질을 향상시킵니다. 아키텍처 의사 결정, 다중 파일 변경 및 익숙하지 않은 코드베이스는 모두 접근 방식을 커밋하기 전에 Copilot 두 번째 의견의 이점을 누릴 수 있습니다.
-
간단한 작업을 수행할 때 방해하지 않습니다. Copilot 작업이 사소하지 않은 경우에만 고무 오리 에이전트를 참조하므로, 이를 통해 빠른 편집과 명백한 수정이 지연되지 않습니다.