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。

相关

  • 项目
  • 项目
  • 项目
  • 项目