Agenvoy - Pub/Sub 이벤트 가로채기 및 분배
요약
Agenvoy는 AI 에이전트의 세션 상태와 이벤트를 실시간으로 관찰할 수 있는 Pub/Sub 기반의 이벤트 가로채기 시스템입니다. 기존 폴링 방식의 지연 문제를 해결하여 다양한 인터페이스에서 에이전트의 실행 과정을 효율적으로 공유합니다.
핵심 포인트
- Pub/Sub 구조를 통한 실시간 이벤트 분배
- 이벤트 가로채기(Interceptor) 방식으로 기존 흐름 유지
- 사용자 입력, 도구 호출, 사고 과정 등 전체 생명주기 캡처
- daemonSlogHandler를 통한 시스템 로그 실시간 브로드캐스트
Agenvoy - AI가 실제로 당신을 위해 작동하게 만드세요 — 당신의 개인 AI 어시스턴트.
동일한 세션 (session)이 여러 대상에 의해 동시에 관찰될 수 있습니다. Web 인터페이스(미출시), TUI 인터페이스, Telegram / Discord, 또는 다른 에이전트 (agent) 창의 호출 등이 그 예입니다.
에이전트 (agent)의 실행 과정을 포함하여 동일한 세션 (session)의 실시간 상태를 모두 확인해야 합니다.
첫 번째 버전은 각 창이 시작될 때 상태를 폴링 (polling)하고, 외부 도구가 전역 로그 파일을 테일 (tail) 하도록 만들었습니다. 하지만 이 두 가지 방식은 장기 사용 시 폴링 (polling) 지연이 발생하거나 너무 많은 리스너 (listener)를 실행하게 되는 문제점이 있었습니다.
v0.25.6부터 모든 이벤트를 통합하는 Pub/Sub 구조를 설계하였으며, 기존 실행 흐름에 미치는 영향을 최소화하기 위해 이벤트를 전송하는 방식을 가로채는 (intercept) 방식을 사용합니다.
이제 창(window)은 자신이 관심 있는 채널 (channel)을 구독 (subscribe)하기만 하면, 에이전트 (agent)의 응답뿐만 아니라 전체 세션 (session) 생명주기 (lifecycle) 상태를 포함한 최신 동향을 실시간으로 수신할 수 있습니다.
에이전트 (Agent) 실행
에이전트 (agent) 실행 시 발생하는 모든 이벤트, 즉 사용자 입력, 도구 (tool) 호출 결과, 사고 과정 (thought fragments), 최종 응답은 모두 가로채기 (interceptor)를 통해 캡처되어 브로드캐스트 (broadcast)됩니다. 에이전트 (agent)는 구독자 (subscriber)의 동작을 처리할 책임을 가질 필요가 없습니다.
agent 이벤트 → channel
↓
Pub(sessionID, event) ← 브로드캐스트 (broadcast)
...
데몬 (Daemon) 로그
모든 slog 호출을 가로채는 daemonSlogHandler가 추가되었습니다. 이는 stderr에 기록하는 동시에 모든 채널 (channel)로 브로드캐스트 (broadcast)를 보냅니다 (단, Telegram / Discord 메시지는 제외). 연결 생성, 도구 (tool) 타임아웃, 메모리 압축, 오류 경고를 포함한 모든 시스템 이벤트는 TUI를 켜두기만 하면 실시간으로 추적할 수 있습니다.
slog.Info("xxx")
↓
daemonSlogHandler.Handle()
...
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기