Don't trust "Done." — forcing AI agents to re-fetch reality before they report completion
개요
AI 에이전트가 작업 완료를 보고하기 전에 실제 상태를 재확인하도록 강제하는 '완료 계약'은 에이전트가 수행한 작업의 실제 완료 여부를 검증하는 데 필수적입니다.
주요 내용
* AI 에이전트의 '완료' 보고 오류: AI 에이전트가 작업을 수행했다고 보고해도 실제로는 실패했거나 중간에 중단되었을 수 있으며, 이는 에이전트가 작업 수행과 상태 확인을 동일한 단계로 처리하기 때문입니다.
* 오류 발생 메커니즘: LLM 에이전트는 도구를 호출한 후 반환 값을 보고 다음 문장을 생성하는데, 이때 도구의 반환 값이 비어 있거나 모호하면 가장 가능성 높은 다음 문장으로 '완료'를 생성하며 실제 세계의 변화를 확인하지 않습니다.
* '완료 계약'의 필요성: 작업 수행(생성, 업데이트, 삭제, 업로드, 삽입 등) 후에는 반드시 별도의 명령으로 실제 상태를 재확인하고 그 결과를 기반으로 '완료'를 보고해야 합니다.
* 기존 가드레일의 한계: Guardrails-ai, deepeval 등 기존 도구들은 LLM이 생성한 텍스트의 형식, 유해성, 사실 일관성 등을 검증하지만, 작업 완료 후 실제 세계의 상태 변화를 재확인하는 기능은 부족합니다.
* '완료 계약'의 구현:
* 프롬프트 기반: 에이전트의 시스템 프롬프트에 '완료 계약' 내용을 포함시켜 기본적인 검증을 수행할 수 있습니다.
* 기계적 강제: Genchi 라이브러리를 사용하여 '완료 계약'을 코드로 구현하고, 작업 후 실제 상태를 재확인하는 프로브(probe)를 실행하여 완료 여부를 기계적으로 검증합니다.
* Genchi 라이브러리의 기능:
* gate 함수는 프로브를 통해 실제 상태를 재확인하고, 예상 결과와 비교하여 검증합니다.
* 실패 시 GenchiIncomplete 오류를 발생시키며, 빈 결과, 오류, 타임아웃 등을 명확하게 보고합니다.
* JavaScript 외 환경을 위한 CLI 도구도 제공합니다.
* 현실 적용 시점: AI 에이전트가 실제 세계를 변경하는 작업이 늘어나면서 이러한 검증 메커니즘의 필요성이 대두되고 있으나, 아직 많은 사용자가 경험하지 못했을 수 있습니다.
시사점
AI 에이전트의 신뢰성을 높이기 위해, 단순한 텍스트 검증을 넘어 실제 작업 결과를 실시간으로 재확인하는 '완료 계약' 메커니즘 도입은 필수적이며, Genchi와 같은 도구를 통해 구현할 수 있습니다.
댓글
GitHub Discussions