Designing Forms an AI Agent Can Actually Submit

개요

AI 에이전트가 사용자 대신 양식을 안정적으로 제출할 수 있도록 양식 설계를 개선하는 방법을 설명하며, FORMLOVA를 예시로 활용합니다.

주요 내용

* AI 에이전트의 양식 제출 요구사항:
* 필드 식별: 픽셀 위치가 아닌 의미로 필드를 식별해야 합니다. stableIdsemanticName을 사용하여 레이아웃 변경에도 안정적으로 유지되도록 합니다.
* 사전 유효성 검사 규칙 학습: 제출 전 유효성 검사 규칙을 미리 알 수 있어야 합니다. ValidationRule 타입을 통해 required, min_length, max_length, pattern, enum, domain_allow, duplicate_prevention 등을 명확히 게시합니다.
* 안전한 제출: 네트워크 오류나 재시도 시에도 안전하게 제출할 수 있어야 합니다. submissionIntentId를 사용하여 제출 의도를 식별하고 서버 측에서 중복을 방지합니다.
* 확인 결과 읽기: 토스트 메시지 등 UI 요소에 의존하지 않고 양식 제출 결과를 읽을 수 있어야 합니다. SubmitResponse 객체를 통해 상태, 오류, 후속 조치 등을 구조화하여 제공합니다.
* 합법성 증명: "인간인지 확인" 퍼즐 없이도 합법적인 제출임을 증명할 수 있어야 합니다. 에이전트 선언, 동의 토큰, 알려진 통합 표면 사용 등을 통해 이를 달성합니다.

* FORMLOVA의 구현 방식:
* 하이브리드 노출: 각 요구사항은 MCP 툴과 렌더링된 페이지 모두에서 노출됩니다.
* 필드 식별: FieldDescriptor 타입으로 stableId, semanticName, renderId, label 등을 정의하여 에이전트가 의미로 필드를 식별하도록 합니다.
* 선언적 유효성 검사: ValidationRule 타입을 통해 양식의 유효성 검사 규칙을 명시적으로 게시합니다.
* 동일성 제출: FormSubmission 타입에 submissionIntentId를 포함하여 서버에서 중복 제출을 방지합니다.
* 구조화된 확인: SubmitResponse 타입을 통해 HTTP 응답으로 제출 결과를 전달하며, fieldErrors, postSubmit 등의 정보를 포함합니다.
* 차별화된 봇 방어: "인간인가" 질문 대신 "합법적인 의도인가"를 중심으로 판단하며, 에이전트 제출에 대해 완화된 검사를 적용합니다.
* 고영향 작업 확인 토큰: L3 레벨의 외부적으로 최종적인 작업에는 HMAC-SHA256으로 서명된 confirmation_token이 필요합니다.

* MCP 툴로서의 양식 노출:
* list_forms, get_form_schema, submit_form, get_form_status와 같은 툴을 통해 에이전트가 양식과 상호작용할 수 있도록 합니다.

* 하이브리드 표면:
* MCP (채팅) 표면과 대시보드 표면이 모두 존재하며, 각각 순차적/의도 중심 워크플로우와 병렬적/스캐닝에 강점을 가집니다.

시사점

AI 에이전트의 양식 제출을 지원하기 위해 필드 식별, 유효성 검사, 제출, 확인, 봇 방어 등 양식의 여러 측면을 재설계해야 하며, 이를 통해 AI 기반 상호작용의 신뢰성과 사용자 경험을 향상시킬 수 있습니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions