Skip to Content

3장 문제: 도구와 에이전트

공식 범위를 참고한 자체 제작 연습문제입니다. 공통 시험 유형을 연습하며 AI-103의 실제 문항 구성·난이도를 재현하지 않습니다. 공식 연습 평가 안내 (로그인 필요) · 공식 모듈 샘플 · 공식 시험 화면 체험

7문항 · 기록 불러오는 중

3.1 에이전트와 도구 호출

도구 선택이 혼동됩니다. 정의에서 우선 분리할 계약은?

사용자: "상태만 확인해 줘"
tools:
  manage_order(order_id, action="cancel")
  description: "주문 처리"
model call: manage_order(O17)  # action 생략
executor: 기본값 cancel 적용
  1. 기본값 cancel을 유지하고 도구 설명에 상태 조회 예시를 추가한다
  2. 도구 설명을 늘리고 취소를 조회의 예시로 추가한다
  3. 조회·취소를 구분하고 변경 인수·승인을 명시한다
  4. 호출 재시도를 줄이고 생략 인수의 기본값을 유지한다

풀이 기록 기능을 불러오는 중…

해설 보기

정답: C. 조회·취소를 구분하고 변경 인수·승인을 명시한다

모호한 주문 처리 정의와 취소 기본값이 조회 요청을 변경 작업으로 바꿉니다. 도구 역할·필수 인수와 실행 승인을 함께 명확히 해야 합니다.

모델이 get_order 함수 호출을 요청했습니다. 이 사용자 정의 도구를 앱이 직접 실행하는 흐름을 순서대로 배열하세요.

호출 요청: id=c7 / get_order({"order_id":"O17"})
전제: 아직 함수는 실행되지 않았고 서비스 오류가 없음
범위: 도구 한 번 실행 후 추가 호출 없이 최종 답변 생성
  1. 검증된 인수로 주문 조회 함수를 실행한다
  2. 함수 결과를 반영한 모델의 최종 답변을 받는다
  3. 호출 이름·인수와 사용자의 주문 접근 권한을 검사한다
  4. 실행 결과를 원래 호출 ID c7에 연결해 모델에 전달한다

풀이 기록 기능을 불러오는 중…

해설 보기

정답: C. 호출 이름·인수와 사용자의 주문 접근 권한을 검사한다 → A. 검증된 인수로 주문 조회 함수를 실행한다 → D. 실행 결과를 원래 호출 ID c7에 연결해 모델에 전달한다 → B. 함수 결과를 반영한 모델의 최종 답변을 받는다

앱이 실행하는 사용자 정의 도구는 모델의 호출 요청만으로 완료되지 않습니다. 계약과 권한을 검사한 후 실제 실행하고, 결과를 원래 호출 ID에 연결해 모델에 돌려준 뒤 최종 답변을 받아야 합니다.

REST 도구 연결 시험에서 무엇을 고쳐야 하는지 고르세요.

서버 계약: GET /orders/{order_id} / OAuth audience=orders-api
도구 정의: GET /orders?id={order_id} / audience=project-api
시험1(도구 정의): HTTP 401 invalid audience
시험2(audience 수정): HTTP 404 route not found
직접 계약대로 호출: HTTP 200
  1. 도구의 인증 대상과 요청 경로를 서버 계약에 맞춰 수정한다
  2. 인증 대상만 고치고 현재 질의 인수 경로를 쓴다
  3. 경로 매핑만 고치고 프로젝트 토큰을 다시 발급한다
  4. 재시도 횟수를 늘리고 현재 도구 정의를 유지한다

풀이 기록 기능을 불러오는 중…

해설 보기

정답: A. 도구의 인증 대상과 요청 경로를 서버 계약에 맞춰 수정한다

첫 호출은 토큰 대상, 이를 고친 두 번째 호출은 경로가 다릅니다. 두 계약을 수정한 직접 호출이 성공했습니다.

3.2 대화·기억·지식 연결

고객 지원 에이전트가 오래된 규정과 다른 고객의 주문을 사용했습니다. 두 문제를 해결할 조치 두 가지를 선택하세요.

