前言

加入星球的同学应该都知道,我们最近开发完成了一个AI智能体通信项目

AI智能体通讯项目通过rpc框架实现clinet与server通信,利用client把想对agent询问的问题发送给server,server集成了多个agent,来实现复杂问题的解答。

agent之间使用a2a协议进行交互,并且agent也通过mcp协议集成了mcp tools,也利用rag技术减少了大量无效mcp tools信息传入给agent消耗token。

很多学cpp / c++相关的同学,也都想做一个AI相关的项目,追一下目前的AI潮流,给简历增加点含金量。

但是又怕花钱加入星球,发现这个项目也像其他博主哪样,对于AI相关的只是调用了AI对话接口,本质还是后端这样的项目。

针对这种情况,今天这篇文章特意把我们开发的这个AI智能体项目写的学习文档内容,以及简历发出来,让大家对它有个更加清晰的认识。

(只展示部分,因为内容太多了,截图就要很长时间)

项目视频

https://www.bilibili.com/video/BV1aYmqBGEJT/?spm_id_from=333.1387.homepage.video_card.click&vd_source=b7f84f9122e6cf826e5c747e473cb4f7 alt

https://www.bilibili.com/video/BV1zurjB1EDQ/?spm_id_from=333.1387.homepage.video_card.click

代码截图

alt

路线学习

在讲路线的时候,我们首先要理解下我们这个项目的技术栈,都用到了哪些东西:

通讯框架rpc

AI技术:

a2a、mcp、rag

Agent:

用的阿里百炼平台

存储相关:

用的redis

等等其他一些小细节

rpc学习:可以看性能监控项目知识库,提供的一些资料,以及b站搜搜,都烂大街了

AI技术学习:

这里推荐一个博主,发现B站他也有号,可以去看看相关内容(对于这些技术入门,看这视频确实很不错)

alt

看完相关视频以后,可以再去看看咱们星球写的《AI文档》知识库

如果还想学的更深入,那就只能看对应技术的官方文档了,官方文档也在《AI知识库》内容下面有链接分享,踏下心来也不难的

Agent:

直接看看阿里百炼平台提供的使用手册就可以了

Redis:

菜鸟教程看下基本使用就可以了,这不是咱们的重点

对于上面这些基本都了解了,就可以深入咱们项目学习了(文档、源码)

项目架构

alt

项目通讯框架

技术方案选择

根据方案背景介绍实现的此平台server是系统服务,部门内部使用的。即供其他服务之间使用的。

因此高效的通信方案是rpc。不是那种对外提供接口让其他用户使用的,不然为啥不用http请求了。

用http请求,这些c-s的,又是后端开发逻辑了,那是不是用java、go更加合适,比如java能个线程池 只需要配置个参数即可。

这是目的之一,突出rpc的使用经验,远远比http请求这些在找工作中更加加分。

目的二是,咱们这个是AI智能体通信项目,更应该把技术聚焦在对AI底层技术的研究开发中,而不是聚焦 在后端哪些开发框架上,比如消息队列,一些处理之类的,那样为啥不用go、java。

以及怎么凸显出你对AI技术的研究,所以重点是在AI底层技术。对AI技术的研究,不是简单调用api,然后用一些后端处理框架,套个壳子说是AI项目,这对你对AI技术的提升,以及面一些AI相关岗位毫无提升。

rpc框架选择的是:谷歌的grpc,为什么不用其他的,可以看看资料分享里放的链接

也可以去看看Linux性能监控项目,也有些

通讯框架图

alt

针对通讯框架做的工作

alt

MCP协议开发

架构图

alt

RAG-MCP(重点)

大家可以重点了解一下

(此部分个人认为是此项目mcp实现中优化的一个亮点,在面试中也会是一个极具加分的点)

说明

RAG-MCP (Retrieval-Augmented Generation for Model Context Protocol) 是本项目中实现的一个基于语义检索的智能工具选择框架

它的核心思想是:当 MCP Server 提供大量工具时,不再将所有工具都发送给 LLM,而是通过语义相似度搜索,只返回与用户查询最相关的少量工具。

