

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 컴퓨터 사용 에이전트 구축 및 평가 모범 사례
<a name="agent-access-best-practices"></a>

컴퓨터 사용 에이전트는 루프에서 작동합니다. 즉, 화면을 보고, 행동하고, 다시 살펴봅니다. 다음 방법은 더 적은 단계와 비용으로 작업을 안정적으로 완료하는 에이전트를 구축하는 데 도움이 됩니다. 워크플로 및 모델 패밀리에 적용됩니다. 결과는 워크플로, 모델, 프롬프트 및 환경에 따라 다르므로 자체 작업에서 각 변경 사항을 측정합니다.

## 작업 루프 설계
<a name="agent-access-best-practices-loop"></a>

에이전트의 대부분의 노력은 창 간 이동이 아니라 화면을 읽고 입력하는 데 사용됩니다. 탐색을 조정하기 전에 읽기 오류와 단계 수를 줄입니다.
+ **에이전트에 픽셀 대신 텍스트를 지정합니다**. 스크린샷에서 이름, 이메일 주소, 계정 번호와 같은 정확한 값을 읽는 것은 일반적인 오류 원인입니다. 데이터에 텍스트 복사본이 있는 경우 도구를 통해 제공합니다. 테이블 또는 열의 값의 경우 텍스트 계층이 열을 혼합할 수 있으므로 에이전트가 이미지를 볼 수도 있습니다.
+ **스크린샷 앞에 지침을 넣습니다**. 에이전트가 무언가를 찾아 클릭해야 하는 경우 에이전트가 무엇을 찾아야 하는지 알 수 있도록 요청의 이미지 앞에 지침을 배치합니다.
+ **알려진 레이아웃에서 시작합니다**. 에이전트가 작업하기 전에 키보드 바로 가기로 각 애플리케이션을 최대화합니다. 일관된 레이아웃을 사용하면 반복 흐름을 보다 예측 가능하게 만들고 스크롤을 줄일 수 있습니다.
+ **키보드를 선호**합니다. 키보드 바로 가기를 사용하여 스크롤하고, 창을 최대화하고, 메뉴를 엽니다. 특히 작거나 hard-to-hit 제어의 경우 더욱 그렇습니다. 바로 가기는 화면에서 컨트롤을 찾는 데 의존하지 않습니다.
+ **각 작업을 확인합니다**. 사용 중인 애플리케이션은 키 입력을 무시할 수 있습니다. 각 작업 후 잠시 기다렸다가 최근 스크린샷 몇 개를 보고 에이전트가 효과가 없는 작업을 반복하도록 합니다.
+ **안전할 때만 Tab을 사용합니다**. Tab 키는 일반 텍스트 필드 전체에서 잘 작동합니다. 자동 채우기, 드롭다운 또는 날짜 선택기가 있는 필드와 같이 필드가 포커스를 잃을 때 애플리케이션이 반응하는 필드를 클릭합니다.
+ **전환합니다. 다시 시작하지 마세요**. 실행 중인 애플리케이션 간에 이동하려면 작업 표시줄 또는 애플리케이션 전환기를 사용합니다. 애플리케이션을 다시 시작하면 단계가 추가됩니다.
+ **현재 화면에서 컨트롤을 찾습니다**. 이전 화면에서 복사한 좌표는 창이 이동할 때 무효가 됩니다. 최대화된 고정 레이아웃에서만 고정 좌표를 사용합니다.
+ 아무것**도 변경하지 않는 작업을 감지**합니다. 한 행의 두 작업이 화면을 변경하지 않고 그대로 두면 에이전트 변경 접근 방식을 사용합니다. 실행이 한 작업에 단계 예산을 소비하지 않도록 반복 스크롤을 제한합니다.
+ **배치 작업은 주의해야 합니다**. 배치는 마지막 작업 후에만 에이전트를 표시하므로 에이전트가 읽어야 하는 한 화면에서 배치를 종료합니다. 배치 처리를 사용하면 전체 워크플로에 의존하기 전에 시간을 절약할 수 있는지 측정합니다. 일부 모델은 이미지가 포함된 오류 결과를 거부하므로 배치 오류를 텍스트로만 반환합니다.

## 모델 패밀리에 맞게 조정
<a name="agent-access-best-practices-models"></a>

모델 패밀리는 데스크톱을 다르게 운영합니다. 에이전트 루프를 한 번 빌드하고 각 패밀리의 스킬과 설정을 조정합니다. 한 패밀리에 맞게 조정된 스킬은 일반적으로 다른 패밀리와 함께 작동하기 전에 수정이 필요합니다.
+ **각 변경 후 새 스크린샷을 전송합니다**. 일부 모델은 문제를 알리지 않고 이전 스크린샷에 대한 작업을 계속합니다. 화면을 변경하는 모든 작업 후에 새 스크린샷을 첨부합니다.
+ **좌표를 명시적으로 처리합니다**. 일부 모델은 픽셀 좌표를 보고하고, 다른 모델은 픽셀로 변환해야 하는 정규화된 그리드의 좌표를 보고합니다. 프롬프트에서 화면 크기와 유효한 좌표 범위를 설명하고 각 클릭이 화면 내에 있는지 확인합니다.
+ **모델의 스크린샷 크기를 조정합니다**. 스크린샷 해상도를 모델의 이미지 한도와 일치시킵니다. 스크린샷을 축소하는 경우 클릭하기 전에 모델의 좌표를 다시 조정합니다.
+ **입력하기 전에 필드를 지웁니다**. 일부 모델에서는 값을 대체하는 대신를 입력하면 필드에 추가됩니다. 필드에 초점을 맞추고 모두 선택하고 삭제한 다음 한 번 입력하고 값을 다시 읽습니다.
+ **병렬 도구 호출을 제어**합니다. 모델이 프롬프트에 관계없이 하나의 메시지로 여러 작업을 전송하는 경우 클라이언트에서 병렬 도구 호출을 끕니다. 배치 작업을 순서대로 실행하고 첫 번째 실패 시 중지합니다.
+ **기본적으로 추론 노력을 낮게 유지합니다**. 간단한 작업은 적은 노력으로 성공하는 경우가 많으며, 노력이 높을수록 정확도가 향상되지 않고 비용이 추가됩니다. 분기 또는 다단계 작업에 대한 노력을 높입니다.
+ **프롬프트 길이를 모델과 일치시킵니다**. 강력한 모델은 짧은 목표에서 작동할 수 있습니다. 모델이 필요한 경우에만 규칙을 추가하고 모델이 개선되면 프롬프트를 줄입니다.
+ **턴 사이에 추론을 유지합니다**. 프레임워크 또는 호환성 API를 통해 추론 모델을 호출하는 경우 모델의 추론이 한 차례에서 다음 차례로 전달되는지 확인합니다. 루프를 삭제하면 멈출 수 있습니다.
+ **완료된 작업당 비용을 비교**합니다. 모델은 단계당 사용하는 토큰 수에 따라 다르므로 토큰당 가격만으로는 비용을 예측할 수 없습니다. 모델을 사용하려는 도구 표면과 비교합니다.

## 기술 및 프롬프트 작성
<a name="agent-access-best-practices-skills"></a>

