독자의 질문: 엑셀 정리·정산·지표 계산·외부 API 호출을 자동화할 때, 무엇을 AI 에이전트의 추론에 맡기고 무엇을 코드 함수로 고정해야 할까요?
짧은 답: 문서의 의미를 해석하고 다음 행동을 고르는 일은 에이전트에 두되, 같은 입력에 같은 답이 필요하거나 재현·감사가 필요한 계산과 규칙 판정은 함수로 분리하는 편이 좋습니다. 다만 외부 변경은 함수가 되어도 사람 승인과 실행 기록이 필요합니다.

핵심 요약
- 모호한 입력을 읽고 우선순위를 정하는 일은 에이전트의 추론 영역에 잘 맞습니다.
- 금액 합계, 날짜 형식 변환, 중복 판정, 정해진 규칙 계산은 입력·출력과 테스트 자료를 갖춘 함수로 고정하는 편이 안전합니다.
- 외부 시스템을 바꾸는 호출은 코드로 감싸도 권한, 멱등성 키, 타임아웃, 실행 증적을 별도로 설계해야 합니다.
- 되돌리기 어렵거나 책임 소재가 중요한 지급·삭제·계약 확정은 사람 승인으로 넘겨야 합니다.
프롬프트를 더 고쳐도 숫자가 흔들리는 이유
자동화를 시작할 때는 “이번 달 정산표를 읽고 합계를 내 주세요”처럼 한 문장으로 일을 맡기기 쉽습니다. 하지만 같은 파일을 다시 넣었는데 소수점 처리나 제외 조건이 달라지고, 한 번 더 실행했더니 외부 시스템에 같은 요청이 두 번 들어가면 문제는 문장 표현만의 문제가 아닙니다. 해석해야 할 부분과 반드시 재현되어야 할 부분이 한 단계에 섞여 있기 때문입니다.
2026년 8월 UiPath는 에이전트가 데이터 변환·계산·외부 시스템 호출을 위한 Python coded function을 도구로 호출하고, 구조화된 결과를 다음 판단에 사용할 수 있다고 안내했습니다. Functions 문서는 같은 입력에 같은 출력을 돌려주는 결정적 코드가 언어 모델의 추론만으로 처리하기에 부정확한 작업에 적합하다고 설명합니다. 이 글의 기준은 특정 제품 기능이 아니라, 그 분리를 어떤 업무에 적용할지입니다.
실행 경계를 정하는 5문항
아래 질문을 업무 단위마다 차례로 적용하면, 프롬프트를 계속 다듬을지 함수로 고정할지 빠르게 구분할 수 있습니다. 한 업무가 한 칸에만 들어갈 필요는 없습니다. 예를 들어 에이전트가 청구서 항목을 분류하고, 함수가 금액을 합산하며, 사람이 지급을 확정하는 흐름이 자연스럽습니다.
| 질문 | 예이면 | 아니면 | 예시 |
|---|---|---|---|
| 같은 입력에서 같은 결과가 반드시 필요한가? | 함수 후보입니다. | 추론으로 시작할 수 있습니다. | 세율 적용, 날짜 표준화 |
| 규칙을 테스트 자료로 고정할 수 있는가? | 입력·기대 결과를 작성합니다. | 판단 근거를 설명하도록 합니다. | 중복 청구서 판정 |
| 실패 비용이 큰가? | 검증·승인 단계를 둡니다. | 샘플 검토로 운영합니다. | 지급, 삭제, 고객 통지 |
| 외부 상태를 바꾸는가? | 권한·멱등성·증적을 둡니다. | 읽기 전용 함수로 단순화합니다. | CRM 생성, 송금 요청 |
| 사람의 맥락 판단이 필요한가? | 승인 또는 예외 큐로 보냅니다. | 자동 진행할 수 있습니다. | 예외 할인 승인 |
추론·결정적 함수·사람 승인으로 나누기
추론 영역은 메일의 의도를 읽고, 누락된 정보를 질문하고, 여러 후보 중 다음 처리 순서를 정하는 곳입니다. 결정적 함수 영역은 명시된 규칙을 빠짐없이 적용하고, 결과를 구조화해서 돌려주는 곳입니다. 사람 승인 영역은 되돌릴 수 없는 변경과 정책 예외를 책임 있게 확정하는 곳입니다.

