신뢰할 수 있는 양식 작성 에이전트 구축
실용적인 사례 연구입니다. 포털에 로그인하고 여러 페이지로 구성된 양식을 작성한 뒤 제출 내용을 확인합니다.
신뢰할 수 있는 양식 작성 에이전트 구축은(는) CoddyKit의 무료 AI Agents 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Agents 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.
이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.
현실적인 프로젝트
"여러 페이지로 구성된 이 양식을 입력하는" 에이전트를 만들어 보겠습니다. Playwright + LLM 계획 수립 + 재시도 + 비전 대체 수단을 결합합니다.
아키텍처
- LLM이 JSON 명세에서 필드 요구 사항을 읽습니다
- Playwright가 양식을 엽니다
- 각 필드에 대해 선택자와 값을 찾고, 입력한 다음 검증합니다
- DOM으로 필드를 찾기 어려우면 비전 기능으로 대체합니다
- 양식을 제출하고 성공 여부를 확인합니다
Step 1: Define the Task
TASK = {
'url': 'https://example.com/apply',
'login': {'user': 'alice', 'pass': '...'},
'fields': {
'first_name': 'Alice',
'last_name': 'Smith',
'email': 'alice@example.com',
'role': 'Senior Engineer'
}
}Step 2: Login
page.goto(TASK['url'])
if page.locator('input[name="username"]').is_visible():
page.fill('input[name="username"]', TASK['login']['user'])
page.fill('input[name="password"]', TASK['login']['pass'])
page.click('button[type="submit"]')
page.wait_for_load_state('networkidle')Step 3: Field Filler
def fill_field(page, field_name, value):
for selector in [
f'input[name="{field_name}"]',
f'input[aria-label="{field_name}"]',
f'input[placeholder*="{field_name}"]',
f'label:has-text("{field_name}") + input'
]:
if page.locator(selector).count() > 0:
page.fill(selector, value)
return True
return False
# --- demo ---
class _FakeLocator:
def __init__(self, found):
self._found = found
def count(self):
return 1 if self._found else 0
class _FakePage:
"""Only the 3rd selector (placeholder) matches, to show the fallback loop."""
def locator(self, selector):
return _FakeLocator(found='placeholder*=' in selector)
def fill(self, selector, value):
print(f'Filled via selector: {selector} -> {value!r}')
page = _FakePage()
ok = fill_field(page, 'email', 'alice@example.com')
print(f'fill_field succeeded: {ok}')
Step 4: LLM 지원 로케이터
표준 선택자가 실패하면 LLM에 필드를 식별하도록 요청하십시오:
def ask_llm_for_selector(html, field_name):
prompt = f'Find the input element for "{field_name}" in this HTML and return a CSS selector. HTML:\n{html[:5000]}'
return llm.invoke(prompt).content.strip()Step 5: 비전 대체 수단
LLM조차 선택자를 찾지 못하면 스크린샷을 찍어 비전 기능을 사용하십시오:
if not filled:
screenshot = page.screenshot()
coordinate = vision_llm_locate(screenshot, field_name)
page.mouse.click(coordinate.x, coordinate.y)
page.keyboard.type(value)Step 6: 각 단계 검증
입력한 후 값을 다시 읽으십시오:
actual = page.input_value(selector)
assert actual == expected_value, f'Expected {expected_value}, got {actual}'Step 7: Submit and Verify
page.click('button[type="submit"]')
page.wait_for_load_state('networkidle')
if page.locator('text=Thank you').count() == 0:
raise SubmissionFailed('Success page not detected')Step 8: 재시도 로직
양식은 때때로 오작동합니다. 멱등성 확인과 함께 재시도하십시오:
@retry(stop=stop_after_attempt(3), wait=wait_fixed(2))
def fill_and_submit(page, task):
...Step 9: 캡차 처리
양식에 reCAPTCHA가 있으면 해결 서비스(2Captcha, Anti-Captcha)를 사용하거나, 적절히 실패를 처리하고 사람에게 요청하십시오.
Step 10: 기록 및 재생
모든 작업과 스크린샷을 저장하십시오. 문제가 발생하면 디버깅을 위해 추적 기록을 재생할 수 있습니다:
context.tracing.stop(path=f'trace-{task_id}.zip')
# View with: playwright show-trace trace-abc.zip동시성 고려 사항
많은 사용자의 양식을 병렬로 처리하려면 작업마다 브라우저 컨텍스트를 하나씩 생성하십시오. 대상 사이트에 과부하가 걸리지 않도록 동시 작업 수를 제한하십시오.
대상 사이트 존중
- 작업 사이에 간격을 두십시오(사람은 초당 200자를 입력하지 않습니다)
- robots.txt와 서비스 약관을 준수하십시오
- 허용된 경우에만 IP를 순환해 사용하십시오
- 악용을 피하십시오. 에이전트 트래픽은 무분별한 스크래핑이 아닙니다
견고성 전략
예측할 수 없는 HTML에서 양식을 입력하는 가장 안정적인 전략은 무엇입니까?
복습
Playwright + LLM 지원 선택자 + 비전 대체 수단 + 단계별 검증 + 재시도 + 추적 기록. 안정적인 양식 입력을 위한 방법입니다.
자주 묻는 질문
“신뢰할 수 있는 양식 작성 에이전트 구축” 강의는 무료인가요?
네 — “신뢰할 수 있는 양식 작성 에이전트 구축” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Agents 강의 전체를 잠금 해제할 수 있습니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.
“신뢰할 수 있는 양식 작성 에이전트 구축”에서 뭘 배우나요?
실용적인 사례 연구입니다. 포털에 로그인하고 여러 페이지로 구성된 양식을 작성한 뒤 제출 내용을 확인합니다. 브라우저에서 직접 실행하는 실습 코드로 AI Agents을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
AI Agents을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 AI Agents은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“신뢰할 수 있는 양식 작성 에이전트 구축” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 AI Agents 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 AI Agents 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Playwright로 브라우저 자동화
- 화면 이해를 위한 비전 모델
- 컴퓨터 사용 패턴(Anthropic Computer-Use)
- 신뢰할 수 있는 양식 작성 에이전트 구축