构建 AI 代理时,不仅仅是生成智能回复,还要赋予代理执行操作的能力。这就是 Model Context Protocol (MCP) 的作用。MCP 让代理能够以统一的方式访问外部工具和服务。可以把它想象成为你的代理接入了一个真正能用的工具箱。
比如,你把代理连接到计算器 MCP 服务器。这样,代理只需收到“47 乘以 89 等于多少?”这样的提示,就能执行数学运算——无需硬编码逻辑或开发自定义 API。
本课将介绍如何使用 Visual Studio Code 中的 AI Toolkit 扩展,将计算器 MCP 服务器连接到代理,使代理能够通过自然语言执行加、减、乘、除等数学运算。
AI Toolkit 是 Visual Studio Code 的强大扩展,简化了代理开发流程。AI 工程师可以轻松开发和测试生成式 AI 模型,无论是在本地还是云端。该扩展支持目前大多数主流生成式模型。
注:AI Toolkit 当前支持 Python 和 TypeScript。
完成本课后,你将能够:
我们的大致步骤如下:
很好,了解流程后,让我们配置一个 AI 代理,通过 MCP 利用外部工具,提升它的能力!
本练习中,你将使用 AI Toolkit 在 Visual Studio Code 内构建、运行并增强一个带有 MCP 服务器工具的 AI 代理。
本练习使用 GPT-4o 模型。创建代理前,应先将该模型添加到 我的模型。
%E5%88%9D%E5%AD%A6%E8%80%85%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8D%97/aitk-model-catalog.webp)
Agent (Prompt) Builder 允许你创建和定制自己的 AI 代理。本节将创建一个新代理,并为其指定对话所用模型。
%E5%88%9D%E5%AD%A6%E8%80%85%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8D%97/aitk-agent-builder.webp)
代理搭建完成后,接下来定义其个性和用途。本节将使用 生成系统提示 功能,描述代理的预期行为(此处为计算器代理),并让模型帮你写出系统提示。
%E5%88%9D%E5%AD%A6%E8%80%85%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8D%97/aitk-generate-prompt.webp)
You are a helpful and efficient math assistant. When given a problem involving basic arithmetic, you respond with the correct result.定义好代理的系统提示后,接下来为代理配备实际功能。本节将创建一个带有加、减、乘、除工具的计算器 MCP 服务器。该服务器将使代理能够根据自然语言提示执行实时数学运算。
%E5%88%9D%E5%AD%A6%E8%80%85%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8D%97/aitk-add-mcp-server.webp)
AI Toolkit 提供了模板,方便你创建 MCP 服务器。这里我们使用 Python 模板创建计算器 MCP 服务器。
注:AI Toolkit 当前支持 Python 和 TypeScript。
在 Agent (Prompt) Builder 的 工具 部分,点击 + MCP Server 按钮。扩展将通过 命令面板 启动设置向导。
选择 + 添加服务器。
选择 创建新的 MCP 服务器。
选择 python-weather 模板。
选择 默认文件夹 保存 MCP 服务器模板。
输入服务器名称:Calculator
新的 Visual Studio Code 窗口会打开,选择 是,我信任作者。
使用终端(终端 > 新建终端),创建虚拟环境:python -m venv .venv
在终端激活虚拟环境:
.venv\Scripts\activatesource venv/bin/activate在终端安装依赖:pip install -e .[dev]
在 活动栏 的 资源管理器 视图中,展开 src 目录,选择 server.py 文件打开编辑器。
替换 server.py 文件中的代码为以下内容并保存:
""" Sample MCP Calculator Server implementation in Python. This module demonstrates how to create a simple MCP server with calculator tools that can perform basic arithmetic operations (add, subtract, multiply, divide). """ from mcp.server.fastmcp import FastMCP server = FastMCP("calculator") @server.tool() def add(a: float, b: float) -> float: """Add two numbers together and return the result.""" return a + b @server.tool() def subtract(a: float, b: float) -> float: """Subtract b from a and return the result.""" return a - b @server.tool() def multiply(a: float, b: float) -> float: """Multiply two numbers together and return the result.""" return a * b @server.tool() def divide(a: float, b: float) -> float: """ Divide a by b and return the result. Raises: ValueError: If b is zero """ if b == 0: raise ValueError("Cannot divide by zero") return a / b
既然代理已有工具,接下来就用它们吧!本节将向代理提交提示,测试并验证代理是否能正确调用计算器 MCP 服务器的工具。
%E5%88%9D%E5%AD%A6%E8%80%85%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8D%97/aitk-agent-response-with-tools.webp)
你将通过 Agent Builder 作为 MCP 客户端,在本地开发机上运行计算器 MCP 服务器。
我买了3件商品,每件25美元,然后用了20美元折扣。我实际支付了多少钱?a and b values are assigned for the multiply tool.a and b 的值被分配给 subtract 工具。尝试在你的 server.py 文件中添加一个额外的工具条目(例如:返回数字的平方根)。提交需要代理调用你新增工具(或已有工具)的提示。记得重启服务器以加载新添加的工具。
本章的主要收获包括:
免责声明:
本文件由 AI 翻译服务 Co-op Translator 翻译而成。尽管我们力求准确,但请注意,自动翻译可能存在错误或不准确之处。原始文件的原文版本应被视为权威来源。对于重要信息,建议使用专业人工翻译。对于因使用本翻译而产生的任何误解或误释,我们不承担任何责任。