QVeris

竞品对比与选型

函数调用、工具调用与 MCP

厘清 Function Calling 与 Tool Calling 与 MCP 在模型参数、工具执行与协议职责方面的职责边界。

发布日期: · QVeris团队制作

展示市场数据、图表或财务报告的金融研究工作场景
评估工作流中的金融研究场景;图片仅作场景示意,不代表产品界面或基准测试。
QVeris · AI Agent 架构系统设计指南

AI Agent 分层架构指南 — 解释执行层、抽象层和协议系统,以及 QVeris 如何通过能力路由将它们连接起来。

执行 · 抽象 · 协议 · 路由

执行
层级(函数调用)
Abstraction
层级(工具调用)
协议
层级(MCP)
路由
层级(QVeris)
✓ 多层 Agent 模型
摘要
问题:AI Agent 系统经常使用函数调用、工具调用和 MCP 等重叠术语来描述,导致架构设计混乱和系统实现错误。
解决方案:每个概念代表 AI Agent 栈的不同层次:函数调用 → 模型级执行格式。工具调用 → Agent 级工具抽象。MCP → 标准化工具协议层。QVeris → 跨工具和 MCP 系统的能力路由层。
结果:清晰的层次分离使可扩展的生产级 AI Agent 系统能够可靠地发现、路由和执行工具。

什么是函数调用?

函数调用是一种模型级执行机制:LLM 输出结构化 JSON 参数,而不是自然语言文本。它回答“应调用哪个函数,以及使用什么参数?”,定义模型如何表达调用特定函数的意图。

函数调用由模型 API 直接提供。OpenAI、Anthropic 和 Google 都实现了它 — 模型接收可用函数定义列表,并可以用命名函数和提供解析参数的结构化 JSON 对象响应。模型不执行函数。它输出要调用哪个函数以及使用什么参数。开发者的代码负责实际运行该函数。

范围:单次调用。模型决定调用 get_stock_price(symbol="AAPL") 并输出 {"name":"get_stock_price","arguments":{"symbol":"AAPL"}}。这就是函数调用。它不在多个股票价格 API 之间选择、不管理 API 密钥、不处理重试、不验证 Schema — 这些是更高层的关注点。

什么是工具调用?

工具调用是 Agent 级抽象层,负责工具选择、调用、多工具协同和执行流程。它回答“Agent 应为这个任务使用哪个工具?”,位于函数调用之上。

工具调用位于 LLM 和实际工具实现之间。当 Agent 可以访问 10 个不同的市场数据工具时,工具调用决定调用哪一个 — 不仅仅是函数名称和参数,还包括哪个提供商、哪个 API 和哪个执行路径。它管理生命周期:选择 → 执行 → 验证 → 重试 → 回退。

范围:多工具。工具调用跨多个工具、提供商和执行尝试进行协调。它是防止 Agent 仅仅因为名称听起来正确就调用错误工具的层。

什么是 MCP?

MCP(模型上下文协议)是标准化工具协议层,定义工具如何描述、暴露并连接到 AI 模型和 Agent,包括工具 Schema 格式、服务器定义、能力元数据和执行接口。它回答“工具如何暴露给 AI Agent?”

MCP 由 Anthropic 创建,为 MCP 服务器提供通用规范来声明其可用工具、资源和提示。MCP 服务器发布任何 MCP 兼容客户端都可以读取的清单。这种标准化使工具连接具有可预测性 — 每个工具不再有自定义集成格式,MCP 兼容的工具共享一种通用语言。

范围:生态系统。MCP 标准化了整个行业的工具暴露。它不选择使用哪个工具、不管理重试、不跨提供商路由。MCP 使工具更容易连接。更高的层使它们更容易选择和可靠执行。

分层架构模型

第 1 层 函数调用 — 执行

模型输出结构化 JSON,指定函数名称及参数。它回答“应调用哪个函数、使用哪些参数?”,运行在模型层,由 OpenAI、Anthropic 和 Google 等提供。

第 2 层 工具调用 — 抽象

Agent 层负责工具选择、调用、多工具协同、重试和执行流程。它回答“Agent 应为这个任务使用哪个工具?”,运行在 Agent 层。

第 3 层 MCP — 协议

这是一套规范工具如何描述、暴露和连接的标准。它回答“工具如何暴露给 AI Agent?”,运行在生态层,由 Anthropic 创建。

第 4 层 QVeris — 路由

能力路由层帮助 Agent 按任务意图发现工具、调用前检查 Schema,并在多家提供商之间路由。它回答“哪项能力最适合这个任务?”,横跨整个技术栈。

关键差异表

ConceptLevel用途核心问题Scope
函数调用模型结构化执行格式模型如何调用函数?单次调用
工具调用Agent工具选择与执行Agent 应使用哪个工具?Multi-tool
MCP协议工具标准化工具如何暴露?Ecosystem
QVeris 路由路由跨提供商选择能力哪项能力最合适?跨工具智能

为什么需要所有层

当层次被压缩为单一层时,AI Agent 会失败。每一层解决其下层无法解决的独特问题:

❌

仅使用函数调用

无法在工具之间进行选择。模型可以输出 get_price("AAPL"),但无法判断应使用 10 个价格 API 中的哪一个、哪个具有正确的 Schema,或哪个当前可用。

❌

仅使用工具调用

没有 MCP 时,每个工具都采用自定义集成格式;没有路由层时,工具选择被硬编码且非常脆弱,只要更换一家提供商,Agent 就可能失效。

❌

仅使用 MCP

