Agent 工具调用与函数调用工程
工具调用让大模型从聊天框走向真实系统。本文讲解函数调用的协议与消息格式、工具 Schema 与描述设计、ReAct 与并行调用循环、参数校验与错误重试、流式增量解析、多工具路由,以及提示注入、最小权限、数据外泄等安全边界与可观测埋点评测方法。
tag
工具调用让大模型从聊天框走向真实系统。本文讲解函数调用的协议与消息格式、工具 Schema 与描述设计、ReAct 与并行调用循环、参数校验与错误重试、流式增量解析、多工具路由,以及提示注入、最小权限、数据外泄等安全边界与可观测埋点评测方法。
系统讲解 MCP 在 IDE 与编辑器中的集成实践:stdio 启动配置与 npx/uvx 分发、进程生命周期与崩溃重启、stdout 协议纪律与日志通道隔离、编辑器作为能力提供方(打开文件、选区、诊断)的设计、工具数量膨胀对模型选择的影响、工作区信任与密钥管理,以及常见接入故障的排查路径。
系统讲解 MCP 工具的版本与兼容性治理:协议版本与 serverInfo 版本的区别、工具 Schema 的破坏性与非破坏性变更清单、参数重命名与枚举收缩的处理、list_changed 通知与客户端缓存的失效、版本化工具名与就地演进两条路线、网关侧的路由与灰度、以及弃用策略与兼容性测试。
系统讲解 MCP 的流式与通知机制:progressToken 的传递与 notifications/progress 上报格式、日志通知与分级、资源变更通知的时序、工具无原生流式输出时的三种替代模式(进度上报、任务句柄轮询、分块资源)、取消语义、通知频率与背压控制,以及 Streamable HTTP 下的 SSE 多路复用陷阱。
系统讲解 MCP 多模态工具的设计方法:content 数组中的 text/image/audio/embedded resource 四种块类型、base64 与资源链接两种传输方式的取舍、图像尺寸与 token 成本的换算、截图类工具的压缩与降采样策略、模型能力探测与降级、以及大二进制内容返回时的分片、缓存与审计陷阱。
系统讲解 MCP Roots 机制:客户端如何用 file:// URI 声明工作区边界、roots/list 请求与 list_changed 通知的时序、服务器侧的路径规范化与符号链接收敛算法、多根与动态切换工作区的处理、Roots 作为「建议边界」而非安全边界的本质,以及它与操作系统级沙箱的分工与常见越界陷阱。
系统讲解 MCP Elicitation 机制:服务器如何在工具执行中途向用户索取结构化输入、requestedSchema 的受限 JSON Schema 子集、accept/decline/cancel 三态语义、与 Sampling 和 Roots 的能力边界对比、审批闸门与敏感信息禁区、超时与降级路径,以及客户端 UI 映射与审计落地。
上一节把 A2A 跑通了,可很多人第一反应是:这跟 MCP 有什么区别?答案是它们解决的根本不是同一件事——MCP 是 Agent 连工具,A2A 是 Agent 连 Agent。本节用一张对照表把「解决什么、谁连谁、典型对象、有无状态、怎么发现、什么时候用哪个」逐项讲清,再真跑 MCP 与 A2A 两端的对象与调用,给出一张「该用哪个」的决策表与两者的组合形态。
MCP 服务器评估与基准测试实践:工具选择准确率、参数填充正确性、端到端任务成功率的度量方法,基准集与用例设计、回归与 A/B 实验、LLM-as-judge 评分与自动化评估流水线,让 MCP 服务器可量化地迭代。
MCP 云基础设施与 IaC 工具服务器实践:AWS/K8s/Terraform 类工具设计、只读与变更操作分离、plan/apply 工作流、dry-run 与审批、凭证最小权限、成本与爆炸半径控制,让模型安全地操作云资源。
MCP Git 与 DevOps 工具服务器实践:Git 只读与写工具设计、PR/Issue 操作、CI/CD 触发与状态查询、危险操作防护、仓库范围隔离与审计,帮助把版本控制与流水线能力安全地交给模型。
MCP 企业治理实践:权限模型与 RBAC 设计、审批与人工确认、审计日志与合规留存、多租户隔离、策略即代码、影子工具治理与供应链风险管理,帮助企业在放开 MCP 能力的同时守住边界。
MCP 网关、注册中心与代理实践:多服务器聚合、能力路由与命名空间隔离、服务注册发现与目录、鉴权与配额、协议转换、可观测性与高可用部署,帮助把散落的 MCP 服务器整合成统一入口。
MCP 代码执行工具与沙箱实践:代码解释器类工具的接口设计、容器与 gVisor、WASM 等隔离方案选型、CPU 内存磁盘与超时限制、网络与文件系统隔离、输出捕获与截断、会话状态管理以及安全边界与审计。
本节把 MCP Server 当成工具源:写一个同步外壳的 MCPToolSource,连上本地 stdio Server、list_tools,把每个远程工具适配成 minagent 的 Tool 注册进 ToolRegistry,并讲清命名冲突、错误映射与连接生命周期;最后用假模型驱动 Agent 真跑一次 MCP 调用(Python 3.14.6 + mcp 2.3.0 实测)。
MCP 多语言 SDK 生态全景:Python/Go/Rust 官方与社区 SDK 的对比选型、类型系统与异步模型、自定义 SDK 的传输层与协议层实现、框架绑定(LangChain/LlamaIndex),帮你选对语言落地 MCP。
MCP 工具调用的成本与 Token 优化:token 预算管理、工具结果缓存、批处理与惰性加载、上下文压缩、降级策略与成本监控,帮助你在保证效果的前提下控制 LLM 调用成本。
MCP 网页抓取工具实践:抓取流程设计、HTML 内容提取、结构化 JSON 输出、robots 合规与反爬边界、会话管理、JS 渲染页面处理,帮助 LLM 安全合规地获取网页信息。
MCP 文件系统工具的安全实践:访问根目录白名单、路径隔离与防穿越、读写权限边界、大文件流式处理、文本与二进制处理、临时文件生命周期与沙箱,帮助 LLM 安全操作文件。
MCP 向量检索与 RAG 工具实践:Embedding 工具设计、向量数据库接入、检索增强、混合检索与重排、元数据过滤与上下文管理,帮助 LLM 构建可靠的检索增强能力。