워크플로에 대해 에이전트에게 제공하는 지침인 스킬은 정확도와 비용에 큰 영향을 미칩니다. 잘못 설계된 일반 프롬프트는 프롬프트가 없는 것보다 성능이 떨어질 수 있습니다.
+ **몇 가지 작업 규칙을 포함합니다**. 예를 들어, 읽은 내용을 기억하고, 진행하기 전에 확인하고, 두 번의 시도가 실패한 후 접근 방식을 변경하고, 애플리케이션이 응답할 때까지 기다립니다.
+ **프로시저가 아닌 사실을 제공합니다**. 현재 모델은 step-by-step 지침이 덜 필요합니다. 스킬을 짧게 유지하고 파일 경로, 필드 형식, 애플리케이션 쿼크와 같이 에이전트가 검색할 수 없는 사실을 포함합니다.
+ **고값 필드를 정의합니다**. 식별자 및 계정 번호와 같은 필드의 정확한 형식을 설명하고 에이전트가 입력하기 전에 각 값을 해당 형식과 비교하여 확인하도록 합니다.
+ **확인이 필요하고 대상을 지정합니다**. 에이전트는 완전한 신뢰도로 잘못된 값을 입력할 수 있으므로 에이전트의 판단에 따라 확인을 남기지 마세요. 값을 입력한 직후 각 값을 한 번 확인하고 저장하기 전에 몇 가지 고값 필드를 다시 읽습니다. 모든 필드를 완전히 다시 확인하면 정확도를 높이지 않고 단계가 추가됩니다.
+ **오류를 수정합니다**. 값이 잘못된 경우 전체 양식을 지우고 다시 입력하는 대신 에이전트가 해당 필드를 수정하도록 합니다.
+ **하위 에이전트에게 깔끔하게 전달합니다**. 하위 에이전트에게 전체 지침을 제공하고 작업을 확인하는 대신 끝에 보고서를 요청합니다.
+ **자체 실행에서 기술을 개선합니다**. 각 실행의 스크린샷, 작업 및 추론을 검토하고, 한 번에 하나의 규칙을 변경하고, 모든 실행이 여전히 성공하는 경우에만 변경 사항을 유지합니다. 실패한 실행이 중지되는 위치를 확인할 수 있도록 워크플로를 마일스톤으로 나눕니다.

## 컨텍스트 및 비용 관리
<a name="agent-access-best-practices-cost"></a>

비용은 주로 모델이 수행하는 컨텍스트와 실행의 단계 수에 따라 달라집니다. 각 호출은 기록을 재전송하므로 모든 추가 단계는 마지막 단계보다 비용이 많이 듭니다. 비용을 낮추는 가장 효과적인 방법은 가장 적은 단계에서 작업을 완료하는 모델과 기술을 선택하는 것입니다.
+ **작업 간 컨텍스트를 재설정**합니다. 깨끗한 컨텍스트와 알려진 화면 상태에서 각 독립 작업을 시작합니다.
+ **최신 스크린샷만 보관합니다**. 마지막 세 개와 같은 최근 스크린샷을 유지하고 이전 이미지를 짧은 텍스트 메모로 바꿉니다. 에이전트가 손실된 내용을 보기 위해 뒤로 스크롤하기 때문에 스크린샷을 하나만 유지하면 비용이 증가할 수 있습니다.
+ **에이전트에게 제거한 내용을 알립니다**. 이전 스크린샷은 의도적으로 제거된다고 설명하고 값이 화면에 표시되는 동안 에이전트가 응답에 각 값을 기록하도록 합니다.

프롬프트 캐싱은 페이로드를 신중하게 빌드하는 경우에만 비용을 크게 낮출 수 있습니다.
+ 대화 끝에만를 추가합니다. 캐싱은 처음부터 페이로드와 일치하므로 이전 턴으로 편집하면 캐시가 무효화됩니다.
+ 캐시된 접두사가 제거 사이에 동일하게 유지되도록 모든 턴이 아닌 배치로 이전 스크린샷을 제거합니다.
+ 차례마다 대화를 다시 빌드하지 마세요. 매 턴마다 변경되는 페이로드는 캐싱을 사용하지 않을 때보다 비용이 많이 들 수 있습니다.
+ 캐싱이 작동하는지 확인합니다. 모델은 캐싱을 위한 최소 접두사 크기를 가지며, 더 작은 접두사는 캐시되지 않고 오류를 반환하지 않습니다.

