ARTICLE · 1325043
一图看懂AI Agent 五种工具调用
一图看懂AI Agent 五种工具调用
最近有很多做Java和Agent开发的朋友问到:Function Call、MCP、Skill、A2A、沙箱执行,这些词天天见面,到底有什么区别?项目中应该怎样使用?
我画了张对比图
1️⃣ Function Call:用应用程序来调用本地方法
大模型不能直接连接到数据库或者调用内部接口。它会把用户的提问转换成“函数名+JSON参数”的形式,并且交给宿主应用程序来校验权限、调用本地代码。
当应用获取到返回的数据之后,就把结果塞给模型上下文,由模型继续推理并得出最后的答案。这样最省事,和目前项目代码很紧密地联系在一起。
2️⃣ MCP:跨系统的“Type-C万能插座”
每个应用程序都必须重新编写查询数据库、发送企业微信消息、预约快递的服务接口,这样会带来很高的维护成本。
MCP(模型上下文协议)将外部服务封装为独立的标准服务端,并统一对外提供工具(Tools)、资源(Resources)和提示模板(Prompts)。不管是 Spring AI、AgentScope 还是 Claude Code,只要内置了 MCP 客户端,就可以直接使用同一套工具服务。
3️⃣ Agent Skill:给工具配上一本“作业指导书”
当Agent手头上的工具达到几十个的时候,一股脑把它们塞进提示词里既浪费Token又容易使模型走神。
Skill 使用一个 SKILL.md 文件夹来打包业务操作步骤(SOP)、参考文档以及检查脚本。一般情况下,模型只会读取几十个 Token 的技能名称和用途摘要;只有当它命中当前任务的时候才会展开 SKILL.md 全文,并按照“先查单、再核对规则、最后建单”的顺序去调用 Tool 或 MCP。
4️⃣ A2A:跨服务摇人找“专职同事”
MCP是和工具相连的,而A2A(Agent-to-Agent)则是和另外一个可以自主思考的智能体相连的。
当遇到跨部门、跨领域的问题时,主控Agent会读取远程专家的AgentCard(能力名片),然后分发任务目标。远端Agent用自己独立的记忆以及内部私有的工具进行多轮排查,最后只提交一份干净的结果报告,既保护了内部的数据边界,又不会把主控Agent的上下文撑爆。
5️⃣ 沙箱执行:关进笼子里自己造工具
总会有一些长尾的任务(例如清洗一份复杂的CSV报表或者重现一个触发CPU打满的正则代码),事先并没有现成的工具可以使用。
这时可以由 Agent 在现场编写 Python 或 Shell 脚本,并且经过 ALLOW(只读放行)、ASK(人工审批确认)、DENY(高危拦截)三级权限门禁之后,放入 Docker 沙箱中进行隔离执行,同时配合工作区文件快照随时回滚,使 Agent 敢干活又不担心误删宿主机文件。















































































