Introduction
에이전트의 범위가 잘 지정되고, 잘 지시되고, 명확한 가드레일 내에서 작동하면 토큰 효율성이 자연스럽게 향상됩니다. 고품질 에이전트는 적은 수의 시도에서 작업을 완료하고, 더 적은 재작업으로 더 명확한 워크플로를 따르고, 비용이 많이 드는 디버깅 및 수정 주기를 방지합니다.
이 문서에서는 에이전트 품질과 AI credits 효율성을 모두 개선하기 위한 5가지 전략을 간략하게 설명합니다.
1. 올바른 작업에 적합한 모델 선택
모델 선택은 에이전트 품질과 비용 효율성을 모두 개선하는 가장 빠른 방법 중 하나이지만 종종 간과됩니다. 일반적인 패턴은 기본적으로 모든 작업에 가장 적합한 모델로 설정되지만 결과를 개선하지 않으면서 토큰 사용량이 증가하는 경우가 많습니다. 일부 실행이 많은 시나리오에서는 모델이 작업을 과도하게 생각하거나 불필요한 변경을 도입할 수 있으므로 추론 모델을 과도하게 사용하면 품질이 저하됩니다.
현재 작업에 따라 모델을 선택합니다. Copilot 자동 모델 선택 는 실시간 시스템 상태 및 모델 성능에 따라 이 작업을 자동으로 처리할 수도 있습니다.
- 추론 모델: 아키텍처 결정, 복잡한 디버깅, 시스템 디자인 및 심층 분석이 필요한 작업에 가장 적합합니다.
- 중간 계층 모델: 계획이 이미 명확하고 에이전트를 효율적으로 실행해야 하는 경우에 가장 적합합니다.
- 더 가벼운 모델: 리팩터링, 서식 지정, 설명서 업데이트 및 기타 일상적인 범위가 잘 지정된 변경에 가장 적합합니다.
작업에 필요한 만큼의 기능을 사용하고 필요한 만큼 적게 사용합니다. 작업과 일치하는 기능은 결과를 향상시키고 대규모 비용을 직접 제어합니다.
모델 및 작업 유형별 분석은 다른 작업을 사용하여 AI 모델 비교을 참조하세요.
2. 프롬프트에 명확한 지침 제공
프롬프트는 에이전트가 수행하는 모든 작업에 대한 방향을 설정합니다. 프롬프트가 모호한 경우 에이전트는 의도를 유추하고, 더 많은 컨텍스트를 탐색하고, 판단 호출을 해야 합니다. 이는 종종 재시도, 범위 드리프트 및 불필요한 토큰 사용으로 이어집니다.
잘 구성된 프롬프트에는 다음 세 가지 특성이 있습니다.
- 명확한 작업 정의입니다. "이 문제 해결" 대신 문제가 무엇인지, 발생하는 위치 및 예상 결과가 어떻게 표시되는지 설명합니다.
- 미리 제공된 관련 컨텍스트입니다. 어떤 파일, 서비스, 로그, 오류 또는 입력이 중요한지 이미 알고 있는 경우 이를 포함합니다. 이렇게 하면 에이전트가 불필요한 탐색을 방지할 수 있습니다.
- 명확한 중지 조건입니다. 에이전트에게 "완료"가 무엇을 의미하는지 알려주세요. 중지 지점이 없으면 에이전트는 추가 커밋을 추가하거나 관련 없는 코드를 리팩터링하거나 범위를 확장하여 목표를 초과하여 계속할 수 있습니다.
이 추가된 지침은 토큰 사용량을 의미 있는 것으로 증가시키지는 않지만 올바른 결과에 도달하는 데 필요한 에이전트 실행 수를 크게 줄일 수 있습니다.
프롬프트 엔지니어링 모범 사례는 GitHub Copilot 채팅에 대한 프롬프트 엔지니어링을 참조하세요.
3. 연구, 계획, 구현
에이전트를 효과적으로 작업하는 가장 큰 변화 중 하나는 단일 세션에서 모든 작업을 수행하는 것에서 벗어나는 것입니다. 연구, 계획 및 구현이 모두 함께 수행되면 컨텍스트가 빠르게 증가하고 관련없는 정보가 누적되고 에이전트 품질이 시간이 지남에 따라 저하됩니다.
작업을 명확한 단계로 나누기:
- 연구: 에이전트를 사용하여 코드베이스를 탐색하고, 관련 파일을 식별하고, 종속성을 이해합니다.
- 계획: 변경하기 전에 상세하고 구조화된 계획 또는 사양을 만듭니다. 여기서 추론 모델이 가장 중요합니다.
- 구현: 포커스가 있는 컨텍스트 및 실행에 적합한 모델을 사용하여 계획에 대해 실행합니다.
단계 간에 새 세션을 시작하면 불필요한 컨텍스트를 전달할 수 없습니다. 적절한 범위 내에서 완료된 단일 세션은 캐싱을 활용합니다. 이전 단계에서 컨텍스트를 전달하면 토큰 사용량이 증가하고 바이어스가 도입되며 에이전트의 명확성이 감소할 수 있습니다. 각 단계는 필요한 것만 사용하여 작동해야 합니다. 세션 범위를 효과적으로 지정하는 방법에 대한 지침은 GitHub Copilot 사용하여 작업에 대한 모범 사례을 참조하세요.
4. 결정적 가드레일 추가
에이전트는 비결정적이며, 특히 다단계 워크플로에서 매번 올바르지 않습니다. 가드레일이 없으면 작은 오류가 빠르게 복잡해질 수 있습니다. 에이전트는 잘못된 출력을 기반으로 빌드하고, 목표에서 더 멀리 표류하며, 디버깅을 더 비싸고 시간이 많이 걸립니다.
결정적 컨트롤은 명확한 통과/실패 신호를 도입합니다.
- 단위 테스트는 에이전트의 변경 내용이 예상된 동작을 생성했는지 확인합니다.
- Linter는 구조와 일관성을 적용하여 서식 문제, 스타일 드리프트 및 피할 수 있는 정리 작업을 방지합니다.
- 보안 스캔은 되돌리기 더 어려워지기 전에 위험한 패턴을 초기에 탐지합니다.
이러한 컨트롤은 함께 긴밀한 피드백 루프를 만듭니다. 에이전트는 변경, 테스트, 규칙 또는 검사를 수행하며 에이전트는 계속 진행하기 전에 조정합니다. 이렇게 하면 토큰 낭비의 가장 큰 동인 중 하나인 잘못된 변경의 긴 체인을 방지할 수 있습니다.
이러한 가드레일에 투자하는 팀은 재시도 횟수가 줄어들고, 작업 완료 속도가 빨라지고, 에이전트 동작이 더 예측 가능합니다. 개별 단계에서 약간 더 많은 토큰을 미리 사용하는 경우에도 총 토큰 사용량을 줄이는 경우가 많습니다.
5. 간결하게 유지 copilot-instructions.md
영구 지침은 에이전트 상호 작용 간에 일관성을 향상하지만 해당 값은 전적으로 작성 방법에 따라 달라집니다.
copilot-instructions.md 리포지토리 수준의 파일은 이 지침을 인코딩하는 가장 직접적인 방법입니다. 개인 및 조직 수준 지침은 더 광범위한 일관성을 위해 위에 계층화할 수 있습니다.
가장 좋은 지침은 짧고 구체적이며 실제 관찰된 에이전트 동작에 근거합니다. 좋은 소리는 들지만 시스템에 적용되지 않는 일반적인 모범 사례는 아닙니다.
포함할 내용:
- 필수 프레임워크, 라이브러리 또는 디자인 패턴
- 에이전트가 반복하는 것으로 알려진 실수
- '간결하게' 또는 '코드만 출력'과 같은 출력 요구사항
- 에이전트가 따라야 하는 팀별 규칙
- 빌드, 테스트 및 린트 명령
피해야 할 사항:
- 긴 일반 설명서
- 실제 시스템을 반영하지 않는 AI 생성 지침
- 일회성 기본 설정 또는 거의 사용되지 않는 세부 정보
- 컨텍스트를 시끄럽게 만드는 오버로드된 명령
코드베이스, 아키텍처, 표준 및 워크플로가 진화함에 따라 지침을 업데이트된 상태로 유지합니다. 이러한 지침은 모든 실행 시 에이전트의 컨텍스트에 포함되기 때문에 작은 개선 사항조차도 반복되는 오류를 줄이고 시간이 지남에 따라 낭비되는 토큰 사용량을 줄일 수 있습니다.
자세한 내용은 GitHub Copilot 대한 리포지토리 사용자 지정 지침 추가을(를) 참조하세요.