在 Elasticsearch 中使用 A2A 协议和 MCP 创建 LLM 代理新闻室:第二部分

了解如何使用 A2A 协议(用于代理协作)和 MCP(用于 Elasticsearch 中的工具访问)建立专门的混合 LLM 代理新闻室。

Agent Builder 现已推出技术预览版。开始使用 Elastic Cloud 试用版,并在此查看 Agent Builder 的文档。

A2A 和 MCP:行动守则

本文是 "在 Elasticsearch 中使用 A2A 协议和 MCP 创建 LLM 代理新闻室!"一文的配套文章,该文章介绍了在同一个代理中同时实施 A2A 和 MCP 架构的好处,以真正获得这两种框架的独特优势。如果您希望自行运行演示,我们还提供了一个资源库

让我们来看看我们的新闻室代理是如何使用 A2A 和 MCP 协作来制作一篇新闻文章的。可在此处查看随附的存储库,了解代理的运行情况。

步骤 1:故事任务

新闻主管(作为客户)指定一篇报道:

第 2 步:记者要求进行研究

报告代理认识到它需要背景信息,并通过 A2A 委托给研究代理

第 3 步:报告人请求存档代理提供历史背景信息

记者代理认识到,历史背景会加强故事性。它通过 A2A 委托档案代理(由Elastic 的 A2A 代理提供支持)搜索新闻编辑室由 Elasticsearch 支持的文章档案:

步骤 4:归档代理使用带有 MCP 的弹性 A2A 代理

存档代理使用 Elastic 的 A2A 代理,而 A2A 代理又使用 MCP 访问 Elasticsearch 工具。这展示了混合架构,其中 A2A 实现了代理协作,而 MCP 提供了工具访问:

存档代理从 Elastic 的 A2A 代理接收全面的历史数据,并将其返回给报告器:

这一步骤演示了 Elastic 的 A2A Agent 如何集成到新闻编辑室的工作流程中。Archive Agent(新闻编辑室专用代理)与 Elastic 的 A2A Agent(第三方专家)协调,以利用 Elasticsearch 强大的搜索和分析功能。Elastic 的代理在内部使用 MCP 访问 Elasticsearch 工具,显示了代理协调 (A2A) 和工具访问 (MCP) 之间的明确分离。

步骤 5:研究人员使用 MCP 服务器

研究员代理访问多个 MCP 服务器以收集信息:

步骤 6:研究人员将数据返回给报告人

研究员代理通过 A2A 发送综合研究结果:

第 7 步:记者撰写文章

报告代理利用研究数据和自身的 LLM 能力撰写文章。在撰写过程中,记者使用 MCP 服务器获取样式和模板:

第 8 步:信心不足引发重新研究

报告代理评估了其草稿,发现有一项索赔的可信度较低。它会向研究员代理发送另一个请求:

研究员使用事实核查 MCP 服务器核实索赔,并返回更新的信息:

第 9 步:记者修改并提交给编辑

记者将核实的事实纳入其中,并通过 A2A 将完成的草稿发送给编辑代理

步骤 10:编辑使用 MCP 工具进行审查

编辑代理使用多个 MCP 服务器来审核文章:

编辑批准文章并将其转发:

第 11 步:发布者通过 CI/CD 发布

最后,打印机代理使用 CMS 和 CI/CD 管道的 MCP 服务器发布已批准的文章:

出版商确认通过 A2A 出版:

下面是随附的资料库中使用上述相同代理的 A2A 工作流程的完整序列。

#来自行动规程描述
1用户新闻主管指定故事HTTP POST用户提交故事主题和角度
2新闻主管内部创建故事-创建具有唯一 ID 的故事记录
3新闻主管记者代表任务A2A通过 A2A 协议发送故事任务
4记者内部接受任务-内部存储任务
5记者MCP 服务器生成大纲MCP/HTTP创建文章大纲和研究问题
6a记者研究员申请研究A2A发送问题(与 6b 并行)
6b记者档案员搜索档案A2A JSONRPC搜索历史文章(与 6a 并行)
7研究员MCP 服务器研究问题MCP/HTTP通过 MCP 使用人类学来回答问题
8研究员记者返回研究A2A返回研究答案
9档案员Elasticsearch搜索索引ES REST API查询 news_archive 索引
10档案员记者返回存档A2A JSONRPC返回历史搜索结果
11记者MCP 服务器生成文章MCP/HTTP创建具有研究/档案背景的文章
12记者内部商店草案-内部保存草稿
13记者新闻主管提交草案A2A提交完成的草稿
14新闻主管内部更新故事-存储草稿,将状态更新为"draft_submitted"
15新闻主管编辑审查草案A2A自动路由至编辑器以供审核
16编辑MCP 服务器评论文章MCP/HTTP通过 MCP 使用 Anthropic 分析内容
17编辑新闻主管返回评论A2A发送编辑反馈和建议
18新闻主管内部商店评论-存储编辑反馈
19新闻主管记者应用编辑A2A将审查反馈意见转达给报告人
20记者MCP 服务器应用编辑MCP/HTTP根据反馈意见修改文章
21记者内部更新草案-对草案进行修订更新
220记者新闻主管返回修订版A2A返回修订后的文章
23新闻主管内部更新故事-存储修订草案,状态为"修订版"
24新闻主管出版商发表文章A2A出版商自动路由
25出版商MCP 服务器生成标签MCP/HTTP创建标记和类别
26出版商Elasticsearch索引文章ES REST API将文章索引到 news_archive 索引
27出版商文件系统保存标记文件输入/输出将文章保存为 .md文件在 /articles
28出版商新闻主管确认出版A2A返回成功状态
29新闻主管内部更新故事-将故事状态更新为"已发布"

结论

A2A 和 MCP 在现代增强型 LLM 基础设施范例中都可以发挥重要作用。A2A 为复杂的多代理系统提供了灵活性,但潜在的可移植性较差,操作复杂性较高。MCP 提供了一种标准化的工具集成方法,更易于实施和维护,但它并不是为处理多代理协调而设计的。

选择不是二元对立的。正如我们的新闻编辑室示例所示,最复杂、最有效的 LLM 支持系统往往将这两种方法结合在一起:代理通过 A2A 协议进行协调和专业化,同时通过 MCP 服务器访问其工具和资源。这种混合架构在提供多代理系统的组织优势的同时,还提供了 MCP 的标准化和生态系统优势。这表明可能根本不需要做出选择:只需将两者都作为标准方法使用即可

作为开发人员或架构师,您需要测试并确定这两种解决方案的最佳组合,从而为您的特定用例创造正确的结果。了解每种方法的优势、局限性和适当应用,将使您能够构建更有效、可维护和可扩展的人工智能系统。

无论您是要建立数字新闻编辑室、客户服务平台、研究助手,还是其他任何由 LLM 驱动的应用程序,仔细考虑您的协调需求 (A2A) 和工具访问要求 (MCP) 都将使您走上成功之路。

其他资源

相关内容

准备好打造最先进的搜索体验了吗?

足够先进的搜索不是一个人的努力就能实现的。Elasticsearch 由数据科学家、ML 操作员、工程师以及更多和您一样对搜索充满热情的人提供支持。让我们联系起来,共同打造神奇的搜索体验,让您获得想要的结果。

亲自试用