正文
简介: 生成式人工智能改变了我们与计算机的交互方式,但想要比聊天更进一步,构建能够自主推理、采取行动和执行 MATLAB® 代码的人工智能系统,则需要一种全新的方法。如今,要求大型语言模型解决工程问题,往往意味着反复复制代码、手动修正错误,并寄希望于 AI 了解您的专业领域。智能体 AI 改变了这一点。
本指南将向您展示如何构建不仅提出解决方案,而且能够执行解决方案的 AI 系统。通过将 LLM 使用模型上下文协议 (MCP) 连接到 MATLAB,您可以创建能够编写代码、运行仿真、分析结果并反复迭代直至完成任务的智能体。
三个框展示了从生成式 AI (手动复制粘贴)到生成式 AI + 工具(AI 编写,您调试)再到智能体 AI (AI 编写、运行并修复代码)的发展过程。

从传统基于聊天的 AI 向完全自主智能体 AI 的演变。
从聊天到行动:为何选择智能体 AI?
如果您使用过 ChatGPT 或 Claude 来协助编写 MATLAB 代码,您一定很熟悉这个流程:提出问题,获得代码,将其粘贴到 MATLAB 中,遇到错误,返回聊天界面,解释错误,获取新代码,如此往复。它能正常工作,但速度缓慢且令人沮丧。
智能体 AI 闭合了这一循环。不再是由您手动操作的文本生成器,AI 智能体能够:
编写代码并直接执行。 查找错误并将其自动修正。 访问您的工作区和数据 反复执行直到任务完成 提供经过验证的有效结果
与此形成对比的是生成式 AI,其特点为:
根据请求生成代码片段 需要您手动复制、粘贴并运行代码。 依赖您来解释错误并提出后续问题。 无法访问您的文件或数据 无法验证代码是否实际有效
将聊天机器人变为伙伴的四项能力
生成式 AI 就像拥有一位撰写报告的顾问。具备智能体能力的 AI 就像有一位能够完成工作的伙伴。这类 AI 不仅告诉您如何解决问题,它还会解决问题,展示结果,并询问您是否需要更改。
智能体系统功能
一个智能体系统应具备四项关键能力。正是这四项能力使其从聊天机器人变为了自主求解器。
为何将 MATLAB 与智能体 AI 结合使用?
MATLAB 可为工程和科学领域的智能体 AI 提供独特的价值,因为它具备:
可靠计算:大型语言模型会产生数学幻觉,而 MATLAB 能正确计算。 领域专业知识:提供了超过 100 个用于信号处理、控制、深度学习等的工具箱。 仿真能力:连接到 Simulink® 进行系统级测试和验证。 专业工具:内置代码分析、可视化和部署功能。
理解模型上下文协议
LLM 想使用 MATLAB 就必须具备发现可用工具、以正确参数调用这些工具并接收结果的能力。这正是模型上下文协议所提供的:一个使 AI 与工具交互成为可能的通用框架。我们可将 MCP 想做 AI 的 USB-C 端口:正如 USB-C 允许任何设备连接任何外设,MCP 也让任何 AI 模型能够连接任何工具,包括 MATLAB。
三步流程图:AI 智能体(Claude、Copilot 等)连接到 MCP 服务器(协议桥),该服务器连接到 MATLAB(执行代码)。

MCP 架构:AI 智能体如何连接到 MATLAB。
MCP 服务器负责在 AI 请求与 MATLAB 执行之间进行转译。智能体决定做什么;MATLAB 负责计算。
使用 MCP 调用 MATLAB 的两种方法
让智能体使用 MATLAB (MCP Core Server)
MATLAB MCP Core Server 让所有兼容 MCP 的 AI 应用均可使用 MATLAB。安装完成后,诸如 Claude Desktop、GitHub Copilot 或 Gemini CLI 等 AI 助手可以在您的控制下替您编写并执行 MATLAB 代码。
在幕后,MCP Core Server 提供了五项基础能力,使智能体能够自主地与 MATLAB 协作。您无需直接调用这些功能;智能体会根据您的指令自动使用它们:
智能体工作流的实际应用
典型的互动如下所示:您请求:“为此噪声信号创建一个巴特沃斯滤波器。”AI 编写代码,在 MATLAB 中运行,检查是否存在错误或意外结果,优化方法,并提供带图的可运行代码,整个过程无需您进行任何复制或粘贴操作。
安装
从 GitHub 获取 MATLAB MCP Core Server:
# 克隆仓库git clone https://github.com/matlab/matlab-mcp-core-server# 遵循您的 AI 客户端的设置说明# (Claude 桌面版、带 Copilot 的 VS Code、Gemini 命令行工具等)配置示例(Claude 桌面版)
将以下内容添加到您的 claude_desktop_config.json 中:
{ "mcpServers": { "matlab": { "command": "/path/to/matlab-mcp-server", "args": [] } } } 了解您托付给 AI 的内容
具备智能体功能的 AI 工具能够在您的计算机上编写和执行代码,并访问您的文件。此能力强大但需要信任。在批准重大操作之前,尤其是在产品级环境中,请审查 AI 所提出的建议。
在 MATLAB 中构建 AI 智能体(MCP 客户端)
如果您想构建一个在 MATLAB 内运行并能够调用外部工具和 API 的智能体,该怎么办?MATLAB MCP 客户端使这一切成为可能,从而将 MATLAB 转变为智能体 AI 开发的平台。

