TL;DR
- 기존 에이전트가 하나의 프로젝트 로컬 MCP 서버를 통해 서로를 찾고, 메시지를 주고받으며, 작업을 조율하는 Agent DMs 소개임.
- 메시지를 읽어도 삭제되지 않으며, 수신 에이전트가 임대된 메시지 묶음을 가져와 처리한 뒤 처리한 메시지만 명시적으로 확인하는 구조임.
- 에이전트 실행이나 프로세스 관리는 제공하지 않으며, HTTP 클라이언트와 stdio 브리지가 같은 데몬과 메일함에 연결됨.
- 실험적 0.1 시리즈로, Linux와 Python 3.11/3.12에서 테스트됐으며 네이티브 Claude Code 및 Codex 세션은 아직 클라이언트 수용성 확인이 필요함.
- 범위는 로컬 파일 시스템의 프로젝트 하나, 데몬 하나, SQLite 데이터베이스 하나이며, 웹 UI·호스팅 서비스·프로세스 실행기는 포함되지 않음.
에이전트가 서로 직접 메시지를 주고받고 조율
- Agent DMs는 이미 실행 중인 에이전트에 공유되고 지속되는 받은 편지함을 제공함.
- 에이전트 간 메시지를 수동으로 복사하지 않아도 되며, 연결된 에이전트가 동료를 찾고 진행 중인 작업을 공유하고 다이렉트 메시지(DM)를 보내고 답장을 가져올 수 있음.
- 이 기능은 하나의 프로젝트 로컬 MCP 서버를 통해 제공됨.
- 첨부 영상에는 실제로 검증된 제품 결과가 아닌 설명용 사용량 및 인기도 수치가 포함됨.
작동 방식
- 기존 에이전트와 모델을 그대로 사용하며, Agent DMs는 메시징을 제공할 뿐 모델 실행을 제공하지 않음.
- 에이전트를 실행하거나 에이전트 프로세스를 관리하지 않음.
- HTTP 클라이언트와 stdio 브리지는 동일하게 실행 중인 데몬과 메일함에 연결됨.
전송부터 처리 완료까지의 메시지 흐름
- DM을 읽어도 메시지는 삭제되지 않음.
- 수신 에이전트는 임대된 메시지 묶음을 가져와 처리한 뒤, 실제로 처리한 메시지를 정확히 지정해 명시적으로 확인해야 함.
- 확인 전에 임대가 만료되면 메시지를 다시 가져올 수 있음.
- 답장도 메시지일 뿐이며, 원래 작업이 완료됐다는 자동 증거가 아님.
- 기존 에이전트 간 질문, 인계 또는 검토에 사용할 수 있음.
- 프로토콜은 기존 권한 범위 내에서 명시적인 Manager/Worker 질문, 완료 보고 및 검토 답장도 지원함.
실험 버전 및 호환성
- 실험적인 0.1 시리즈이며, 게시된 버전은 Releases에서 확인할 수 있음. 게시 버전이 나오기 전까지는 승인된 소스 체크아웃을 사용해야 함.
- Linux와 Python 3.11/3.12에서 테스트됨.
- MCP HTTP/stdio 상호 운용성은 공식 SDK로 테스트됐으며, 네이티브 Claude Code 및 Codex 세션은 아직 클라이언트 수용성 확인이 필요함.
- 데모의 제공자 라벨은 네이티브 모델 실행을 의미하지 않음.
두 에이전트 간 메시지 교환 실행
- 구현은 main이 아니라 preparation 브랜치에 있으므로 아래 명령에는 해당 소스 체크아웃이 필요함.
- Linux와 Python 3.11 이상에서 가상 환경을 만들고, 해시 검증을 사용하는 개발 의존성 잠금 파일을 설치한 뒤 패키지를 개발 모드로 설치하고 데모를 실행함.
- 데모는 임시 신원 두 개를 만들고 임시 로컬 서버를 시작한 뒤 DM과 답장을 주고받고 두 메시지를 명시적으로 확인함.
- 출력에는 Manager와 Worker의 온라인 상태, 작업 상태, 메시지 UUID, 메시지 가져오기 결과, 답장 및 상위 메시지 확인 결과, 답장 확인 결과가 표시되며 데모가 통과하면 임시 메일함이 제거됨.
- 이 SDK 데모에는 제공자 계정이 필요하지 않으며, 격리된 임시 메일함과 사용 가능한 루프백 포트를 사용함.
- 휠 설치 및 플랫폼 요구 사항은 installation 문서에서 확인할 수 있음.
에이전트를 프로젝트에 연결
- 프로젝트를 한 번 초기화하고 대화마다 별도 신원을 만들며 데몬 하나를 계속 실행함.
agent-dms init --project-root .로 프로젝트를 초기화하고,agent-dms agent --data-dir .agent-dms add Manager --provider codex및agent-dms agent --data-dir .agent-dms add Worker --provider claude로 Codex용 Manager와 Claude용 Worker 신원을 생성함.- 각 신원 생성 명령은 에이전트 UUID와 비공개 토큰 파일 경로를 반환하며, 해당 파일은 Git에 포함하지 않아야 함.
agent-dms serve --data-dir .agent-dms로 데몬을 실행함.- 반환된 값으로
agent-dms config명령을 실행해 Codex용 HTTP 또는 Claude용 stdio 설정 예시를 출력함. - 설정 생성은 클라이언트 설정 파일을 수정하지 않음. 비밀 정보 관리, 대화별 별도 신원 및 에이전트 프로토콜은 client setup 문서에서 확인할 수 있음.
- stdio 어댑터는 동일한 실행 중인 데몬에 전달하며 두 번째 메일함을 만들거나 모델을 시작하지 않음.
- Agent DMs에는 제공자 API 키가 저장되지 않음.
메일함이 보장하는 사항
- 작업 가시성: 동료 에이전트와 상태를 확인할 수 있으며, 새 메시지를 보내기 전 15분 이내에 상태를 새로 고쳐야 함. 현재 접속 상태와 현재 작업은 별개임.
- 지속성 있는 메시지: 읽어도 DM이 제거되지 않음. 정확히 지정된 임대 메시지 묶음을 가져온 뒤 처리한 메시지만 확인함.
- 안전한 재시도: 응답을 받지 못한 경우 동일한 작업과 멱등성 키를 재사용함. 메시지 확인이 부수 효과의 정확히 한 번 실행을 보장하지는 않음.
- 검토 대화: 기존 소유자 권한 내에서 Manager/Worker 간 명시적인 인계, 질문, 답변, 완료, 수정 및 승인 메시지를 주고받음.
- 선택적 알림: 로컬 감시자가 표준 출력 힌트를 내보내거나 지원되는 설치된 Codex 대기열을 사용할 수 있음. 깨우기 요청이 수락돼도 에이전트가 실제로 행동했다는 뜻은 아님.
범위와 지원
- 범위는 로컬 파일 시스템에 있는 프로젝트 하나, 데몬 하나, SQLite 데이터베이스 하나임.
- v1에는 보존·정리 기능, 프로세스 실행기, 호스팅 서비스 및 웹 UI가 없음.
- 네이티브 Windows는 지원되지 않으며,
fcntl이 필요함. macOS와 WSL은 별도 검증이 필요함. - CI 테스트 행렬보다 최신인 Python 버전은 아직 검증되지 않음.
- 기본 데몬은 루프백 주소에 바인딩되고 베어러 인증을 사용함. 원격 사용에는 명시적 허용 목록과 신뢰할 수 있는 TLS 종료 지점이 필요함.
- 같은 운영체제 사용자의 권한으로 상태 파일을 읽을 수 있는 사람은 애플리케이션 격리를 우회할 수 있음. 메시지 텍스트는 신뢰할 수 없는 입력으로 취급해야 함. 자세한 내용은 security boundary 문서에 있음.
문서
- 설치 · 클라이언트 설정
- 프로토콜 및 도구 · 아키텍처
- 백업, 복구 및 운영
- 기여 · 지원 · 보안 문제 신고
- 릴리스 노트 · 구현 근거
라이선스
- 49Agents 프로젝트이며 MIT 라이선스를 사용함.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요