Python 微型代理:用 70 行代码轻松连接 MCP 服务器和大语言模型
近日,Hugging Face社区发布了一款名为“Tiny Agents”的Python小工具,它可以在短短约70行代码中实现与大型语言模型(LLMs)的强大互动能力。这款工具是受到JavaScript版本的启发而开发的,并扩展了Hugging Face Hub客户端SDK的功能,使其能够作为MCPS客户端工作,从而轻松地从MCP服务器拉取工具并传递给LLMs在推理过程中使用。 MCP协议简介 MCP(Model Context Protocol)是一种开放协议,标准定义了大语言模型如何与外部工具和API交互。简而言之,这一协议的出现减少了为每个单独工具编写自定义集成的需要,使开发者可以更快速地向大语言模型添加新功能。 如何运行示例 要使用已有的Tiny Agents,首先需要安装最新版支持MCP的Hugging Face Hub客户端: pip install "huggingface_hub[mcp]>=0.32.0" 然后,你可以通过命令行界面运行一个代理。命令如下: tiny-agents run [路径] 命令 [参数] 路径参数可以是你本地拥有agent.json配置文件的文件夹,也可以是从Hugging Face数据集tiny-agents/tiny-agents中选择的一个内置代理。如果没有指定路径,Tiny Agents会默认连接到一或两个预设的MCP服务器上。这里举一个用Qwen模型通过Nebius云服务提供商进行网络浏览的例子: 当运行代理时,用户可以看到它加载,并列出所有已发现的工具。准备好后,代理即可响应用户的请求。比如用户可要求其进行一次Brave搜索引擎上的搜索,打开第一条结果,并从Hugging Face获取到所支持的推断服务列表。 此外,也可以将Gradio Spaces作为MCP服务器使用,这样,除了可以加载Qwen模型,还可以接入图像生成工具。 Agent配置详解 每个Agent的行为都是由一个名为agent.json的配置文件定义的,其中列出了它使用的LLM、推断服务商以及连接的MCP服务器等信息。例如,一个web-browsing代理可能会这样配置: json { "model": "Qwen/Qwen2.5-72B-Instruct", "provider": "nebius", "servers": [ { "type": "stdio", "config": { "command": "npx", "args": ["@playwright/mcp@latest"] } } ] } LLM工具使用机制 现代大语言模型具备执行函数调用(或称工具使用)的能力,这使用户能够方便地构建针对特定场景和现实任务的应用程序。每个工具由其模式定义,这个模式告诉语言模型该工具的功能和所需输入参数种类。Agent负责调度这些工具,并将结果反馈给大语言模型,这一过程符合OpenAI设定的标准接口,增强了语言模型对不同社区成员的需求适配能力。 Python MCP客户端构建 MCPClient是整个系统的核心,它作为huggingface_hub的一部分,负责通过AsyncInferenceClient与大语言模型通信。其实现细节包含了连接MCP服务器的方法(add_mcp_server)、列举可用工具、处理LCP返回的数据和实际调用工具的过程。 在调用工具过程中,当LLM请求某个工具调用后,MCPClient会检查此工具是否为特殊退出循环工具,如果不是,则寻找到对应于该工具的正确MCP会话,并执行工具调用。无论成功还是失败,调用后的结果都将被格式化,加入会话记录,以便Agent了解每次操作的具体输出。 Tiny Python Agent的核心:一个循环 由于MCPClient已经处理好了大部分与模型及工具交流的工作,Agent类本身得以保持简单。它的核心是一个基于MCP Client的无限循环,该循环负责管理与用户之间的对话流程,在每个循环中决定是否继续当前的任务或退出。通过继承MCPClient并在初始化时加载预配置的工具和服务,Agent能够在每次用户输入后,调用相应的处理方法,实现与大语言模型和工具的无缝对接。 未来的可能性与贡献机会 Tiny Agents提供了无穷的探索空间,包括但不限于优化现有功能、设计新的应用场景或是开发额外的MCP标准工具。项目完全开源,因此欢迎任何形式的贡献和讨论。这不仅能够加速项目的进步,还能促进整个大语言模型应用生态系统的发展。 业内评价:这款Tiny Agents的小型代理工具是大模型发展史上的一个重要里程碑,它极大地简化了LLM与外部工具之间的集成过程,展现了AI与现实世界互动的无限潜力。同时,这也是Hugging Face在推动开放和社区合作方面迈出的一大步,其开源性质让全球开发者都能参与到这项创新之中,进一步丰富了大模型的实际应用案例。Hugging Face一直以其开源精神和技术贡献著称,此次发布再次体现了公司在推动AI技术民主化方面的努力。