四个组件:您的 MATLAB 代码(智能体逻辑)、大型语言模型 API(OpenAI、Ollama 等)、MCP 客户端(工具发现)以及外部 MCP 服务器(任何工具或 API) 基于 MATLAB 的智能体 AI 系统的四个构建模块。
MATLAB 作为 AI 智能体主机的关键能力
发现工具:查询 MCP 服务器以列出可用工具及其输入架构。 调用工具:使用 callTool 调用外部工具,就像调用本地 MATLAB 函数一样简便。 LLM 集成将工具架构转换为 openAIFunction 对象,以实现无缝的函数调用。
接下来,让我们来看一个在 MATLAB 中构建智能体工作流的示例:
% 连接到 MCP 服务器 client = mcpClient("path/to/mcp-server"); % 列出服务器可用工具 tools = listTools(client); disp(tools); % 将工具转换为适用于 LLM 的 OpenAI 函数格式 functions = openAIFunction(tools); % 创建一个启用函数调用的聊天 chat = openAIChat("你是个能干的助手。", ... Tools=functions); % 发送用户查询 - LLM 决定是否需要使用工具 response = generate(chat, "第十个质数是多少?"); % 如果大型语言模型请求调用工具,请执行该操作 if isfield(response, 'tool_calls') toolRequest = response.tool_calls; result = callTool(client, toolRequest); % 将结果反馈给大型语言模型以获得最终响应 finalResponse = generate(chat, result); end您可以连接到什么?
任何 MCP 服务器均可与 MATLAB MCP 客户端配合使用。这包括用于数据库、Web API、文件系统、其他 AI 服务以及您构建的自定义工具的服务器。此生态系统正在迅速发展。
在 MATLAB 中实现工具调用
工具调用是智能体 AI 的核心机制。LLM 不直接执行函数,而是输出一个结构化请求,描述应使用哪些参量调用哪个函数。您的代码随后执行该函数并将结果返回给 LLM。

四步工作流:用户查询,LLM 决定(请求 addNumbers(212,88)),MATLAB 执行(结果 = 300),语言模型回应(“和为300”) 智能体 AI 系统如何处理从用户输入查询到最终响应的全过程。
LLM 推理计算内容。MATLAB 负责将其正确计算。当用户提交查询时,LLM 会解读其意图,并决定调用哪个工具以及使用哪些参数。然后,MATLAB 执行该函数并返回结果。LLM 生成自然语言形式的回答。用户无需自行编写或运行代码。
在 MATLAB 中定义工具
% 定义一个函数,供大型语言模型调用 functionresult = addTwoNumbers(x1, x2) result = x1 + x2; end% 为 LLM 创建工具定义 addTool = openAIFunction("addTwoNumbers", ... "将两个数字相加"); addTool = addParameter(addTool, "x1", "数字", ... "要相加数字中的第一个", Required=true); addTool = addParameter(addTool, "x2", "数字", ... "要相加数字中的第二个", Required=true);构建一个简单的智能体
functionaiAgent(userQuery)% 初始化具有工具的聊天 chat = ollamaChat("mistral-nemo", Tools=addTool); % 获取大型语言模型响应 response = generate(chat, userQuery); % 检查大型语言模型是否想调用工具 if isfield(response, 'tool_calls') % 提取函数调用细节 funcName = response.tool_calls.function.name; args = response.tool_calls.function.arguments; fprintf("AI 请求: %s(%f, %f)\n", ... funcName,args.x1,args.x2); % 执行该函数 result = addTwoNumbers(args.x1, args.x2); fprintf("结果:%f\n", result); else% 无需调用工具 - 直接显示响应 disp(response.content); endend使用 MATLAB 附加功能,多个 LLM 提供商支持工具调用。这些提供商包括:
OpenAI:最新的 GPT 模型(通过 API) Azure OpenAI:企业部署 Ollama:本地模型,如 Mistral、GPT-OSS、DeepSeek 和 Qwen
创建高效的 AI 智能体
从演示走向生产,需要采用能使智能体变得可靠、可观测且安全的模式。这些方法已在现实世界的智能体系统中经过实战检验。
模式 1:ReAct(推理 + 行动)
最常见的智能体模式是在思考与行动之间交替进行。LLM 推理下一步该做什么,采取行动,观察结果,并重复此过程。
% ReAct 循环模式 while ~taskComplete % 思考:LLM 推理下一步行动 thought = generate(chat, [context, "接下来我应该做什么?"]); % 行动:如有需要,执行工具。 if needsTool(thought) result = executeTool(thought.tool_call); context = [context; result]; end% 观察:根据结果更新状态 taskComplete = checkCompletion(context); end模式 2:工具链
复杂任务需要按顺序调用多个工具。一个的输出成为下一个的输入。例如:
模式 3:人员在环
对于功能安全关键型的应用,在智能体采取行动之前添加批准步骤:
% 人员在环模式 proposedAction = generate(chat, query); % 显示建议的行动以供批准 fprintf("建议:%s\n", proposedAction.description); approval = input("批准吗?(是/否):", "s"); if strcmp(approval, "y") result = executeAction(proposedAction); elsedisp("操作已取消。"); end实用指南
有几条指南是确保智能体可靠性的关键:
从简单开始:在构建复杂调用链之前,先让单个工具能够正常运行。 增加可观测性:记录每一次 LLM 调用和工具执行情况,因为调试时会需要这些数据。 优雅地处理错误:LLM 会犯错;请构建带有指数退避机制的重试逻辑。 设定边界:限制迭代次数、词元预算以及智能体可以访问的工具。 进行对抗性测试:在智能体触达用户之前,故意测试边缘情况以尝试使其崩溃。
素材来源于:matlab官网,版权归原作者所有,仅供学习参考~
夜雨聆风