2025-04-19 17:11:18 62 0
今天这篇文章聊聊最近 AI 领域的一些新玩法,都是我个人的一些天马行空的思考,欢迎大家留言讨论。如果你觉得看完后能少踩点坑,不妨点个赞、留个言、关注一下~谢谢!
我们从一个非常接地气的问题出发:“今天五行分布怎样?”来看一看 AI 是怎么一步步发展的,同时也帮助大家理解 Function Calling 和 MCP 之间的区别。
假设我们生活在一个世界,电脑一开始什么都不懂,不知道“甲”是木,也不知道“丙”是火。想要算出今天的五行分布,只有一种办法:使用一种“神秘算法”,它能根据天干地支计算出五行,然后再分析五行之间的分布情况。
五行基础对照如下(仅供参考):
木——甲乙,寅卯辰
火——丙丁,巳午未
土——戊己,辰戌丑未
金——庚辛,申酉戌
水——壬癸,亥子丑
用户:今天五行分布怎样?
我:(查表中)甲→木,丙→火……OK。然后我用神秘算法算出分布,再告诉你结果。
流程:用户 → 我 → 查表 → 算分布 → 回答用户
问题:太慢,纯靠体力劳动。
我开始用计算机帮忙。用户给我一个“甲”,我把它输入电脑,它返回“木”。我还是中间人,只是把体力活外包给了电脑。
流程:用户 → 我 → 电脑 → 我 → 用户
进步:快多了,但还不智能。
我把查询系统开放给用户,只要他输入“甲乙丙”,系统就能自己返回五行。
流程:用户 → 电脑(我维护)→ 用户
缺点:用户要知道输入什么,像是在和 ATM 操作。
用户不想管什么“甲乙丙”,只想说“今天五行分布怎样?”于是我们写了一堆 if else
,看到关键词就执行算法。
问题:只要含“五行”,就触发……哪怕是“我第五行第六列那个人今天请假了”。系统理解太死板。
AI 通过学习全网的知识来理解你说的“今天五行分布怎样”,并尝试回答。
问题:天干地支可以推理出来,但神秘算法不是公开知识,AI 不知道怎么算,只能打太极:
“你这个问题真不错,今天是癸巳日,但五行我建议你请教当地大师~”
我把过去一百年的五行分布和对应的答案喂给系统,用户的问题被转换成关键词去匹配最接近的记录。
流程:用户 → 匹配历史问答 → 模板化回答
问题:不灵活,遇到“今天的昨天的五行”就找不到匹配;神秘算法仍然是黑盒。
终于!我们有了两个函数:
getWuXingFromGanzhi(天干地支)
→ 返回五行
analyzeDistribution(五行列表)
→ 返回五行分布
AI 可以动态调用这些函数,像拼积木一样完成复杂任务。
流程:
用户 → AI → 调用函数1 → 拿到五行 → 调用函数2 → 拿到分布 → AI 返回建议
下面模拟这个流程:(实际就是电脑交互过程)
用户:今天五行分布怎样?
我:我有2个函数:1.通过天干地支计算五行,参数是天干地支 2. 通过五行计算分布情况,参数是五行
请根据用户的提供信息(今天五行分布怎样?)计算五行分布,并根据计算的结果提供建议。
AI:我需要调用第一个函数,参数是:甲丙
我:我有2个函数:1.通过天干地支计算五行,参数是天干地支 2. 通过五行计算分布情况,参数是五行
请根据用户的提供信息(今天五行分布怎样?)计算五行分布,并根据计算的结果提供建议。
我需要调用第一个函数,参数是:甲丙
第一个函数的答案是:木火。
AI: 我需要调用第二一个函数,参数是:木火
我:我有2个函数:1.通过天干地支计算五行,参数是天干地支 2. 通过五行计算分布情况,参数是五行
请根据用户的提供信息(今天五行分布怎样?)计算五行分布,并根据计算的结果提供建议。
我需要调用第一个函数,参数是:甲丙
第一个函数的答案是:木火。
我需要调用第二一个函数,参数是:木火
第二个函数的答案是:木80% 火50%
AI:今天是五行木强势的一天,您可以去干一些金属相关的活动或者事情,今天的幸运数字是1.适合穿黄色的衣服。
我:其他操作+AI的返回数据给用户。
用户:得到答案
问题:
每轮调用时要重复贴系统提示,token 超长,成本高
函数只能我自己写,别人想复用就得贴我源代码
多函数时,执行顺序难控制
MCP(Model Context Protocol)来了,它就像是 AI 的 USB-C 插口。
我只需要告诉 MCP Server:
有哪些函数(比如 getWuXingFromGanzhi 和 analyzeDistribution)
函数的定义、权限、调用顺序
AI 应该在什么场景调用这些函数
然后:
流程:
用户:今天五行分布怎样?
→ MCP Client → MCP Server
→ Server 通知 AI:你有两个函数,可以先算出五行,再算分布
→ AI 决定调用顺序,获取中间结果,再给出个性化建议
→ MCP Server 返回给 Client → 用户看到结果!
下面模拟这个流程:(实际就是电脑交互过程)
用户:今天五行分布怎样
我MCPclient: 今天五行分布怎样发给 MCP SERVER。
腾讯云MCPSERVER: 用户输入的是 今天五行分布怎样。 你有2个函数:1.通过天干地支计算五行,参数是天干地支 2. 通过五行计算分布情况,参数是五行
请基于今天日期(甲辰年 壬辰月 癸巳日 丙午时),先调用函数获取五行,再分析分布并提供建议。
AI: 调用第一个函数(甲辰年 壬辰月 癸巳日 丙午时)
腾讯云MCPSERVER: ["木", "土", "水", "水", "火", "火", "火", "火"]
AI: 调用第2个函数(["木", "土", "水", "水", "火", "火", "火", "火"])
腾讯云MCPSERVER: { "木": 1, "土": 1,"水": 2,"火": 4,"金": 0}
AI: 今天的五行分布为:火旺(金缺)。火有4个,水有2个,木和土各1个,金为0。火气过旺,建议注意情绪控制,避免上火。
可多接触水、金属性的事物,如清凉食物、静心冥想、穿戴白色或黑色衣物。
我:拿到结果给用户
用户:拿到最终结果
优势:
节省 Token:函数定义只注册一次,不用每轮重复贴提示词
模块复用:别人也能用我的函数,像调用 API 一样
中间者能力增强:Server 可以动态优化提示词、调整执行顺序
协议统一:多个系统之间可以“插来插去”
那 Agent 呢?
Agent 其实就是把以上所有能力:检索、调用函数、记忆、计划,全都揉到一起!Agent 更像是“有大脑+手脚”的数字员工。