Corsair - AI 에이전트의 외부 서비스 연결과 권한을 관리하는 통합 레이어

5 hours ago 1
  • AI 에이전트가 Gmail/Slack/GitHub/Notion/Stripe 같은 외부 서비스를 호출할 때 필요한 도구, 인증 정보, 실행 권한을 한곳에서 관리하는 TypeScript 라이브러리
  • Corsair MCP를 에이전트에 연결하거나 SDK를 애플리케이션에 직접 넣어 사용할 수 있음
  • 모든 서비스를 자동으로 제공하는 방식은 아니며, 필요한 통합을 @corsair-dev/<서비스명> 패키지로 설치하고 Corsair 인스턴스에 등록함
    • 지원하지 않는 API는 자체 플러그인으로 추가 가능
  • API 키와 OAuth 토큰은 Corsair가 호출 시점에 내부에서 불러오며, 에이전트에는 메서드와 실행 결과만 전달함
  • 통합별로 에이전트가 바로 실행할 작업과 사용자 승인이 필요한 작업을 설정할 수 있음
    • open: 모든 작업을 바로 실행
    • cautious: 읽기와 일반 쓰기는 바로 실행하고 삭제 등 파괴적 작업은 승인 필요
    • strict: 읽기만 바로 실행하고 쓰기는 승인 필요, 파괴적 작업은 차단
    • readonly: 읽기만 허용
  • 통합 전체에 적용한 모드와 별개로 특정 API만 재정의할 수 있어, Slack은 자유롭게 읽되 메시지 전송에는 승인을 요구하는 식으로 구성 가능
  • 승인이 필요한 Gmail 발송 등을 감지하면 실제 실행을 멈추고, 내용과 매개변수를 검토할 수 있는 10분 만료 승인 링크를 생성함
  • 승인 요청은 에이전트가 접근하지 못하는 데이터베이스에 저장되며, 상태가 approved로 바뀌기 전에는 Corsair를 통한 실행이 진행되지 않음
    • 이 보호는 에이전트가 자격 증명이나 별도의 직접 SDK 호출 경로에 접근하지 못하도록 구성했을 때 유효함
  • 자격 증명은 봉투 암호화 방식으로 저장하며, 사용자가 관리하는 KEK로 테넌트별 데이터 암호화 키를 보호함
  • multiTenancy: true를 사용하면 테넌트별 자격 증명과 데이터 저장소, 권한 판단을 분리할 수 있음
  • 웹훅을 지원하는 플러그인은 타입이 지정되고 서명이 검증되는 핸들러를 제공하며, 여러 서비스의 웹훅을 하나의 엔드포인트에서 처리 가능
  • npm install corsair @corsair-dev/slack @corsair-dev/linear처럼 코어 라이브러리와 필요한 통합을 함께 설치함
  • Apache-2.0 라이선스
Read Entire Article