시맨틱 웹은 오랫동안 나에게 흥미를 가져왔습니다. 웹을 인공지능이 접근할 수 있는 이해 가능한 데이터베이스로 변환한다는 아이디어는 나의 지속적인 탐구의 기반이 되었습니다. 인터넷의 정보 혼란을 감시하는 디지털 파수꾼인 스마트 경보 시스템을 만든다는 개념은 지속적으로 나의 호기심을 불러일으키는 애플리케이션이었습니다. 웹이라는 넓은 바다를 끊임없이 저어하면서 새 책의 출간과 같은 특정 이벤트가 발생하면 이를 알려주는 로봇을 상상해 보세요. 이것은 내가 수년 동안 쫓아온 꿈이다.
AutoGPT 및 BabyAGI와 같은 자율 에이전트의 출현은 나의 관심을 불러일으켰습니다. 이러한 시스템은 AI 기술의 유망한 새로운 방향을 제시했습니다. 나는 스마트 경보 시스템에 대한 나의 꿈을 실현하려는 열망을 가지고 이러한 도구를 실험하기로 결정했습니다. 그러나 나의 흥분은 금방 가라앉았습니다. 이러한 시스템은 고급이지만 목표와 그에 따른 단계 구분에 중점을 두고 작동합니다. 이는 제가 구상했던 지속적이고 경계적인 모니터링 시스템과는 거리가 멀습니다. 실망스럽게도 나는 그들의 아키텍처가 그러한 작업에 적합하지 않다는 것을 알았습니다. 때로는 작동하게 만들 수 있지만 안정적이지는 않습니다.
기존 모델의 단점은 새로운 것을 만들려는 계기가 되었습니다. 나는 이벤트 기반 자율 에이전트 시스템인 나만의 시스템을 만들기로 결정했습니다. 나는 그것을 WhenX라고 부른다.
시스템의 목표는 "X가 발생하면 Y를 수행합니다"라는 형식으로 경고를 생성하는 것입니다. 이 초기 버전에서는 "X 문제가 발생하면 이메일 보고서를 보내주세요" 형식의 이메일 알림만 지원합니다.
시스템은 캡틴, 스카웃, 센티넬, 솔저 등 4명의 에이전트로 구성됩니다.
선장은 이 오케스트라의 지휘자입니다. 임무가 주어지면 스카웃, 센티넬, 솔저 등 요원 팀을 구성하는 일을 담당합니다.
스카웃은 관련 정보 탐색에 착수하는 탐험가 역할을 하며 여행 과정에서 '관찰'을 생성합니다. 이러한 관찰은 WhenX 시스템에 연료를 공급하는 필수 원자재입니다.
문지기인 센티넬 은 스카웃이 마지막으로 관찰한 N개를 면밀히 조사합니다. 이는 관찰 데이터의 아무리 미묘한 변화라도 식별하도록 설계된 안목 있는 개체입니다. 주목할만한 것을 감지하면 '경보'를 발생시켜 솔저에게 조치를 취하도록 신호를 보냅니다.
집행자인 솔저 는 센티넬로부터 경보를 받으면 행동에 나섭니다. 알람을 기반으로 명령을 실행하여 감지된 변경 사항이나 이벤트를 요약하는 '보고서'를 작성합니다.
$ poetry install
$ poetry run alembic upgrade head
.env.example 파일을 .env에 복사하고 값을 입력합니다. 우리는 이메일을 보내기 위해 재전송 서비스를 사용하고 있습니다. 무료 계정을 만들어 테스트에 사용할 수 있습니다.
시스템의 목표는 "X가 발생할 때"와 "나에게 보고서 보내기" 형식으로 경고를 생성하는 것입니다. 이 초기 버전에서는 이메일 알림만 지원합니다.
먼저 미션을 생성해야 합니다. 임무는 경고에 대한 설명입니다. 예를 들어, "무라카미 하루키가 새 책을 발표할 때"입니다.
$ python -m whenx create --mission " when Haruki Murakami releases a new book. "
시스템이 실행되기 시작하고 매일 새로운 관찰이 생성됩니다. 관찰은 쿼리의 현재 상태에 대한 스냅샷입니다. 시스템은 마지막 2개의 관찰 내용을 비교하고 변경 사항을 감지하면 보고서가 포함된 이메일을 보냅니다.
$ python -m whenx monitor
모든 경고와 해당 상태를 나열할 수 있습니다.
$ python -m whenx list
해당 ID로 알림을 삭제할 수 있습니다.
$ python -m whenx delete --id a5dc910a-4457-4911-8ba3-c7713588e7ff