| 업무 | 권장 영역 | 이유 | 필수 증적 |
|---|---|---|---|
| 메일에서 청구서 여부 분류 | 추론 | 표현과 맥락이 다양합니다. | 판단 근거·신뢰도 |
| 통화·세율·합계 계산 | 결정적 함수 | 규칙과 반올림 기준을 고정할 수 있습니다. | 입력 버전·계산 결과 |
| 이미 처리한 요청인지 확인 | 결정적 함수 | 중복 키로 재실행을 막을 수 있습니다. | 멱등성 키·기존 실행 ID |
| 거래처에 지급 확정 | 사람 승인 | 권한과 책임이 필요한 외부 변경입니다. | 승인자·승인 시각 |
이 분해는 비용과 운영 부담을 줄이는 데도 도움이 됩니다. 모델이 매번 긴 계산 과정을 만들도록 하기보다, 필요한 순간에 작은 함수 하나를 호출하면 검토 범위가 좁아집니다. 반대로 판단까지 모두 함수로 밀어 넣으면 예외 처리 코드가 끝없이 늘어납니다. 모호성은 추론으로, 반복 가능한 규칙은 함수로, 책임 있는 변경은 승인으로 두는 균형이 중요합니다.
함수를 만들기 전에 ‘도구 계약 카드’부터 작성하세요
함수 이름만 정하고 바로 연결하면 운영 중에 입력이 바뀌거나 재시도가 중복 실행을 만들기 쉽습니다. 함수 하나마다 다음 카드 한 장을 먼저 작성해 보세요.

