universal-tool-calling-protocol/python-utcp

Official python implementation of UTCP. UTCP is an open standard that lets AI agents call any API directly, without extra middleware.

해결하는 문제

UTCP는 HTTP, SSE, CLI, MCP와 같은 다양한 통신 프로토콜 간에 도구를 정의하고 상호작용하는 표준화되고 안전하며 확장 가능한 방법을 제공합니다. 새로운 도구나 서비스마다 맞춤형 통합 코드를 작성할 필요 없이, AI 에이전트와 애플리케이션은 단일 통합 인터페이스를 사용해 다양한 외부 API, CLI 도구, 기타 프로토콜과 상호작용할 수 있습니다.

작동 방식

UTCP는 핵심 라이브러리와 플러그인 방식의 프로토콜 플러그인으로 구성된 모듈식 아키텍처를 사용합니다. 핵심 라이브러리는 도구 탐색, 상호작용, 검색과 같은 고수준 로직을 처리하고, 플러그인은 각 프로토콜에 맞는 구체적인 통신 세부 사항을 구현합니다.

  • 핵심 패키지: Pydantic을 사용한 데이터 모델, 도구 상호작용을 위한 UtcpClient, 그리고 플러그인 시스템을 관리합니다.
  • 프로토콜 플러그인: HTTP/REST, SSE, CLI, MCP(모델 컨텍스트 프로토콜), 로컬 텍스트 파일 등의 특정 통신 방식을 구현합니다.
  • 콜 템플릿: 도구에 접근하는 방법(예: URL, HTTP 메서드, CLI 명령어)과 인증 방법을 지정하는 "콜 템플릿"을 사용해 도구를 정의합니다.
  • UtcpManual: 사용 가능한 도구, 그 입력 및 출력을 설명하는 디스커버리 문서로, 클라이언트가 도구를 동적으로 탐색할 수 있도록 합니다.

대상 사용자

AI 에이전트, LLM 기반 애플리케이션, 그리고 다양한 통신 프로토콜을 통해 여러 외부 도구 및 서비스를 확장 가능한 방식으로 통합해야 하는 시스템을 개발하는 개발자들.

주요 특징

  • 다중 프로토콜 지원: HTTP, SSE, CLI, MCP에 대해 기본 지원하며, TCP/UDP 및 GraphQL에 대한 지원도 계획 중입니다.
  • 플러그인 아키텍처: 핵심 라이브러리를 수정하지 않고도 새로운 통신 프로토콜, 도구 저장소, 검색 전략을 쉽게 추가할 수 있습니다.
  • 대칭적 탐색: UtcpManual을 통해 도구를 제공하면 UtcpClient가 자동으로 도구를 탐색할 수 있습니다.
  • 기본적으로 안전: 위험한 프로토콜 승격(예: HTTP 기반 매뉴얼이 CLI 도구를 호출하는 것을 방지)을 막기 위해 프로토콜 제한을 포함합니다.
  • 유연한 인증: API 키, Basic Auth, OAuth2 등 다양한 인증 방식을 지원합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트