에이전트 제로
개인적이고 유기적인 AI 프레임워크
- Agent Zero는 사전 정의된 에이전트 프레임워크가 아닙니다. 역동적이고 유기적으로 성장하며 사용하면서 학습할 수 있도록 설계되었습니다.
- Agent Zero는 완전히 투명하고 읽기 쉽고 이해하기 쉽고 사용자 정의가 가능하며 대화형입니다.
- Agent Zero는 컴퓨터를 도구로 사용하여 해당 작업을 수행합니다.
이제 반응형 UI, 자동 메모리 및 반사 기능이 제공됩니다.
주요 개념
- 범용 보조자
- Agent Zero는 특정 작업에 대해 사전 프로그래밍되어 있지 않습니다(그러나 그럴 수 있음). 범용 개인 비서로 사용됩니다. 작업을 지정하면 정보를 수집하고, 명령과 코드를 실행하고, 다른 에이전트 인스턴스와 협력하고, 이를 달성하기 위해 최선을 다합니다.
- 여기에는 영구 메모리가 있어 이전 솔루션, 코드, 사실, 지침 등을 기억하여 향후 작업을 더 빠르고 안정적으로 해결할 수 있습니다.
- 도구로서의 컴퓨터
- Agent Zero는 작업을 수행하기 위한 도구로 운영 체제를 사용합니다. 사전 프로그래밍된 단일 목적 도구가 없습니다. 대신 자체 코드를 작성하고 터미널을 사용하여 필요에 따라 자체 도구를 만들고 사용할 수 있습니다.
- 무기고에 있는 유일한 기본 도구는 온라인 검색, 메모리 기능, 통신(사용자 및 다른 에이전트와의) 및 코드/터미널 실행입니다. 다른 모든 것은 에이전트 자체에서 생성되거나 사용자가 확장할 수 있습니다.
- 도구 사용 기능은 매우 작은 모델에서도 가장 호환성이 높고 신뢰할 수 있도록 처음부터 개발되었습니다.
- 기본 도구: Agent Zero에는 지식, 웹 페이지 콘텐츠, 코드 실행 및 통신과 같은 도구가 포함되어 있습니다.
- 사용자 정의 도구 만들기: 자신만의 사용자 정의 도구를 만들어 Agent Zero의 기능을 확장하세요.
- 계측기: 계측기는 Agent Zero가 호출할 수 있는 사용자 정의 기능 및 프로시저를 생성할 수 있는 새로운 유형의 도구입니다.
- 다중 에이전트 협력
- 모든 에이전트에는 작업과 지침을 제공하는 우수한 에이전트가 있습니다. 그런 다음 모든 에이전트는 상사에게 보고합니다.
- 체인의 첫 번째 에이전트(에이전트 0)의 경우 상위는 인간 사용자입니다. 상담원은 차이를 느끼지 않습니다.
- 모든 에이전트는 하위 에이전트를 생성하여 하위 작업을 분류하고 해결하는 데 도움을 줄 수 있습니다. 이는 모든 상담원이 상황을 명확하고 집중적으로 유지하는 데 도움이 됩니다.
- 완전히 사용자 정의 가능하고 확장 가능
- 이 프레임워크에는 하드 코딩된 것이 거의 없습니다. 아무것도 숨겨져 있지 않습니다. 모든 것은 사용자에 의해 확장되거나 변경될 수 있습니다.
- 전체 동작은 프롬프트/기본/agent.system.md 파일의 시스템 프롬프트에 의해 정의됩니다. 이 프롬프트를 변경하고 프레임워크를 극적으로 변경하세요.
- 프레임워크는 어떤 방식으로든 에이전트를 안내하거나 제한하지 않습니다. 에이전트가 따라야 하는 하드 코딩된 레일은 없습니다.
- 통신 루프에서 에이전트에 전송된 모든 프롬프트, 모든 작은 메시지 템플릿은 프롬프트/ 폴더에서 찾아 변경할 수 있습니다.
- 모든 기본 도구는 python/tools/ 폴더에서 찾을 수 있으며 변경하거나 복사하여 미리 정의된 새로운 도구를 만들 수 있습니다.
- 물론 오픈 소스입니다(Perplexity와 같은 일부 도구는 제외되지만 향후 오픈 소스 대안으로 대체될 예정임).
- 의사소통이 핵심이다
- 에이전트에게 적절한 시스템 프롬프트와 지침을 제공하면 기적을 일으킬 수 있습니다.
- 상담원은 상사 및 부하직원과 소통하여 질문하고, 지시하고, 안내할 수 있습니다. 효과적인 의사소통 방법에 대해 시스템 프롬프트에서 상담원에게 지시하십시오.
- 터미널 인터페이스는 실시간 스트리밍 및 대화형입니다. 언제든지 중단하고 개입할 수 있습니다. 상담원이 잘못된 방향으로 가고 있는 것을 발견하면 즉시 멈추고 알려주세요.
- 이 프레임워크에는 많은 자유가 있습니다. 계속하려면 상사에게 정기적으로 보고하여 허가를 요청하도록 대리인에게 지시할 수 있습니다. 하위 작업을 위임할 시기를 결정할 때 점수 시스템을 사용하도록 지시할 수 있습니다. 상사는 부하직원의 결과를 다시 확인하고 이의를 제기할 수 있습니다. 가능성은 무한합니다.
있으면 좋은 기능
- 출력은 매우 깨끗하고 다채로우며 읽기 쉽고 대화형입니다. 아무것도 숨겨져 있지 않습니다.
- 터미널에서 볼 수 있는 것과 동일한 다채로운 출력이 모든 세션에 대해 로그/ 폴더의 HTML 파일에 자동으로 저장됩니다.
- 에이전트 출력은 실시간으로 스트리밍되므로 사용자는 언제든지 내용을 읽고 개입할 수 있습니다.
- 코딩은 필요하지 않으며 프롬프트 및 의사소통 기술만 필요합니다.
- 견고한 시스템 프롬프트를 통해 프레임워크는 정확한 도구 사용을 포함하여 작은 모델에서도 안정적입니다.
명심하세요
에이전트 제로는 위험할 수 있습니다! 적절한 지침을 통해 Agent Zero는 컴퓨터, 데이터 또는 계정에 잠재적으로 위험할 수도 있는 많은 일을 할 수 있습니다. 항상 Agent Zero를 격리된 환경(예: 내장형 Docker 컨테이너)에서 실행하고 원하는 사항에 주의하세요.
Agent Zero는 사전 프로그래밍되어 있지 않습니다. 프롬프트 기반입니다. 전체 프레임워크에는 최소한의 코드만 포함되어 있으며 어떤 방식으로도 에이전트를 안내하지 않습니다. 모든 것은 Prompts/ 폴더의 시스템 프롬프트에 있습니다. 여기서 전체 프레임워크 동작을 필요에 맞게 다시 작성할 수 있습니다. 에이전트가 제대로 통신하지 못하는 경우 도구를 사용하고, 추론하고, 메모리를 사용하고, 답을 찾으세요. 더 나은 방법으로 지시하세요.
이상적인 환경을 제공할 수 없는 경우 상담원에게 알려주세요. Agent Zero는 일부 도구가 사전 설치 및 구성된 격리된 가상 환경(안전을 위해)에서 사용되도록 만들어졌습니다. 필요한 조건이나 API 키를 모두 제공할 수 없는 경우 시스템 프롬프트를 변경하고 에이전트에게 어떤 운영 체제와 도구를 사용할 수 있는지 알려주십시오. 하드 코딩된 것은 없습니다. 에이전트에게 특정 도구에 대해 알리지 않으면 해당 도구에 대해 알지 못하며 사용하려고 시도하지 않습니다.
알려진 문제
- 시스템 프롬프트가 짜증납니다. 당신은 더 잘할 수 있습니다. 그렇다면 도와주세요 :)
- SSH를 통한 Docker 컨테이너의 에이전트와 터미널 간의 통신은 때때로 중단되어 출력 생성을 중지할 수 있습니다. 때로는 에이전트가 "server.serve_forever()"와 같은 것을 실행하여 터미널이 정지되기 때문에 때로는 임의의 오류가 발생할 수 있습니다. 에이전트 및/또는 Docker 컨테이너를 다시 시작하면 도움이 됩니다.
- 상담원은 운영 체제를 손상시킬 수 있습니다. 때로는 에이전트가 가상 환경을 비활성화하고, 패키지를 제거하고, 구성을 변경하는 등의 작업을 수행할 수 있습니다. 다시 말하지만, docker 컨테이너를 제거하고 work_dir/을 정리하는 것만으로도 문제를 해결할 수 있습니다.
이상적인 환경
- Docker 컨테이너 : Agent Zero를 실행하기 위한 완벽한 환경은 내장된 Docker 컨테이너입니다. 에이전트는 자체적으로 frdel/agent-zero-exe 이미지를 다운로드하고 컨테이너를 시작할 수 있습니다. Docker Desktop 애플리케이션과 같이 docker를 실행하기만 하면 됩니다.
- Python : 프레임워크를 실행하려면 시스템에 Python이 설치되어 있어야 합니다.
- 인터넷 액세스 : 에이전트가 온라인 지식 도구를 사용하고 연결이 필요한 명령 및 스크립트를 실행하려면 인터넷 액세스가 필요합니다. 에이전트가 온라인 상태일 필요가 없으면 프롬프트/ 폴더에서 프롬프트를 변경하여 완전히 로컬로 만들 수 있습니다.
설정
비디오가 포함된 Windows, macOS 및 Linux에 대한 자세한 설정 가이드는 이 페이지의 새로운 Agent Zero 설명서에서 찾을 수 있습니다.
문서를 참조하세요
문서에서는 프레임워크와 해당 기능에 대해 자세히 설명합니다. Agent Zero를 처음 접하는 경우 시작하기 좋은 곳입니다. 설명서를 보려면 여기를 클릭하세요.
곧
- 사전 설치된 바이너리 및 번들러 스크립트
- 지식 도구 오픈 소스 및 웹 스크래핑 도구
- 사용자 상호 작용 개선
- 상황에 맞게 전환 가능한 LLM
변경 내역 [버전 0.7부터]
v0.7.1
- 영구 채팅 - /tmp/chats에 직렬화되고 시작 시 run_ui.py에 자동으로 로드됩니다.
- 문서 스택이 저장소에 병합되었습니다.
- 버그 수정
v0.7
- 자동 메모리
- UI 개선
- 악기
- 확장 프레임워크
- 반사 프롬프트
- 버그수정
메모
v0.6 이후 실행 파일에 대한 변경 사항:
- main.py 파일이 run_ui.py(webui) 및 run_cli.py(터미널) 실행 파일로 대체되었습니다.
- webui 및 터미널 실행 파일 모두에 대한 구성이 초기화.py로 이동되었습니다.