问题:Function Calling 定义的函数过多是否会导致模型上下文爆炸?
函数定义本身会计入模型上下文。OpenAI 在官方说明中明确写道:“functions 会被注入到 system message 中,因此它们会占用上下文并按输入 token 计费;如果遇到上下文极限,应当减少函数数量或精简参数描述。”
只要所有输入 token(系统提示 + 函数列表 + 对话历史 + 用户提问)之和没有超过所选模型的最大上下文窗口,就不会触发 context_length_exceeded
错误;反之就会报错。
真正会爆的是:
MCP 对大模型 Function Calling 的意义
![图片[1]-MCP 与 Function Calling 的关系与区别 - AI资源导航站-AI资源导航站](https://www.aitube.vip/wp-content/uploads/2025/05/20250528_683689ccbc5fe.png)
![图片[2]-MCP 与 Function Calling 的关系与区别 - AI资源导航站-AI资源导航站](https://www.aitube.vip/wp-content/uploads/2025/05/20250528_683689cd89ee4.png)
在 LLM 首轮交互时,客户端只将“user query + system message(default prompt & history context & capabilities)”传入,由LLM 判断是否需要调用工具或访问资源。只有当需要调用工具或访问资源时,客户端才会再将“具体的 tool 或 resource 的 JSON Schema 传入给LLM,让 LLM 生成 tool 或 resource 的参数。
分层调用
MCP 通过客户端与服务端的职责分离,为“执行层”提供了统一的 JSON-RPC 规范,支持动态列举与调用工具(tools/list
→ tools/call
),这样工具的元数据可以在“模型外”维护,而不是每轮对话都放进上下文。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END