도구 계약 카드
- 입력: 필드 이름, 자료형, 허용 범위, 빈값 처리 규칙
- 출력: 성공·실패·검토 필요 상태와 구조화된 결과
- 부작용: 읽기 전용인지, 어떤 시스템을 바꾸는지
- 멱등성 키: 같은 요청이 반복되어도 한 번만 처리할 식별자
- 권한: 호출 주체가 할 수 있는 일과 승인 필요 조건
- 타임아웃·재시도: 중단 시점과 재시도 전 확인 조건
- 증적: 입력 버전, 실행 ID, 반환값, 오류 메시지
UiPath 문서도 함수 호출에서 에이전트가 인자를 전달하고 구조화된 결과를 받으며, 가드레일과 도구 시뮬레이션을 둘 수 있다고 설명합니다. 다만 이는 한 구현의 예입니다. 어떤 프레임워크든 입력과 결과를 확인 가능한 단위로 만드는 원칙은 그대로 적용할 수 있습니다.
예시: 월간 정산 CSV를 세 단계로 처리하기
가령 운영팀이 매월 거래 CSV를 받아 지급 후보를 만들고 있다고 가정해 보겠습니다. 에이전트는 열 이름이 조금씩 달라진 파일을 보고 “거래일·거래처·금액” 후보를 제안하고, 누락된 열이 있으면 질문합니다. 여기까지는 문서 맥락을 읽는 일이라 추론에 맡길 수 있습니다.
그 다음 calculate_settlement 함수는 확정된 열 매핑과 세율, 반올림 규칙을 받아 합계·제외 항목·오류 목록을 반환합니다. 함수는 요청 ID를 멱등성 키로 받아 이미 같은 요청을 처리했으면 기존 결과를 돌려줍니다. 마지막으로 지급 대상 생성은 승인 큐에 올리고, 담당자가 거래처와 금액을 확인한 뒤 확정합니다.
입력 CSV 자체가 흔들리는 환경이라면 먼저 데이터 계약으로 엑셀·분석 자동화 오류를 막는 법을 적용해 열과 값의 최소 조건부터 고정해 두세요. 함수가 정확해도 입력 약속이 없으면 결과를 신뢰하기 어렵습니다.
함수화해도 막지 못하는 실패 조건
함수로 바꾸는 것이 자동으로 안전을 보장하지는 않습니다. 외부 API는 네트워크 상태, 권한, 원격 데이터 변경 때문에 같은 입력이라도 다른 결과를 낼 수 있습니다. 그래서 “같은 입력이면 항상 같은 외부 결과”라고 가정하지 말고, 호출 전후의 상태와 응답을 남겨야 합니다.
- 모호한 정책 판단: 계약상 예외를 허용할지처럼 맥락과 책임이 필요한 일은 함수의 참·거짓으로 서두르지 마세요.
- 재시도 중복: 타임아웃 뒤 실제 처리 여부를 모르면 즉시 다시 호출하지 말고 멱등성 키와 실행 기록을 먼저 확인하세요.
- 권한 거부: 권한 오류를 우회하는 재시도는 위험합니다. 필요한 승인 경로로 넘기세요.
- 결과 불일치: 반환값 형식이 맞아도 원본 데이터와 대조해야 하는 업무가 있습니다. 표본 검토와 예외 큐를 남겨 두세요.
에이전트가 외부 시스템과 통합되고 사람 개입 지점을 둘 수 있다는 운영 맥락은 UiPath의 coded agents 문서에서도 확인할 수 있습니다. 핵심은 사람을 빼는 것이 아니라, 사람이 검토해야 할 지점을 작고 명확하게 만드는 것입니다.
2주 파일럿은 네 종류의 fixture로 시작합니다
처음부터 모든 자동화를 옮기지 말고 한 업무 하나를 2주간 병행해 보세요. 실제 고객 성과를 미리 약속하기보다, 기존 방식과 새 흐름의 차이를 팀 데이터로 확인하는 목적입니다.
파일럿 준비 체크리스트
- 정상 fixture: 기대한 합계와 상태가 나오는 대표 입력
- 경계 fixture: 0원, 소수점, 월말, 빈 값처럼 규칙이 갈리는 입력
- 중복 fixture: 같은 요청을 두 번 보내도 한 번만 처리되는지 확인할 입력
- 권한 거부 fixture: 승인 없는 외부 변경이 멈추고 검토로 넘어가는지 확인할 입력
매 실행마다 계산 불일치 수, 중복 실행 수, 사람이 다시 확인한 시간, 확인되지 않은 외부 변경 건수를 기록하세요. 이 네 가지가 줄지 않는다면 프롬프트를 더 길게 쓰기 전에 함수 계약·입력 조건·승인 위치 중 무엇이 비어 있는지 다시 살펴봐야 합니다. 반환 데이터의 형식 검증은 구조화된 출력에 검증을 넣는 법과 함께 설계하면 좋습니다.
자주 묻는 질문
모든 계산을 함수로 옮겨야 하나요?
아닙니다. 결과가 참고용이고 사람이 항상 다시 판단하는 간단한 초안이라면 추론 단계에 남겨도 됩니다. 다만 금액·세율·집계처럼 재현과 검사가 필요한 계산은 함수 후보로 우선 검토해 보세요.
함수가 외부 API를 호출하면 결정적이라고 할 수 있나요?
코드 경로는 고정할 수 있어도 외부 시스템의 상태와 네트워크는 변합니다. 따라서 멱등성 키, 타임아웃, 호출 전후 기록, 권한 확인을 함께 두어야 합니다.
사람 승인은 언제 꼭 필요한가요?
금전 지급, 삭제, 계약·정책 예외처럼 되돌리기 어렵거나 책임 주체가 분명해야 하는 변경 전에는 승인이 필요합니다. 위험이 낮은 읽기 전용 조회까지 모두 승인으로 묶을 필요는 없습니다.
함수의 테스트 자료는 얼마나 준비해야 하나요?
최소한 정상값, 경계값, 중복 요청, 권한 거부 네 종류부터 시작하세요. 새 예외가 발생하면 그 입력을 다음 fixture로 추가하는 방식이 실무적입니다.
도구 호출을 병렬로 실행해도 될까요?
서로 영향을 주지 않는 읽기 작업은 병렬 처리할 수 있습니다. 하지만 동일한 레코드를 바꾸거나 승인 순서가 필요한 호출은 순서와 잠금 기준을 먼저 정해야 합니다. 관련 기준은 도구 호출의 병렬 처리와 승인 경계 결정표에서 이어서 확인할 수 있습니다.
마무리: 다음 업무 하나만 분리해 보세요
지금 자동화 중인 업무 하나를 골라 “같은 입력이면 같은 결과가 필요한가?”, “외부 변경이 있는가?”, “사람이 책임져야 하는가?”만 먼저 표시해 보세요. 그 표시가 추론, 함수, 승인 사이의 경계를 드러냅니다. 작은 함수 하나와 네 개의 fixture가 쌓이면, 에이전트는 더 자유롭게 판단하면서도 팀은 결과를 더 쉽게 검토할 수 있습니다.
참고 자료
- UiPath Agents — August 2026 release notes: coded function 도구가 데이터 변환·계산·외부 시스템 호출에 쓰일 수 있다고 안내한 2026년 8월 릴리스 노트입니다.
- UiPath Agents — Functions: 함수의 결정적 실행, 구조화된 반환값, 가드레일·시뮬레이션 관련 설명을 확인할 수 있습니다.
- UiPath Agents — About coded agents: 외부 시스템 통합, 실행 추적, 사람 개입을 포함한 운영 맥락을 설명합니다.
이 글이 마음에 드세요?
FLOWIT on YouTube
영상으로도 FLOWIT을 이어서 보세요
AI 자동화, Claude Code, n8n, 데이터 분석 흐름을 블로그와 영상으로 함께 정리하고 있습니다.
AI 코딩 에이전트, 벤치마크 1위면 도입해도 될까? 우리 저장소에서 먼저 돌릴 10개 업무 실험 카드
AI 에이전트 승인창이 많을수록 안전할까? 장기 작업의 승인 피로를 막는 5칸 개입 예산
AI 에이전트가 503 때 싼 모델로 바뀌어도 될까? fallback 품질을 같게 만드는 5개 테스트