펑션 콜링(함수 호출)
작성: Ai Flowi · 게시일
펑션 콜링(함수 호출)은 언어 모델이 구조화된 인수와 함께 이름이 지정된 함수나 도구를 요청하게 합니다. 애플리케이션은 요청을 검증하고 허용된 작업을 실행한 뒤 결과를 반환합니다. 모델의 요청은 제안이며, 함수가 실행되었거나 결과가 올바르다는 증거가 아닙니다.
예를 들어 모델은 문서 식별자를 사용해 읽기 전용 정책 조회를 요청할 수 있습니다. 호스트는 무엇이든 가져오기 전에 식별자와 접근 권한을 확인합니다. 이 분리는 언어 해석과 시스템에 접근하는 코드를 구분합니다.
도구 호출의 단계
- 사용 가능한 작업을 설명합니다. 도구에 이름, 제한된 목적, 인수 규약을 부여합니다. 할 수 없는 일도 설명합니다.
- 도구를 선택하거나 호출하지 않습니다. 모델은 사용 가능한 작업이 사용자 요청에 적합한지 판단합니다. 알 수 없는 작업에는 호출하지 않는 경로가 있어야 합니다.
- 요청을 검증합니다. 애플리케이션은 도구 이름, 인수 구조, 허용 값, 호출자의 권한을 확인합니다.
- 정해진 경계 안에서 실행합니다. 신뢰할 수 있는 코드가 승인된 서비스를 호출하고 완료, 실패, 결과 불확실 여부를 기록합니다.
- 관찰 결과를 반환합니다. 결과는 다음 판단이나 답변의 근거가 됩니다. 데이터를 꾸며 내지 않고 의미 있는 오류를 보존해야 합니다.
제공업체마다 이 단계를 다르게 구성할 수 있습니다. 중요한 경계는 같습니다. 모델이 만든 인수는 확인되기 전까지 신뢰할 수 없는 입력입니다. 유효한 객체도 호출자가 읽을 수 없는 리소스를 가리킬 수 있으므로 구문 검증과 권한 확인을 구분해야 합니다.
작은 읽기 전용 도구 규약
다음 개념적인 작업을 살펴봅니다: lookup_policy_excerpt. 목적은 승인된 정책 자료 묶음에서 발췌문을 반환하는 것입니다. 유일한 인수인 document_id는 그 묶음 안의 원본 하나를 식별합니다. 이 작업은 문서를 수정하거나 임의의 대상으로 이동하거나 정책 결정을 내릴 수 없습니다.
{
"name": "lookup_policy_excerpt",
"purpose": "Read one authorised policy excerpt",
"arguments": {
"document_id": "identifier from the approved source list"
},
"on_unknown_document": "return a not-found result without guessing"
}
이는 설명용 규약이며, 제공업체별 함수 스키마나 기본 제공 구성 요소의 입력 목록, 워크플로 가져오기 파일이 아닙니다. 실제 구현에서는 정확한 인수 유형을 정의하고 예상 밖 필드를 거부합니다. 모델이 승인 목록을 재정의하게 하지 말고 신뢰할 수 있는 애플리케이션 코드에서 원본 식별자를 선택합니다.
정책을 수정해 달라는 요청에는 이 도구가 적합하지 않습니다. 에이전트는 편집이 도구의 범위 밖이라고 설명해야 합니다. 요청을 조회로 바꾸는 과정이 숨겨진 쓰기가 되거나 수정이 적용되었다는 인상을 주어서는 안 됩니다.
인수 검증에서 확인할 사항
| 확인 항목 | 실패 예시 | 응답 설계 |
|---|---|---|
| 알려진 작업 | 요청한 이름이 허용된 도구 목록에 없습니다. | 호출을 거부합니다. 임의의 작업을 만들지 않습니다. |
| 인수 구조 | 식별자가 텍스트가 아니라 객체입니다. | 원본에 접속하지 않고 검증 실패 이유를 반환합니다. |
| 허용된 리소스 | 식별자가 다른 계정의 자료 묶음에 속합니다. | 객체가 다른 면에서 유효해도 접근을 거부합니다. |
| 작업 관련성 | 조회로 해당 질문에 답할 수 없습니다. | 부족한 기능을 알리거나 추가 설명을 요청합니다. |
| 실행 결과 | 원본 서비스가 실패를 반환합니다. | 실패와 성공했지만 빈 결과를 구분합니다. |
도구 설명은 선택을 돕습니다. 권한은 실제 접근이 일어나는 지점에서 강제해야 합니다. 모델에 승인된 식별자만 사용하라고 지시하는 프롬프트에 의존하지 않습니다. 가져온 텍스트에 에이전트에게 하는 지시가 들어 있을 수도 있습니다. 이를 다른 도구를 호출할 권한이 아니라 원본 내용으로 취급합니다.
AI Flowi Workflow에서 함수 호출이 나타나는 방식
카탈로그에서 Flow as Tool은 다음과 같이 설명됩니다. 불러온 Flow를 실행하는 함수에서 Tool을 구성합니다.
입력으로는 flow_name, tool_name, tool_description 및 return_direct가 나열되어 있습니다. 출력인 api_build_tool의 유형은 Tool이며, Agent의 tools 입력이 허용하는 유형과 일치합니다.
설정 예시이며 기록된 테스트가 아닙니다
Flow as Tool
flow_name: select your existing read-only lookup flow
tool_name: lookup_policy_excerpt
tool_description: Read an approved policy excerpt; cannot edit policies.
return_direct: false
Agent
tools: connect Flow as Tool.api_build_tool
system_prompt: Use lookup only for supported read-only questions.
Explain when no available tool fits the request.
선택한 플로는 이미 존재해야 하고 검증된 조회 규약을 갖춰야 합니다. 정적 카탈로그는 동적 인수 스키마를 내보내지 않으며 이 설정에서 return_direct의 효과도 입증하지 않습니다. 설명용 규약을 문서화되지 않은 필드에 붙여 넣지 말고 이 세부 사항을 확인합니다.
Agent 참조 문서에서 이 Tool 연결에 사용하는 모델과 응답 인터페이스를 다룹니다.
실행을 보호하는 방법은 다음 문서를 참고합니다: 에이전트 가드레일.
이 함수 호출 설정은 카탈로그에 문서화되어 있으나 Ai Flowi의 프로덕션 테스트를 거치지 않았습니다. 본인의 모델 계정과 API 키를 사용하고 해당 제공업체에 별도로 비용을 지불합니다.
함수 호출은 구조화된 출력과 어떻게 다른가요?
함수 호출은 작업을 요청합니다. 구조화된 출력은 모델의 답을 필드로 정리합니다. 모델은 도구를 요청하지 않고도 형식이 잘 갖춰진 답을 만들 수 있고, 도구 호출이 반환한 데이터에도 추가 해석이 필요할 수 있습니다.
답변 필드 검증은 LLM 구조화된 출력에서 다룹니다. 작업 요청과는 별개입니다.
누락된 인수와 예상 밖 인수
제안한 조회에서 문서 식별자가 누락되면 실행하지 않고 추가 설명을 요청해야 합니다. 승인 목록 밖의 식별자는 거부해야 합니다. replacement_text 같은 추가 필드는 document_id가 유효해도 규약 위반입니다. 이를 조용히 무시하면 모델이 편집 요청에 읽기 도구를 선택했다는 사실이 가려질 수 있습니다. 관련 없는 작업용 선택 필드를 추가하지 말고 작업 범위를 좁게 유지합니다.
호스트 애플리케이션이 디코딩한 뒤의 인수를 확인합니다. JSON을 담은 문자열은 인수 객체와 다르며, 식별자 목록은 이 규약이 허용하는 단일 식별자와 다릅니다. 실행 경계에서 그 표현을 한 번 검증합니다. 어댑터가 모델 요청을 다시 작성하면 승인된 인수를 추적 기록에 남겨 실제 조회에 도달한 내용을 검토자가 알 수 있게 합니다.
관찰 결과와 실패 경로 확인하기
요청한 작업, 승인된 인수, 반환된 결과를 관찰할 수 있는 기록으로 남기고 민감한 값은 제거합니다. 조회 결과가 없다면 모델의 “정책을 확인했습니다”라는 말만으로는 충분하지 않습니다. 찾지 못했다는 결과는 그대로 유지해야 합니다. 그럴듯한 정책 발췌문으로 대체해서는 안 됩니다.
외부 변경을 허용하기 전에 잘못된 인수, 접근 거부, 사용할 수 없는 서비스, 불확실한 완료를 테스트합니다. 위에서 제안한 조회의 런타임 실행 결과는 주장하지 않습니다. ReAct 에이전트는 관찰 결과가 제한된 반복 과정의 판단에 어떻게 쓰이는지 설명하며, AI 에이전트 스킬은 재사용 가능한 지시와 실행 가능한 도구를 구분합니다. 활용 사례 모음은 확인된 예시와 각각의 한계를 연결합니다.
워크플로 사용량
요금제: Go 연간 결제 시 월 USD8부터(월간 USD10), Plus 월 USD16부터(월간 USD20), Pro 100 월 USD80부터(월간 USD100), Pro 200 월 USD160부터(월간 USD200), Pro 500 월 USD400부터(월간 USD500). 매월 5,000~250,000 Flowi Tokens가 제공되며 충전도 가능합니다. 노드 실행 1회당 1토큰, 타사 API 및 모델 사용 요금은 포함되지 않습니다.