MCP 标准化连接方式,但不负责选择工具、管理重试、处理回退或按任务意图路由。它回答“有哪些工具?”,而不是“我应该使用哪个工具?”

❌

没有路由层

没有 QVeris 或同类路由层时,Agent 会硬编码对提供商的依赖。提供商更改 API、实施速率限制或宕机时,Agent 就没有恢复路径。

真实系统中的执行流程

agent_execution_flow.json · 终端示例
// How the four layers work together in a real AI agent system { "user_request": “获取 AAPL 股价及买卖价差”, "execution_flow": [ {"step": "intent_understanding", "layer": “工具调用”}, {"step": "capability_discovery", "layer": “QVeris 路由”}, {"step": "tool_selection", "layer": “工具调用”}, {"step": "mcp_tool_access", "layer": “MCP 协议”}, {"step": "function_call_execution", "layer": “函数调用”}, {"step": "output_validation", "layer": “工具调用”}, {"step": "response_generation", "layer": "Agent"} ] }

MCP vs 工具调用实践

维度MCP工具调用函数调用
定义内容工具暴露格式工具执行逻辑模型输出格式
回答的问题如何描述工具?选择哪个工具?如何调用函数?
运行层级协议/生态层Agent 层模型层
由谁规范?Anthropic MCP 规范Agent 框架模型 API(OpenAI、Anthropic、Google)
是否负责选择?NoYesNo
是否负责回退?No取决于路由实现No

常见误解

❌ 误解:MCP = 工具路由
✔ 事实:MCP 标准化工具暴露;工具路由(函数调用 + 工具调用 + QVeris)负责选择、执行和回退。它们属于不同层级。
❌ 误解:函数调用 = 工具选择
✔ 事实:函数调用输出要调用的函数及其参数,但不会在提供同一能力的 10 家不同提供商之间进行选择;那属于工具调用和路由。
❌ 误解:工具调用 = 协议
✔ 事实:工具调用是执行逻辑,MCP 是协议规范;执行与标准化是两类不同的问题。
❌ 误解:一个层级可以替代其他层级
✔ 事实:生产级 AI Agent 需要全部四层。压缩层级会产生只能在演示中运行、却在真实条件下失效的脆弱系统。

QVeris 能力路由层

QVeris 作为能力路由层运行在 MCP 和工具调用系统之上。它不替代函数调用、工具调用或 MCP — 它提供将它们连接成生产级 Agent 架构的路由智能。

🔍

发现

根据任务意图在 MCP 服务器、外部 API 和能力目录中查找相关工具,而不是依赖硬编码工具名称。

📐

Inspect

调用前验证 Schema、检查认证、评估成本与延迟并阅读提供商说明,尽早发现不匹配。

⚡

调用与路由

安全执行选定工具;失败时路由到已排序的回退方案。只要仍有回退工具,就不应直接回复“无法完成任务”。

✓

验证与报告

检查输出结构、时间戳和来源元数据,并返回在四个层级中都具备完整可追踪性的结构化结果。

QVeris 是能力路由层。它不替代函数调用、工具调用或 MCP。它在其上提供路由智能 — 帮助 Agent 发现、检查和跨工具及 MCP 系统路由。阅读文档 → 或 查看定价 →。

生产架构模式

production_architecture.json · 终端示例
// Production AI agent — four-layer architecture pattern { "function_calling": "execution_format", "tool_calling": "agent_layer", "mcp": "protocol_layer", "qveris": "routing_layer", "workflow": [ "intent_understanding", "capability_discovery", "tool_selection", "execution", "validation" ] }

快速上手指南

☐理解函数调用 — 模型级执行格式
☐理解工具调用 — Agent 级工具抽象和执行
☐理解 MCP — 标准化工具协议和暴露
☐将执行逻辑与工具选择逻辑分离
☐构建工具路由层 — 不要硬编码单一提供商依赖
☐在每次工具调用前添加 Schema 验证
☐为每个关键工具类别实现回退策略
☐使用 QVeris 能力路由构建多提供商 Agent 系统

用清晰的架构构建生产级 AI Agent 系统

QVeris 提供连接函数调用、工具调用和 MCP 的能力路由层,形成生产级 Agent 架构。Discover 和 Inspect 永久免费。

探索金融 Agent 工具阅读 QVeris 文档

常见问题

MCP 替代函数调用吗?
不。MCP 标准化了工具如何通过通用协议暴露给模型和 Agent。函数调用是模型级机制,输出结构化参数来调用函数。它们在不同的层次运行 — 协议 vs 执行格式。MCP 不替代函数调用;它们服务于不同的目的。
工具调用与 MCP 是一回事吗?
不。工具调用是 Agent 级抽象,处理工具的选择、调用和协调执行 — 使用哪个工具、何时重试、在哪里回退。MCP 是定义如何描述和暴露工具的协议。工具调用 = 执行逻辑。MCP = 标准化协议。它们一起工作但不是同一件事。
QVeris 在 Agent 技术栈中承担什么职责?
QVeris 作为能力路由层运行在 MCP 和工具调用系统之上。它帮助 Agent 按任务意图发现相关工具、在调用前检查 Schema、并跨多个提供商路由 — 补充函数调用、工具调用和 MCP 而不是替代它们中的任何一个。
生产环境需要全部四层吗?
是的。生产级 AI Agent 需要全部四层:函数调用用于结构化模型输出,工具调用用于 Agent 级执行逻辑和重试/回退管理,MCP 用于跨生态系统的标准化工具连接,以及像 QVeris 这样的路由层用于智能工具选择和多提供商回退。压缩层次会产生在演示中工作但在真实条件下失败的脆弱系统。