使用 VoltAgent 和 Hugging Face MCP 构建 AI 代理:完整指南
在快速发展的 AI 开发世界中,创建能够与多个 AI 模型和服务无缝交互的智能代理已成为一项关键能力。今天,我们将探讨如何使用 VoltAgent 的 TypeScript 框架结合 Hugging Face 的 MCP 集成来构建强大的 AI 代理。
引言:完美的 AI 代理堆栈
VoltAgent 是一个开源的 TypeScript 框架,旨在帮助开发人员摆脱无代码构建器的限制,同时避免从零开始的复杂性。当它与 Hugging Face 庞大的 AI 模型生态系统通过模型上下文协议 (MCP) 结合时,它就创建了一个构建复杂 AI 代理的强大平台。
MCP 是一种革命性的方法,允许 AI 代理动态连接外部服务和模型。MCP 使代理能够在运行时发现和使用工具,而不是硬编码集成,从而使其更具灵活性和能力。
为什么选择 VoltAgent + Hugging Face MCP?
这种组合提供了几个引人注目的优势
- 访问 500,000 多个模型:利用 Hugging Face 庞大的模型生态系统
- 动态工具发现:代理自动发现可用功能
- 多模态能力:在单个代理中处理文本、图像、音频等
- 生产就绪:采用 TypeScript 构建,适用于企业级应用程序
- 简单集成:只需几行代码即可连接一切
项目设置:入门
让我们深入构建我们的代理。首先,使用 Hugging Face MCP 模板创建一个新的 VoltAgent 项目
npm create voltagent-app@latest -- --example with-hugging-face-mcp
💡 完整源代码:您可以在 VoltAgent Hugging Face MCP 示例 中查看完整的项目代码
前提条件
在开始之前,请确保您已具备以下条件
- Node.js(v20 或更高版本)
- 一个 OpenAI API 密钥
- 一个 Hugging Face 帐户和 API 令牌
环境配置
创建一个 .env
文件,其中包含您的凭据
OPENAI_API_KEY=your_openai_api_key_here
HUGGING_FACE_TOKEN=your_huggingface_token_here
获取 Hugging Face 令牌
- 访问 https://huggingface.co/settings/tokens
- 创建一个具有读取权限的新令牌
- 将令牌复制到您的
.env
文件中
代码深入:构建代理
我们集成的核心在于 src/index.ts
文件。让我们来分解这个优雅的解决方案是如何工作的
import VoltAgent, { Agent, MCPConfiguration } from "@voltagent/core";
import { VercelAIProvider } from "@voltagent/vercel-ai";
import { openai } from "@ai-sdk/openai";
async function main() {
try {
// Configure MCP connection to Hugging Face
const mcpConfig = new MCPConfiguration({
servers: {
"hf-mcp-server": {
url: "https://huggingface.co/mcp",
requestInit: {
headers: { Authorization: `Bearer ${process.env.HUGGING_FACE_TOKEN}` },
},
type: "http",
},
},
});
// Create the agent with dynamic tools
const agent = new Agent({
name: "Hugging Face MCP Agent",
instructions: "You are a helpful assistant with access to Hugging Face MCP tools.",
tools: await mcpConfig.getTools(),
llm: new VercelAIProvider(),
model: openai("gpt-4o-mini"),
});
// Initialize VoltAgent
new VoltAgent({
agents: {
agent,
},
});
} catch (error) {
console.error("Failed to initialize VoltAgent:", error);
}
}
main();
🔍 探索代码:在 GitHub 仓库 中查看完整实现
理解 MCP 配置
MCPConfiguration
类是魔法发生的地方
- URL:指向 Hugging Face 的 MCP 端点
- 身份验证:使用您的 Hugging Face 令牌进行安全访问
- 动态工具加载:
getTools()
在运行时获取可用功能
这意味着您的代理在 Hugging Face 添加新模型和功能时会自动访问它们,而无需更改代码!
代理创建过程
Agent
类将所有内容整合在一起
- 名称:在 VoltAgent 平台中识别您的代理
- 指令:定义代理的行为和个性
- 工具:来自 MCP 配置的动态工具
- LLM 提供商:使用 Vercel AI SDK 进行模型交互
- 模型:指定要使用的语言模型(本例中为 GPT-4o-mini)
📖 深入了解:在 VoltAgent 文档 中了解更多关于代理配置的信息
实际示例:代理实战
一旦部署,您的代理可以处理各种各样的任务。让我们探索一些令人兴奋的可能性
使用 FLUX.1-schnell 生成图像
User: "Can you generate an image of a cyberpunk cityscape at sunset?"
Agent: I'll create that image for you using the FLUX.1-schnell model.
[Agent generates stunning cyberpunk cityscape]
代理自动选择最佳可用图像生成模型并处理整个工作流。
使用 StyleTTS2 进行文本转语音
User: "Convert this presentation script to speech: 'Welcome to our quarterly review...'"
Agent: I'll convert your script to natural-sounding speech using StyleTTS2.
[Agent returns high-quality audio file]
非常适合创建播客、演示文稿或辅助功能。
使用 QVQ-72B-preview 进行视觉分析
User: [Uploads image] "What's happening in this photo?"
Agent: I can see this is a busy street market scene. There are vendors selling
fresh fruits and vegetables, with customers browsing the stalls. The lighting
suggests it's early morning, and I can identify several types of produce...
代理可以分析复杂的视觉内容并提供详细的描述。
高级配置和最佳实践
使用私有空间
对于企业用例,您可能希望连接到私有 Hugging Face Spaces
const mcpConfig = new MCPConfiguration({
servers: {
"private-hf-server": {
url: "https://your-private-space.hf.space/mcp",
requestInit: {
headers: {
Authorization: `Bearer ${process.env.HUGGING_FACE_TOKEN}`,
"X-Custom-Header": "your-value",
},
},
type: "http",
},
},
});
多服务器配置
通过连接到多个 MCP 服务器来扩展您的代理
const mcpConfig = new MCPConfiguration({
servers: {
huggingface: {
url: "https://huggingface.co/mcp",
requestInit: {
headers: { Authorization: `Bearer ${process.env.HUGGING_FACE_TOKEN}` },
},
type: "http",
},
"custom-models": {
url: "https://your-custom-endpoint.com/mcp",
requestInit: {
headers: { Authorization: `Bearer ${process.env.CUSTOM_TOKEN}` },
},
type: "http",
},
},
});
运行你的代理
以开发模式启动您的代理
pnpm dev
然后访问 VoltAgent Console 通过网页界面与您的代理进行交互。
使用 VoltOps 进行监控和可观测性
VoltAgent 最强大的功能之一是集成的 VoltOps LLM 可观测性平台。与传统的基于文本的日志工具不同,VoltOps 提供了一个与框架无关的解决方案,用于在任何技术堆栈中监控、调试和改进您的 AI 代理。
交互式工作流可视化
VoltOps 将复杂的代理交互转换为交互式流程图,使其非常易于理解
- 多代理交互:查看不同代理如何协作
- 工具使用模式:跟踪正在使用的 Hugging Face 模型
- 决策流程:了解代理的推理过程
- 性能指标:监控响应时间和成功率
实时监控仪表板
当您的 Hugging Face MCP 代理运行时,您可以访问 VoltOps 平台 https://console.voltagent.dev/demo 以进行以下操作
✅ Track model invocations (FLUX.1-schnell, StyleTTS2, etc.)
✅ Monitor MCP tool usage and success rates
✅ Debug failed Hugging Face API calls
✅ Visualize the complete conversation flow
✅ Analyze performance bottlenecks
生产就绪的可观测性
对于生产部署,VoltOps 提供企业级监控
import { Agent, VoltAgent, VoltOpsClient } from "@voltagent/core";
const voltOpsClient = new VoltOpsClient({
publicKey: "your_voltops_public_key",
secretKey: "your_voltops_secret_key",
});
const agent = new Agent({
name: "Production HF Agent",
instructions: `You are a helpful assistant with access to Hugging Face tools.
All interactions are monitored via VoltOps for quality assurance.`,
tools: await mcpConfig.getTools(),
llm: new VercelAIProvider(),
model: openai("gpt-4o-mini"),
// VoltOps automatically captures all agent interactions
});
new VoltAgent({
agents: { agent },
voltOpsClient: voltOpsClient,
});
这意味着您可以
- 调试问题:当 Hugging Face 模型失败时,准确查看发生了什么
- 优化性能:识别缓慢的模型调用并相应地进行优化
- 监控质量:跟踪对话质量和用户满意度
- 自信扩展:在扩展之前了解使用模式
🔍 尝试演示:在 console.voltagent.dev/demo 体验 VoltOps 交互式监控
AI 代理开发的未来
这种集成代表着 AI 代理开发向前迈出了重要一步。通过将 VoltAgent 强大的框架与 Hugging Face 通过 MCP 的模型生态系统相结合,我们创建了以下代理
- 面向未来:自动访问新模型
- 灵活:处理文本、图像和音频任务的任意组合
- 可扩展:采用 TypeScript 构建,适用于企业部署
- 经济高效:为每个任务选择合适的模型
- 可观测:通过 VoltOps 完全了解代理行为
结论和后续步骤
VoltAgent + Hugging Face MCP 集成展示了现代 AI 开发应如何运作:无缝、强大且对开发人员友好。只需几行代码,我们就创建了一个能够处理复杂多模态任务的代理,而 VoltOps 确保您可以完全了解其行为。
接下来?
- 探索 VoltAgent 文档 以了解高级功能
- 尝试 VoltOps 演示 以查看可观测性实际操作
- 加入 VoltAgent Discord 社区
- 尝试构建您自己的自定义 MCP 集成
- 研究此示例的完整源代码
AI 的未来已至,并且比以往任何时候都更容易访问。立即开始构建您的智能代理。