왕복마다 쌓이는 지연과 토큰

전통적인 도구 호출 루프는 모델이 도구 하나를 고르면 하네스가 실행하고, 그 결과를 다시 모델에 먹여 다음 도구를 고르게 하는 왕복의 연속입니다. 조회·필터·집계처럼 순차 의존이 강한 다단계 태스크일수록 이 왕복이 선형으로 누적돼, 매 단계마다 이전까지의 대화 전체가 프롬프트로 재전송되면서 지연과 토큰이 함께 불어납니다. 2026년 6월 3일 정리 발표된 Build 2026 자료는 바로 이 스텝별 왕복 누적을 지연·비용 폭증의 주요 원인으로 지목했습니다.

CodeAct: 고르지 말고 코드로 묶기

Microsoft Agent Framework(MAF)의 CodeAct는 알파 단계로 공개됐습니다. 모델이 도구를 한 번에 하나씩 선택하는 대신 call_tool()을 호출하는 파이썬 프로그램을 생성하고, 이 프로그램을 Hyperlight 마이크로VM 샌드박스에서 한 번에 일괄 실행합니다. 여러 도구 호출과 그 사이의 분기·반복이 코드 한 편 안에서 처리되므로 모델↔하네스 왕복이 1회로 접힙니다. 발표된 벤치마크는 지연 52.4% 감소(27.81초→13.23초)와 토큰 63.9% 절감(6,890→2,489)을 제시했습니다.

주변 발표: Agent Harness와 Hosted Agents

같은 자리에서 공개된 Agent Harness는 컨텍스트 압축, 파일 기반 메모리, 태스크 관리를 기본 제공해 긴 태스크에서 프롬프트가 무한정 부풀지 않게 합니다. Foundry Hosted Agents는 scale-to-zero와 세션별 VM 격리를 갖추고 정식 출시(GA)됐는데, CodeAct가 생성한 코드를 세션마다 격리된 실행 환경에서 돌릴 토대가 됩니다.

설계에서 운영까지: CodeAct 전환 판별 체크리스트

전환 전에 합격선을 숫자로 고정합니다. 태스크당 도구 왕복 수를 도입 전 대비 절반 이하, 태스크당 토큰은 벤치마크가 보여준 63.9%의 절반인 30% 이상 절감, 코드 실행 성공률 95% 이상, 샌드박스 이탈 시도 감지 0건 유지가 출발점으로 적당합니다. 27.81초→13.23초라는 지연 수치는 특정 워크로드에서 나온 값이므로, 자사 골든셋으로 재측정하기 전에는 목표가 아니라 참고선으로만 씁니다.

모든 태스크를 CodeAct로 보내지는 않습니다. 순차 의존이 강하고 부작용이 없는 조회·집계형 워크로드가 적합하고, 단계마다 사람 승인이 끼어들어야 하는 워크로드는 코드 한 편으로 묶는 순간 개입 지점이 사라지므로 부적합합니다. 라우팅 기준을 아래 표로 고정해 두면 새 태스크가 들어올 때 판별이 즉시 끝납니다.

CodeAct 적합CodeAct 부적합
순차 의존이 강한 다단계 조회·필터·집계결제·권한 변경 등 단계별 사람 승인이 필요
여러 도구 결과를 조합·반복·조건 분기되돌릴 수 없는 부작용을 매 호출이 유발
대량 조회 후 요약처럼 왕복이 선형 누적중간 산출물을 사람이 검토 후 진행

실패 패턴은 세 갈래입니다. 첫째, CodeAct를 도입하지 않아 스텝별 왕복이 누적되고 지연·비용이 폭증하는 경우 — 이번 발표가 겨냥한 원래 문제입니다. 둘째, Hyperlight 같은 마이크로VM 격리 없이 모델이 생성한 코드를 그대로 실행하는 경우로, 임의 코드가 파일시스템·네트워크에 닿는 순간 사고가 됩니다. 셋째, 코드 실행이 실패했을 때 도구 단건 호출 루프로 되돌아갈 폴백 경로가 없어, 한 번의 코드 오류가 태스크 전체 실패로 번지는 경우입니다.

복구 분기는 이렇게 답니다. 생성 코드가 예외·타임아웃으로 실패하면 기존 단건 도구 호출 루프로 자동 폴백해 태스크를 완주시키고, 폴백 발생을 별도 카운터로 남겨 코드 생성 품질의 회귀 신호로 삼습니다. 샌드박스 이탈 시도가 감지되면 폴백이 아니라 즉시 중단하고, 해당 프로그램과 프롬프트를 격리 보관해 사후 분석합니다.

운영 로그 필드는 전환 전에 확정합니다. 태스크당 도구 왕복 수, 태스크당 토큰, 코드 실행 성공률, 샌드박스 이탈 시도 감지 건수를 필수로 남겨야 CodeAct 경로와 단건 호출 경로를 같은 대시보드에서 비교할 수 있습니다. 실행은 Hosted Agents의 세션별 VM 격리에 얹어 세션 간 상태가 새지 않게 하고, scale-to-zero로 유휴 비용을 0으로 눌러 둡니다.

개선 루프는 폴백 발생률을 축으로 돕니다. 코드 실행이 실패한 로그를 주기적으로 모아 어떤 도구 시그니처·프롬프트가 잘못된 코드를 유발했는지 상위 유형을 뽑고, 그 유형을 줄이는 방향으로 도구 설명과 예시를 보강합니다. 폴백 발생률이 목표선(예: 5% 이하) 밑으로 내려가지 않으면 CodeAct가 지연·토큰 이득을 실제 트래픽에서 실현하지 못하고 있다는 신호이므로, 적합 워크로드 판별표를 다시 좁힙니다.

한눈에 보는 적용 포인트

왕복을 코드 한 편으로 접는 전환의 관건은 벤치 수치가 아니라 판별과 폴백입니다. 순차 의존이 강한 조회·집계형만 CodeAct로 라우팅하고, Hyperlight 마이크로VM 같은 샌드박스와 세션별 VM 격리 위에서만 코드를 실행하며, 코드 실패 시 단건 도구 호출로 되돌아갈 폴백을 반드시 갖추면 지연 52.4%·토큰 63.9% 절감이 벤치 밖에서도 재현될 여지가 생깁니다. 왕복 수·토큰·코드 실행 성공률·이탈 시도 감지 네 지표를 대시보드에 올려 두는 것이 그 출발입니다.

참고 링크

Microsoft Agent Framework at BUILD 2026: Agent Harness, Hosted Agents, CodeAct, and more — Microsoft DevBlogs