工具与 MCP:给模型装手脚
30 秒导读: 大模型只会"说话",不会"动手"。这一章讲 LibreChat 怎么把外部工具——尤其是 MCP(Model Context Protocol,模型上下文协议) 服务器提供的工具——接到 agent 上:从发现(有哪些工具)、装载(挑出这次要用的)、暴露(变成模型看得懂的函数)、执行(真去调用远端),到结果回流(把返回塞回对话)。全程还要管好"每个用户、每个请求各自的连接与鉴权"。
本章只讲工具与 MCP 这条链路。文件/RAG 类工具怎么进上下文,见 05-context-files-memory;工具在流式循环里何时被触发,见 03-agent-orchestration。
1. 这是什么(零基础也能懂)
一句话定义: 工具是"模型能调用的函数";MCP 是一套标准协议,让任何外部服务(GitHub、数据库、内部 API)把自己的能力包装成一批工具,LibreChat 一接就能用。
为什么需要它。 模型本身是个纯文本预测器,它给不出今天的天气、改不了你仓库里的文件、查不了你公司的数据库。工具就是它的"手脚":模型输出一段"我要调用 search(query=...)", 宿主(LibreChat)真的去执行,再把结果喂回去。
MCP 解决的是"接入成本"。 没有 MCP 时,每接一个新服务都要写一份专用适配代码。MCP 把"我有哪些工具、每个工具的参数长啥样、怎么调用"标准化成协议,于是 LibreChat 写一套 MCP 客户端,就能接上所有遵守协议的服务器。
LibreChat 里的工具其实分三大来源,本章聚焦第一种:
| 工具来源 | 是什么 | 本章是否详讲 |
|---|---|---|
| MCP 工具 | 外部 MCP server 暴露的工具,运行时动态发现 | ✅ 主角 |
| Actions | 用户上传 OpenAPI 规范生成的工具 | 顺带对比 |
| 内建工具 | execute_code / file_search / web_search 等 | 只讲它们怎么和 MCP 走同一条装载管线 |
用起来什么样。 管理员在 librechat.yaml 里写一段 MCP 服务器配置(命令或 URL),或用户在界面里加一个自定义 MCP server;之后在 agent 的工具列表里就能勾选该 server 的工具。模型调用时,一个名叫 search_repos_mcp_github 的工具就被触发了——注意名字里的 _mcp_,那是 LibreChat 给 MCP 工具打的统一标记(下面会讲)。
一句话直觉: 把 MCP server 当成"插在 agent 身上的外设"。发现工具 = 读外设的说明书;装载 = 把要用的接口接上;执行 = 真的按一下按钮;连接生命周期 = 管好每个外设的电源与配对状态。