解决的问题

在实际应用中,一个 MCP Server 可能提供几十甚至上百个工具。如果将所有工具的描述和参数 Schema 都发送给 LLM,会带来以下问题:

(1)Token 消耗过大:每个工具的名称、描述、参数 Schema 都会占用 Token,大量工具会显著增加成本

(2)选择准确率下降:LLM 在大量工具中选择正确工具的准确率会下降

(3)响应速度变慢:处理大量工具信息需要更多时间

(4)上下文窗口限制:可能超出 LLM 的上下文窗口限制

RAG-MCP 通过语义检索,只返回与用户查询最相关的 Top-K 个工具(默认 5 个),有效解决了上述问题。

实现原理/实现过程

RAG-MCP 的工作原理可以用一句话概括:将文本转换为向量,通过向量相似度找到最相关的工具。

具体主要分为两个阶段:

(1)工具索引阶段:将每个工具的名称、描述、参数信息组合成文本,调用 Embedding API 转换为向量,存储在向量索引中

(2)查询检索阶段:将用户查询转换为向量,在向量索引中搜索最相似的工具向量,返回对应的工具

alt

整体流程:

(1)工具索引流程: alt

(2)查询检索详细流程 alt

底层原理讲解

为什么 "计算 123 + 456" 能够匹配到 "calculator" 工具?

语义匹配原理 alt alt alt

MCP开发做的工作

alt

a2a协议开发

开源

针对cpp开发a2a协议这部分开源出来了,弥补市面上的不足(为像新能源、机器人等提供多AI模型落地技术支持)

项目代码链接:

https://github.com/agan-cpp/a2a-cpp-sdk

项目视频:

https://www.bilibili.com/video/BV1iLS1BCEYW/?vd_source=b7f84f9122e6cf826e5c747e473cb4f7#reply115644729202456

本次案例是实现了一个A2A协议的c++ sdk。可以理解成一个协议+模型+框架(client/server)+实例四合一的完整A2A c++实现,可以直接集成到生产项目中,也可以作为实现自定义智能Agent系统的基础。

架构图

alt

a2a开发做的相关工作

alt

子项目---MCP server部分

alt

子项目---整体mcp开发

alt

子项目---a2a开发

alt

完整项目简历

alt alt

星球同学对项目评价/期待

alt alt alt

alt alt

项目运行效果截图

alt alt alt alt alt alt alt

知识星球介绍(公认的cpp c++学习地)

星球名字:奔跑中的cpp / c++

专注cpp/c++相关求职领域的辅导

加入星球福利,后续如果有其他活动、服务,不收费,不收费,可以合理赚钱就收取下星球费用,但是不割韭菜,保持初心

感兴趣的微信扫下面的码,然后下载知识星球app登录即可 alt

(1)高质量的项目合集 alt alt alt alt alt alt alt

同时如果项目,遇到任何困惑也会第一时间进行解答的 alt

(2)高质量精确性八股资料 alt alt alt

(3)详细的学习路线 alt

(4)活跃的学习氛围,星球打卡不只是一个形式,而是每天观看,针对同学们的学习情况提出合理化的建议,同时也有高质量的星球微信内部群 alt alt alt

(5)星球提问简历修改,提供意见的同时,还会给安排一对一腾讯会议辅导 alt alt

(6)星球同学offer情况,以及对应学习情况,给大家提供参考 alt

(7)全网最全cpp相关面经整理 alt alt

(8)编程实战能力提升平台(大家都可以使用的,免费的)

访问网址 cppagancoding.top alt

星球同学的评价 alt

(9)每周也会进行直播答疑,同时有时也会给星球内部同学开一些知识、路线分享会。

具体可以看B站放的视频,up名字:cpp辅导的阿甘

(10)奖励金激励,会根据大家打卡学习/ 面经打卡整理情况,每个月每个季度发放奖励金。有的人陆陆续续已经获得了数千月的奖励金,是加入星球费用的数十倍了 alt alt

等等,可能还有一些其他服务,目前没想起来的,以及后续也会增加的服务

本文由 mdnice 多平台发布

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