关于 tinyagents
tinyagents 是一个极简的 Python 项目,用于构建由 LLM 和 MCP 工具驱动的 Agent。它提供两种 Agent 实现,适合希望快速理解 MCP 客户端与 Agent 工作流的开发者。
主要功能
- 01TinyToolCallingAgent 通过工具调用完成任务
- 02TinyCodeAgent 基于 Python 代码生成解决方案
- 03通过 stdio 连接 Python 或 JavaScript MCP 服务
- 04动态发现服务端提供的工具
- 05包含天气 MCP 服务示例
适用场景
- 01学习 MCP 客户端与 Agent 的基本实现方式
- 02基于轻量代码搭建 LLM Agent 工作流原型
- 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(用于天气服务示例)
快速开始
- 安装所需的依赖
- 设置 MCP 服务(使用包含的天气服务或创建自己的服务)
- 运行其中一个 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 服务仅供测试和开发目的使用。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。