user=U17 / preference=간결한 답변
memory: U17 선호, refund_days=30 (작년 저장)
current_policy: refund_days=14 (이번 달 적용)
tool get_order(order_id=O88): owner=U52 / status=200
authorization_check: skipped
  1. 현재 적용 규정을 검색해 답변 근거로 제공한다
  2. 개인 대화 기억의 작년 규정을 모든 고객에게 공통 적용한다
  3. 주문번호 형식이 맞으면 소유권 확인 없이 조회한다
  4. 인증된 사용자에게 해당 주문의 조회 권한이 있는지 검사한다

풀이 기록 기능을 불러오는 중…

해설 보기

정답: A. 현재 적용 규정을 검색해 답변 근거로 제공한다 / D. 인증된 사용자에게 해당 주문의 조회 권한이 있는지 검사한다

규정은 현재 적용되는 공통 자료를 검색해 연결하고, 주문 조회는 서버에서 사용자별 접근 권한을 확인해야 합니다. 기억이나 인수 형식 검사만으로 최신성·소유권이 보장되지 않습니다.

3.3 여러 단계의 작업 구성

발주 요청의 응답만 유실돼 재시도했습니다. 중복을 막는 서버 수정은?

workflow=W8 / approved_quote=Q17
request1: create_order(Q17), operation_id 없음
server: order O31 생성 / 응답 네트워크 유실
request2: create_order(Q17), operation_id 없음
server: order O32 생성
  1. 재시도마다 새 작업 ID를 만들고 생성 결과를 저장한다
  2. 발주 직전에 조회하고 없으면 별도 요청으로 생성한다
  3. 같은 작업 ID의 결과를 서버에서 원자적으로 재사용한다
  4. 클라이언트 제한 시간을 늘리고 자동 재시도를 유지한다

풀이 기록 기능을 불러오는 중…

해설 보기

정답: C. 같은 작업 ID의 결과를 서버에서 원자적으로 재사용한다

첫 실행은 성공했고 응답만 유실됐습니다. 동일한 논리 작업 키에 대한 생성·결과 기록을 원자적으로 처리해 재시도를 중복 발주로 만들지 않아야 합니다.

검색·검토 에이전트 사이에서 근거가 유실됩니다. 연결 계약의 수정은?

retriever output:
  {"claim":"상한 8만원","source_id":"P3","quote":"숙박 상한 8만원"}
handoff payload:
  {"claim":"상한 8만원"}
reviewer instruction: 원문 인용으로 사실 확인
reviewer result: 검증 자료 없음
  1. 검토자의 모델 크기를 늘리고 현재 payload를 유지한다
  2. 주장과 출처·인용을 전달하고 자료 부족 경로를 둔다
  3. 검색자의 지침을 늘리고 검토 결과를 정답으로 사용한다
  4. 검토를 한 번 더 반복하고 근거 전달 형식은 유지한다

풀이 기록 기능을 불러오는 중…

해설 보기

정답: B. 주장과 출처·인용을 전달하고 자료 부족 경로를 둔다

검색 결과에는 근거가 있지만 handoff가 이를 버렸습니다. 검토자가 요구하는 출처·인용을 계약에 포함하고 빈 근거는 별도로 처리해야 합니다.

사용자가 초대 발송을 승인한 뒤 시간이 바뀌었습니다. 실행 시점의 처리는?

검색 결과: 10월 28일 14:00 / 참석자 A,B
approval A7: 10월 28일 14:00 / 참석자 A,B
실행 인수: 10월 28일 16:00 / 참석자 A,B
tool: send_invitation
approval_id: A7
  1. 승인 ID가 있으므로 16시 초대를 보내고 변경 사실을 알린다
  2. 참석자가 같으므로 16시 초대를 보내고 같은 승인으로 남긴다
  3. 현재 인수와 승인 내용을 대조하고 변경된 시간은 재승인받는다
  4. 검색을 다시 실행하고 최상위 시간을 같은 승인으로 발송한다

풀이 기록 기능을 불러오는 중…

해설 보기

정답: C. 현재 인수와 승인 내용을 대조하고 변경된 시간은 재승인받는다

A7은 14시에 대한 승인인데 실행 인수는 16시입니다. 승인 ID의 존재만으로 바뀐 작업까지 허가된 것은 아닙니다.