## 측정 결과
<a name="agent-access-best-practices-measure"></a>
+ **충분한 시도를 실행합니다**. 결과는 동일한 실행마다 다릅니다. 한 버전이 더 낫다는 결론을 내리기 전에 여러 번 시도를 실행하고, 스프레드를 보고하고, 페어링된 테스트와 같은 통계 테스트를 사용합니다.
+ **모든 토큰 유형에서 비용을 계산**합니다. 새 입력, 출력, 캐시 쓰기 및 캐시 읽기를 포함합니다. 공급자는 캐시 토큰을 다르게 보고하므로 각 토큰이 어떻게 계산되는지 확인합니다. 비용과 함께 토큰을 보고합니다.
+ **점수를 사용하여 비용을 보고합니다**. 비용은 증가하지만 변경 사항은 동일한 성공률을 유지할 수 있습니다. 성공률, 비용 및 단계를 함께 보고하고 실행 통과 및 실패 비용을 별도로 유지합니다.
+ **단계 제한을 신중하게 설정합니다**. 워크플로에 필요한 한도 이상으로 제한을 설정하고 워크플로에 도달한 실행 수를 보고합니다. 단계가 부족한 실행에는 잘못된 결과를 생성한 실행과 다른 수정이 필요합니다. 또한 시간 및 비용 한도를 설정하고 취소를 지원합니다.
+ **한 번에 하나의 사물을 변경합니다**. 각 변경의 영향을 확인할 수 있도록 다른 모든 항목을 수정한 상태로 유지합니다.
+ **원인별로 실패를 정렬합니다**. 화면 읽기 실패와 작업 실패를 구분합니다. 스킬은 에이전트의 작동 방식을 개선할 수 있지만 모델이 얼마나 잘 읽는지는 개선할 수 없습니다. 개선 사항이 있는 규칙을 적용하기 전에 에이전트가 규칙을 준수했는지 확인합니다.
+ **에이전트의 보고서가 아닌 결과의 등급을 매깁니다**. 모든 필드가 일치해야 하는 자동 평가자를 사용하여 저장된 레코드와 최종 화면을 확인하고 음성 컨트롤을 포함합니다. 에이전트는 작업이 완료되지 않은 경우 완료로 보고할 수 있습니다.
+ **테스트 설정을 확인합니다**. 평가자 또는 환경의 오류는 에이전트 실패처럼 보일 수 있습니다. 실패한 실행을 추적할 수 있도록 모든 프롬프트, 스크린샷 및 작업을 로깅합니다. 재현할 수 없는 결과는 게시하지 마십시오.

## 감독 및 안전
<a name="agent-access-best-practices-safety"></a>
+ **루프에 사람을 둡니다**. 결제, 삭제 또는 제출과 같은 결과적이거나 hard-to-reverse 작업 전에 확인이 필요합니다. 민감한 데이터를 양식에 입력하는 것은 전송으로 취급합니다. 배치의 각 작업 전에 필요한 확인을 확인하고, 화면이 변경되었을 수 있으므로 사람이 승인한 후 대상을 다시 찾습니다.
+ **에이전트의 질문을 사람에게 전달합니다**. 화면이 프로덕션 시스템을 제안하는 경우와 같이 일부 모델은 중지하고 자체적으로 확인을 요청합니다. 루프가 질문을 사람에게 표시할 수 있는지 확인합니다.
+ **에이전트가 도달할 수 있는 범위를 제한**합니다. 최소한의 권한으로 격리된 환경에서 에이전트를 실행합니다. 가능한 경우 로그인 자격 증명을 에이전트의 손이 닿는 곳에 두고 도메인의 허용 목록에 대한 인터넷 액세스를 제한합니다.
+ **화면 콘텐츠를 신뢰할 수 없는 것으로 취급합니다**. 페이지 또는 문서의 텍스트는 권한을 부여하거나 작업을 변경할 수 없습니다. 화면의 지침이 에이전트를 리디렉션하도록 하지 마십시오.
+ **에이전트를 열린 웹에 두지 마십시오**. 에이전트가 CAPTCHAs 및 신뢰할 수 없는 콘텐츠가 발생할 수 있는 웹을 검색하도록 하는 대신 필요한 정보를 스킬에 넣습니다.

## 관련 리소스
<a name="agent-access-best-practices-resources"></a>

모델 공급자는 모델에 대한 컴퓨터 사용 지침을 게시합니다. 현재 설명서에서는 지원되는 화면 크기, 좌표계 및 도구와 같은 모델별 세부 정보를 설명합니다.
+ Anthropic 설명서의 [컴퓨터 사용 도구](https://platform.claude.com/docs/en/agents-and-tools/tool-use/computer-use-tool) 
+ OpenAI 설명서의 [컴퓨터 사용](https://developers.openai.com/api/docs/guides/tools-computer-use) 
+ Gemini API 설명서의 [컴퓨터 사용](https://ai.google.dev/gemini-api/docs/computer-use) 