피드로 돌아가기
Dev.toBackend
원문 읽기
HTTP POST 기반 Event Trigger로 구현한 비동기 Agent 오케스트레이션
Event Triggers บน Garudust
AI 요약
Context
단일 primitive인 agent.run(task)을 다양한 외부 이벤트와 연결하여 확장성을 확보해야 하는 요구사항 발생. 기존의 정적 호출 방식을 넘어 외부 시스템이 자유롭게 Task를 트리거하고 결과를 수신하는 유연한 인터페이스 설계가 필요함.
Technical Solution
- Axum HTTP server 기반의 Webhook Adapter를 구축하여 외부 시스템의 POST 요청을 InboundMessage로 변환하는 구조 설계
- GatewayHandler를 통한 요청 라우팅 및 agent.run()의 비동기 spawn 처리를 통한 202 Accepted 즉시 응답 체계 구현
- HMAC-SHA256 signature 검증 로직을 적용하여 요청 무결성 보장 및 인증되지 않은 접근 차단
- Network Guard를 도입하여 Internal IP(RFC1918)로의 Callback 요청을 원천 차단하는 SSRF 방어 전략 채택
- session_key 기반의 상태 관리로 서로 다른 Trigger 간 Conversation History를 공유하는 컨텍스트 유지 메커니즘 구현
- 외부 시스템(Filter)과 Garudust(Execution)의 책임을 분리하여 상호 의존성을 제거한 Decoupled Architecture 적용
실천 포인트
- 외부 트리거 도입 시 HMAC-SHA256 등 서명 검증을 통한 인증 계층 확보 여부 검토 - Callback URL 호출 시 Internal Network 접근을 차단하는 Network Guard 적용 필수 - 비동기 작업 처리 시 202 Accepted 응답 후 별도의 Callback 채널을 통한 결과 전달 구조 고려 - 상태 유지가 필요한 이벤트 스트림의 경우 고유한 Session Identifier를 통한 Context 매핑 설계