Agenvoy - 工具 ask_user 異步設計
개요
Agenvoy는 AI 어시스턴트의 사용자 질문 응답 방식을 비동기식으로 전환하여, 사용자의 지속적인 참여 없이도 Agent가 장시간 자율적으로 실행될 수 있도록 개선했습니다.
주요 내용
* 기존 문제점: Agent가 사용자에게 질문하는 ask_user 과정은 동기식으로, 사용자의 응답을 기다리는 동안 Agent 실행이 중단되었습니다. 이는 10분 타임아웃 설정에도 불구하고 사용자가 메시지를 놓치면 처음부터 다시 시작해야 하는 불편함을 야기하여, Agent의 장시간 자율 운영 목표 달성을 어렵게 만들었습니다.
* 비동기 설계 도입: Claude 웹 버전의 아이디어에서 영감을 받아, Agent는 질문과 함께 사용자의 답변을 다음 Agent 실행 단계로 직접 전달하는 방식으로 변경되었습니다.
* 상태 저장 및 복원: ask_user 전에 Agent의 목표, 완료된 작업, 다음 단계에 대한 정보를 기록하고 현재 실행 루프를 종료합니다. 사용자의 응답이 오면, 이 저장된 상태 기록과 사용자의 답변을 결합하여 새로운 컨텍스트를 생성하고 Agent 프로세스를 다시 시작합니다.
* 메모리에서 디스크로 상태 이전: Agent 실행 상태를 메모리가 아닌 디스크에 저장함으로써, 사용자가 응답하는 데 시간이 오래 걸리더라도(예: 하루 후) 상태가 영구적으로 보존되어 작업이 중단 없이 재개될 수 있습니다.
* ask_user 전 상태 기록의 목적:
* Agent가 재개 시 이미 조회된 데이터를 포함한 완전한 컨텍스트를 가지고 다음 단계를 실행할 수 있도록 합니다.
* Agent가 ask_user 전에 현재 상태를 다시 한번 정리하고, 요구사항과 목표를 일치시키도록 합니다.
* 비동기 설계의 이점: Agent의 도구 실행(수백 밀리초)과 사용자 응답 대기 시간(수 시간까지 가능) 간의 극명한 차이를 효과적으로 관리하여, Agent의 가용성을 크게 향상시켰습니다.
시사점
Agenvoy의 비동기 설계는 Agent가 사용자의 즉각적인 피드백에 의존하지 않고도 복잡하고 시간이 오래 걸리는 작업을 독립적으로 수행할 수 있게 함으로써, AI 어시스턴트의 실질적인 자율성과 유용성을 한 단계 끌어올렸습니다.
댓글
GitHub Discussions