mcpField
T
tinyagents

tinyagents

github.com/albertvillanova框架与 SDK7575 周前更新

关于 tinyagents

tinyagents 是一个极简的 Python 项目,用于构建由 LLM 和 MCP 工具驱动的 Agent。它提供两种 Agent 实现,适合希望快速理解 MCP 客户端与 Agent 工作流的开发者。

主要功能

  1. 01TinyToolCallingAgent 通过工具调用完成任务
  2. 02TinyCodeAgent 基于 Python 代码生成解决方案
  3. 03通过 stdio 连接 Python 或 JavaScript MCP 服务
  4. 04动态发现服务端提供的工具
  5. 05包含天气 MCP 服务示例

适用场景

  1. 01学习 MCP 客户端与 Agent 的基本实现方式
  2. 02基于轻量代码搭建 LLM Agent 工作流原型
  3. 03使用天气服务示例测试工具调用

MCP 相关

该项目是 MCP 客户端,通过 stdio 连接 Python 或 JavaScript 的 MCP 服务,动态发现其工具并在对话中调用这些工具。

详细介绍

tinyagents

TinyAgents: 大模型 + MCP 工具

TinyAgents 是一个由大模型和 Model Context Protocol (MCP) 工具驱动的 Agent 的极简实现。

本项目灵感来自 MCP 客户端快速入门,为构建基于大模型的 Agent 工作流提供了轻量级基础。

Agent 实现

该仓库包含两种不同的 Agent 实现:

TinyToolCallingAgent

TinyToolCallingAgent 是一个通用 Agent,可以通过调用外部工具解决任务。它:

  • 连接到 Python 或 JavaScript MCP 服务
  • 使用 Qwen2.5-Coder-32B-Instruct 模型处理用户查询
  • 动态发现和调用 MCP 服务提供的工具
  • 处理工具调用结果并继续对话
  • 为用户交互提供交互式聊天循环

使用方法:

python tinytoolcallingagent.py <path_to_server_script>
TinyCodeAgent

TinyCodeAgent 设计用于使用 Python 代码解决任务。它连接到 MCP 服务以访问工具,并可以:

  • 连接到 Python 或 JavaScript MCP 服务
  • 使用 Qwen2.5-Coder-32B-Instruct 模型处理用户查询
  • 生成 Python 代码解决方案
  • 执行 Python 代码并显示结果(待做)
  • 为用户交互提供交互式聊天循环

使用方法:

python tinycodeagent.py <path_to_server_script>

通用功能

两个 Agent 共享这些功能:

  • 使用 Python asyncio 的异步操作
  • 通过 stdio 连接到 MCP 服务
  • 交互式聊天界面
  • 动态工具发现
  • 与 Hugging Face InferenceClient 的集成

包含的示例:天气服务

该仓库在 servers/weather 目录中包含了一个示例 MCP 服务实现。该服务提供了从国家气象局 API 访问天气数据的工具:

  • get_alerts:检索指定美国州的天气警报
  • get_forecast:根据纬度和经度获取位置的详细天气预报

要将天气服务用于其中一个 Agent:

# With TinyToolCallingAgent
python tinytoolcallingagent.py servers/weather/weather.py

# With TinyCodeAgent
python tinycodeagent.py servers/weather/weather.py

未来增强

Python 代码执行

TinyCodeAgent 应包含一个基本的 Python 代码执行器,该执行器可以:

  • 自动从大模型的响应中提取 Python 代码块
  • 在受控环境中执行代码
  • 捕获和显示标准输出和错误流
  • 报告执行状态(成功或失败)

此功能将使用户能够立即看到 Agent 提供的代码解决方案的结果,使其对编程任务更具交互性和实用性。

需求

  • Python 3.10+
  • mcp >= 1.9.0
  • huggingface-hub >= 0.31.2
  • httpx(用于天气服务示例)

快速开始

  1. 安装所需的依赖
  2. 设置 MCP 服务(使用包含的天气服务或创建自己的服务)
  3. 运行其中一个 Agent 实现,指向你的服务脚本

针对天气服务的示例查询:

  • "What are the current weather alerts in New York and California?"
  • "What's the forecast for latitude 37.7749 and longitude -122.4194?"

注意:MCP 服务仅供测试和开发目的使用。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。