一、初识 MCP
近期经常刷到关于 MCP、Agent Skills 的视频。我自己开发其实是没有用过 MCP 提高效率的,例如 Web MCP、MySQL MCP 这些,依旧能工智人。
但是想到自己的 Astrbot 刚好也有 MCP 的功能,并且结合其自带的禁言 MCP 的调用经历,逐渐的对 MCP 的强大有了认识。
MCP vs 插件
相比于写的插件,MCP 让 LLM 具有更加智能化的决策,而不是死板的通过命令来调用某个功能。并且通过 MCP 的统一协议,显著提高了不同的平台之间互通、工具调用的效率和方便性。
二、MCP 服务开发实践
于是我就着手开始丰富自己 bot 的 MCP 功能。
天气 MCP
在完成第一个天气 MCP 服务的部署后,感觉很不错。
WCA MCP
后面对自己的 WCA 查询插件进行了 API 的封装,得到了一个 WCA 的 MCP 服务,使得 WCA 的查询功能变得更为智能,真真切切成为了我的 bot 的一个技能,而非外置的一个无感知的命令式插件。
三、个性化与记忆
知识库方案
期间我还从提示词、记忆插件等角度尝试让 bot 对一些事情(例如我的个人信息)进行记忆,让它能够在不同的情境之下认出我并且根据我的信息做出符合的回答。
这一过程也有点像给一些 LLM 应用配置个性化信息。后面确定了采用知识库的办法,这种方法:
- 不会使提示词变得过于臃肿
- 易于管理和维护
- 似乎省点 Token
实际效果
在这种情况下,可以让 LLM 与 MCP 直接对交流变得更加高效。
例如我只想问一下我的 GitHub 下有哪些仓库,就无需向 bot 说明:
- 查询的用户的 ID
- 也无需说明我是誰
后续接入更多的个性化 MCP 也会更方便。
四、魔方知识库探索
与此同时我也尝试导入一个专属于魔方领域的知识库,目前只是导入了一个术语表的知识库作为测试,效果还可以。
图像识别 + 知识库
但我显然不会满足于此,我开始进一步设想:在 LLM 识别图像的基础上,做好正确的数据处理、格式转换,然后进行知识库的检索返回所需内容。
应用场景:
例如用户发送一张 OLL 的顶层图片,bot 智能识别为某个 case 对应的公式发送出来。相比于正常对于魔方公式领域只会胡言乱语的 LLM,这种情境显然更加智能化。
五、终极目标
那么我们不妨再大胆设想,这也是终极目标:
让 LLM 拥有一个正常速拧玩家的思维。
对于一个确定的状态,bot 可以使用:
- CFOP 方法去正常还原
- 甚至是 Roux 方法
而非常见的逻辑算法运算求解。
这个的难度会难以想象的大,也无疑会跨越 AI 与 Cube 之间的巨大鸿沟。